diff --git a/js/logreader-main.mjs b/js/logreader-main.mjs index 7388a831..866dc686 100644 --- a/js/logreader-main.mjs +++ b/js/logreader-main.mjs @@ -1,22 +1,22 @@ -const f3="logreader",n1="7.0.0",nr=globalThis||void 0||self;function fc(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Ge={},ms=[],kn=()=>{},p3=()=>!1,ca=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),da=e=>e.startsWith("onUpdate:"),kt=Object.assign,pc=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},u1=Object.prototype.hasOwnProperty,it=(e,t)=>u1.call(e,t),Te=Array.isArray,Vu=e=>kr(e)==="[object Map]",Eo=e=>kr(e)==="[object Set]",jd=e=>kr(e)==="[object Date]",je=e=>typeof e=="function",mt=e=>typeof e=="string",pn=e=>typeof e=="symbol",nt=e=>e!==null&&typeof e=="object",h3=e=>(nt(e)||je(e))&&je(e.then)&&je(e.catch),v3=Object.prototype.toString,kr=e=>v3.call(e),s1=e=>kr(e).slice(8,-1),E3=e=>kr(e)==="[object Object]",ma=e=>mt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Mi=fc(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ga=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},i1=/-\w/g,Wt=ga(e=>e.replace(i1,t=>t.slice(1).toUpperCase())),r1=/\B([A-Z])/g,Du=ga(e=>e.replace(r1,"-$1").toLowerCase()),fa=ga(e=>e.charAt(0).toUpperCase()+e.slice(1)),so=ga(e=>e?`on${fa(e)}`:""),zt=(e,t)=>!Object.is(e,t),ll=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:u,value:n})},o1=e=>{const t=parseFloat(e);return isNaN(t)?e:t},a1=e=>{const t=mt(e)?Number(e):NaN;return isNaN(t)?e:t};let Md;const Co=()=>Md||(Md=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof nr<"u"?nr:{});function zn(e){if(Te(e)){const t={};for(let n=0;nn.startsWith("/*")?"":n).split(l1).forEach(n=>{if(n){const u=n.split(c1);u.length>1&&(t[u[0].trim()]=u[1].trim())}}),t}function ze(e){let t="";if(mt(e))t=e;else if(Te(e))for(let n=0;n!!(e&&e.__v_isRef===!0),re=e=>mt(e)?e:e==null?"":Te(e)||nt(e)&&(e.toString===v3||!je(e.toString))?x3(e)?re(e.value):JSON.stringify(e,w3,2):String(e),w3=(e,t)=>x3(t)?w3(e,t.value):Vu(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[u,s],i)=>(n[cl(u,i)+" =>"]=s,n),{})}:Eo(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>cl(n))}:pn(t)?cl(t):nt(t)&&!Te(t)&&!E3(t)?String(t):t,cl=(e,t="")=>{var n;return pn(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function E1(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:String(e)}let At;class b3{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&At&&(At.active?(this.parent=At,this.index=(At.scopes||(At.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const u=this.scopes.slice();for(t=0,n=u.length;t0&&--this._on===0){if(At===this)At=this.prevScope;else{let t=At;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,u;for(n=0,u=this.effects.length;n0)return;if(Vi){let t=Vi;for(Vi=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;$i;){let t=$i;for($i=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(u){e||(e=u)}t=n}}if(e)throw e}function S3(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function _3(e){let t,n=e.depsTail,u=n;for(;u;){const s=u.prevDep;u.version===-1?(u===n&&(n=s),Cc(u),C1(u)):t=u,u.dep.activeLink=u.prevActiveLink,u.prevActiveLink=void 0,u=s}e.deps=t,e.depsTail=n}function g0(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(N3(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function N3(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ur)||(e.globalVersion=ur,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!g0(e))))return;e.flags|=2;const t=e.dep,n=ct,u=Pn;ct=e,Pn=!0;try{S3(e);const s=e.fn(e._value);(t.version===0||zt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ct=n,Pn=u,_3(e),e.flags&=-3}}function Cc(e,t=!1){const{dep:n,prevSub:u,nextSub:s}=e;if(u&&(u.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=u,e.nextSub=void 0),n.subs===e&&(n.subs=u,!u&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Cc(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function C1(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Pn=!0;const T3=[];function bu(){T3.push(Pn),Pn=!1}function Bu(){const e=T3.pop();Pn=e===void 0?!0:e}function Vd(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ct;ct=void 0;try{t()}finally{ct=n}}}let ur=0;class y1{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ha{constructor(t){this.computed=t,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(t){if(!ct||!Pn||ct===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ct)n=this.activeLink=new y1(ct,this),ct.deps?(n.prevDep=ct.depsTail,ct.depsTail.nextDep=n,ct.depsTail=n):ct.deps=ct.depsTail=n,z3(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const u=n.nextDep;u.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=u),n.prevDep=ct.depsTail,n.nextDep=void 0,ct.depsTail.nextDep=n,ct.depsTail=n,ct.deps===n&&(ct.deps=u)}return n}trigger(t){this.version++,ur++,this.notify(t)}notify(t){vc();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ec()}}}function z3(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let u=t.deps;u;u=u.nextDep)z3(u)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const yo=new WeakMap,hs=Symbol(""),f0=Symbol(""),sr=Symbol("");function Ut(e,t,n){if(Pn&&ct){let u=yo.get(e);u||yo.set(e,u=new Map);let s=u.get(n);s||(u.set(n,s=new ha),s.map=u,s.key=n),s.track()}}function gu(e,t,n,u,s,i){const r=yo.get(e);if(!r){ur++;return}const o=a=>{a&&a.trigger()};if(vc(),t==="clear")r.forEach(o);else{const a=Te(e),c=a&&ma(n);if(a&&n==="length"){const l=Number(u);r.forEach((d,f)=>{(f==="length"||f===sr||!pn(f)&&f>=l)&&o(d)})}else switch((n!==void 0||r.has(void 0))&&o(r.get(n)),c&&o(r.get(sr)),t){case"add":a?c&&o(r.get("length")):(o(r.get(hs)),Vu(e)&&o(r.get(f0)));break;case"delete":a||(o(r.get(hs)),Vu(e)&&o(r.get(f0)));break;case"set":Vu(e)&&o(r.get(hs));break}}Ec()}function x1(e,t){const n=yo.get(e);return n&&n.get(t)}function Is(e){const t=Qe(e);return t===e||(Ut(t,"iterate",sr),mn(e))?t:eu(e)?Jn(e)?t.map(n=>ws(Dn(n))):t.map(ws):t.map(Dn)}function va(e){return Ut(e=Qe(e),"iterate",sr),e}function qn(e,t){return eu(e)?ws(Jn(e)?Dn(t):t):Dn(t)}const w1={__proto__:null,[Symbol.iterator](){return ml(this,Symbol.iterator,e=>qn(this,e))},concat(...e){return Is(this).concat(...e.map(t=>Te(t)?Is(t):t))},entries(){return ml(this,"entries",e=>(e[1]=qn(this,e[1]),e))},every(e,t){return su(this,"every",e,t,void 0,arguments)},filter(e,t){return su(this,"filter",e,t,n=>n.map(u=>qn(this,u)),arguments)},find(e,t){return su(this,"find",e,t,n=>qn(this,n),arguments)},findIndex(e,t){return su(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return su(this,"findLast",e,t,n=>qn(this,n),arguments)},findLastIndex(e,t){return su(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return su(this,"forEach",e,t,void 0,arguments)},includes(...e){return gl(this,"includes",e)},indexOf(...e){return gl(this,"indexOf",e)},join(e){return Is(this).join(e)},lastIndexOf(...e){return gl(this,"lastIndexOf",e)},map(e,t){return su(this,"map",e,t,void 0,arguments)},pop(){return yi(this,"pop")},push(...e){return yi(this,"push",e)},reduce(e,...t){return Ud(this,"reduce",e,t)},reduceRight(e,...t){return Ud(this,"reduceRight",e,t)},shift(){return yi(this,"shift")},some(e,t){return su(this,"some",e,t,void 0,arguments)},splice(...e){return yi(this,"splice",e)},toReversed(){return Is(this).toReversed()},toSorted(e){return Is(this).toSorted(e)},toSpliced(...e){return Is(this).toSpliced(...e)},unshift(...e){return yi(this,"unshift",e)},values(){return ml(this,"values",e=>qn(this,e))}};function ml(e,t,n){const u=va(e),s=u[t]();return u!==e&&!mn(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.done||(i.value=n(i.value)),i}),s}const b1=Array.prototype;function su(e,t,n,u,s,i){const r=va(e),o=r!==e&&!mn(e),a=r[t];if(a!==b1[t]){const d=a.apply(e,i);return o?Dn(d):d}let c=n;r!==e&&(o?c=function(d,f){return n.call(this,qn(e,d),f,e)}:n.length>2&&(c=function(d,f){return n.call(this,d,f,e)}));const l=a.call(r,c,u);return o&&s?s(l):l}function Ud(e,t,n,u){const s=va(e),i=s!==e&&!mn(e);let r=n,o=!1;s!==e&&(i?(o=u.length===0,r=function(c,l,d){return o&&(o=!1,c=qn(e,c)),n.call(this,c,qn(e,l),d,e)}):n.length>3&&(r=function(c,l,d){return n.call(this,c,l,d,e)}));const a=s[t](r,...u);return o?qn(e,a):a}function gl(e,t,n){const u=Qe(e);Ut(u,"iterate",sr);const s=u[t](...n);return(s===-1||s===!1)&&ya(n[0])?(n[0]=Qe(n[0]),u[t](...n)):s}function yi(e,t,n=[]){bu(),vc();const u=Qe(e)[t].apply(e,n);return Ec(),Bu(),u}const B1=fc("__proto__,__v_isRef,__isVue"),P3=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(pn));function k1(e){pn(e)||(e=String(e));const t=Qe(this);return Ut(t,"has",e),t.hasOwnProperty(e)}class I3{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,u){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return u===(s?i?$3:M3:i?j3:R3).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(u)?t:void 0;const r=Te(t);if(!s){let a;if(r&&(a=w1[n]))return a;if(n==="hasOwnProperty")return k1}const o=Reflect.get(t,n,pt(t)?t:u);if((pn(n)?P3.has(n):B1(n))||(s||Ut(t,"get",n),i))return o;if(pt(o)){const a=r&&ma(n)?o:o.value;return s&&nt(a)?ir(a):a}return nt(o)?s?ir(o):xs(o):o}}class L3 extends I3{constructor(t=!1){super(!1,t)}set(t,n,u,s){let i=t[n];const r=Te(t)&&ma(n);if(!this._isShallow){const c=eu(i);if(!mn(u)&&!eu(u)&&(i=Qe(i),u=Qe(u)),!r&&pt(i)&&!pt(u))return c||(i.value=u),!0}const o=r?Number(n)e,Vr=e=>Reflect.getPrototypeOf(e);function _1(e,t,n){return function(...u){const s=this.__v_raw,i=Qe(s),r=Vu(i),o=e==="entries"||e===Symbol.iterator&&r,a=e==="keys"&&r,c=s[e](...u),l=n?p0:t?ws:Dn;return!t&&Ut(i,"iterate",a?f0:hs),kt(Object.create(c),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:o?[l(d[0]),l(d[1])]:l(d),done:f}}})}}function Ur(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function N1(e,t){const n={get(u){const s=this.__v_raw,i=Qe(s),r=Qe(u);e||(zt(u,r)&&Ut(i,"get",u),Ut(i,"get",r));const{has:o}=Vr(i),a=t?p0:e?ws:Dn;if(o.call(i,u))return a(s.get(u));if(o.call(i,r))return a(s.get(r));s!==i&&s.get(u)},get size(){const u=this.__v_raw;return!e&&Ut(Qe(u),"iterate",hs),u.size},has(u){const s=this.__v_raw,i=Qe(s),r=Qe(u);return e||(zt(u,r)&&Ut(i,"has",u),Ut(i,"has",r)),u===r?s.has(u):s.has(u)||s.has(r)},forEach(u,s){const i=this,r=i.__v_raw,o=Qe(r),a=t?p0:e?ws:Dn;return!e&&Ut(o,"iterate",hs),r.forEach((c,l)=>u.call(s,a(c),a(l),i))}};return kt(n,e?{add:Ur("add"),set:Ur("set"),delete:Ur("delete"),clear:Ur("clear")}:{add(u){const s=Qe(this),i=Vr(s),r=Qe(u),o=!t&&!mn(u)&&!eu(u)?r:u;return i.has.call(s,o)||zt(u,o)&&i.has.call(s,u)||zt(r,o)&&i.has.call(s,r)||(s.add(o),gu(s,"add",o,o)),this},set(u,s){!t&&!mn(s)&&!eu(s)&&(s=Qe(s));const i=Qe(this),{has:r,get:o}=Vr(i);let a=r.call(i,u);a||(u=Qe(u),a=r.call(i,u));const c=o.call(i,u);return i.set(u,s),a?zt(s,c)&&gu(i,"set",u,s):gu(i,"add",u,s),this},delete(u){const s=Qe(this),{has:i,get:r}=Vr(s);let o=i.call(s,u);o||(u=Qe(u),o=i.call(s,u)),r&&r.call(s,u);const a=s.delete(u);return o&&gu(s,"delete",u,void 0),a},clear(){const u=Qe(this),s=u.size!==0,i=u.clear();return s&&gu(u,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(u=>{n[u]=_1(u,e,t)}),n}function Ea(e,t){const n=N1(e,t);return(u,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?u:Reflect.get(it(n,s)&&s in u?n:u,s,i)}const T1={get:Ea(!1,!1)},z1={get:Ea(!1,!0)},P1={get:Ea(!0,!1)},I1={get:Ea(!0,!0)},R3=new WeakMap,j3=new WeakMap,M3=new WeakMap,$3=new WeakMap;function L1(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function xs(e){return eu(e)?e:Ca(e,!1,A1,T1,R3)}function O1(e){return Ca(e,!1,F1,z1,j3)}function ir(e){return Ca(e,!0,D1,P1,M3)}function R1(e){return Ca(e,!0,S1,I1,$3)}function Ca(e,t,n,u,s){if(!nt(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=s.get(e);if(i)return i;const r=L1(s1(e));if(r===0)return e;const o=new Proxy(e,r===2?u:n);return s.set(e,o),o}function Jn(e){return eu(e)?Jn(e.__v_raw):!!(e&&e.__v_isReactive)}function eu(e){return!!(e&&e.__v_isReadonly)}function mn(e){return!!(e&&e.__v_isShallow)}function ya(e){return e?!!e.__v_raw:!1}function Qe(e){const t=e&&e.__v_raw;return t?Qe(t):e}function yc(e){return!it(e,"__v_skip")&&Object.isExtensible(e)&&C3(e,"__v_skip",!0),e}const Dn=e=>nt(e)?xs(e):e,ws=e=>nt(e)?ir(e):e;function pt(e){return e?e.__v_isRef===!0:!1}function _e(e){return V3(e,!1)}function bs(e){return V3(e,!0)}function V3(e,t){return pt(e)?e:new j1(e,t)}class j1{constructor(t,n){this.dep=new ha,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Qe(t),this._value=n?t:Dn(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,u=this.__v_isShallow||mn(t)||eu(t);t=u?t:Qe(t),zt(t,n)&&(this._rawValue=t,this._value=u?t:Dn(t),this.dep.trigger())}}function I(e){return pt(e)?e.value:e}function Rt(e){return je(e)?e():I(e)}const M1={get:(e,t,n)=>t==="__v_raw"?e:I(Reflect.get(e,t,n)),set:(e,t,n,u)=>{const s=e[t];return pt(s)&&!pt(n)?(s.value=n,!0):Reflect.set(e,t,n,u)}};function U3(e){return Jn(e)?e:new Proxy(e,M1)}class $1{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new ha,{get:u,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=u,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function V1(e){return new $1(e)}function U1(e){const t=Te(e)?new Array(e.length):{};for(const n in e)t[n]=H3(e,n);return t}class H1{constructor(t,n,u){this._object=t,this._defaultValue=u,this.__v_isRef=!0,this._value=void 0,this._key=pn(n)?n:String(n),this._raw=Qe(t);let s=!0,i=t;if(!Te(t)||pn(this._key)||!ma(this._key))do s=!ya(i)||mn(i);while(s&&(i=i.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=I(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&pt(this._raw[this._key])){const n=this._object[this._key];if(pt(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return x1(this._raw,this._key)}}class W1{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function xo(e,t,n){return pt(e)?e:je(e)?new W1(e):nt(e)&&arguments.length>1?H3(e,t,n):_e(e)}function H3(e,t,n){return new H1(e,t,n)}class q1{constructor(t,n,u){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ha(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ur-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=u}notify(){if(this.flags|=16,!(this.flags&8)&&ct!==this)return F3(this,!0),!0}get value(){const t=this.dep.track();return N3(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function K1(e,t,n=!1){let u,s;return je(e)?u=e:(u=e.get,s=e.set),new q1(u,s,n)}const Hr={},wo=new WeakMap;let rs;function G1(e,t=!1,n=rs){if(n){let u=wo.get(n);u||wo.set(n,u=[]),u.push(e)}}function Y1(e,t,n=Ge){const{immediate:u,deep:s,once:i,scheduler:r,augmentJob:o,call:a}=n,c=S=>s?S:mn(S)||s===!1||s===0?fu(S,1):fu(S);let l,d,f,g,h=!1,E=!1;if(pt(e)?(d=()=>e.value,h=mn(e)):Jn(e)?(d=()=>c(e),h=!0):Te(e)?(E=!0,h=e.some(S=>Jn(S)||mn(S)),d=()=>e.map(S=>{if(pt(S))return S.value;if(Jn(S))return c(S);if(je(S))return a?a(S,2):S()})):je(e)?t?d=a?()=>a(e,2):e:d=()=>{if(f){bu();try{f()}finally{Bu()}}const S=rs;rs=l;try{return a?a(e,3,[g]):e(g)}finally{rs=S}}:d=kn,t&&s){const S=d,H=s===!0?1/0:s;d=()=>fu(S(),H)}const b=hc(),C=()=>{l.stop(),b&&b.active&&pc(b.effects,l)};if(i&&t){const S=t;t=(...H)=>{const T=S(...H);return C(),T}}let x=E?new Array(e.length).fill(Hr):Hr;const k=S=>{if(!(!(l.flags&1)||!l.dirty&&!S))if(t){const H=l.run();if(S||s||h||(E?H.some((T,U)=>zt(T,x[U])):zt(H,x))){f&&f();const T=rs;rs=l;try{const U=[H,x===Hr?void 0:E&&x[0]===Hr?[]:x,g];x=H,a?a(t,3,U):t(...U)}finally{rs=T}}}else l.run()};return o&&o(k),l=new A3(d),l.scheduler=r?()=>r(k,!1):k,g=S=>G1(S,!1,l),f=l.onStop=()=>{const S=wo.get(l);if(S){if(a)a(S,4);else for(const H of S)H();wo.delete(l)}},t?u?k(!0):x=l.run():r?r(k.bind(null,!0),!0):l.run(),C.pause=l.pause.bind(l),C.resume=l.resume.bind(l),C.stop=C,C}function fu(e,t=1/0,n){if(t<=0||!nt(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,pt(e))fu(e.value,t,n);else if(Te(e))for(let u=0;u{fu(u,t,n)});else if(E3(e)){for(const u in e)fu(e[u],t,n);for(const u of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,u)&&fu(e[u],t,n)}return e}function Ar(e,t,n,u){try{return u?e(...u):e()}catch(s){xa(s,t,n)}}function Fn(e,t,n,u){if(je(e)){const s=Ar(e,t,n,u);return s&&h3(s)&&s.catch(i=>{xa(i,t,n)}),s}if(Te(e)){const s=[];for(let i=0;i>>1,s=Zt[u],i=rr(s);i=rr(n)?Zt.push(e):Zt.splice(J1(t),0,e),e.flags|=1,q3()}}function q3(){bo||(bo=W3.then(Y3))}function K3(e){if(!Te(e))ju&&e.id===-1?ju.splice(Us+1,0,e):e.flags&1||(Qs.push(e),e.flags|=1);else for(let t=0;trr(n)-rr(u));if(Qs.length=0,ju){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function Y3(e){try{for($n=0;$nhe;function he(e,t=Ot,n){if(!t||e._n)return e;const u=(...s)=>{u._d&&_o(-1);const i=Bo(t),r=wu.length;let o;try{o=e(...s)}finally{for(let a=wu.length;a>r;a--)Sc();Bo(i),u._d&&_o(1)}return o};return u._n=!0,u._c=!0,u._d=!0,u}function Mu(e,t){if(Ot===null)return e;const n=Sa(Ot),u=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&je(t)?t.call(u&&u.proxy):t}}function tE(){return!!(Ln()||vs)}const nE=Symbol.for("v-scx"),uE=()=>jt(nE);function ba(e,t){return Ba(e,null,t)}function sE(e,t){return Ba(e,null,{flush:"sync"})}function qt(e,t,n){return Ba(e,t,n)}function Ba(e,t,n=Ge){const{immediate:u,deep:s,flush:i,once:r}=n,o=kt({},n),a=t&&u||!t&&i!=="post";let c;if(dr){if(i==="sync"){const g=uE();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!a){const g=()=>{};return g.stop=kn,g.resume=kn,g.pause=kn,g}}const l=Ht;o.call=(g,h,E)=>Fn(g,l,h,E);let d=!1;i==="post"?o.scheduler=g=>{Yt(g,l&&l.suspense)}:i!=="sync"&&(d=!0,o.scheduler=(g,h)=>{h?g():xc(g)}),o.augmentJob=g=>{t&&(g.flags|=4),d&&(g.flags|=2,l&&(g.id=l.uid,g.i=l))};const f=Y1(e,t,o);return dr&&(c?c.push(f):a&&f()),f}function iE(e,t,n){const u=this.proxy,s=mt(e)?e.includes(".")?Z3(u,e):()=>u[e]:e.bind(u,u);let i;je(t)?i=t:(i=t.handler,n=t);const r=Fr(this),o=Ba(s,i.bind(u),n);return r(),o}function Z3(e,t){const n=t.split(".");return()=>{let u=e;for(let s=0;se.__isTeleport,as=e=>e&&(e.disabled||e.disabled===""),rE=e=>e&&(e.defer||e.defer===""),Wd=e=>typeof SVGElement<"u"&&e instanceof SVGElement,qd=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,v0=(e,t)=>{const n=e&&e.to;return mt(n)?t?t(n):null:n},oE={name:"Teleport",__isTeleport:!0,process(e,t,n,u,s,i,r,o,a,c){const{mc:l,pc:d,pbc:f,o:{insert:g,querySelector:h,createText:E,createComment:b,parentNode:C}}=c,x=as(t.props);let{dynamicChildren:k}=t;const S=(U,X,K)=>{U.shapeFlag&16&&l(U.children,X,K,s,i,r,o,a)},H=(U=t)=>{const X=as(U.props),K=U.target=v0(U.props,h),D=E0(K,U,E,g);K&&(r!=="svg"&&Wd(K)?r="svg":r!=="mathml"&&qd(K)&&(r="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(K),X||(S(U,K,D),Li(U,!1)))},T=U=>{const X=()=>{if(Iu.get(U)===X){if(Iu.delete(U),as(U.props)){const K=C(U.el)||n;S(U,K,U.anchor),Li(U,!0)}H(U)}};Iu.set(U,X),Yt(X,i)};if(e==null){const U=t.el=E(""),X=t.anchor=E("");if(g(U,n,u),g(X,n,u),rE(t.props)||i&&i.pendingBranch){T(t);return}x&&(S(t,n,X),Li(t,!0)),H()}else{t.el=e.el;const U=t.anchor=e.anchor,X=Iu.get(e);if(X){X.flags|=8,Iu.delete(e),T(t);return}t.targetStart=e.targetStart;const K=t.target=e.target,D=t.targetAnchor=e.targetAnchor,O=as(e.props),B=O?n:K,R=O?U:D;if(r==="svg"||Wd(K)?r="svg":(r==="mathml"||qd(K))&&(r="mathml"),k?(f(e.dynamicChildren,k,B,s,i,r,o),Fc(e,t,!0)):a||d(e,t,B,R,s,i,r,o,!1),x)O?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Wr(t,n,U,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const M=v0(t.props,h);M&&(t.target=M,Wr(t,M,null,c,0))}else O&&Wr(t,K,D,c,1);Li(t,x)}},remove(e,t,n,{um:u,o:{remove:s}},i){const{shapeFlag:r,children:o,anchor:a,targetStart:c,targetAnchor:l,target:d,props:f}=e,g=as(f),h=i||!g,E=Iu.get(e);if(E&&(E.flags|=8,Iu.delete(e)),d&&(s(c),s(l)),i&&s(a),!E&&(g||d)&&r&16)for(let b=0;b{e.isMounted=!0}),di(()=>{e.isUnmounting=!0}),e}const En=[Function,Array],X3={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:En,onEnter:En,onAfterEnter:En,onEnterCancelled:En,onBeforeLeave:En,onLeave:En,onAfterLeave:En,onLeaveCancelled:En,onBeforeAppear:En,onAppear:En,onAfterAppear:En,onAppearCancelled:En},Q3=e=>{const t=e.subTree;return t.component?Q3(t.component):t},dE={name:"BaseTransition",props:X3,setup(e,{slots:t}){const n=Ln(),u=cE();return()=>{const s=t.default&&nf(t.default(),!0),i=s&&s.length?ef(s):n.subTree?ye():void 0;if(!i)return;const r=Qe(e),{mode:o}=r;if(u.isLeaving)return fl(i);const a=ko(i);if(!a)return fl(i);let c=C0(a,r,u,n,d=>c=d);a.type!==Pt&&or(a,c);let l=n.subTree&&ko(n.subTree);if(l&&l.type!==Pt&&!ls(l,a)&&Q3(n).type!==Pt){let d=C0(l,r,u,n);if(or(l,d),o==="out-in"&&a.type!==Pt)return u.isLeaving=!0,d.afterLeave=()=>{u.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,l=void 0},fl(i);o==="in-out"&&a.type!==Pt?d.delayLeave=(f,g,h)=>{const E=tf(u,l);E[String(l.key)]=l,f[wn]=()=>{g(),f[wn]=void 0,delete c.delayedLeave,l=void 0},c.delayedLeave=()=>{h(),delete c.delayedLeave,l=void 0}}:l=void 0}else l&&(l=void 0);return i}}};function ef(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Pt){t=n;break}}return t}const mE=dE;function tf(e,t){const{leavingVNodes:n}=e;let u=n.get(t.type);return u||(u=Object.create(null),n.set(t.type,u)),u}function C0(e,t,n,u,s){const{appear:i,mode:r,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:l,onEnterCancelled:d,onBeforeLeave:f,onLeave:g,onAfterLeave:h,onLeaveCancelled:E,onBeforeAppear:b,onAppear:C,onAfterAppear:x,onAppearCancelled:k}=t,S=String(e.key),H=tf(n,e),T=(K,D)=>{K&&Fn(K,u,9,D)},U=(K,D)=>{const O=D[1];T(K,D),Te(K)?K.every(B=>B.length<=1)&&O():K.length<=1&&O()},X={mode:r,persisted:o,beforeEnter(K){let D=a;if(!n.isMounted)if(i)D=b||a;else return;K[wn]&&K[wn](!0);const O=H[S];O&&ls(e,O)&&O.el[wn]&&O.el[wn](),T(D,[K])},enter(K){if(H[S]===e)return;let D=c,O=l,B=d;if(!n.isMounted)if(i)D=C||c,O=x||l,B=k||d;else return;let R=!1;K[xi]=$=>{R||(R=!0,$?T(B,[K]):T(O,[K]),X.delayedLeave&&X.delayedLeave(),K[xi]=void 0)};const M=K[xi].bind(null,!1);D?U(D,[K,M]):M()},leave(K,D){const O=String(e.key);if(K[xi]&&K[xi](!0),n.isUnmounting)return D();T(f,[K]);let B=!1;K[wn]=M=>{B||(B=!0,D(),M?T(E,[K]):T(h,[K]),K[wn]=void 0,H[O]===e&&delete H[O])};const R=K[wn].bind(null,!1);H[O]=e,g?U(g,[K,R]):R()},clone(K){const D=C0(K,t,n,u,s);return s&&s(D),D}};return X}function fl(e){if(Aa(e))return e=Ku(e),e.children=null,e}function ko(e){if(!Aa(e))return ka(e.type)&&e.children?ef(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&je(n.default))return n.default()}}function or(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;or(ka(n.type)&&ko(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nf(e,t=!1,n){let u=[],s=0;for(let i=0;i1)for(let i=0;in.value,set:s=>n.value=s})}return n}function Kd(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Ao=new WeakMap;function Ui(e,t,n,u,s=!1){if(Te(e)){e.forEach((E,b)=>Ui(E,t&&(Te(t)?t[b]:t),n,u,s));return}if(ei(u)&&!s){u.shapeFlag&512&&u.type.__asyncResolved&&u.component.subTree.component&&Ui(e,t,n,u.component.subTree);return}const i=u.shapeFlag&4?Sa(u.component):u.el,r=s?null:i,{i:o,r:a}=e,c=t&&t.r,l=o.refs===Ge?o.refs={}:o.refs,d=o.setupState,f=Qe(d),g=d===Ge?p3:E=>Kd(l,E)?!1:it(f,E),h=(E,b)=>!(b&&Kd(l,b));if(c!=null&&c!==a){if(Gd(t),mt(c))l[c]=null,g(c)&&(d[c]=null);else if(pt(c)){const E=t;h(c,E.k)&&(c.value=null),E.k&&(l[E.k]=null)}}if(je(a))Ar(a,o,12,[r,l]);else{const E=mt(a),b=pt(a);if(E||b){const C=()=>{if(e.f){const x=E?g(a)?d[a]:l[a]:h()||!e.k?a.value:l[e.k];if(s)Te(x)&&pc(x,i);else if(Te(x))x.includes(i)||x.push(i);else if(E)l[a]=[i],g(a)&&(d[a]=l[a]);else{const k=[i];h(a,e.k)&&(a.value=k),e.k&&(l[e.k]=k)}}else E?(l[a]=r,g(a)&&(d[a]=r)):b&&(h(a,e.k)&&(a.value=r),e.k&&(l[e.k]=r))};if(r){const x=()=>{C(),Ao.delete(e)};x.id=-1,Ao.set(e,x),Yt(x,n)}else Gd(e),C()}}}function Gd(e){const t=Ao.get(e);t&&(t.flags|=8,Ao.delete(e))}Co().requestIdleCallback,Co().cancelIdleCallback;const ei=e=>!!e.type.__asyncLoader,Aa=e=>e.type.__isKeepAlive;function gE(e,t){sf(e,"a",t)}function fE(e,t){sf(e,"da",t)}function sf(e,t,n=Ht){const u=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Da(t,u,n),n){let s=n.parent;for(;s&&s.parent;)Aa(s.parent.vnode)&&pE(u,t,n,s),s=s.parent}}function pE(e,t,n,u){const s=Da(t,e,u,!0);Sn(()=>{pc(u[t],s)},n)}function Da(e,t,n=Ht,u=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...r)=>{bu();const o=Fr(n),a=Fn(t,n,e,r);return o(),Bu(),a});return u?s.unshift(i):s.push(i),i}}const Fu=e=>(t,n=Ht)=>{(!dr||e==="sp")&&Da(e,(...u)=>t(...u),n)},hE=Fu("bm"),un=Fu("m"),rf=Fu("bu"),of=Fu("u"),di=Fu("bum"),Sn=Fu("um"),vE=Fu("sp"),EE=Fu("rtg"),CE=Fu("rtc");function yE(e,t=Ht){Da("ec",e,t)}const wc="components",xE="directives";function hn(e,t){return bc(wc,e,!0,t)||e}const af=Symbol.for("v-ndc");function xu(e){return mt(e)?bc(wc,e,!1)||e:e||af}function wE(e){return bc(xE,e)}function bc(e,t,n=!0,u=!1){const s=Ot||Ht;if(s){const i=s.type;if(e===wc){const o=nC(i,!1);if(o&&(o===t||o===Wt(t)||o===fa(Wt(t))))return i}const r=Yd(s[e]||i[e],t)||Yd(s.appContext[e],t);return!r&&u?i:r}}function Yd(e,t){return e&&(e[t]||e[Wt(t)]||e[fa(Wt(t))])}function tu(e,t,n,u){let s;const i=n,r=Te(e);if(r||mt(e)){const o=r&&Jn(e);let a=!1,c=!1;o&&(a=!mn(e),c=eu(e),e=va(e)),s=new Array(e.length);for(let l=0,d=e.length;lt(o,a,void 0,i));else{const o=Object.keys(e);s=new Array(o.length);for(let a=0,c=o.length;a{const i=u.fn(...s);return i&&(i.key=u.key),i}:u.fn)}return e}function Pe(e,t,n,u,s,i){if(n==null&&(n={}),Ot.ce||Ot.parent&&ei(Ot.parent)&&Ot.parent.ce){const c=n,l=Object.keys(c).length>0;return t!=="default"&&(c.name=t),_(),we(et,null,[Ee("slot",c,u&&u())],l?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const o=wu.length;_();let a;try{const c=r&&lf(r(n)),l=n.key||i||c&&c.key;a=we(et,{key:(l&&!pn(l)?l:`_${t}`)+(!c&&u?"_fb":"")},c||(u?u():[]),c&&e._===1?64:-2)}catch(c){for(let l=wu.length;l>o;l--)Sc();throw c}finally{r&&r._c&&(r._d=!0)}return!s&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function lf(e){return e.some(t=>lr(t)?!(t.type===Pt||t.type===et&&!lf(t.children)):!0)?e:null}function Do(e,t){const n={};for(const u in e)n[t&&/[A-Z]/.test(u)?`on:${u}`:so(u)]=e[u];return n}const y0=e=>e?_f(e)?Sa(e):y0(e.parent):null,Hi=kt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>y0(e.parent),$root:e=>y0(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>mf(e),$forceUpdate:e=>e.f||(e.f=()=>{xc(e.update)}),$nextTick:e=>e.n||(e.n=ku.bind(e.proxy)),$watch:e=>iE.bind(e)}),pl=(e,t)=>e!==Ge&&!e.__isScriptSetup&&it(e,t),bE={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:u,data:s,props:i,accessCache:r,type:o,appContext:a}=e;if(t[0]!=="$"){const f=r[t];if(f!==void 0)switch(f){case 1:return u[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(pl(u,t))return r[t]=1,u[t];if(s!==Ge&&it(s,t))return r[t]=2,s[t];if(it(i,t))return r[t]=3,i[t];if(n!==Ge&&it(n,t))return r[t]=4,n[t];x0&&(r[t]=0)}}const c=Hi[t];let l,d;if(c)return t==="$attrs"&&Ut(e.attrs,"get",""),c(e);if((l=o.__cssModules)&&(l=l[t]))return l;if(n!==Ge&&it(n,t))return r[t]=4,n[t];if(d=a.config.globalProperties,it(d,t))return d[t]},set({_:e},t,n){const{data:u,setupState:s,ctx:i}=e;return pl(s,t)?(s[t]=n,!0):u!==Ge&&it(u,t)?(u[t]=n,!0):it(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:u,appContext:s,props:i,type:r}},o){let a;return!!(n[o]||e!==Ge&&o[0]!=="$"&&it(e,o)||pl(t,o)||it(i,o)||it(u,o)||it(Hi,o)||it(s.config.globalProperties,o)||(a=r.__cssModules)&&a[o])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:it(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function kc(){return cf().slots}function BE(){return cf().attrs}function cf(e){const t=Ln();return t.setupContext||(t.setupContext=Tf(t))}function Fo(e){return Te(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function qu(e,t){return!e||!t?e||t:Te(e)&&Te(t)?e.concat(t):kt({},Fo(e),Fo(t))}let x0=!0;function kE(e){const t=mf(e),n=e.proxy,u=e.ctx;x0=!1,t.beforeCreate&&Zd(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:r,watch:o,provide:a,inject:c,created:l,beforeMount:d,mounted:f,beforeUpdate:g,updated:h,activated:E,deactivated:b,beforeDestroy:C,beforeUnmount:x,destroyed:k,unmounted:S,render:H,renderTracked:T,renderTriggered:U,errorCaptured:X,serverPrefetch:K,expose:D,inheritAttrs:O,components:B,directives:R,filters:M}=t;if(c&&AE(c,u,null),r)for(const Q in r){const oe=r[Q];je(oe)&&(u[Q]=oe.bind(n))}if(s){const Q=s.call(n,n);nt(Q)&&(e.data=xs(Q))}if(x0=!0,i)for(const Q in i){const oe=i[Q],fe=je(oe)?oe.bind(n,n):je(oe.get)?oe.get.bind(n,n):kn,be=!je(oe)&&je(oe.set)?oe.set.bind(n):kn,w=ne({get:fe,set:be});Object.defineProperty(u,Q,{enumerable:!0,configurable:!0,get:()=>w.value,set:De=>w.value=De})}if(o)for(const Q in o)df(o[Q],u,n,Q);if(a){const Q=je(a)?a.call(n):a;Reflect.ownKeys(Q).forEach(oe=>{h0(oe,Q[oe])})}l&&Zd(l,e,"c");function $(Q,oe){Te(oe)?oe.forEach(fe=>Q(fe.bind(n))):oe&&Q(oe.bind(n))}if($(hE,d),$(un,f),$(rf,g),$(of,h),$(gE,E),$(fE,b),$(yE,X),$(CE,T),$(EE,U),$(di,x),$(Sn,S),$(vE,K),Te(D))if(D.length){const Q=e.exposed||(e.exposed={});D.forEach(oe=>{Object.defineProperty(Q,oe,{get:()=>n[oe],set:fe=>n[oe]=fe,enumerable:!0})})}else e.exposed||(e.exposed={});H&&e.render===kn&&(e.render=H),O!=null&&(e.inheritAttrs=O),B&&(e.components=B),R&&(e.directives=R),K&&uf(e)}function AE(e,t,n=kn){Te(e)&&(e=w0(e));for(const u in e){const s=e[u];let i;nt(s)?"default"in s?i=jt(s.from||u,s.default,!0):i=jt(s.from||u):i=jt(s),pt(i)?Object.defineProperty(t,u,{enumerable:!0,configurable:!0,get:()=>i.value,set:r=>i.value=r}):t[u]=i}}function Zd(e,t,n){Fn(Te(e)?e.map(u=>u.bind(t.proxy)):e.bind(t.proxy),t,n)}function df(e,t,n,u){let s=u.includes(".")?Z3(n,u):()=>n[u];if(mt(e)){const i=t[e];je(i)&&qt(s,i)}else if(je(e))qt(s,e.bind(n));else if(nt(e))if(Te(e))e.forEach(i=>df(i,t,n,u));else{const i=je(e.handler)?e.handler.bind(n):t[e.handler];je(i)&&qt(s,i,e)}}function mf(e){const t=e.type,{mixins:n,extends:u}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:r}}=e.appContext,o=i.get(t);let a;return o?a=o:!s.length&&!n&&!u?a=t:(a={},s.length&&s.forEach(c=>So(a,c,r,!0)),So(a,t,r)),nt(t)&&i.set(t,a),a}function So(e,t,n,u=!1){const{mixins:s,extends:i}=t;i&&So(e,i,n,!0),s&&s.forEach(r=>So(e,r,n,!0));for(const r in t)if(!(u&&r==="expose")){const o=DE[r]||n&&n[r];e[r]=o?o(e[r],t[r]):t[r]}return e}const DE={data:Jd,props:Xd,emits:Xd,methods:Oi,computed:Oi,beforeCreate:Gt,created:Gt,beforeMount:Gt,mounted:Gt,beforeUpdate:Gt,updated:Gt,beforeDestroy:Gt,beforeUnmount:Gt,destroyed:Gt,unmounted:Gt,activated:Gt,deactivated:Gt,errorCaptured:Gt,serverPrefetch:Gt,components:Oi,directives:Oi,watch:SE,provide:Jd,inject:FE};function Jd(e,t){return t?e?function(){return kt(je(e)?e.call(this,this):e,je(t)?t.call(this,this):t)}:t:e}function FE(e,t){return Oi(w0(e),w0(t))}function w0(e){if(Te(e)){const t={};for(let n=0;n{let l,d=Ge,f;return sE(()=>{const g=e[s];zt(l,g)&&(l=g,c())}),{get(){return a(),n.get?n.get(l):l},set(g){const h=n.set?n.set(g):g;if(!zt(h,l)&&!(d!==Ge&&zt(g,d)))return;const E=u.vnode.props,b=!!(E&&(t in E||s in E||i in E)&&(`onUpdate:${t}`in E||`onUpdate:${s}`in E||`onUpdate:${i}`in E));b||(l=g,c()),u.emit(`update:${t}`,h),zt(g,d)&&(zt(g,h)&&!zt(h,f)||b&&d!==Ge&&!zt(h,l))&&c(),d=g,f=h}}});return o[Symbol.iterator]=()=>{let a=0;return{next(){return a<2?{value:a++?r||Ge:o,done:!1}:{done:!0}}}},o}const ff=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Wt(t)}Modifiers`]||e[`${Du(t)}Modifiers`];function TE(e,t,...n){if(e.isUnmounted)return;const u=e.vnode.props||Ge;let s=n;const i=t.startsWith("update:"),r=i&&ff(u,t.slice(7));r&&(r.trim&&(s=n.map(l=>mt(l)?l.trim():l)),r.number&&(s=s.map(o1)));let o,a=u[o=so(t)]||u[o=so(Wt(t))];!a&&i&&(a=u[o=so(Du(t))]),a&&Fn(a,e,6,s);const c=u[o+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[o])return;e.emitted[o]=!0,Fn(c,e,6,s)}}const zE=new WeakMap;function pf(e,t,n=!1){const u=n?zE:t.emitsCache,s=u.get(e);if(s!==void 0)return s;const i=e.emits;let r={},o=!1;if(!je(e)){const a=c=>{const l=pf(c,t,!0);l&&(o=!0,kt(r,l))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!o?(nt(e)&&u.set(e,null),null):(Te(i)?i.forEach(a=>r[a]=null):kt(r,i),nt(e)&&u.set(e,r),r)}function Fa(e,t){return!e||!ca(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),it(e,t[0].toLowerCase()+t.slice(1))||it(e,Du(t))||it(e,t))}function Qd(e){const{type:t,vnode:n,proxy:u,withProxy:s,propsOptions:[i],slots:r,attrs:o,emit:a,render:c,renderCache:l,props:d,data:f,setupState:g,ctx:h,inheritAttrs:E}=e,b=Bo(e);let C,x;try{if(n.shapeFlag&4){const S=s||u,H=S;C=Kn(c.call(H,S,l,d,g,f,h)),x=o}else{const S=t;C=Kn(S.length>1?S(d,{attrs:o,slots:r,emit:a}):S(d,null)),x=t.props?o:PE(o)}}catch(S){wu.length=0,xa(S,e,1),C=Ee(Pt)}let k=C;if(x&&E!==!1){const S=Object.keys(x),{shapeFlag:H}=k;S.length&&H&7&&(i&&S.some(da)&&(x=IE(x,i)),k=Ku(k,x,!1,!0))}if(n.dirs&&(k=Ku(k,null,!1,!0),k.dirs=k.dirs?k.dirs.concat(n.dirs):n.dirs),n.transition){const S=ka(k.type)&&ko(k)||k;or(S,n.transition)}return C=k,Bo(b),C}const PE=e=>{let t;for(const n in e)(n==="class"||n==="style"||ca(n))&&((t||(t={}))[n]=e[n]);return t},IE=(e,t)=>{const n={};for(const u in e)(!da(u)||!(u.slice(9)in t))&&(n[u]=e[u]);return n};function LE(e,t,n){const{props:u,children:s,component:i}=e,{props:r,children:o,patchFlag:a}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return u?em(u,r,c):!!r;if(a&8){const l=t.dynamicProps;for(let d=0;dObject.create(vf),Cf=e=>Object.getPrototypeOf(e)===vf;function RE(e,t,n,u=!1){const s={},i=Ef();e.propsDefaults=Object.create(null),yf(e,t,s,i);for(const r in e.propsOptions[0])r in s||(s[r]=void 0);n?e.props=u?s:O1(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function jE(e,t,n,u){const{props:s,attrs:i,vnode:{patchFlag:r}}=e,o=Qe(s),[a]=e.propsOptions;let c=!1;if((u||r>0)&&!(r&16)){if(r&8){const l=e.vnode.dynamicProps;for(let d=0;d{a=!0;const[f,g]=xf(d,t,!0);kt(r,f),g&&o.push(...g)};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}if(!i&&!a)return nt(e)&&u.set(e,ms),ms;if(Te(i))for(let l=0;le==="_"||e==="_ctx"||e==="$stable",Dc=e=>Te(e)?e.map(Kn):[Kn(e)],$E=(e,t,n)=>{if(t._n)return t;const u=he((...s)=>Dc(t(...s)),n);return u._c=!1,u},wf=(e,t,n)=>{const u=e._ctx;for(const s in e){if(Ac(s))continue;const i=e[s];if(je(i))t[s]=$E(s,i,u);else if(i!=null){const r=Dc(i);t[s]=()=>r}}},bf=(e,t)=>{const n=Dc(t);e.slots.default=()=>n},Bf=(e,t,n)=>{for(const u in t)(n||!Ac(u))&&(e[u]=t[u])},VE=(e,t,n)=>{const u=e.slots=Ef();if(e.vnode.shapeFlag&32){const s=t._;s?(Bf(u,t,n),n&&C3(u,"_",s,!0)):wf(t,u)}else t&&bf(e,t)},UE=(e,t,n)=>{const{vnode:u,slots:s}=e;let i=!0,r=Ge;if(u.shapeFlag&32){const o=t._;o?n&&o===1?i=!1:Bf(s,t,n):(i=!t.$stable,wf(t,s)),r=t}else t&&(bf(e,t),r={default:1});if(i)for(const o in s)!Ac(o)&&r[o]==null&&delete s[o]},Yt=GE;function HE(e){return WE(e)}function WE(e,t){const n=Co();n.__VUE__=!0;const{insert:u,remove:s,patchProp:i,createElement:r,createText:o,createComment:a,setText:c,setElementText:l,parentNode:d,nextSibling:f,setScopeId:g=kn,insertStaticContent:h}=e,E=(A,z,Y,le=null,te=null,j=null,ce=void 0,ue=null,de=!!z.dynamicChildren)=>{if(A===z)return;A&&!ls(A,z)&&(le=qe(A),Ie(A,te,j,!0),A=null),z.patchFlag===-2&&(de=!1,z.dynamicChildren=null),z.dynamicChildren&&A&&A.dynamicChildren&&A.dynamicChildren.hasOnce&&(z.dynamicChildren===ms&&(z.dynamicChildren=[]),z.dynamicChildren.hasOnce=!0);const{type:ee,ref:ke,shapeFlag:Ce}=z;switch(ee){case Dr:b(A,z,Y,le);break;case Pt:C(A,z,Y,le);break;case io:A==null&&x(z,Y,le,ce);break;case et:B(A,z,Y,le,te,j,ce,ue,de);break;default:Ce&1?H(A,z,Y,le,te,j,ce,ue,de):Ce&6?R(A,z,Y,le,te,j,ce,ue,de):(Ce&64||Ce&128)&&ee.process(A,z,Y,le,te,j,ce,ue,de,Dt)}ke!=null&&te?Ui(ke,A&&A.ref,j,z||A,!z):ke==null&&A&&A.ref!=null&&Ui(A.ref,null,j,A,!0)},b=(A,z,Y,le)=>{if(A==null)u(z.el=o(z.children),Y,le);else{const te=z.el=A.el;z.children!==A.children&&c(te,z.children)}},C=(A,z,Y,le)=>{A==null?u(z.el=a(z.children||""),Y,le):z.el=A.el},x=(A,z,Y,le)=>{[A.el,A.anchor]=h(A.children,z,Y,le,A.el,A.anchor)},k=({el:A,anchor:z},Y,le)=>{let te;for(;A&&A!==z;)te=f(A),u(A,Y,le),A=te;u(z,Y,le)},S=({el:A,anchor:z})=>{let Y;for(;A&&A!==z;)Y=f(A),s(A),A=Y;s(z)},H=(A,z,Y,le,te,j,ce,ue,de)=>{if(z.type==="svg"?ce="svg":z.type==="math"&&(ce="mathml"),A==null)T(z,Y,le,te,j,ce,ue,de);else{const ee=A.el&&A.el._isVueCE?A.el:null;try{ee&&ee._beginPatch(),K(A,z,te,j,ce,ue,de)}finally{ee&&ee._endPatch()}}},T=(A,z,Y,le,te,j,ce,ue)=>{let de,ee;const{props:ke,shapeFlag:Ce,transition:Ae,dirs:Fe}=A;if(de=A.el=r(A.type,j,ke&&ke.is,ke),Ce&8?l(de,A.children):Ce&16&&X(A.children,de,null,le,te,hl(A,j),ce,ue),Fe&&es(A,null,le,"created"),U(de,A,A.scopeId,ce,le),ke){for(const q in ke)q!=="value"&&!Mi(q)&&i(de,q,null,ke[q],j,le);"value"in ke&&i(de,"value",null,ke.value,j),(ee=ke.onVnodeBeforeMount)&&Mn(ee,le,A)}Fe&&es(A,null,le,"beforeMount");const Le=qE(te,Ae);Le&&Ae.beforeEnter(de),u(de,z,Y),((ee=ke&&ke.onVnodeMounted)||Le||Fe)&&Yt(()=>{ee&&Mn(ee,le,A),Le&&Ae.enter(de),Fe&&es(A,null,le,"mounted")},te)},U=(A,z,Y,le,te)=>{if(Y&&g(A,Y),le)for(let j=0;j{for(let ee=de;ee{const ue=z.el=A.el;let{patchFlag:de,dynamicChildren:ee,dirs:ke}=z;de|=A.patchFlag&16;const Ce=A.props||Ge,Ae=z.props||Ge;let Fe;if(Y&&ts(Y,!1),(Fe=Ae.onVnodeBeforeUpdate)&&Mn(Fe,Y,z,A),ke&&es(z,A,Y,"beforeUpdate"),Y&&ts(Y,!0),ee&&(!A.dynamicChildren||A.dynamicChildren.length!==ee.length)&&(de=0,ce=!1,ee=null),(Ce.innerHTML&&Ae.innerHTML==null||Ce.textContent&&Ae.textContent==null)&&l(ue,""),ee?D(A.dynamicChildren,ee,ue,Y,le,hl(z,te),j):ce||fe(A,z,ue,null,Y,le,hl(z,te),j,!1),de>0){if(de&16)O(ue,Ce,Ae,Y,te);else if(de&2&&Ce.class!==Ae.class&&i(ue,"class",null,Ae.class,te),de&4&&i(ue,"style",Ce.style,Ae.style,te),de&8){const Le=z.dynamicProps;for(let q=0;q{Fe&&Mn(Fe,Y,z,A),ke&&es(z,A,Y,"updated")},le)},D=(A,z,Y,le,te,j,ce)=>{for(let ue=0;ue{if(z!==Y){if(z!==Ge)for(const j in z)!Mi(j)&&!(j in Y)&&i(A,j,z[j],null,te,le);for(const j in Y){if(Mi(j))continue;const ce=Y[j],ue=z[j];ce!==ue&&j!=="value"&&i(A,j,ue,ce,te,le)}"value"in Y&&i(A,"value",z.value,Y.value,te)}},B=(A,z,Y,le,te,j,ce,ue,de)=>{const ee=z.el=A?A.el:o(""),ke=z.anchor=A?A.anchor:o("");let{patchFlag:Ce,dynamicChildren:Ae,slotScopeIds:Fe}=z;Fe&&(ue=ue?ue.concat(Fe):Fe),A==null?(u(ee,Y,le),u(ke,Y,le),X(z.children||[],Y,ke,te,j,ce,ue,de)):Ce>0&&Ce&64&&Ae&&A.dynamicChildren&&A.dynamicChildren.length===Ae.length?(D(A.dynamicChildren,Ae,Y,te,j,ce,ue),(z.key!=null||te&&z===te.subTree)&&Fc(A,z,!0)):fe(A,z,Y,ke,te,j,ce,ue,de)},R=(A,z,Y,le,te,j,ce,ue,de)=>{z.slotScopeIds=ue,A==null?z.shapeFlag&512?te.ctx.activate(z,Y,le,ce,de):M(z,Y,le,te,j,ce,de):$(A,z,de)},M=(A,z,Y,le,te,j,ce)=>{const ue=A.component=XE(A,le,te);if(Aa(A)&&(ue.ctx.renderer=Dt),QE(ue,!1,ce),ue.asyncDep){if(te&&te.registerDep(ue,Q,ce),!A.el){const de=ue.subTree=Ee(Pt);C(null,de,z,Y),A.placeholder=de.el}}else Q(ue,A,z,Y,te,j,ce)},$=(A,z,Y)=>{const le=z.component=A.component;if(LE(A,z,Y))if(le.asyncDep&&!le.asyncResolved){z.el=A.el,oe(le,z,Y);return}else le.next=z,le.update();else z.el=A.el,le.vnode=z},Q=(A,z,Y,le,te,j,ce)=>{const ue=()=>{if(A.isMounted){let{next:Ce,bu:Ae,u:Fe,parent:Le,vnode:q}=A;{const p=kf(A);if(p){Ce&&(Ce.el=q.el,oe(A,Ce,ce)),p.asyncDep.then(()=>{Yt(()=>{A.isUnmounted||ee()},te)});return}}let se=Ce,pe;ts(A,!1),Ce?(Ce.el=q.el,oe(A,Ce,ce)):Ce=q,Ae&&ll(Ae),(pe=Ce.props&&Ce.props.onVnodeBeforeUpdate)&&Mn(pe,Le,Ce,q),ts(A,!0);const Se=Qd(A),m=A.subTree;A.subTree=Se,E(m,Se,d(m.el),qe(m),A,te,j),Ce.el=Se.el,se===null&&OE(A,Se.el),Fe&&Yt(Fe,te),(pe=Ce.props&&Ce.props.onVnodeUpdated)&&Yt(()=>Mn(pe,Le,Ce,q),te)}else{let Ce;const{el:Ae,props:Fe}=z,{bm:Le,m:q,parent:se,root:pe,type:Se}=A,m=ei(z);ts(A,!1),Le&&ll(Le),!m&&(Ce=Fe&&Fe.onVnodeBeforeMount)&&Mn(Ce,se,z),ts(A,!0);{pe.ce&&pe.ce._hasShadowRoot()&&pe.ce._injectChildStyle(Se,A.parent?A.parent.type:void 0);const p=A.subTree=Qd(A);E(null,p,Y,le,A,te,j),z.el=p.el}if(q&&Yt(q,te),!m&&(Ce=Fe&&Fe.onVnodeMounted)){const p=z;Yt(()=>Mn(Ce,se,p),te)}(z.shapeFlag&256||se&&ei(se.vnode)&&se.vnode.shapeFlag&256)&&A.a&&Yt(A.a,te),A.isMounted=!0,z=Y=le=null}};A.scope.on();const de=A.effect=new A3(ue);A.scope.off();const ee=A.update=de.run.bind(de),ke=A.job=de.runIfDirty.bind(de);ke.i=A,ke.id=A.uid,de.scheduler=()=>xc(ke),ts(A,!0),ee()},oe=(A,z,Y)=>{z.component=A;const le=A.vnode.props;A.vnode=z,A.next=null,jE(A,z.props,le,Y),UE(A,z.children,Y),bu(),Hd(A),Bu()},fe=(A,z,Y,le,te,j,ce,ue,de=!1)=>{const ee=A&&A.children,ke=A?A.shapeFlag:0,Ce=z.children,{patchFlag:Ae,shapeFlag:Fe}=z;if(Ae>0){if(Ae&128){w(ee,Ce,Y,le,te,j,ce,ue,de);return}else if(Ae&256){be(ee,Ce,Y,le,te,j,ce,ue,de);return}}Fe&8?(ke&16&&me(ee,te,j),Ce!==ee&&l(Y,Ce)):ke&16?Fe&16?w(ee,Ce,Y,le,te,j,ce,ue,de):me(ee,te,j,!0):(ke&8&&l(Y,""),Fe&16&&X(Ce,Y,le,te,j,ce,ue,de))},be=(A,z,Y,le,te,j,ce,ue,de)=>{A=A||ms,z=z||ms;const ee=A.length,ke=z.length,Ce=Math.min(ee,ke);let Ae;for(Ae=0;Aeke?me(A,te,j,!0,!1,Ce):X(z,Y,le,te,j,ce,ue,de,Ce)},w=(A,z,Y,le,te,j,ce,ue,de)=>{let ee=0;const ke=z.length;let Ce=A.length-1,Ae=ke-1;for(;ee<=Ce&&ee<=Ae;){const Fe=A[ee],Le=z[ee]=de?mu(z[ee]):Kn(z[ee]);if(ls(Fe,Le))E(Fe,Le,Y,null,te,j,ce,ue,de);else break;ee++}for(;ee<=Ce&&ee<=Ae;){const Fe=A[Ce],Le=z[Ae]=de?mu(z[Ae]):Kn(z[Ae]);if(ls(Fe,Le))E(Fe,Le,Y,null,te,j,ce,ue,de);else break;Ce--,Ae--}if(ee>Ce){if(ee<=Ae){const Fe=Ae+1,Le=FeAe)for(;ee<=Ce;)Ie(A[ee],te,j,!0),ee++;else{const Fe=ee,Le=ee,q=new Map;for(ee=Le;ee<=Ae;ee++){const L=z[ee]=de?mu(z[ee]):Kn(z[ee]);L.key!=null&&q.set(L.key,ee)}let se,pe=0;const Se=Ae-Le+1;let m=!1,p=0;const v=new Array(Se);for(ee=0;ee=Se){Ie(L,te,j,!0);continue}let G;if(L.key!=null)G=q.get(L.key);else for(se=Le;se<=Ae;se++)if(v[se-Le]===0&&ls(L,z[se])){G=se;break}G===void 0?Ie(L,te,j,!0):(v[G-Le]=ee+1,G>=p?p=G:m=!0,E(L,z[G],Y,null,te,j,ce,ue,de),pe++)}const N=m?KE(v):ms;for(se=N.length-1,ee=Se-1;ee>=0;ee--){const L=Le+ee,G=z[L],ae=z[L+1],Ue=L+1{const{el:j,type:ce,transition:ue,children:de,shapeFlag:ee}=A;if(ee&6){De(A.component.subTree,z,Y,le);return}if(ee&128){A.suspense.move(z,Y,le);return}if(ee&64){ce.move(A,z,Y,Dt);return}if(ce===et){u(j,z,Y);for(let ke=0;keue.enter(j),te));else{const{leave:ke,delayLeave:Ce,afterLeave:Ae}=ue,Fe=()=>{A.ctx.isUnmounted?s(j):u(j,z,Y)},Le=()=>{const q=j._isLeaving||!!j[wn];j._isLeaving&&j[wn](!0),ue.persisted&&!q?Fe():ke(j,()=>{Fe(),Ae&&Ae()})};Ce?Ce(j,Fe,Le):Le()}else u(j,z,Y)},Ie=(A,z,Y,le=!1,te=!1)=>{const{type:j,props:ce,ref:ue,children:de,dynamicChildren:ee,shapeFlag:ke,patchFlag:Ce,dirs:Ae,cacheIndex:Fe,memo:Le}=A;if((Ce===-2||ee&&ee.hasOnce)&&(te=!1),ue!=null&&(bu(),Ui(ue,null,Y,A,!0),Bu()),Fe!=null&&(!A.ctx||A.ctx===z)&&(z.renderCache[Fe]=void 0),ke&256){z.ctx.deactivate(A);return}const q=ke&1&&Ae,se=!ei(A);let pe;if(se&&(pe=ce&&ce.onVnodeBeforeUnmount)&&Mn(pe,z,A),ke&6)Be(A.component,Y,le);else{if(ke&128){A.suspense.unmount(Y,le);return}q&&es(A,null,z,"beforeUnmount"),ke&64?A.type.remove(A,z,Y,Dt,le):ee&&!ee.hasOnce&&(j!==et||Ce>0&&Ce&64)?me(ee,z,Y,!1,!0):(j===et&&Ce&384||!te&&ke&16)&&me(de,z,Y),le&&F(A)}const Se=Le!=null&&Fe==null;(se&&(pe=ce&&ce.onVnodeUnmounted)||q||Se)&&Yt(()=>{pe&&Mn(pe,z,A),q&&es(A,null,z,"unmounted"),Se&&(A.el=null)},Y)},F=A=>{const{type:z,el:Y,anchor:le,transition:te}=A;if(z===et){Oe(Y,le);return}if(z===io){S(A),te&&!te.persisted&&te.afterLeave&&te.afterLeave();return}const j=()=>{s(Y),te&&!te.persisted&&te.afterLeave&&te.afterLeave()};if(A.shapeFlag&1&&te&&!te.persisted){const{leave:ce,delayLeave:ue}=te,de=()=>ce(Y,j);ue?ue(A.el,j,de):de()}else j()},Oe=(A,z)=>{let Y;for(;A!==z;)Y=f(A),s(A),A=Y;s(z)},Be=(A,z,Y)=>{const{bum:le,scope:te,job:j,subTree:ce,um:ue,m:de,a:ee}=A;nm(de),nm(ee),le&&ll(le),te.stop(),j?(j.flags|=8,Ie(ce,A,z,Y)):A.vnode.el&&ce&&(ce.transition=A.vnode.transition,Ie(ce,A,z,Y)),ue&&Yt(ue,z),Yt(()=>{A.isUnmounted=!0},z)},me=(A,z,Y,le=!1,te=!1,j=0)=>{for(let ce=j;ce{if(A.shapeFlag&6)return qe(A.component.subTree);if(A.shapeFlag&128)return A.suspense.next();const z=f(A.anchor||A.el),Y=z&&z[J3];return Y?f(Y):z};let at=!1;const _t=(A,z,Y)=>{let le;A==null?z._vnode&&(Ie(z._vnode,null,null,!0),le=z._vnode.component):E(z._vnode||null,A,z,null,null,null,Y),z._vnode=A,at||(at=!0,Hd(le),G3(),at=!1)},Dt={p:E,um:Ie,m:De,r:F,mt:M,mc:X,pc:fe,pbc:D,n:qe,o:e};return{render:_t,hydrate:void 0,createApp:NE(_t)}}function hl({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ts({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function qE(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Fc(e,t,n=!1){const u=e.children,s=t.children;if(Te(u)&&Te(s))for(let i=0;i>1,e[n[o]]0&&(t[u]=n[i-1]),n[i]=u)}}for(i=n.length,r=n[i-1];i-- >0;)n[i]=r,r=t[r];return n}function kf(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:kf(t)}function nm(e){if(e)for(let t=0;te.__isSuspense;function GE(e,t){t&&t.pendingBranch?Te(e)?t.effects.push(...e):t.effects.push(e):K3(e)}const et=Symbol.for("v-fgt"),Dr=Symbol.for("v-txt"),Pt=Symbol.for("v-cmt"),io=Symbol.for("v-stc"),wu=[];let cn=null;function _(e=!1){wu.push(cn=e?null:[])}function Sc(){wu.pop(),cn=wu[wu.length-1]||null}let ar=1;function _o(e,t=!1){ar+=e,e<0&&cn&&t&&(cn.hasOnce=!0)}function Ff(e){return e.dynamicChildren=ar>0?cn||ms:null,Sc(),ar>0&&cn&&cn.push(e),e}function W(e,t,n,u,s,i){return Ff(Z(e,t,n,u,s,i,!0))}function we(e,t,n,u,s){return Ff(Ee(e,t,n,u,s,!0))}function lr(e){return e?e.__v_isVNode===!0:!1}function ls(e,t){return e.type===t.type&&e.key===t.key}const Sf=({key:e})=>e??null,ro=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?mt(e)||pt(e)||je(e)?{i:Ot,r:e,k:t,f:!!n}:e:null);function Z(e,t=null,n=null,u=0,s=null,i=e===et?0:1,r=!1,o=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Sf(t),ref:t&&ro(t),scopeId:wa,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:i,patchFlag:u,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ot};return o?(No(a,n),i&128&&e.normalize(a)):n&&(a.shapeFlag|=mt(n)?8:16),ar>0&&!r&&cn&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&cn.push(a),a}const Ee=YE;function YE(e,t=null,n=null,u=0,s=null,i=!1){if((!e||e===af)&&(e=Pt),lr(e)){const o=Ku(e,t,!0);return n&&No(o,n),ar>0&&!i&&cn&&(o.shapeFlag&6?cn[cn.indexOf(e)]=o:cn.push(o)),o.patchFlag=-2,o}if(uC(e)&&(e=e.__vccOpts),t){t=an(t);let{class:o,style:a}=t;o&&!mt(o)&&(t.class=ze(o)),nt(a)&&(ya(a)&&!Te(a)&&(a=kt({},a)),t.style=zn(a))}const r=mt(e)?1:Df(e)?128:ka(e)?64:nt(e)?4:je(e)?2:0;return Z(e,t,n,u,s,r,i,!0)}function an(e){return e?ya(e)||Cf(e)?kt({},e):e:null}function Ku(e,t,n=!1,u=!1){const{props:s,ref:i,patchFlag:r,children:o,transition:a}=e,c=t?Ze(s||{},t):s,l={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Sf(c),ref:t&&t.ref?n&&i?Te(i)?i.concat(ro(t)):[i,ro(t)]:ro(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==et?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ku(e.ssContent),ssFallback:e.ssFallback&&Ku(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return a&&u&&or(l,a.clone(l)),l}function We(e=" ",t=0){return Ee(Dr,null,e,t)}function ye(e="",t=!1){return t?(_(),we(Pt,null,e)):Ee(Pt,null,e)}function Kn(e){return e==null||typeof e=="boolean"?Ee(Pt):Te(e)?Ee(et,null,e.slice()):lr(e)?mu(e):Ee(Dr,null,String(e))}function mu(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ku(e)}function No(e,t){let n=0;const{shapeFlag:u}=e;if(t==null)t=null;else if(Te(t))n=16;else if(typeof t=="object")if(u&65){const s=t.default;s&&(s._c&&(s._d=!1),No(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Cf(t)?t._ctx=Ot:s===3&&Ot&&(Ot.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(je(t)){if(u&65){No(e,{default:t});return}t={default:t,_ctx:Ot},n=32}else t=String(t),u&64?(n=16,t=[We(t)]):n=8;e.children=t,e.shapeFlag|=n}function Ze(...e){const t={};for(let n=0;nHt||Ot;let To,cr;{const e=Co(),t=(n,u)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(u),i=>{s.length>1?s.forEach(r=>r(i)):s[0](i)}};To=t("__VUE_INSTANCE_SETTERS__",n=>Ht=n),cr=t("__VUE_SSR_SETTERS__",n=>dr=n)}const Fr=e=>{const t=Ht;return To(e),e.scope.on(),()=>{e.scope.off(),To(t)}},um=()=>{Ht&&Ht.scope.off(),To(null)};function _f(e){return e.vnode.shapeFlag&4}let dr=!1;function QE(e,t=!1,n=!1){t&&cr(t);const{props:u,children:s}=e.vnode,i=_f(e);RE(e,u,i,t),VE(e,s,n||t);const r=i?eC(e,t):void 0;return t&&cr(!1),r}function eC(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,bE);const{setup:u}=n;if(u){bu();const s=e.setupContext=u.length>1?Tf(e):null,i=Fr(e),r=Ar(u,e,0,[e.props,s]),o=h3(r);if(Bu(),i(),(o||e.sp)&&!ei(e)&&uf(e),o){if(r.then(um,um),t)return r.then(a=>{cr(!0);try{sm(e,a,t)}finally{cr(!1)}}).catch(a=>{xa(a,e,0)});e.asyncDep=r}else sm(e,r)}else Nf(e)}function sm(e,t,n){je(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:nt(t)&&(e.setupState=U3(t)),Nf(e)}function Nf(e,t,n){const u=e.type;e.render||(e.render=u.render||kn);{const s=Fr(e);bu();try{kE(e)}finally{Bu(),s()}}}const tC={get(e,t){return Ut(e,"get",""),e[t]}};function Tf(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,tC),slots:e.slots,emit:e.emit,expose:t}}function Sa(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(U3(yc(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Hi)return Hi[n](e)},has(t,n){return n in t||n in Hi}})):e.proxy}function nC(e,t=!0){return je(e)?e.displayName||e.name:e.name||t&&e.__name}function uC(e){return je(e)&&"__vccOpts"in e}const ne=(e,t)=>K1(e,t,dr);function Ke(e,t,n){try{_o(-1);const u=arguments.length;return u===2?nt(t)&&!Te(t)?lr(t)?Ee(e,null,[t]):Ee(e,t):Ee(e,null,t):(u>3?n=Array.prototype.slice.call(arguments,2):u===3&&lr(n)&&(n=[n]),Ee(e,t,n))}finally{_o(1)}}const sC="3.5.43",im=kn;let B0;const rm=typeof window<"u"&&window.trustedTypes;if(rm)try{B0=rm.createPolicy("vue",{createHTML:e=>e})}catch{}const zf=B0?e=>B0.createHTML(e):e=>e,iC="http://www.w3.org/2000/svg",rC="http://www.w3.org/1998/Math/MathML",cu=typeof document<"u"?document:null,om=cu&&cu.createElement("template"),oC={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,u)=>{const s=t==="svg"?cu.createElementNS(iC,e):t==="mathml"?cu.createElementNS(rC,e):n?cu.createElement(e,{is:n}):cu.createElement(e);return e==="select"&&u&&u.multiple!=null&&s.setAttribute("multiple",u.multiple),s},createText:e=>cu.createTextNode(e),createComment:e=>cu.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>cu.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,u,s,i){const r=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{om.innerHTML=zf(u==="svg"?`${e}`:u==="mathml"?`${e}`:e);const o=om.content;if(u==="svg"||u==="mathml"){const a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}t.insertBefore(o,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Tu="transition",wi="animation",mr=Symbol("_vtc"),Pf={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},aC=kt({},X3,Pf),lC=e=>(e.displayName="Transition",e.props=aC,e),Hs=lC((e,{slots:t})=>Ke(mE,cC(e),t)),ns=(e,t=[])=>{Te(e)?e.forEach(n=>n(...t)):e&&e(...t)},am=e=>e?Te(e)?e.some(t=>t.length>1):e.length>1:!1;function cC(e){const t={};for(const B in e)B in Pf||(t[B]=e[B]);if(e.css===!1)return t;const{name:n="v",type:u,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:c=r,appearToClass:l=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:g=`${n}-leave-to`}=e,h=dC(s),E=h&&h[0],b=h&&h[1],{onBeforeEnter:C,onEnter:x,onEnterCancelled:k,onLeave:S,onLeaveCancelled:H,onBeforeAppear:T=C,onAppear:U=x,onAppearCancelled:X=k}=t,K=(B,R,M,$)=>{B._enterCancelled=$,us(B,R?l:o),us(B,R?c:r),M&&M()},D=(B,R)=>{B._isLeaving=!1,us(B,d),us(B,g),us(B,f),R&&R()},O=B=>(R,M)=>{const $=B?U:x,Q=()=>K(R,B,M);ns($,[R,Q]),lm(()=>{us(R,B?a:i),iu(R,B?l:o),am($)||cm(R,u,E,Q)})};return kt(t,{onBeforeEnter(B){ns(C,[B]),iu(B,i),iu(B,r)},onBeforeAppear(B){ns(T,[B]),iu(B,a),iu(B,c)},onEnter:O(!1),onAppear:O(!0),onLeave(B,R){B._isLeaving=!0;const M=()=>D(B,R);iu(B,d),B._enterCancelled?(iu(B,f),gm(B)):(gm(B),iu(B,f)),lm(()=>{B._isLeaving&&(us(B,d),iu(B,g),am(S)||cm(B,u,b,M))}),ns(S,[B,M])},onEnterCancelled(B){K(B,!1,void 0,!0),ns(k,[B])},onAppearCancelled(B){K(B,!0,void 0,!0),ns(X,[B])},onLeaveCancelled(B){D(B),ns(H,[B])}})}function dC(e){if(e==null)return null;if(nt(e))return[vl(e.enter),vl(e.leave)];{const t=vl(e);return[t,t]}}function vl(e){return a1(e)}function iu(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[mr]||(e[mr]=new Set)).add(t)}function us(e,t){t.split(/\s+/).forEach(u=>u&&e.classList.remove(u));const n=e[mr];n&&(n.delete(t),n.size||(e[mr]=void 0))}function lm(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let mC=0;function cm(e,t,n,u){const s=e._endId=++mC,i=()=>{s===e._endId&&u()};if(n!=null)return setTimeout(i,n);const{type:r,timeout:o,propCount:a}=gC(e,t);if(!r)return u();const c=r+"end";let l=0;const d=()=>{e.removeEventListener(c,f),i()},f=g=>{g.target===e&&++l>=a&&d()};setTimeout(()=>{l(n[h]||"").split(", "),s=u(`${Tu}Delay`),i=u(`${Tu}Duration`),r=dm(s,i),o=u(`${wi}Delay`),a=u(`${wi}Duration`),c=dm(o,a);let l=null,d=0,f=0;t===Tu?r>0&&(l=Tu,d=r,f=i.length):t===wi?c>0&&(l=wi,d=c,f=a.length):(d=Math.max(r,c),l=d>0?r>c?Tu:wi:null,f=l?l===Tu?i.length:a.length:0);const g=l===Tu&&/\b(?:transform|all)(?:,|$)/.test(u(`${Tu}Property`).toString());return{type:l,timeout:d,propCount:f,hasTransform:g}}function dm(e,t){for(;e.lengthmm(n)+mm(e[u])))}function mm(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function gm(e){return(e?e.ownerDocument:document).body.offsetHeight}function fC(e,t,n){const u=e[mr];u&&(t=(t?[t,...u]:[...u]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const zo=Symbol("_vod"),If=Symbol("_vsh"),gs={name:"show",beforeMount(e,{value:t},{transition:n}){e[zo]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):bi(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:u}){!t!=!n&&(u?t?(u.beforeEnter(e),bi(e,!0),u.enter(e)):u.leave(e,()=>{bi(e,!1)}):bi(e,t))},beforeUnmount(e,{value:t}){bi(e,t)}};function bi(e,t){e.style.display=t?e[zo]:"none",e[If]=!t}const Lf=Symbol("");function _a(e){const t=Ln();if(!t)return;const n=t.ut=(s=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(i=>Po(i,s))},u=()=>{const s=e(t.proxy);t.ce?Po(t.ce,s):k0(t.subTree,s),n(s)};rf(()=>{K3(u)}),un(()=>{qt(u,kn,{flush:"post"});const s=new MutationObserver(u);s.observe(t.subTree.el.parentNode,{childList:!0}),Sn(()=>s.disconnect())})}function k0(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{k0(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Po(e.el,t);else if(e.type===et)e.children.forEach(n=>k0(n,t));else if(e.type===io){let{el:n,anchor:u}=e;for(;n&&(Po(n,t),n!==u);)n=n.nextSibling}}function Po(e,t){if(e.nodeType===1){const n=e.style;let u="";for(const s in t){const i=E1(t[s]);n.setProperty(`--${s}`,i),u+=`--${s}: ${i};`}n[Lf]=u}}const pC=/(?:^|;)\s*display\s*:/;function hC(e,t,n){const u=e.style,s=mt(n);let i=!1;if(n&&!s){if(t)if(mt(t))for(const r of t.split(";")){const o=r.slice(0,r.indexOf(":")).trim();n[o]==null&&Ri(u,o,"")}else for(const r in t)n[r]==null&&Ri(u,r,"");for(const r in n){r==="display"&&(i=!0);const o=n[r];o!=null?EC(e,r,!mt(t)&&t?t[r]:void 0,o)||Ri(u,r,o):Ri(u,r,"")}}else if(s){if(t!==n){const r=u[Lf];r&&(n+=";"+r),u.cssText=n,i=pC.test(n)}}else t&&e.removeAttribute("style");zo in e&&(e[zo]=i?u.display:"",e[If]&&(u.display="none"))}const qr=/\s*!important$/;function Ri(e,t,n){if(Te(n))n.forEach(u=>Ri(e,t,u));else if(n==null&&(n=""),t.startsWith("--"))qr.test(n)?e.setProperty(t,n.replace(qr,""),"important"):e.setProperty(t,n);else{const u=vC(e,t);qr.test(n)?e.setProperty(Du(u),n.replace(qr,""),"important"):e[u]=n}}const fm=["Webkit","Moz","ms"],El={};function vC(e,t){const n=El[t];if(n)return n;let u=Wt(t);if(u!=="filter"&&u in e)return El[t]=u;u=fa(u);for(let s=0;sCl||(kC.then(()=>Cl=0),Cl=Date.now());function DC(e,t){const n=u=>{if(!u._vts)u._vts=Date.now();else if(u._vts<=n.attached)return;const s=n.value;if(Te(s)){const i=u.stopImmediatePropagation;u.stopImmediatePropagation=()=>{i.call(u),u._stopped=!0};const r=s.slice(),o=[u];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,FC=(e,t,n,u,s,i)=>{const r=s==="svg";t==="class"?fC(e,u,r):t==="style"?hC(e,n,u):ca(t)?da(t)||xC(e,t,n,u,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):SC(e,t,u,r))?(vm(e,t,u),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&hm(e,t,u,r,i,t!=="value")):e._isVueCE&&(_C(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!mt(u)))?vm(e,Wt(t),u,i,t):(t==="true-value"?e._trueValue=u:t==="false-value"&&(e._falseValue=u),hm(e,t,u,r))};function SC(e,t,n,u){if(u)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cm(t)&&je(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Cm(t)&&mt(n)?!1:t in e}function _C(e,t){const n=e._def.props;if(!n)return!1;const u=Wt(t);return Array.isArray(n)?n.some(s=>Wt(s)===u):Object.keys(n).some(s=>Wt(s)===u)}function NC(e="$style"){{const t=Ln();if(!t)return Ge;const n=t.type.__cssModules;return n&&n[e]||Ge}}const TC=["ctrl","shift","alt","meta"],zC={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>TC.some(n=>e[`${n}Key`]&&!t.includes(n))},gn=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),u=t.join(".");return n[u]||(n[u]=((s,...i)=>{for(let r=0;r{const n=e._withKeys||(e._withKeys={}),u=t.join(".");return n[u]||(n[u]=(s=>{if(!("key"in s))return;const i=Du(s.key);if(t.some(r=>r===i||PC[r]===i))return e(s)}))},IC=kt({patchProp:FC},oC);let ym;function LC(){return ym||(ym=HE(IC))}const Io=((...e)=>{const t=LC().createApp(...e),{mount:n}=t;return t.mount=u=>{const s=RC(u);if(!s)return;const i=t._component;!je(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const r=n(s,!1,OC(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),r},t});function OC(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function RC(e){return mt(e)?document.querySelector(e):e}var Of={},oo={};oo.byteLength=$C,oo.toByteArray=UC,oo.fromByteArray=qC;for(var Gn=[],xn=[],jC=typeof Uint8Array<"u"?Uint8Array:Array,yl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ls=0,MC=yl.length;Ls0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var u=n===t?0:4-n%4;return[n,u]}function $C(e){var t=Rf(e),n=t[0],u=t[1];return(n+u)*3/4-u}function VC(e,t,n){return(t+n)*3/4-n}function UC(e){var t,n=Rf(e),u=n[0],s=n[1],i=new jC(VC(e,u,s)),r=0,o=s>0?u-4:u,a;for(a=0;a>16&255,i[r++]=t>>8&255,i[r++]=t&255;return s===2&&(t=xn[e.charCodeAt(a)]<<2|xn[e.charCodeAt(a+1)]>>4,i[r++]=t&255),s===1&&(t=xn[e.charCodeAt(a)]<<10|xn[e.charCodeAt(a+1)]<<4|xn[e.charCodeAt(a+2)]>>2,i[r++]=t>>8&255,i[r++]=t&255),i}function HC(e){return Gn[e>>18&63]+Gn[e>>12&63]+Gn[e>>6&63]+Gn[e&63]}function WC(e,t,n){for(var u,s=[],i=t;io?o:r+i));return u===1?(t=e[n-1],s.push(Gn[t>>2]+Gn[t<<4&63]+"==")):u===2&&(t=(e[n-2]<<8)+e[n-1],s.push(Gn[t>>10]+Gn[t>>4&63]+Gn[t<<2&63]+"=")),s.join("")}var A0={};A0.read=function(e,t,n,u,s){var i,r,o=s*8-u-1,a=(1<>1,l=-7,d=n?s-1:0,f=n?-1:1,g=e[t+d];for(d+=f,i=g&(1<<-l)-1,g>>=-l,l+=o;l>0;i=i*256+e[t+d],d+=f,l-=8);for(r=i&(1<<-l)-1,i>>=-l,l+=u;l>0;r=r*256+e[t+d],d+=f,l-=8);if(i===0)i=1-c;else{if(i===a)return r?NaN:(g?-1:1)*(1/0);r=r+Math.pow(2,u),i=i-c}return(g?-1:1)*r*Math.pow(2,i-u)},A0.write=function(e,t,n,u,s,i){var r,o,a,c=i*8-s-1,l=(1<>1,f=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=u?0:i-1,h=u?1:-1,E=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,r=l):(r=Math.floor(Math.log(t)/Math.LN2),t*(a=Math.pow(2,-r))<1&&(r--,a*=2),r+d>=1?t+=f/a:t+=f*Math.pow(2,1-d),t*a>=2&&(r++,a/=2),r+d>=l?(o=0,r=l):r+d>=1?(o=(t*a-1)*Math.pow(2,s),r=r+d):(o=t*Math.pow(2,d-1)*Math.pow(2,s),r=0));s>=8;e[n+g]=o&255,g+=h,o/=256,s-=8);for(r=r<0;e[n+g]=r&255,g+=h,r/=256,c-=8);e[n+g-h]|=E*128};(function(e){const t=oo,n=A0,u=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=l,e.SlowBuffer=H,e.INSPECT_MAX_BYTES=50;const s=2147483647;e.kMaxLength=s;const{Uint8Array:i,ArrayBuffer:r,SharedArrayBuffer:o}=globalThis;l.TYPED_ARRAY_SUPPORT=a(),!l.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 a(){try{const m=new i(1),p={foo:function(){return 42}};return Object.setPrototypeOf(p,i.prototype),Object.setPrototypeOf(m,p),m.foo()===42}catch{return!1}}Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}});function c(m){if(m>s)throw new RangeError('The value "'+m+'" is invalid for option "size"');const p=new i(m);return Object.setPrototypeOf(p,l.prototype),p}function l(m,p,v){if(typeof m=="number"){if(typeof p=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return h(m)}return d(m,p,v)}l.poolSize=8192;function d(m,p,v){if(typeof m=="string")return E(m,p);if(r.isView(m))return C(m);if(m==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m);if(Le(m,r)||m&&Le(m.buffer,r)||typeof o<"u"&&(Le(m,o)||m&&Le(m.buffer,o)))return x(m,p,v);if(typeof m=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const N=m.valueOf&&m.valueOf();if(N!=null&&N!==m)return l.from(N,p,v);const L=k(m);if(L)return L;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof m[Symbol.toPrimitive]=="function")return l.from(m[Symbol.toPrimitive]("string"),p,v);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m)}l.from=function(m,p,v){return d(m,p,v)},Object.setPrototypeOf(l.prototype,i.prototype),Object.setPrototypeOf(l,i);function f(m){if(typeof m!="number")throw new TypeError('"size" argument must be of type number');if(m<0)throw new RangeError('The value "'+m+'" is invalid for option "size"')}function g(m,p,v){return f(m),m<=0?c(m):p!==void 0?typeof v=="string"?c(m).fill(p,v):c(m).fill(p):c(m)}l.alloc=function(m,p,v){return g(m,p,v)};function h(m){return f(m),c(m<0?0:S(m)|0)}l.allocUnsafe=function(m){return h(m)},l.allocUnsafeSlow=function(m){return h(m)};function E(m,p){if((typeof p!="string"||p==="")&&(p="utf8"),!l.isEncoding(p))throw new TypeError("Unknown encoding: "+p);const v=T(m,p)|0;let N=c(v);const L=N.write(m,p);return L!==v&&(N=N.slice(0,L)),N}function b(m){const p=m.length<0?0:S(m.length)|0,v=c(p);for(let N=0;N=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return m|0}function H(m){return+m!=m&&(m=0),l.alloc(+m)}l.isBuffer=function(m){return m!=null&&m._isBuffer===!0&&m!==l.prototype},l.compare=function(m,p){if(Le(m,i)&&(m=l.from(m,m.offset,m.byteLength)),Le(p,i)&&(p=l.from(p,p.offset,p.byteLength)),!l.isBuffer(m)||!l.isBuffer(p))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(m===p)return 0;let v=m.length,N=p.length;for(let L=0,G=Math.min(v,N);LN.length?(l.isBuffer(G)||(G=l.from(G)),G.copy(N,L)):i.prototype.set.call(N,G,L);else if(l.isBuffer(G))G.copy(N,L);else throw new TypeError('"list" argument must be an Array of Buffers');L+=G.length}return N};function T(m,p){if(l.isBuffer(m))return m.length;if(r.isView(m)||Le(m,r))return m.byteLength;if(typeof m!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof m);const v=m.length,N=arguments.length>2&&arguments[2]===!0;if(!N&&v===0)return 0;let L=!1;for(;;)switch(p){case"ascii":case"latin1":case"binary":return v;case"utf8":case"utf-8":return ee(m).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v*2;case"hex":return v>>>1;case"base64":return Ae(m).length;default:if(L)return N?-1:ee(m).length;p=(""+p).toLowerCase(),L=!0}}l.byteLength=T;function U(m,p,v){let N=!1;if((p===void 0||p<0)&&(p=0),p>this.length||((v===void 0||v>this.length)&&(v=this.length),v<=0)||(v>>>=0,p>>>=0,v<=p))return"";for(m||(m="utf8");;)switch(m){case"hex":return Ie(this,p,v);case"utf8":case"utf-8":return oe(this,p,v);case"ascii":return w(this,p,v);case"latin1":case"binary":return De(this,p,v);case"base64":return Q(this,p,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,p,v);default:if(N)throw new TypeError("Unknown encoding: "+m);m=(m+"").toLowerCase(),N=!0}}l.prototype._isBuffer=!0;function X(m,p,v){const N=m[p];m[p]=m[v],m[v]=N}l.prototype.swap16=function(){const m=this.length;if(m%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let p=0;pp&&(m+=" ... "),""},u&&(l.prototype[u]=l.prototype.inspect),l.prototype.compare=function(m,p,v,N,L){if(Le(m,i)&&(m=l.from(m,m.offset,m.byteLength)),!l.isBuffer(m))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof m);if(p===void 0&&(p=0),v===void 0&&(v=m?m.length:0),N===void 0&&(N=0),L===void 0&&(L=this.length),p<0||v>m.length||N<0||L>this.length)throw new RangeError("out of range index");if(N>=L&&p>=v)return 0;if(N>=L)return-1;if(p>=v)return 1;if(p>>>=0,v>>>=0,N>>>=0,L>>>=0,this===m)return 0;let G=L-N,ae=v-p;const Ue=Math.min(G,ae),st=this.slice(N,L),ot=m.slice(p,v);for(let rt=0;rt2147483647?v=2147483647:v<-2147483648&&(v=-2147483648),v=+v,q(v)&&(v=L?0:m.length-1),v<0&&(v=m.length+v),v>=m.length){if(L)return-1;v=m.length-1}else if(v<0)if(L)v=0;else return-1;if(typeof p=="string"&&(p=l.from(p,N)),l.isBuffer(p))return p.length===0?-1:D(m,p,v,N,L);if(typeof p=="number")return p=p&255,typeof i.prototype.indexOf=="function"?L?i.prototype.indexOf.call(m,p,v):i.prototype.lastIndexOf.call(m,p,v):D(m,[p],v,N,L);throw new TypeError("val must be string, number or Buffer")}function D(m,p,v,N,L){let G=1,ae=m.length,Ue=p.length;if(N!==void 0&&(N=String(N).toLowerCase(),N==="ucs2"||N==="ucs-2"||N==="utf16le"||N==="utf-16le")){if(m.length<2||p.length<2)return-1;G=2,ae/=2,Ue/=2,v/=2}function st(rt,ft){return G===1?rt[ft]:rt.readUInt16BE(ft*G)}let ot;if(L){let rt=-1;for(ot=v;otae&&(v=ae-Ue),ot=v;ot>=0;ot--){let rt=!0;for(let ft=0;ftL&&(N=L)):N=L;const G=p.length;N>G/2&&(N=G/2);let ae;for(ae=0;ae>>0,isFinite(v)?(v=v>>>0,N===void 0&&(N="utf8")):(N=v,v=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const L=this.length-p;if((v===void 0||v>L)&&(v=L),m.length>0&&(v<0||p<0)||p>this.length)throw new RangeError("Attempt to write outside buffer bounds");N||(N="utf8");let G=!1;for(;;)switch(N){case"hex":return O(this,m,p,v);case"utf8":case"utf-8":return B(this,m,p,v);case"ascii":case"latin1":case"binary":return R(this,m,p,v);case"base64":return M(this,m,p,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,m,p,v);default:if(G)throw new TypeError("Unknown encoding: "+N);N=(""+N).toLowerCase(),G=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Q(m,p,v){return p===0&&v===m.length?t.fromByteArray(m):t.fromByteArray(m.slice(p,v))}function oe(m,p,v){v=Math.min(m.length,v);const N=[];let L=p;for(;L239?4:G>223?3:G>191?2:1;if(L+Ue<=v){let st,ot,rt,ft;switch(Ue){case 1:G<128&&(ae=G);break;case 2:st=m[L+1],(st&192)===128&&(ft=(G&31)<<6|st&63,ft>127&&(ae=ft));break;case 3:st=m[L+1],ot=m[L+2],(st&192)===128&&(ot&192)===128&&(ft=(G&15)<<12|(st&63)<<6|ot&63,ft>2047&&(ft<55296||ft>57343)&&(ae=ft));break;case 4:st=m[L+1],ot=m[L+2],rt=m[L+3],(st&192)===128&&(ot&192)===128&&(rt&192)===128&&(ft=(G&15)<<18|(st&63)<<12|(ot&63)<<6|rt&63,ft>65535&&ft<1114112&&(ae=ft))}}ae===null?(ae=65533,Ue=1):ae>65535&&(ae-=65536,N.push(ae>>>10&1023|55296),ae=56320|ae&1023),N.push(ae),L+=Ue}return be(N)}const fe=4096;function be(m){const p=m.length;if(p<=fe)return String.fromCharCode.apply(String,m);let v="",N=0;for(;NN)&&(v=N);let L="";for(let G=p;Gv&&(m=v),p<0?(p+=v,p<0&&(p=0)):p>v&&(p=v),pv)throw new RangeError("Trying to access beyond buffer length")}l.prototype.readUintLE=l.prototype.readUIntLE=function(m,p,v){m=m>>>0,p=p>>>0,v||Oe(m,p,this.length);let N=this[m],L=1,G=0;for(;++G>>0,p=p>>>0,v||Oe(m,p,this.length);let N=this[m+--p],L=1;for(;p>0&&(L*=256);)N+=this[m+--p]*L;return N},l.prototype.readUint8=l.prototype.readUInt8=function(m,p){return m=m>>>0,p||Oe(m,1,this.length),this[m]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(m,p){return m=m>>>0,p||Oe(m,2,this.length),this[m]|this[m+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(m,p){return m=m>>>0,p||Oe(m,2,this.length),this[m]<<8|this[m+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(m,p){return m=m>>>0,p||Oe(m,4,this.length),(this[m]|this[m+1]<<8|this[m+2]<<16)+this[m+3]*16777216},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(m,p){return m=m>>>0,p||Oe(m,4,this.length),this[m]*16777216+(this[m+1]<<16|this[m+2]<<8|this[m+3])},l.prototype.readBigUInt64LE=pe(function(m){m=m>>>0,j(m,"offset");const p=this[m],v=this[m+7];(p===void 0||v===void 0)&&ce(m,this.length-8);const N=p+this[++m]*2**8+this[++m]*2**16+this[++m]*2**24,L=this[++m]+this[++m]*2**8+this[++m]*2**16+v*2**24;return BigInt(N)+(BigInt(L)<>>0,j(m,"offset");const p=this[m],v=this[m+7];(p===void 0||v===void 0)&&ce(m,this.length-8);const N=p*2**24+this[++m]*2**16+this[++m]*2**8+this[++m],L=this[++m]*2**24+this[++m]*2**16+this[++m]*2**8+v;return(BigInt(N)<>>0,p=p>>>0,v||Oe(m,p,this.length);let N=this[m],L=1,G=0;for(;++G=L&&(N-=Math.pow(2,8*p)),N},l.prototype.readIntBE=function(m,p,v){m=m>>>0,p=p>>>0,v||Oe(m,p,this.length);let N=p,L=1,G=this[m+--N];for(;N>0&&(L*=256);)G+=this[m+--N]*L;return L*=128,G>=L&&(G-=Math.pow(2,8*p)),G},l.prototype.readInt8=function(m,p){return m=m>>>0,p||Oe(m,1,this.length),this[m]&128?(255-this[m]+1)*-1:this[m]},l.prototype.readInt16LE=function(m,p){m=m>>>0,p||Oe(m,2,this.length);const v=this[m]|this[m+1]<<8;return v&32768?v|4294901760:v},l.prototype.readInt16BE=function(m,p){m=m>>>0,p||Oe(m,2,this.length);const v=this[m+1]|this[m]<<8;return v&32768?v|4294901760:v},l.prototype.readInt32LE=function(m,p){return m=m>>>0,p||Oe(m,4,this.length),this[m]|this[m+1]<<8|this[m+2]<<16|this[m+3]<<24},l.prototype.readInt32BE=function(m,p){return m=m>>>0,p||Oe(m,4,this.length),this[m]<<24|this[m+1]<<16|this[m+2]<<8|this[m+3]},l.prototype.readBigInt64LE=pe(function(m){m=m>>>0,j(m,"offset");const p=this[m],v=this[m+7];(p===void 0||v===void 0)&&ce(m,this.length-8);const N=this[m+4]+this[m+5]*2**8+this[m+6]*2**16+(v<<24);return(BigInt(N)<>>0,j(m,"offset");const p=this[m],v=this[m+7];(p===void 0||v===void 0)&&ce(m,this.length-8);const N=(p<<24)+this[++m]*2**16+this[++m]*2**8+this[++m];return(BigInt(N)<>>0,p||Oe(m,4,this.length),n.read(this,m,!0,23,4)},l.prototype.readFloatBE=function(m,p){return m=m>>>0,p||Oe(m,4,this.length),n.read(this,m,!1,23,4)},l.prototype.readDoubleLE=function(m,p){return m=m>>>0,p||Oe(m,8,this.length),n.read(this,m,!0,52,8)},l.prototype.readDoubleBE=function(m,p){return m=m>>>0,p||Oe(m,8,this.length),n.read(this,m,!1,52,8)};function Be(m,p,v,N,L,G){if(!l.isBuffer(m))throw new TypeError('"buffer" argument must be a Buffer instance');if(p>L||pm.length)throw new RangeError("Index out of range")}l.prototype.writeUintLE=l.prototype.writeUIntLE=function(m,p,v,N){if(m=+m,p=p>>>0,v=v>>>0,!N){const ae=Math.pow(2,8*v)-1;Be(this,m,p,v,ae,0)}let L=1,G=0;for(this[p]=m&255;++G>>0,v=v>>>0,!N){const ae=Math.pow(2,8*v)-1;Be(this,m,p,v,ae,0)}let L=v-1,G=1;for(this[p+L]=m&255;--L>=0&&(G*=256);)this[p+L]=m/G&255;return p+v},l.prototype.writeUint8=l.prototype.writeUInt8=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,1,255,0),this[p]=m&255,p+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,2,65535,0),this[p]=m&255,this[p+1]=m>>>8,p+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,2,65535,0),this[p]=m>>>8,this[p+1]=m&255,p+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,4,4294967295,0),this[p+3]=m>>>24,this[p+2]=m>>>16,this[p+1]=m>>>8,this[p]=m&255,p+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,4,4294967295,0),this[p]=m>>>24,this[p+1]=m>>>16,this[p+2]=m>>>8,this[p+3]=m&255,p+4};function me(m,p,v,N,L){te(p,N,L,m,v,7);let G=Number(p&BigInt(4294967295));m[v++]=G,G=G>>8,m[v++]=G,G=G>>8,m[v++]=G,G=G>>8,m[v++]=G;let ae=Number(p>>BigInt(32)&BigInt(4294967295));return m[v++]=ae,ae=ae>>8,m[v++]=ae,ae=ae>>8,m[v++]=ae,ae=ae>>8,m[v++]=ae,v}function qe(m,p,v,N,L){te(p,N,L,m,v,7);let G=Number(p&BigInt(4294967295));m[v+7]=G,G=G>>8,m[v+6]=G,G=G>>8,m[v+5]=G,G=G>>8,m[v+4]=G;let ae=Number(p>>BigInt(32)&BigInt(4294967295));return m[v+3]=ae,ae=ae>>8,m[v+2]=ae,ae=ae>>8,m[v+1]=ae,ae=ae>>8,m[v]=ae,v+8}l.prototype.writeBigUInt64LE=pe(function(m,p=0){return me(this,m,p,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeBigUInt64BE=pe(function(m,p=0){return qe(this,m,p,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeIntLE=function(m,p,v,N){if(m=+m,p=p>>>0,!N){const Ue=Math.pow(2,8*v-1);Be(this,m,p,v,Ue-1,-Ue)}let L=0,G=1,ae=0;for(this[p]=m&255;++L>0)-ae&255;return p+v},l.prototype.writeIntBE=function(m,p,v,N){if(m=+m,p=p>>>0,!N){const Ue=Math.pow(2,8*v-1);Be(this,m,p,v,Ue-1,-Ue)}let L=v-1,G=1,ae=0;for(this[p+L]=m&255;--L>=0&&(G*=256);)m<0&&ae===0&&this[p+L+1]!==0&&(ae=1),this[p+L]=(m/G>>0)-ae&255;return p+v},l.prototype.writeInt8=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,1,127,-128),m<0&&(m=255+m+1),this[p]=m&255,p+1},l.prototype.writeInt16LE=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,2,32767,-32768),this[p]=m&255,this[p+1]=m>>>8,p+2},l.prototype.writeInt16BE=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,2,32767,-32768),this[p]=m>>>8,this[p+1]=m&255,p+2},l.prototype.writeInt32LE=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,4,2147483647,-2147483648),this[p]=m&255,this[p+1]=m>>>8,this[p+2]=m>>>16,this[p+3]=m>>>24,p+4},l.prototype.writeInt32BE=function(m,p,v){return m=+m,p=p>>>0,v||Be(this,m,p,4,2147483647,-2147483648),m<0&&(m=4294967295+m+1),this[p]=m>>>24,this[p+1]=m>>>16,this[p+2]=m>>>8,this[p+3]=m&255,p+4},l.prototype.writeBigInt64LE=pe(function(m,p=0){return me(this,m,p,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),l.prototype.writeBigInt64BE=pe(function(m,p=0){return qe(this,m,p,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function at(m,p,v,N,L,G){if(v+N>m.length)throw new RangeError("Index out of range");if(v<0)throw new RangeError("Index out of range")}function _t(m,p,v,N,L){return p=+p,v=v>>>0,L||at(m,p,v,4),n.write(m,p,v,N,23,4),v+4}l.prototype.writeFloatLE=function(m,p,v){return _t(this,m,p,!0,v)},l.prototype.writeFloatBE=function(m,p,v){return _t(this,m,p,!1,v)};function Dt(m,p,v,N,L){return p=+p,v=v>>>0,L||at(m,p,v,8),n.write(m,p,v,N,52,8),v+8}l.prototype.writeDoubleLE=function(m,p,v){return Dt(this,m,p,!0,v)},l.prototype.writeDoubleBE=function(m,p,v){return Dt(this,m,p,!1,v)},l.prototype.copy=function(m,p,v,N){if(!l.isBuffer(m))throw new TypeError("argument should be a Buffer");if(v||(v=0),!N&&N!==0&&(N=this.length),p>=m.length&&(p=m.length),p||(p=0),N>0&&N=this.length)throw new RangeError("Index out of range");if(N<0)throw new RangeError("sourceEnd out of bounds");N>this.length&&(N=this.length),m.length-p>>0,v=v===void 0?this.length:v>>>0,m||(m=0);let L;if(typeof m=="number")for(L=p;L2**32?L=Y(String(v)):typeof v=="bigint"&&(L=String(v),(v>BigInt(2)**BigInt(32)||v<-(BigInt(2)**BigInt(32)))&&(L=Y(L)),L+="n"),N+=` It must be ${p}. Received ${L}`,N},RangeError);function Y(m){let p="",v=m.length;const N=m[0]==="-"?1:0;for(;v>=N+4;v-=3)p=`_${m.slice(v-3,v)}${p}`;return`${m.slice(0,v)}${p}`}function le(m,p,v){j(p,"offset"),(m[p]===void 0||m[p+v]===void 0)&&ce(p,m.length-(v+1))}function te(m,p,v,N,L,G){if(m>v||m= 0${ae} and < 2${ae} ** ${(G+1)*8}${ae}`:Ue=`>= -(2${ae} ** ${(G+1)*8-1}${ae}) and < 2 ** ${(G+1)*8-1}${ae}`,new A.ERR_OUT_OF_RANGE("value",Ue,m)}le(N,L,G)}function j(m,p){if(typeof m!="number")throw new A.ERR_INVALID_ARG_TYPE(p,"number",m)}function ce(m,p,v){throw Math.floor(m)!==m?(j(m,v),new A.ERR_OUT_OF_RANGE("offset","an integer",m)):p<0?new A.ERR_BUFFER_OUT_OF_BOUNDS:new A.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${p}`,m)}const ue=/[^+/0-9A-Za-z-_]/g;function de(m){if(m=m.split("=")[0],m=m.trim().replace(ue,""),m.length<2)return"";for(;m.length%4!==0;)m=m+"=";return m}function ee(m,p){p=p||1/0;let v;const N=m.length;let L=null;const G=[];for(let ae=0;ae55295&&v<57344){if(!L){if(v>56319){(p-=3)>-1&&G.push(239,191,189);continue}else if(ae+1===N){(p-=3)>-1&&G.push(239,191,189);continue}L=v;continue}if(v<56320){(p-=3)>-1&&G.push(239,191,189),L=v;continue}v=(L-55296<<10|v-56320)+65536}else L&&(p-=3)>-1&&G.push(239,191,189);if(L=null,v<128){if((p-=1)<0)break;G.push(v)}else if(v<2048){if((p-=2)<0)break;G.push(v>>6|192,v&63|128)}else if(v<65536){if((p-=3)<0)break;G.push(v>>12|224,v>>6&63|128,v&63|128)}else if(v<1114112){if((p-=4)<0)break;G.push(v>>18|240,v>>12&63|128,v>>6&63|128,v&63|128)}else throw new Error("Invalid code point")}return G}function ke(m){const p=[];for(let v=0;v>8,L=v%256,G.push(L),G.push(N);return G}function Ae(m){return t.toByteArray(de(m))}function Fe(m,p,v,N){let L;for(L=0;L=p.length||L>=m.length);++L)p[L+v]=m[L];return L}function Le(m,p){return m instanceof p||m!=null&&m.constructor!=null&&m.constructor.name!=null&&m.constructor.name===p.name}function q(m){return m!==m}const se=(function(){const m="0123456789abcdef",p=new Array(256);for(let v=0;v<16;++v){const N=v*16;for(let L=0;L<16;++L)p[N+L]=m[v]+m[L]}return p})();function pe(m){return typeof BigInt>"u"?Se:m}function Se(){throw new Error("BigInt not supported")}})(Of);const xm=Of.Buffer;let jf;const Na=e=>jf=e,Mf=Symbol();function D0(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Wi;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Wi||(Wi={}));function KC(){const e=B3(!0),t=e.run(()=>_e({}));let n=[],u=[];const s=yc({install(i){Na(s),s._a=i,i.provide(Mf,s),i.config.globalProperties.$pinia=s,u.forEach(r=>n.push(r)),u=[]},use(i){return this._a?n.push(i):u.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const $f=()=>{};function wm(e,t,n,u=$f){e.add(t);const s=()=>{e.delete(t)&&u()};return!n&&hc()&&k3(s),s}function Os(e,...t){e.forEach(n=>{n(...t)})}const GC=e=>e(),bm=Symbol(),xl=Symbol();function F0(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,u)=>e.set(u,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const u=t[n],s=e[n];D0(s)&&D0(u)&&e.hasOwnProperty(n)&&!pt(u)&&!Jn(u)?e[n]=F0(s,u):e[n]=u}return e}const YC=Symbol();function ZC(e){return!D0(e)||!Object.prototype.hasOwnProperty.call(e,YC)}const{assign:Lu}=Object;function JC(e){return!!(pt(e)&&e.effect)}function XC(e,t,n,u){const{state:s,actions:i,getters:r}=t,o=n.state.value[e];let a;function c(){o||(n.state.value[e]=s?s():{});const l=U1(n.state.value[e]);return Lu(l,i,Object.keys(r||{}).reduce((d,f)=>(d[f]=yc(ne(()=>{Na(n);const g=n._s.get(e);return r[f].call(g,g)})),d),{}))}return a=Vf(e,c,t,n,u,!0),a}function Vf(e,t,n={},u,s,i){let r;const o=Lu({actions:{}},n),a={deep:!0};let c,l,d=new Set,f=new Set,g;const h=u.state.value[e];!i&&!h&&(u.state.value[e]={});let E;function b(U){let X;c=l=!1,typeof U=="function"?(U(u.state.value[e]),X={type:Wi.patchFunction,storeId:e,events:g}):(F0(u.state.value[e],U),X={type:Wi.patchObject,payload:U,storeId:e,events:g});const K=E=Symbol();ku().then(()=>{E===K&&(c=!0)}),l=!0,Os(d,X,u.state.value[e])}const C=i?function(){const{state:U}=n,X=U?U():{};this.$patch(K=>{Lu(K,X)})}:$f;function x(){r.stop(),d.clear(),f.clear(),u._s.delete(e)}const k=(U,X="")=>{if(bm in U)return U[xl]=X,U;const K=function(){Na(u);const D=Array.from(arguments),O=new Set,B=new Set;function R(Q){O.add(Q)}function M(Q){B.add(Q)}Os(f,{args:D,name:K[xl],store:H,after:R,onError:M});let $;try{$=U.apply(this&&this.$id===e?this:H,D)}catch(Q){throw Os(B,Q),Q}return $ instanceof Promise?$.then(Q=>(Os(O,Q),Q)).catch(Q=>(Os(B,Q),Promise.reject(Q))):(Os(O,$),$)};return K[bm]=!0,K[xl]=X,K},S={_p:u,$id:e,$onAction:wm.bind(null,f),$patch:b,$reset:C,$subscribe(U,X={}){const K=wm(d,U,X.detached,()=>D()),D=r.run(()=>qt(()=>u.state.value[e],O=>{(X.flush==="sync"?l:c)&&U({storeId:e,type:Wi.direct,events:g},O)},Lu({},a,X)));return K},$dispose:x},H=xs(S);u._s.set(e,H);const T=(u._a&&u._a.runWithContext||GC)(()=>u._e.run(()=>(r=B3()).run(()=>t({action:k}))));for(const U in T){const X=T[U];if(pt(X)&&!JC(X)||Jn(X))i||(h&&ZC(X)&&(pt(X)?X.value=h[U]:F0(X,h[U])),u.state.value[e][U]=X);else if(typeof X=="function"){const K=k(X,U);T[U]=K,o.actions[U]=X}}return Lu(H,T),Lu(Qe(H),T),Object.defineProperty(H,"$state",{get:()=>u.state.value[e],set:U=>{b(X=>{Lu(X,U)})}}),u._p.forEach(U=>{Lu(H,r.run(()=>U({store:H,app:u._a,pinia:u,options:o})))}),h&&i&&n.hydrate&&n.hydrate(H.$state,h),c=!0,l=!0,H}function Uf(e,t,n){let u;const s=typeof t=="function";u=s?n:t;function i(r,o){const a=tE();return r=r||(a?jt(Mf,null):null),r&&Na(r),r=jf,r._s.has(e)||(s?Vf(e,t,u,r):XC(e,u,r)),r._s.get(e)}return i.$id=e,i}function Kr(e,t,n){const u={ocsVersion:2};Hf(u);const s=u.ocsVersion===1?1:2;return _0()+"/ocs/v"+s+".php"+S0(e)}function S0(e,t,n){const u={escape:!0},s=function(i,r){return r=r||{},i.replace(/{([^{}]*)}/g,function(o,a){const c=r[a];return u.escape?encodeURIComponent(typeof c=="string"||typeof c=="number"?c.toString():o):typeof c=="string"||typeof c=="number"?c.toString():o})};return e.charAt(0)!=="/"&&(e="/"+e),s(e,{})}function mi(e,t,n){const u={noRewrite:!1};Hf(u);const s=Ta();return!u.noRewrite&&typeof window<"u"&&window.OC?.config?.modRewriteWorking===!0?s+S0(e):s+"/index.php"+S0(e)}function QC(e,t){return t.includes(".")?Bm(e,"img",t):Bm(e,"img",`${t}.svg`)}function Bm(e,t,n){za();const u=window.OC?.coreApps?.includes(e)??!1,s=n.slice(-3)==="php";let i=Ta();return s&&!u?(i+=`/index.php/apps/${e}`,i+=`/${encodeURI(t)}`,n!=="index.php"&&(i+=`/${n}`)):!s&&!u?(i=ey(e),i+=`/${t}/`,i.at(-1)!=="/"&&(i+="/"),i+=n):(i+=`/${e}`,i+=`/${t}`,i+=`/${n}`),i}function _0(){return za(),window.location.protocol+"//"+window.location.host+Ta()}function Ta(){za();let e=window._oc_webroot;if(typeof e>"u"){e=location.pathname;const t=e.indexOf("/index.php/");if(t!==-1)e=e.slice(0,t);else{const n=e.indexOf("/",1);e=e.slice(0,n>0?n:void 0)}}return e}function ey(e){return za(),(window._oc_appswebroots??{})[e]??""}function za(){if(typeof window>"u")throw new Error("This function is only available in a DOM environment")}function Hf(e){if(typeof window>"u"&&!e?.baseURL)throw new Error("This function requires baseURL option to be provided in non-DOM environments")}function km(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,u=Array(t);n2?n-2:0),s=2;s1?t-1:0),u=1;u"u"?null:ht(BigInt.prototype.toString),Nm=typeof Symbol>"u"?null:ht(Symbol.prototype.toString),en=ht(Object.prototype.hasOwnProperty),Di=ht(Object.prototype.toString),Tt=ht(RegExp.prototype.test),ou=Yf(TypeError);function ht(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,u=new Array(n>1?n-1:0),s=1;s2&&arguments[2]!==void 0?arguments[2]:os;if(Am&&Am(e,null),!ti(t))return e;let u=t.length;for(;u--;){let s=t[u];if(typeof s=="string"){const i=n(s);i!==s&&(ry(t)||(t[u]=i),s=i)}e[s]=!0}return e}function gy(e){for(let t=0;t/g),xy=Mt(/\${[\w\W]*/g),wy=Mt(/^data-[\-\w.\u00B7-\uFFFF]+$/),by=Mt(/^aria-[\-\w]+$/),Lm=Mt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),By=Mt(/^(?:\w+script|data):/i),ky=Mt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ay=Mt(/^html$/i),Dy=Mt(/^[a-z][.\w]*(-[.\w]+)+$/i),Sl=Mt(/<[/\w!]/g),Om=Mt(/<[/\w]/g),Fy=Mt(/<\/no(script|embed|frames)/i),Rm=Mt(/\/>/i),wt={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Sy=St(Xe({},["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"])),_y=function(){return typeof window>"u"?null:window},Ny=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let n=null;const u="data-tt-policy-suffix";t&&t.hasAttribute(u)&&(n=t.getAttribute(u));const s="dompurify"+(n?"#"+n:"");try{return e.createPolicy(s,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},jm=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},zu=function(e,t,n,u){return en(e,t)&&ti(e[t])?Xe(u.base?on(u.base):{},e[t],u.transform):n},_l=function(e,t,n){const u=en(e,t)?e[t]:void 0;return u&&typeof u=="object"?on(u):n()};function Zf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_y();const t=y=>Zf(y);if(t.version="3.4.17",t.removed=[],!e||!e.document||e.document.nodeType!==wt.document||!e.Element)return t.isSupported=!1,t;let n=e.document;const u=n,s=u.currentScript;e.DocumentFragment;const i=e.HTMLTemplateElement,r=e.Node,o=e.Element,a=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;const c=e.DOMParser,l=e.trustedTypes,d=o.prototype,f=Cn(d,"cloneNode"),g=Cn(d,"remove"),h=Cn(d,"removeAttributeNode"),E=Cn(d,"nextSibling"),b=Cn(d,"childNodes"),C=Cn(d,"parentNode"),x=Cn(d,"shadowRoot"),k=Cn(d,"attributes"),S=r&&r.prototype?Cn(r.prototype,"nodeType"):null,H=r&&r.prototype?Cn(r.prototype,"nodeName"):null,T=r&&r.prototype?Cn(r.prototype,"ownerDocument"):null,U=function(y){return S?S(y):y.nodeType},X=function(y){return H?H(y):y.nodeName},K=py(d,"namespaceURI"),D=function(y){return K?K(y):y.namespaceURI};if(typeof i=="function"){const y=n.createElement("template");y.content&&y.content.ownerDocument&&(n=y.content.ownerDocument)}let O,B="",R,M=!1,$=0;const Q=function(){if($>0)throw ou('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.')},oe=function(y){Q(),$++;try{return O.createHTML(y)}finally{$--}},fe=function(y){Q(),$++;try{return O.createScriptURL(y)}finally{$--}},be=function(){return M||(R=Ny(l,s),M=!0),R},w=n,De=w.implementation,Ie=w.createNodeIterator,F=w.createDocumentFragment,Oe=w.getElementsByTagName,Be=u.importNode;let me=jm();t.isSupported=typeof Wf=="function"&&typeof C=="function"&&De&&De.createHTMLDocument!==void 0;const qe=Cy,at=yy,_t=xy,Dt=wy,A=by,z=By,Y=ky,le=Dy;let te=Lm,j=null;const ce=Xe({},[...Tm,...kl,...Al,...Dl,...zm]);let ue=null;const de=Xe({},[...Pm,...Fl,...Im,...Gr]);let ee=Object.seal(Ws(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}})),ke=null,Ce=null;const Ae=Object.seal(Ws(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Fe=!0,Le=!0,q=!1,se=!0,pe=!1,Se=!0,m=!1,p=!1,v=null,N=null,L=!1,G=!1,ae=!1,Ue=!1,st=!0,ot=!1;const rt="user-content-";let ft=!0,Ga=!1,Ju=null,_s={},Xu=null;const Ed=Xe({},["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 Cd=null;const yd=Xe({},["audio","video","img","source","image","track"]);let xd=null;const wd=Xe({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Or="http://www.w3.org/1998/Math/MathML",Rr="http://www.w3.org/2000/svg",Rn="http://www.w3.org/1999/xhtml";let Ns=Rn,Ya=!1,Za=null;const Lv=Xe({},[Or,Rr,Rn],Bl),bd=St(["mi","mo","mn","ms","mtext"]);let Ja=Xe({},bd);const Bd=St(["annotation-xml"]);let Xa=Xe({},Bd);const Ov=Xe({},["title","style","font","a","script"]);let vi=null;const Rv=["application/xhtml+xml","text/html"],jv="text/html";let yt=null,Ts=null;const Mv=n.createElement("form"),kd=function(y){return y instanceof RegExp||y instanceof Function},Qa=function(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Ts&&Ts===y)return;(!y||typeof y!="object")&&(y={}),y=on(y),vi=Rv.indexOf(y.PARSER_MEDIA_TYPE)===-1?jv:y.PARSER_MEDIA_TYPE,yt=vi==="application/xhtml+xml"?Bl:os,j=zu(y,"ALLOWED_TAGS",ce,{transform:yt}),ue=zu(y,"ALLOWED_ATTR",de,{transform:yt}),Za=zu(y,"ALLOWED_NAMESPACES",Lv,{transform:Bl}),xd=zu(y,"ADD_URI_SAFE_ATTR",wd,{transform:yt,base:wd}),Cd=zu(y,"ADD_DATA_URI_TAGS",yd,{transform:yt,base:yd}),Xu=zu(y,"FORBID_CONTENTS",Ed,{transform:yt}),ke=zu(y,"FORBID_TAGS",on({}),{transform:yt}),Ce=zu(y,"FORBID_ATTR",on({}),{transform:yt}),_s=en(y,"USE_PROFILES")?y.USE_PROFILES&&typeof y.USE_PROFILES=="object"?on(y.USE_PROFILES):y.USE_PROFILES:!1,Fe=y.ALLOW_ARIA_ATTR!==!1,Le=y.ALLOW_DATA_ATTR!==!1,q=y.ALLOW_UNKNOWN_PROTOCOLS||!1,se=y.ALLOW_SELF_CLOSE_IN_ATTR!==!1,pe=y.SAFE_FOR_TEMPLATES||!1,Se=y.SAFE_FOR_XML!==!1,m=y.WHOLE_DOCUMENT||!1,G=y.RETURN_DOM||!1,ae=y.RETURN_DOM_FRAGMENT||!1,Ue=y.RETURN_TRUSTED_TYPE||!1,L=y.FORCE_BODY||!1,st=y.SANITIZE_DOM!==!1,ot=y.SANITIZE_NAMED_PROPS||!1,ft=y.KEEP_CONTENT!==!1,Ga=y.IN_PLACE||!1,te=hy(y.ALLOWED_URI_REGEXP)?y.ALLOWED_URI_REGEXP:Lm,Ns=typeof y.NAMESPACE=="string"?y.NAMESPACE:Rn,Ja=_l(y,"MATHML_TEXT_INTEGRATION_POINTS",()=>Xe({},bd)),Xa=_l(y,"HTML_INTEGRATION_POINTS",()=>Xe({},Bd));const V=_l(y,"CUSTOM_ELEMENT_HANDLING",()=>Ws(null));if(ee=Ws(null),en(V,"tagNameCheck")&&kd(V.tagNameCheck)&&(ee.tagNameCheck=V.tagNameCheck),en(V,"attributeNameCheck")&&kd(V.attributeNameCheck)&&(ee.attributeNameCheck=V.attributeNameCheck),en(V,"allowCustomizedBuiltInElements")&&typeof V.allowCustomizedBuiltInElements=="boolean"&&(ee.allowCustomizedBuiltInElements=V.allowCustomizedBuiltInElements),Mt(ee),pe&&(Le=!1),ae&&(G=!0),_s&&(j=Xe({},zm),ue=Ws(null),_s.html===!0&&(Xe(j,Tm),Xe(ue,Pm)),_s.svg===!0&&(Xe(j,kl),Xe(ue,Fl),Xe(ue,Gr)),_s.svgFilters===!0&&(Xe(j,Al),Xe(ue,Fl),Xe(ue,Gr)),_s.mathMl===!0&&(Xe(j,Dl),Xe(ue,Im),Xe(ue,Gr))),Ae.tagCheck=null,Ae.attributeCheck=null,en(y,"ADD_TAGS")&&(typeof y.ADD_TAGS=="function"?Ae.tagCheck=y.ADD_TAGS:ti(y.ADD_TAGS)&&(j===ce&&(j=on(j)),Xe(j,y.ADD_TAGS,yt))),en(y,"ADD_ATTR")&&(typeof y.ADD_ATTR=="function"?Ae.attributeCheck=y.ADD_ATTR:ti(y.ADD_ATTR)&&(ue===de&&(ue=on(ue)),Xe(ue,y.ADD_ATTR,yt))),en(y,"ADD_FORBID_CONTENTS")&&ti(y.ADD_FORBID_CONTENTS)&&(Xu===Ed&&(Xu=on(Xu)),Xe(Xu,y.ADD_FORBID_CONTENTS,yt)),ft&&(j["#text"]=!0),m&&Xe(j,["html","head","body"]),j.table&&(Xe(j,["tbody"]),delete ke.tbody),y.TRUSTED_TYPES_POLICY){if(typeof y.TRUSTED_TYPES_POLICY.createHTML!="function")throw ou('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof y.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw ou('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const J=O;O=y.TRUSTED_TYPES_POLICY;try{B=oe("")}catch(ie){throw O=J,ie}}else y.TRUSTED_TYPES_POLICY===null?(O=void 0,B=""):(O===void 0&&(O=be()),O&&typeof B=="string"&&(B=oe("")));St&&St(y),Ts=y},Ad=Xe({},[...kl,...Al,...vy]),Dd=Xe({},[...Dl,...Ey]),$v=function(y,V,J){return V.namespaceURI===Rn?y==="svg":V.namespaceURI===Or?y==="svg"&&(J==="annotation-xml"||Ja[J]):!!Ad[y]},Vv=function(y,V,J){return V.namespaceURI===Rn?y==="math":V.namespaceURI===Rr?y==="math"&&Xa[J]:!!Dd[y]},Uv=function(y,V,J){return V.namespaceURI===Rr&&!Xa[J]||V.namespaceURI===Or&&!Ja[J]?!1:!Dd[y]&&(Ov[y]||!Ad[y])},Hv=function(y){const V=D(y),J=os(X(y)),ie=C(y);let Ne,$e;return ie&&U(ie)===wt.element?(Ne={namespaceURI:D(ie)},$e=os(X(ie))):(Ne={namespaceURI:Ns},$e="template"),Za[V]?V===Rr?$v(J,Ne,$e):V===Or?Vv(J,Ne,$e):V===Rn?Uv(J,Ne,$e):!!(vi==="application/xhtml+xml"&&Za[V]):!1},Qu=function(y){Bi(t.removed,{element:y});try{C(y).removeChild(y)}catch{if(g(y),!C(y))throw ou("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Fd=function(y,V,J){try{h(y,V)}catch{try{y.removeAttribute(J)}catch{}}},el=function(y){nl(y);const V=b(y);V&&ru(ay(V),ie=>{try{g(ie)}catch{}});const J=U(y)===wt.element?k(y):null;if(J)for(let ie=J.length-1;ie>=0;--ie){const Ne=J[ie],$e=Ne&&Ne.name;typeof $e=="string"&&Fd(y,Ne,$e)}},zs=function(y,V,J){if(!J)try{J=V.getAttributeNode(y)}catch{J=null}Bi(t.removed,{attribute:J||null,from:V});try{J?h(V,J):V.removeAttribute(y)}catch{try{V.removeAttribute(y)}catch{}}if(y==="is")if(G||ae)try{Qu(V)}catch{}else try{V.setAttribute(y,"")}catch{}},Sd=function(y){const V=k(y);if(V)for(let J=V.length-1;J>=0;--J){const ie=V[J],Ne=ie&&ie.name;typeof Ne!="string"||ue[yt(Ne)]||Fd(y,ie,Ne)}},tl=function(y,V){let J=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const ie=[y];for(;ie.length>0;){const Ne=ie.pop();if(V(Ne)===!1)continue;if(J&&U(Ne)===wt.element){const He=x(Ne);_u(He)&&ie.push(He)}const $e=b(Ne);if($e)for(let He=$e.length-1;He>=0;--He)ie.push($e[He])}},nl=function(y){tl(y,V=>{U(V)===wt.element&&Sd(V)})},ul=function(y){const V=[];return tl(y,J=>{V.push(J)},!0),V},Wv=function(y,V){const J=wl();ru(ul(y),ie=>{U(ie)===wt.element&&bl(J,ie)}),ru(V,ie=>{U(ie)===wt.element&&!ki(J,ie)&&Sd(ie)})},_d=function(y,V){let J=!1;return ru(t.removed,ie=>{ie.element&&(J=J||ie.element===y,nl(ie.element))}),Wv(y,V),J},qv=8,Kv=function(y,V){const J=Ju;let ie=null;const Ne=()=>(ie||(ie=wl(),ru(V,$e=>{bl(ie,$e)})),ie);for(let $e=0;;$e++){const He=ul(y),Et=[y];let Nu=!1;if(ru(He,vn=>{U(vn)===wt.documentFragment?Bi(Et,vn):!Nu&&!ki(J,vn)&&(Nu=ki(Ne(),vn))}),!Nu)return;if($e>=qv)throw ou("the tree kept changing during in-place sanitization; refusing to return it");ru(Et,(vn,Jt)=>{Gv(vn,Jt>0,y,Ne())})}},Gv=function(y,V,J,ie){const Ne=sl(y);let $e;for(;$e=Ne.nextNode();)!ki(ie,$e)||ki(Ju,$e)||(V&&_n(me.uponSanitizeShadowNode,$e,null),rl($e,J),ol($e,J),_u($e.content)&&Ci($e.content))},Yv=function(y){Ju&&bl(Ju,y)},Nd=function(y,V){return Se?y==="patchsrc"?!0:y==="for"&&V!=="label"&&V!=="output":!1},Zv=function(y){Se&&tl(y,V=>{const J=U(V);if(J===wt.processingInstruction||J===wt.comment&&Tt(Om,V.data)){try{g(V)}catch{}return!1}if(J===wt.element){const ie=V,Ne=yt(X(V));try{ie.hasAttribute&&ie.hasAttribute("patchsrc")&&ie.removeAttribute("patchsrc"),ie.hasAttribute&&ie.hasAttribute("for")&&Nd("for",Ne)&&ie.removeAttribute("for")}catch{}}return!0})},Td=function(y){let V=null,J=null;if(L)y=""+y;else{const $e=Fm(y,/^[\r\n\t ]+/);J=$e&&$e[0]}vi==="application/xhtml+xml"&&Ns===Rn&&(y=''+y+"");const ie=O?oe(y):y;if(Ns===Rn)try{V=new c().parseFromString(ie,vi)}catch{}if(!V||!V.documentElement){V=De.createDocument(Ns,"template",null);try{V.documentElement.innerHTML=Ya?B:ie}catch{}}const Ne=V.body||V.documentElement;return y&&J&&Ne.insertBefore(n.createTextNode(J),Ne.childNodes[0]||null),Ns===Rn?Oe.call(V,m?"html":"body")[0]:m?V.documentElement:Ne},sl=function(y){const V=T?T(y):y.ownerDocument;return Ie.call(V||y,y,a.SHOW_ELEMENT|a.SHOW_COMMENT|a.SHOW_TEXT|a.SHOW_PROCESSING_INSTRUCTION|a.SHOW_CDATA_SECTION,null)},jr=function(y){return y=Ai(y,qe," "),y=Ai(y,at," "),y=Ai(y,_t," "),y},il=function(y){var V;zd(y);const J=(V=y.querySelectorAll)===null||V===void 0?void 0:V.call(y,"template");J&&ru(J,ie=>{_u(ie.content)&&il(ie.content)})},zd=function(y){y.normalize();const V=T?T(y):y.ownerDocument,J=Ie.call(V||y,y,a.SHOW_TEXT|a.SHOW_COMMENT|a.SHOW_CDATA_SECTION|a.SHOW_PROCESSING_INSTRUCTION,null);let ie=J.nextNode();for(;ie;)ie.data=jr(ie.data),ie=J.nextNode()},Mr=function(y){const V=H?H(y):null;return typeof V!="string"||yt(V)!=="form"?!1:typeof y.nodeName!="string"||typeof y.textContent!="string"||typeof y.removeChild!="function"||y.attributes!==k(y)||typeof y.removeAttribute!="function"||typeof y.removeAttributeNode!="function"||typeof y.getAttributeNode!="function"||typeof y.setAttribute!="function"||typeof y.namespaceURI!="string"||typeof y.insertBefore!="function"||typeof y.hasChildNodes!="function"||y.nodeType!==S(y)||y.childNodes!==b(y)},_u=function(y){if(!S||typeof y!="object"||y===null)return!1;try{return S(y)===wt.documentFragment}catch{return!1}},Ei=function(y){if(!S||typeof y!="object"||y===null)return!1;try{return typeof S(y)=="number"}catch{return!1}};function _n(y,V,J){y.length!==0&&ru(y,ie=>{ie.call(t,V,J,Ts)})}const Jv=function(y,V){return!!(Se&&y.hasChildNodes()&&!Ei(y.firstElementChild)&&Tt(Sl,y.textContent)&&Tt(Sl,y.innerHTML)||Se&&Sy[V]&&U(y)===wt.element&&D(y)===Rn&&(Ei(y.firstElementChild)||typeof y.textContent=="string"&&Tt(Sl,y.textContent))||y.nodeType===wt.processingInstruction||Se&&y.nodeType===wt.comment&&Tt(Om,y.data))},$r=function(y,V){if(y instanceof RegExp)return Tt(y,V);if(y instanceof Function){for(var J=arguments.length,ie=new Array(J>2?J-2:0),Ne=2;Ne=0;--He){const Et=y===J?f(Ne[He],!0):Ne[He];ie.insertBefore(Et,E(y))}}}return Qu(y),!0},Pd=function(y,V,J,ie){return y.length===0?V:V===J||V===ie?on(V):V},Ps=function(y,V){return y===V||C(y)!==null?!1:(Ga&&nl(y),!0)},rl=function(y,V){if(Yv(y),_n(me.beforeSanitizeElements,y,null),Ps(y,V))return!0;if(Mr(y))return Qu(y),!0;const J=yt(X(y));if(j=Pd(me.uponSanitizeElement,j,ce,v),_n(me.uponSanitizeElement,y,{tagName:J,allowedTags:j}),Ps(y,V))return!0;if(Jv(y,J))return Qu(y),!0;if(ke[J]||!(Ae.tagCheck instanceof Function&&Ae.tagCheck(J))&&!j[J]){const ie=Xv(y,J,V);return ie===!1&&(_n(me.afterSanitizeElements,y,null),Ps(y,V))?!0:ie}if(U(y)===wt.element&&!Hv(y)||(J==="noscript"||J==="noembed"||J==="noframes")&&Tt(Fy,y.innerHTML))return Qu(y),!0;if(pe&&y.nodeType===wt.text){const ie=jr(y.textContent);y.textContent!==ie&&(Bi(t.removed,{element:y.cloneNode()}),y.textContent=ie)}return _n(me.afterSanitizeElements,y,null),Ps(y,V)},Id=function(y,V,J){if(Ce[V]||Nd(V,y)||st&&(V==="id"||V==="name")&&(J in n||J in Mv))return!1;const ie=ue[V]||Ae.attributeCheck instanceof Function&&Ae.attributeCheck(V,y);return Le&&Tt(Dt,V)||Fe&&Tt(A,V)?!0:ie?xd[V]||Tt(te,Ai(J,Y,""))||(V==="src"||V==="xlink:href"||V==="href")&&y!=="script"&&Sm(J,"data:")===0&&Cd[y]||q&&!Tt(z,Ai(J,Y,""))?!0:!J:Ld(y)&&$r(ee.tagNameCheck,y)&&$r(ee.attributeNameCheck,V,y)||V==="is"&&ee.allowCustomizedBuiltInElements&&$r(ee.tagNameCheck,J)},Qv=Xe({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Ld=function(y){return!Qv[os(y)]&&Tt(le,y)},e1=function(y,V,J,ie){if(O&&typeof l=="object"&&typeof l.getAttributeType=="function"&&!J)switch(l.getAttributeType(y,V)){case"TrustedHTML":return oe(ie);case"TrustedScriptURL":return fe(ie)}return ie},t1=function(y,V,J,ie){try{return J?y.setAttributeNS(J,V,ie):y.setAttribute(V,ie),Mr(y)?(Qu(y),!1):!0}catch{return zs(V,y),!1}},Od=function(y,V){return Se&&Tt(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,V)?!0:os(y)==="attributename"&&Fm(V,"href")!==null},ol=function(y,V){if(_n(me.beforeSanitizeAttributes,y,null),Ps(y,V))return;const J=y.attributes;if(!J||Mr(y))return;ue=Pd(me.uponSanitizeAttribute,ue,de,N);const ie={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ue,forceKeepAttr:void 0};let Ne=J.length;const $e=yt(y.nodeName);for(;Ne--;){const He=J[Ne],Et=He.name,Nu=He.namespaceURI,vn=He.value,Jt=yt(Et),jn=vn;let Nt=Et==="value"?jn:cy(jn),Rd=!1;if(ie.attrName=Jt,ie.attrValue=Nt,ie.keepAttr=!0,ie.forceKeepAttr=void 0,_n(me.uponSanitizeAttribute,y,ie),Nt=ie.attrValue,ot&&(Jt==="id"||Jt==="name")&&Sm(Nt,rt)!==0&&(zs(Et,y,He),Nt=rt+Nt,Rd=!0),Od(Et,Nt)){zs(Et,y,He);continue}if(!ie.forceKeepAttr){if(!ie.keepAttr){zs(Et,y,He);continue}if(!se&&Tt(Rm,Nt)){zs(Et,y,He);continue}if(pe&&(Nt=jr(Nt)),!Id($e,Jt,Nt)){zs(Et,y,He);continue}Nt=e1($e,Jt,Nu,Nt),Nt!==jn&&t1(y,Et,Nu,Nt)&&Rd&&Dm(t.removed)}}_n(me.afterSanitizeAttributes,y,null),Ps(y,V)},Ci=function(y){let V=null;const J=sl(y);for(_n(me.beforeSanitizeShadowDOM,y,null);V=J.nextNode();)if(_n(me.uponSanitizeShadowNode,V,null),rl(V,y),ol(V,y),_u(V.content)&&Ci(V.content),U(V)===wt.element){const ie=x(V);_u(ie)&&(al(ie),Ci(ie))}pe&&zd(y),_n(me.afterSanitizeShadowDOM,y,null)},al=function(y){const V=[{node:y,shadow:null}];for(;V.length>0;){const J=V.pop();if(J.shadow){Ci(J.shadow);continue}const ie=J.node,Ne=U(ie)===wt.element,$e=b(ie);if($e)for(let He=$e.length-1;He>=0;--He)V.push({node:$e[He],shadow:null});if(Ne){const He=H?H(ie):null;if(typeof He=="string"&&yt(He)==="template"){const Et=ie.content;_u(Et)&&V.push({node:Et,shadow:null})}}if(Ne){const He=x(ie);_u(He)&&V.push({node:null,shadow:He},{node:He,shadow:null})}}};return t.sanitize=function(y){let V=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},J=null,ie=null,Ne=null,$e=null;if(Ya=!y,Ya&&(y=""),typeof y!="string"&&!Ei(y)&&(y=fy(y),typeof y!="string"))throw ou("dirty is not a string, aborting");if(!t.isSupported)return y;p?(j=v,ue=N):Qa(V),(me.uponSanitizeElement.length>0||me.uponSanitizeAttribute.length>0)&&(j=on(j)),me.uponSanitizeAttribute.length>0&&(ue=on(ue)),t.removed=[];const He=Ga&&typeof y!="string"&&Ei(y);let Et=[];const Nu=Ju;if(He){Zv(y);const jn=X(y);if(typeof jn=="string"){const Nt=yt(jn);if(!j[Nt]||ke[Nt])throw el(y),ou("root node is forbidden and cannot be sanitized in-place")}if(Mr(y))throw el(y),ou("root node is clobbered and cannot be sanitized in-place");Et=ul(y),Ju=wl()}else if(Ei(y))J=Td(""),ie=J.ownerDocument.importNode(y,!0),ie.nodeType===wt.element&&ie.nodeName==="BODY"||ie.nodeName==="HTML"?J=ie:J.appendChild(ie),al(J);else{if(!G&&!pe&&!m&&y.indexOf("<")===-1)return O&&Ue?oe(y):y;if(J=Td(y),!J)return G?null:Ue?B:""}J&&L&&Qu(J.firstChild);const vn=He?y:J;try{He&&al(y);const jn=sl(vn);for(;Ne=jn.nextNode();)rl(Ne,vn),ol(Ne,vn),_u(Ne.content)&&Ci(Ne.content);He&&Kv(y,Et)}catch(jn){throw He&&(el(y),_d(y,Et)),jn}finally{Ju=Nu}if(He){if(_d(y,Et))throw ou("a node selected for removal could not be safely returned; refusing to sanitize in place");return pe&&il(y),y}if(G){if(pe&&il(J),ae)for($e=F.call(J.ownerDocument);J.firstChild;)$e.appendChild(J.firstChild);else $e=J;return(ue.shadowroot||ue.shadowrootmode)&&($e=Be.call(u,$e,!0)),$e}let Jt=m?J.outerHTML:J.innerHTML;return m&&j["!doctype"]&&J.ownerDocument&&J.ownerDocument.doctype&&J.ownerDocument.doctype.name&&Tt(Ay,J.ownerDocument.doctype.name)&&(Jt=" -`+Jt),pe&&(Jt=jr(Jt)),O&&Ue?oe(Jt):Jt},t.setConfig=function(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Qa(y),p=!0,v=j,N=ue},t.clearConfig=function(){Ts=null,p=!1,v=null,N=null,O=R,B=""},t.isValidAttribute=function(y,V,J){Ts||Qa({});const ie=yt(y),Ne=yt(V);return typeof J=="string"&&(Od(V,J)||!se&&Tt(Rm,J))?!1:Id(ie,Ne,J)},t.addHook=function(y,V){typeof V=="function"&&en(me,y)&&Bi(me[y],V)},t.removeHook=function(y,V){if(en(me,y)){if(V!==void 0){const J=oy(me[y],V);return J===-1?void 0:ly(me[y],J,1)[0]}return Dm(me[y])}},t.removeHooks=function(y){en(me,y)&&(me[y]=[])},t.removeAllHooks=function(){me=jm()},t}var Jf=Zf();function Sr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Nl,Mm;function Ty(){if(Mm)return Nl;Mm=1;var e=/["'&<>]/;Nl=t;function t(n){var u=""+n,s=e.exec(u);if(!s)return u;var i,r="",o=0,a=0;for(o=s.index;ot)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function ve(e,t,n,u,s){const i=typeof n=="object"?n:void 0,r=typeof u=="number"?u:typeof n=="number"?n:void 0,o={escape:!0,sanitize:!0,...typeof s=="object"?s:typeof u=="object"?u:{}},a=h=>h,c=(o.sanitize?Jf.sanitize:a)||a,l=o.escape?$m:a,d=h=>typeof h=="string"||typeof h=="number",f=(h,E,b)=>h.replace(/%n/g,""+b).replace(/{([^{}]*)}/g,(C,x)=>{if(E===void 0||!(x in E))return l(C);const k=E[x];return d(k)?l(`${k}`):typeof k=="object"&&d(k.value)?(k.escape!==!1?$m:a)(`${k.value}`):l(C)});let g=(s?.bundle??Qf(e)).translations[t]||t;return g=Array.isArray(g)?g[0]:g,c(typeof i=="object"||r!==void 0?f(g,i,r):g)}function Ly(e,t,n,u,s,i){const r="_"+t+"_::_"+n+"_",o=i?.bundle??Qf(e),a=o.translations[r];if(typeof a<"u"){const c=a;if(Array.isArray(c)){const l=o.pluralFunction(u);return ve(e,c[l],s,u,i)}}return u===1?ve(e,t,s,u,i):ve(e,n,s,u,i)}function Oy(e,t=Es()){switch(t==="pt-BR"&&(t="xbr"),t.length>3&&(t=t.substring(0,t.lastIndexOf("-"))),t){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 e===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 e===0||e===1?0:1;case"be":case"bs":case"hr":case"ru":case"sh":case"sr":case"uk":return e%10===1&&e%100!==11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"cs":case"sk":return e===1?0:e>=2&&e<=4?1:2;case"ga":return e===1?0:e===2?1:2;case"lt":return e%10===1&&e%100!==11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2;case"sl":return e%100===1?0:e%100===2?1:e%100===3||e%100===4?2:3;case"mk":return e%10===1?0:1;case"mt":return e===1?0:e===0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3;case"lv":return e===0?0:e%10===1&&e%100!==11?1:2;case"pl":return e===1?0:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?1:2;case"cy":return e===1?0:e===2?1:e===8||e===11?2:3;case"ro":return e===1?0:e===0||e%100>0&&e%100<20?1:2;case"ar":return e===0?0:e===1?1:e===2?2:e%100>=3&&e%100<=10?3:e%100>=11&&e%100<=99?4:5;default:return 0}}function Ry(e=Date.now(),t={}){const n={ignoreSeconds:!1,language:Es(),relativeTime:"long",...t},u=new Date(e),s=new Intl.RelativeTimeFormat([n.language,Es()],{numeric:"auto",style:n.relativeTime}),i=(u.getTime()-Date.now())/1e3;if(Math.abs(i)<59.5)return n.ignoreSeconds||s.format(Math.round(i),"second");const r=i/60;if(Math.abs(r)<=59)return s.format(Math.round(r),"minute");const o=r/60;if(Math.abs(o)<23.5)return s.format(Math.round(o),"hour");const a=o/24;if(Math.abs(a)<6.5)return s.format(Math.round(a),"day");if(Math.abs(a)<27.5){const d=a/7;return s.format(Math.round(d),"week")}const c=a/30,l=Math.abs(c)<11?{month:n.relativeTime,day:"numeric"}:{year:n.relativeTime==="narrow"?"2-digit":"numeric",month:n.relativeTime};return new Intl.DateTimeFormat([n.language,Es()],l).format(u)}const jy=()=>{},fr=Array.isArray,Pa=Symbol(""),My=Symbol("");function Vm(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function $y(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Vy(e[n],t[n]))return!1;return!0}function Vy(e,t){return fr(e)?Um(e,t):fr(t)?Um(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Um(e,t){return fr(t)?e.length===t.length&&e.every((n,u)=>n===t[u]):e.length===1&&e[0]===t}function Hm(e){const t=jt(Pa),n=jt(My),u=ne(()=>{const a=I(e.to);return t.resolve(a)}),s=ne(()=>{const{matched:a}=u.value,{length:c}=a,l=a[c-1],d=n.matched;if(!l||!d.length)return-1;const f=d.findIndex(Vm.bind(null,l));if(f>-1)return f;const g=Wm(a[c-2]);return c>1&&Wm(l)===g&&d[d.length-1].path!==g?d.findIndex(Vm.bind(null,a[c-2])):f}),i=ne(()=>s.value>-1&&Wy(n.params,u.value.params)),r=ne(()=>s.value>-1&&s.value===n.matched.length-1&&$y(n.params,u.value.params));function o(a={}){if(Hy(a)){const c=t[I(e.replace)?"replace":"push"](I(e.to)).catch(jy);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:u,href:ne(()=>u.value.href),isActive:i,isExactActive:r,navigate:o}}function Uy(e){return e.length===1?e[0]:e}const ep=Me({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Hm,setup(e,{slots:t}){const n=xs(Hm(e)),{options:u}=jt(Pa),s=ne(()=>({[qm(e.activeClass,u.linkActiveClass,"router-link-active")]:n.isActive,[qm(e.exactActiveClass,u.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&Uy(t.default(n));return e.custom?i:Ke("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}});function Hy(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Wy(e,t){for(const n in t){const u=t[n],s=e[n];if(fr(u)){if(!fr(s)||s.length!==u.length||u.some((i,r)=>i.valueOf()!==s[r].valueOf()))return!1}else if(u!==s)return!1}return!0}function Wm(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const qm=(e,t,n)=>e??t??n,[qy]=window.OC?.config?.version?.split(".")??[],tp=Number.parseInt(qy??"35"),Lo=tp<32,z0=tp<34,Ky=Symbol.for("NcFormBox:context");function Gy(){return jt(Ky,{isInFormBox:!1,formBoxItemClass:void 0})}const ut=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n},Yy={class:"button-vue__wrapper"},Zy={class:"button-vue__icon"},Jy={class:"button-vue__text"},Xy=Me({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(e,{emit:t}){const n=e,u=t,{formBoxItemClass:s}=Gy(),i=jt(Pa,null)!==null,r=ne(()=>i&&n.to?"RouterLink":n.href?"a":"button"),o=ne(()=>r.value==="button"&&typeof n.pressed=="boolean"),a=ne(()=>n.pressed?"primary":n.pressed===!1&&n.variant==="primary"?"secondary":n.variant),c=ne(()=>a.value.startsWith("tertiary")),l=ne(()=>n.alignment.split("-")[0]),d=ne(()=>n.alignment.includes("-")),f=jt("NcPopover:trigger:attrs",()=>({}),!1),g=ne(()=>f()),h=ne(()=>{if(r.value==="RouterLink")return{to:n.to,activeClass:"active"};if(r.value==="a")return{href:n.href||"#",target:n.target,rel:"nofollow noreferrer noopener",download:n.download||void 0};if(r.value==="button")return{...g.value,"aria-pressed":n.pressed,type:n.type,disabled:n.disabled}});function E(b){o.value&&u("update:pressed",!n.pressed),u("click",b)}return(b,C)=>(_(),we(xu(r.value),Ze({class:["button-vue",[`button-vue--size-${e.size}`,{[`button-vue--${a.value}`]:a.value,"button-vue--tertiary":c.value,"button-vue--wide":e.wide,[`button-vue--${l.value}`]:l.value!=="center","button-vue--reverse":d.value,"button-vue--legacy":I(Lo),"button-vue--legacy34":I(z0)},I(s)]],"aria-label":e.ariaLabel},h.value,{onClick:E}),{default:he(()=>[Z("span",Yy,[Z("span",Zy,[Pe(b.$slots,"icon",{},void 0,!0)]),Z("span",Jy,[Pe(b.$slots,"default",{},()=>[We(re(e.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),Ct=ut(Xy,[["__scopeId","data-v-47ce59a3"]]);window._nc_vue_element_id=window._nc_vue_element_id??0;function fn(){return`nc-vue-${window._nc_vue_element_id++}`}const Qy=["aria-labelledby"],e5={key:0,class:"empty-content__icon","aria-hidden":"true"},t5=["id"],n5={key:2,class:"empty-content__description"},u5={key:3,class:"empty-content__action"},s5=Me({__name:"NcEmptyContent",props:{description:{default:""},name:{default:""}},setup(e){const t=fn();return(n,u)=>(_(),W("div",{"aria-labelledby":I(t),class:"empty-content",role:"note"},[n.$slots.icon?(_(),W("div",e5,[Pe(n.$slots,"icon",{},void 0,!0)])):ye("",!0),e.name!==""||n.$slots.name?(_(),W("div",{key:1,id:I(t),class:"empty-content__name"},[Pe(n.$slots,"name",{},()=>[We(re(e.name),1)],!0)],8,t5)):ye("",!0),e.description!==""||n.$slots.description?(_(),W("p",n5,[Pe(n.$slots,"description",{},()=>[We(re(e.description),1)],!0)])):ye("",!0),n.$slots.action?(_(),W("div",u5,[Pe(n.$slots,"action",{},void 0,!0)])):ye("",!0)],8,Qy))}}),i5=ut(s5,[["__scopeId","data-v-8609a4c1"]]);var r5="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",Km="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",o5="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",a5="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",Oo="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",l5="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",c5="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",np="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",P0="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",d5="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",m5="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",g5="M14,19H18V5H14M6,19H10V5H6V19Z",f5="M8,5.14V19.14L19,12.14L8,5.14Z",p5="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";const h5=["aria-hidden","aria-label"],v5={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},E5=["d"],C5=["innerHTML"],y5=Me({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(e){_a(s=>({fb515064:n.value}));const t=e,n=ne(()=>typeof t.size=="number"?`${t.size}px`:t.size),u=ne(()=>{if(!t.svg||t.path)return;const s=Jf.sanitize(t.svg),i=new DOMParser().parseFromString(s,"image/svg+xml");return i.querySelector("parsererror")?"":(i.documentElement.id&&i.documentElement.removeAttribute("id"),i.documentElement.outerHTML)});return(s,i)=>(_(),W("span",{"aria-hidden":e.name?void 0:"true","aria-label":e.name||void 0,class:ze(["icon-vue",{"icon-vue--directional":e.directional,"icon-vue--inline":e.inline}]),role:"img"},[u.value?(_(),W("span",{key:1,innerHTML:u.value},null,8,C5)):(_(),W("svg",v5,[Z("path",{d:e.path},null,8,E5)]))],10,h5))}}),It=ut(y5,[["__scopeId","data-v-aaedb1c3"]]),x5=["role"],w5={key:0,class:"notecard__heading"},b5={class:"notecard__text"},B5=Me({__name:"NcNoteCard",props:{heading:{default:void 0},showAlert:{type:Boolean},text:{default:void 0},type:{default:"warning"}},setup(e){const t=e,n=ne(()=>t.showAlert||t.type==="error"),u=ne(()=>{switch(t.type){case"error":return o5;case"success":return l5;case"info":return m5;default:return r5}});return(s,i)=>(_(),W("div",{class:ze(["notecard",{[`notecard--${e.type}`]:e.type,"notecard--legacy":I(Lo)}]),role:n.value?"alert":"note"},[Pe(s.$slots,"icon",{},()=>[Ee(I(It),{path:u.value,class:ze(["notecard__icon",{"notecard__icon--heading":e.heading}]),inline:""},null,8,["path","class"])],!0),Z("div",null,[e.heading?(_(),W("p",w5,re(e.heading),1)):ye("",!0),Pe(s.$slots,"default",{},()=>[Z("p",b5,re(e.text),1)],!0)])],10,x5))}}),Ro=ut(B5,[["__scopeId","data-v-6be9fa31"]]),gt=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n},k5={name:"CogOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},A5=["aria-hidden","aria-label"],D5=["fill","width","height"],F5={d:"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"},S5={key:0};function _5(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cog-outline-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",F5,[n.title?(_(),W("title",S5,re(n.title),1)):ye("",!0)])],8,D5))],16,A5)}const N5=gt(k5,[["render",_5]]),T5={name:"FormatListBulletedSquareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},z5=["aria-hidden","aria-label"],P5=["fill","width","height"],I5={d:"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9"},L5={key:0};function O5(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon format-list-bulleted-square-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",I5,[n.title?(_(),W("title",L5,re(n.title),1)):ye("",!0)])],8,P5))],16,z5)}const R5=gt(T5,[["render",O5]]);function j5(e,t=100,n={}){if(typeof e!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw new RangeError("`wait` must not be negative.");if(typeof n=="boolean")throw new TypeError("The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.");const{immediate:u}=n;let s,i,r,o,a;function c(){const f=s,g=i;return s=void 0,i=void 0,a=e.apply(f,g),a}function l(){const f=Date.now()-o;f=0?r=setTimeout(l,t-f):(r=void 0,u||(a=c()))}const d=function(...f){if(s&&this!==s&&Object.getPrototypeOf(this)===Object.getPrototypeOf(s))throw new Error("Debounced method called with different contexts of the same prototype.");s=this,i=f,o=Date.now();const g=u&&!r;if(r||(r=setTimeout(l,t)),g)return a=c(),a};return Object.defineProperty(d,"isPending",{get(){return r!==void 0}}),d.clear=()=>{r&&(clearTimeout(r),r=void 0,s=void 0,i=void 0)},d.flush=()=>{r&&d.trigger()},d.trigger=()=>{a=c(),d.clear()},d}function jo(e,t){return hc()?(k3(e,t),!0):!1}const I0=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const M5=e=>e!=null,$5=Object.prototype.toString,V5=e=>$5.call(e)==="[object Object]",Tl=()=>{};function qi(e){return Array.isArray(e)?e:[e]}function U5(e){return Ln()}function H5(e,t=!0,n){U5()?un(e,n):t?e():ku(e)}function W5(e,t=1e3,n={}){const{immediate:u=!0,immediateCallback:s=!1}=n;let i=null;const r=bs(!1);function o(){i&&(clearInterval(i),i=null)}function a(){r.value=!1,o()}function c(){const l=Rt(t);l<=0||(r.value=!0,s&&e(),o(),r.value&&(i=setInterval(e,l)))}return u&&I0&&c(),(pt(t)||typeof t=="function")&&jo(qt(t,()=>{r.value&&I0&&c()})),jo(a),{isActive:R1(r),pause:a,resume:c}}function q5(e,t,n){return qt(e,t,{...n,immediate:!0})}const _r=I0?window:void 0;function Zn(e){var t;const n=Rt(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function ao(...e){const t=(u,s,i,r)=>(u.addEventListener(s,i,r),()=>u.removeEventListener(s,i,r)),n=ne(()=>{const u=qi(Rt(e[0])).filter(s=>s!=null);return u.every(s=>typeof s!="string")?u:void 0});return q5(()=>{var u,s;return[(u=(s=n.value)===null||s===void 0?void 0:s.map(i=>Zn(i)))!==null&&u!==void 0?u:[_r].filter(i=>i!=null),qi(Rt(n.value?e[1]:e[0])),qi(I(n.value?e[2]:e[1])),Rt(n.value?e[3]:e[2])]},([u,s,i,r],o,a)=>{if(!u?.length||!s?.length||!i?.length)return;const c=V5(r)?{...r}:r,l=u.flatMap(d=>s.flatMap(f=>i.map(g=>t(d,f,g,c))));a(()=>{l.forEach(d=>d())})},{flush:"post"})}function K5(){const e=bs(!1),t=Ln();return t&&un(()=>{e.value=!0},t),e}function up(e){const t=K5();return ne(()=>(t.value,!!e()))}function G5(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Gm(...e){let t,n,u={};e.length===3?(t=e[0],n=e[1],u=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],u=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=_r,eventName:i="keydown",passive:r=!1,dedupe:o=!1}=u,a=G5(t);return ao(s,i,c=>{c.repeat&&Rt(o)||a(c)&&n(c)},r)}function Y5(e,t,n={}){const{window:u=_r,...s}=n;let i;const r=up(()=>u&&"ResizeObserver"in u),o=()=>{i&&(i.disconnect(),i=void 0)},a=qt(ne(()=>{const l=Rt(e);return Array.isArray(l)?l.map(d=>Zn(d)):[Zn(l)]}),l=>{if(o(),r.value&&u){i=new ResizeObserver(t);for(const d of l)d&&i.observe(d,s)}},{immediate:!0,flush:"post"}),c=()=>{o(),a()};return jo(c),{isSupported:r,stop:c}}function L0(e,t={width:0,height:0},n={}){const{window:u=_r,box:s="content-box"}=n,i=ne(()=>{var d;return(d=Zn(e))===null||d===void 0||(d=d.namespaceURI)===null||d===void 0?void 0:d.includes("svg")}),r=bs(t.width),o=bs(t.height),{stop:a}=Y5(e,([d])=>{const f=s==="border-box"?d.borderBoxSize:s==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(u&&i.value){const g=Zn(e);if(g){const h=g.getBoundingClientRect();r.value=h.width,o.value=h.height}}else if(f){const g=qi(f);r.value=g.reduce((h,{inlineSize:E})=>h+E,0),o.value=g.reduce((h,{blockSize:E})=>h+E,0)}else r.value=d.contentRect.width,o.value=d.contentRect.height},n);H5(()=>{const d=Zn(e);if(d&&"offsetWidth"in d)if(s==="content-box"&&u){const f=u.getComputedStyle(d),g=Number.parseFloat(f.paddingLeft)+Number.parseFloat(f.paddingRight),h=Number.parseFloat(f.paddingTop)+Number.parseFloat(f.paddingBottom),E=Number.parseFloat(f.borderLeftWidth)+Number.parseFloat(f.borderRightWidth),b=Number.parseFloat(f.borderTopWidth)+Number.parseFloat(f.borderBottomWidth);r.value=d.offsetWidth-g-E,o.value=d.offsetHeight-h-b}else r.value=d.offsetWidth,o.value=d.offsetHeight;else d&&(r.value=t.width,o.value=t.height)});const c=qt(()=>Zn(e),d=>{r.value=d?t.width:0,o.value=d?t.height:0});function l(){a(),c()}return{width:r,height:o,stop:l}}function Z5(e,t,n={}){const{root:u,rootMargin:s,threshold:i=0,window:r=_r,immediate:o=!0}=n,a=up(()=>r&&"IntersectionObserver"in r),c=ne(()=>qi(Rt(e)).map(Zn).filter(M5));let l=Tl;const d=bs(o),f=a.value?qt(()=>[c.value,Zn(u),Rt(s),d.value],([h,E,b])=>{if(l(),!d.value||!h.length)return;const C=new IntersectionObserver(t,{root:Zn(E),rootMargin:b,threshold:i});h.forEach(x=>x&&C.observe(x)),l=()=>{C.disconnect(),l=Tl}},{immediate:o,flush:"post"}):Tl,g=()=>{l(),f(),d.value=!1};return jo(g),{isSupported:a,isActive:d,pause(){l(),d.value=!1},resume(){d.value=!0},stop:g}}function J5(e,t={}){const{threshold:n=50,onSwipe:u,onSwipeEnd:s,onSwipeStart:i,passive:r=!0}=t,o=xs({x:0,y:0}),a=xs({x:0,y:0}),c=ne(()=>o.x-a.x),l=ne(()=>o.y-a.y),{max:d,abs:f}=Math,g=ne(()=>d(f(c.value),f(l.value))>=n),h=bs(!1),E=ne(()=>g.value?f(c.value)>f(l.value)?c.value>0?"left":"right":l.value>0?"up":"down":"none"),b=T=>[T.touches[0].clientX,T.touches[0].clientY],C=(T,U)=>{o.x=T,o.y=U},x=(T,U)=>{a.x=T,a.y=U},k={passive:r,capture:!r},S=T=>{h.value&&s?.(T,E.value),h.value=!1},H=[ao(e,"touchstart",T=>{if(T.touches.length!==1)return;const[U,X]=b(T);C(U,X),x(U,X),i?.(T)},k),ao(e,"touchmove",T=>{if(T.touches.length!==1)return;const[U,X]=b(T);x(U,X),k.capture&&!k.passive&&Math.abs(c.value)>Math.abs(l.value)&&T.preventDefault(),!h.value&&g.value&&(h.value=!0),h.value&&u?.(T)},k),ao(e,["touchend","touchcancel"],S,k)];return{isSwiping:h,direction:E,coordsStart:o,coordsEnd:a,lengthX:c,lengthY:l,stop:()=>H.forEach(T=>T())}}class X5{bundle;constructor(t){this.bundle={pluralFunction:t,translations:{}}}addTranslations(t){const n=Object.values(t.translations[""]??{}).map(({msgid:u,msgid_plural:s,msgstr:i})=>s!==void 0?[`_${u}_::_${s}_`,i]:[u,i[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(n)}}gettext(t,n={}){return ve("",t,n,void 0,{bundle:this.bundle})}ngettext(t,n,u,s={}){return Ly("",t,n,u,s,{bundle:this.bundle})}}class Q5{debug=!1;language="en";translations={};setLanguage(t){return this.language=t,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(Es().replace("-","_"))}addTranslation(t,n){return this.translations[t]=n,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const t=new X5(n=>Oy(n,this.language));return this.language in this.translations&&t.addTranslations(this.translations[this.language]),t}}function sp(){return new Q5}const _c=sp().detectLanguage().build(),e6=(...e)=>_c.ngettext(...e),Ye=(...e)=>_c.gettext(...e);function Ft(...e){for(const t of e)if(!t.registered){for(const{l:n,t:u}of t){if(n!==Es()||!u)continue;const s=Object.fromEntries(Object.entries(u).map(([i,r])=>[i,{msgid:i,msgid_plural:r.p,msgstr:r.v}]));_c.addTranslations({translations:{"":s}})}t.registered=!0}}const t6=[{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"]},"Invalid date":{v:["Neplatné datum"]},"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"]},"Invalid date":{v:["Ugyldig dato"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"Invalid date":{v:["Ungültiges Datum"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"Invalid date":{v:["Ungültiges Datum"]},"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"]},"Invalid date":{v:["Vigane kuupäev"]},"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 secondes"]},"Invalid date":{v:["Date non valide"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques sec."]}}},{l:"ga",t:{"a few seconds ago":{v:["cúpla soicind ó shin"]},"Invalid date":{v:["Dáta neamhbhailí"]},"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:["数秒前"]},"Invalid date":{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"]},"Invalid date":{v:["Data inválida"]},"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:["för några sekunder sedan"]},"Invalid date":{v:["Ogiltigt datum"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaç saniye önce"]},"Invalid date":{v:["Tarih geçersiz"]},"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:["秒前"]}}}],n6=[{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:["動作"]}}}],u6=[{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:["Échap"]},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:["Mellanslag"]},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鍵"]}}}],s6=[{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:["Valfri länk"]}}},{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:["任何連結"]}}}],i6=[{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örsvalet"]},"Close Smart Picker":{v:["Stäng smartväljaren"]},"Smart Picker":{v:["Smartväljare"]}}},{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:["智慧型挑選器"]}}}],r6=[{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 valda"]},"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:["選項"]}}}],o6=[{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:["Enregistrer les modifications"]}}},{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:["Rensa 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:["儲存變更"]}}}],ip=[{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:["關閉"]}}}],a6=[{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:["Kopierat"]},"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:["複製到剪貼簿"]}}}],l6=[{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í"]},"Widget height":{v:["Výška ovládacího prvku"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Enable interactive view":{v:["Aktiver interaktiv visning"]},"Widget height":{v:["Kontrolhøjde"]}}},{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"]},"Widget height":{v:["Hauteur du widget"]}}},{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"]},"Widget height":{v:["Hoogte van widget"]}}},{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:["Включить интерактивный просмотр"]},"Widget height":{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:["Widgethöjd"]}}},{l:"tr",t:{"Enable interactive view":{v:["Etkileşimli görünümü aç"]},"Widget height":{v:["Araç takımı yüksekliği"]}}},{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:["啟用互動檢視"]}}}],c6=[{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 en 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:["輸入連結"]}}}],rp=[{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:["Kortkommandon"]}}},{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:["鍵盤快速鍵"]}}}],d6=[{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 davantage « {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:['Läs in 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:["開始輸入以進行搜尋"]}}}],m6=[{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:["Läser in …"]}}},{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:["載入中......"]}}}],g6=[{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:["開始幻燈片"]}}}],Ym=[{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:["提供者圖示"]}}}],f6=[{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:["搜尋"]}}}],p6=[{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:["選取提供者"]}}}],h6=[{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:["Navigering för inställningar"]}}},{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:["設定值導覽"]}}}],v6=[{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 modifications"]}}},{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:["還原變更"]}}}],E6=["aria-label"],C6=["width","height"],y6=["fill"],x6=["fill"],w6={key:0},b6=Me({__name:"NcLoadingIcon",props:{appearance:{default:"auto"},name:{default:""},size:{default:20}},setup(e){const t=e,n=ne(()=>{const u=["#777","#CCC"];return t.appearance==="light"?u:t.appearance==="dark"?u.reverse():["var(--color-loading-light)","var(--color-loading-dark)"]});return(u,s)=>(_(),W("span",{"aria-label":e.name,role:"img",class:"material-design-icon loading-icon"},[(_(),W("svg",{width:e.size,height:e.size,viewBox:"0 0 24 24"},[Z("path",{fill:n.value[0],d:"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z"},null,8,y6),Z("path",{fill:n.value[1],d:"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z"},[e.name?(_(),W("title",w6,re(e.name),1)):ye("",!0)],8,x6)],8,C6))],8,E6))}}),Nc=ut(b6,[["__scopeId","data-v-cf399190"]]);Ft(m6);const B6=Me({__name:"NcDialogButton",props:{callback:{type:Function,default:()=>{}},disabled:{type:Boolean,default:!1},icon:{default:void 0},label:{},type:{default:"button"},variant:{default:"tertiary"}},emits:["click"],setup(e,{emit:t}){const n=e,u=t,s=_e(!1);async function i(r){if(!s.value){s.value=!0;try{const o=n.type==="reset"?!1:void 0,a=await n.callback?.()??o;a!==!1&&u("click",r,a)}finally{s.value=!1}}}return(r,o)=>(_(),we(I(Ct),{"aria-label":e.label,disabled:e.disabled,type:e.type,variant:e.variant,onClick:i},{icon:he(()=>[Pe(r.$slots,"icon",{},()=>[s.value?(_(),we(I(Nc),{key:0,name:I(Ye)("Loading …")},null,8,["name"])):e.icon!==void 0?(_(),we(I(It),{key:1,svg:e.icon},null,8,["svg"])):ye("",!0)])]),default:he(()=>[We(re(e.label)+" ",1)]),_:3},8,["aria-label","disabled","type","variant"]))}});var op=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],Mo=op.join(","),ap=typeof Element>"u",Bs=ap?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,$o=!ap&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e?.ownerDocument},Vo=function(e,t){var n;t===void 0&&(t=!0);var u=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),s=u===""||u==="true",i=s||t&&e&&(typeof e.closest=="function"?e.closest("[inert]"):Vo(e.parentNode));return i},k6=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},lp=function(e,t,n){if(Vo(e))return[];var u=Array.prototype.slice.apply(e.querySelectorAll(Mo));return t&&Bs.call(e,Mo)&&u.unshift(e),u=u.filter(n),u},Uo=function(e,t,n){for(var u=[],s=Array.from(e);s.length;){var i=s.shift();if(!Vo(i,!1))if(i.tagName==="SLOT"){var r=i.assignedElements(),o=r.length?r:i.children,a=Uo(o,!0,n);n.flatten?u.push.apply(u,a):u.push({scopeParent:i,candidates:a})}else{var c=Bs.call(i,Mo);c&&n.filter(i)&&(t||!e.includes(i))&&u.push(i);var l=i.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(i),d=!Vo(l,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(i));if(l&&d){var f=Uo(l===!0?i.children:l.children,!0,n);n.flatten?u.push.apply(u,f):u.push({scopeParent:i,candidates:f})}else s.unshift.apply(s,i.children)}}return u},cp=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},cs=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||k6(e))&&!cp(e)?0:e.tabIndex},A6=function(e,t){var n=cs(e);return n<0&&t&&!cp(e)?0:n},D6=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},dp=function(e){return e.tagName==="INPUT"},F6=function(e){return dp(e)&&e.type==="hidden"},S6=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},_6=function(e,t){for(var n=0;nsummary:first-of-type"),a=o?e.parentElement:e;if(Bs.call(a,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof u=="function"){for(var c=e;e;){var l=e.parentElement,d=$o(e);if(l&&!l.shadowRoot&&u(l)===!0)return Zm(e);e.assignedSlot?e=e.assignedSlot:!l&&d!==e.ownerDocument?e=d.host:e=l}e=c}if(P6(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return Zm(e);return!1},L6=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n=0)},mp=function(e){var t=[],n=[];return e.forEach(function(u,s){var i=!!u.scopeParent,r=i?u.scopeParent:u,o=A6(r,i),a=i?mp(u.candidates):r;o===0?i?t.push.apply(t,a):t.push(r):n.push({documentOrder:s,tabIndex:o,item:u,isScope:i,content:a})}),n.sort(D6).reduce(function(u,s){return s.isScope?u.push.apply(u,s.content):u.push(s.content),u},[]).concat(t)},R6=function(e,t){t=t||{};var n;return t.getShadowRoot?n=Uo([e],t.includeContainer,{filter:O0.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:O6}):n=lp(e,t.includeContainer,O0.bind(null,t)),mp(n)},j6=function(e,t){t=t||{};var n;return t.getShadowRoot?n=Uo([e],t.includeContainer,{filter:Ho.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):n=lp(e,t.includeContainer,Ho.bind(null,t)),n},Rs=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return Bs.call(e,Mo)===!1?!1:O0(t,e)},M6=op.concat("iframe:not([inert]):not([inert] *)").join(","),zl=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return Bs.call(e,M6)===!1?!1:Ho(t,e)};function R0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,u=Array(t);n=e.length?{done:!0}:{done:!1,value:e[u++]}},e:function(a){throw a},f:s}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i,r=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var a=n.next();return r=a.done,a},e:function(a){o=!0,i=a},f:function(){try{r||n.return==null||n.return()}finally{if(o)throw i}}}}function V6(e,t,n){return(t=K6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function U6(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function H6(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);t&&(u=u.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,u)}return n}function Qm(e){for(var t=1;t0?e[e.length-1]:null},activateTrap:function(e,t){var n=pu.getActiveTrap(e);t!==n&&pu.pauseTrap(e);var u=e.indexOf(t);u===-1||e.splice(u,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);n!==-1&&e.splice(n,1),pu.unpauseTrap(e)},pauseTrap:function(e){var t=pu.getActiveTrap(e);t?._setPausedState(!0)},unpauseTrap:function(e){var t=pu.getActiveTrap(e);t&&!t._isManuallyPaused()&&t._setPausedState(!1)}},G6=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Y6=function(e){return e?.key==="Escape"||e?.key==="Esc"||e?.keyCode===27},Ki=function(e){return e?.key==="Tab"||e?.keyCode===9},Z6=function(e){return Ki(e)&&!e.shiftKey},J6=function(e){return Ki(e)&&e.shiftKey},e4=function(e){return setTimeout(e,0)},Fi=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),u=1;u1&&arguments[1]!==void 0?arguments[1]:{},M=R.hasFallback,$=M===void 0?!1:M,Q=R.params,oe=Q===void 0?[]:Q,fe=s[B];if(typeof fe=="function"&&(fe=fe.apply(void 0,W6(oe))),fe===!0&&(fe=void 0),!fe){if(fe===void 0||fe===!1)return fe;throw new Error("`".concat(B,"` was specified but was not a node, or did not return a node"))}var be=fe;if(typeof fe=="string"){try{be=n.querySelector(fe)}catch(w){throw new Error("`".concat(B,'` appears to be an invalid selector; error="').concat(w.message,'"'),{cause:w})}if(!be&&!$)throw new Error("`".concat(B,"` as selector refers to no known node"))}return be},l=function(B){var R=B.activeElement;return R?R.shadowRoot&&R.shadowRoot.activeElement!==null?l(R.shadowRoot):R:null},d=function(){var B=c("initialFocus",{hasFallback:!0});if(B===!1)return!1;if(B===void 0||B&&!zl(B,s.tabbableOptions)){var R=l(n);if(a(R)>=0)B=R;else{var M=i.tabbableGroups[0],$=M&&M.firstTabbableNode;B=$||c("fallbackFocus")}}else B===null&&(B=c("fallbackFocus"));if(!B)throw new Error("Your focus-trap needs to have at least one focusable element");return B},f=function(){if(i.containerGroups=i.containers.map(function(B){var R=R6(B,s.tabbableOptions),M=j6(B,s.tabbableOptions),$=R.length>0?R[0]:void 0,Q=R.length>0?R[R.length-1]:void 0,oe=M.find(function(w){return Rs(w)}),fe=M.slice().reverse().find(function(w){return Rs(w)}),be=!!R.find(function(w){return cs(w)>0});return{container:B,tabbableNodes:R,focusableNodes:M,posTabIndexesFound:be,firstTabbableNode:$,lastTabbableNode:Q,firstDomTabbableNode:oe,lastDomTabbableNode:fe,nextTabbableNode:function(w){var De=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Ie=R.indexOf(w);return Ie<0?De?M.slice(M.indexOf(w)+1).find(function(F){return Rs(F)}):M.slice(0,M.indexOf(w)).reverse().find(function(F){return Rs(F)}):R[Ie+(De?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(B){return B.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(B){return B.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},g=function(B){if(B!==!1){if(B===l(n)){i.mostRecentlyFocusedNode=B;return}if(!B||!B.focus){g(d());return}B.focus({preventScroll:!!s.preventScroll}),i.mostRecentlyFocusedNode=B,G6(B)&&B.select()}},h=function(B){var R=c("setReturnFocus",{params:[B]});return R||(R===!1?!1:B)},E=function(B){var R=B.target,M=B.event,$=B.isBackward,Q=$===void 0?!1:$;R=R||Yr(M),f();var oe=null;if(i.tabbableGroups.length>0){var fe=a(R,M),be=fe>=0?i.containerGroups[fe]:void 0;if(fe<0)Q?oe=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:oe=i.tabbableGroups[0].firstTabbableNode;else if(Q){var w=i.tabbableGroups.findIndex(function(me){var qe=me.firstTabbableNode;return R===qe});if(w<0&&(be.container===R||zl(R,s.tabbableOptions)&&!Rs(R,s.tabbableOptions)&&!be.nextTabbableNode(R,!1))&&(w=fe),w>=0){var De=w===0?i.tabbableGroups.length-1:w-1,Ie=i.tabbableGroups[De];oe=cs(R)>=0?Ie.lastTabbableNode:Ie.lastDomTabbableNode}else Ki(M)||(oe=be.nextTabbableNode(R,!1))}else{var F=i.tabbableGroups.findIndex(function(me){var qe=me.lastTabbableNode;return R===qe});if(F<0&&(be.container===R||zl(R,s.tabbableOptions)&&!Rs(R,s.tabbableOptions)&&!be.nextTabbableNode(R))&&(F=fe),F>=0){var Oe=F===i.tabbableGroups.length-1?0:F+1,Be=i.tabbableGroups[Oe];oe=cs(R)>=0?Be.firstTabbableNode:Be.firstDomTabbableNode}else Ki(M)||(oe=be.nextTabbableNode(R))}}else oe=c("fallbackFocus");return oe},b=function(B){var R=Yr(B);if(!(a(R,B)>=0)){if(Fi(s.clickOutsideDeactivates,B)){r.deactivate({returnFocus:s.returnFocusOnDeactivate});return}Fi(s.allowOutsideClick,B)||B.preventDefault()}},C=function(B){var R=Yr(B),M=a(R,B)>=0;if(M||R instanceof Document)M&&(i.mostRecentlyFocusedNode=R);else{B.stopImmediatePropagation();var $,Q=!0;if(i.mostRecentlyFocusedNode)if(cs(i.mostRecentlyFocusedNode)>0){var oe=a(i.mostRecentlyFocusedNode),fe=i.containerGroups[oe].tabbableNodes;if(fe.length>0){var be=fe.findIndex(function(w){return w===i.mostRecentlyFocusedNode});be>=0&&(s.isKeyForward(i.recentNavEvent)?be+1=0&&($=fe[be-1],Q=!1))}}else i.containerGroups.some(function(w){return w.tabbableNodes.some(function(De){return cs(De)>0})})||(Q=!1);else Q=!1;Q&&($=E({target:i.mostRecentlyFocusedNode,isBackward:s.isKeyBackward(i.recentNavEvent)})),g($||i.mostRecentlyFocusedNode||d())}i.recentNavEvent=void 0},x=function(B){var R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=B;var M=E({event:B,isBackward:R});M&&(Ki(B)&&B.preventDefault(),g(M))},k=function(B){(s.isKeyForward(B)||s.isKeyBackward(B))&&x(B,s.isKeyBackward(B))},S=function(B){Y6(B)&&Fi(s.escapeDeactivates,B)!==!1&&(B.preventDefault(),r.deactivate())},H=function(B){var R=Yr(B);a(R,B)>=0||Fi(s.clickOutsideDeactivates,B)||Fi(s.allowOutsideClick,B)||(B.preventDefault(),B.stopImmediatePropagation())},T=function(){if(i.active){pu.activateTrap(u,r);var B;return s.delayInitialFocus?B=new Promise(function(R){i.delayInitialFocusTimer=e4(function(){g(d()),R()})}):g(d()),n.addEventListener("focusin",C,!0),n.addEventListener("mousedown",b,{capture:!0,passive:!1}),n.addEventListener("touchstart",b,{capture:!0,passive:!1}),n.addEventListener("click",H,{capture:!0,passive:!1}),n.addEventListener("keydown",k,{capture:!0,passive:!1}),n.addEventListener("keydown",S),B}},U=function(B){i.active&&!i.paused&&r._setSubtreeIsolation(!1),i.adjacentElements.clear(),i.alreadySilent.clear();var R=new Set,M=new Set,$=Jm(B),Q;try{for($.s();!(Q=$.n()).done;){var oe=Q.value;R.add(oe);for(var fe=typeof ShadowRoot<"u"&&oe.getRootNode()instanceof ShadowRoot,be=oe;be;){R.add(be);var w=be.parentElement,De=[];w?De=w.children:!w&&fe&&(De=be.getRootNode().children,w=be.getRootNode().host,fe=typeof ShadowRoot<"u"&&w.getRootNode()instanceof ShadowRoot);var Ie=Jm(De),F;try{for(Ie.s();!(F=Ie.n()).done;){var Oe=F.value;M.add(Oe)}}catch(Be){Ie.e(Be)}finally{Ie.f()}be=w}}}catch(Be){$.e(Be)}finally{$.f()}R.forEach(function(Be){M.delete(Be)}),i.adjacentElements=M},X=function(){if(i.active)return n.removeEventListener("focusin",C,!0),n.removeEventListener("mousedown",b,!0),n.removeEventListener("touchstart",b,!0),n.removeEventListener("click",H,!0),n.removeEventListener("keydown",k,!0),n.removeEventListener("keydown",S),r},K=function(B){var R=i.mostRecentlyFocusedNode;if(R){var M=B.some(function(Q){var oe=Array.from(Q.removedNodes);return oe.some(function(fe){return fe===R||typeof fe.contains=="function"&&fe.contains(R)})});if(M&&i.containers.some(function(Q){return Q?.isConnected})){f();var $=d();g($)}}},D=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(K):void 0,O=function(){D&&(D.disconnect(),i.active&&!i.paused&&i.containers.map(function(B){D.observe(B,{subtree:!0,childList:!0})}))};return r={get active(){return i.active},get paused(){return i.paused},activate:function(B){if(i.active)return this;var R=o(B,"onActivate"),M=o(B,"onPostActivate"),$=o(B,"checkCanFocusTrap"),Q=pu.getActiveTrap(u),oe=!1;if(Q&&!Q.paused){var fe;(fe=Q._setSubtreeIsolation)===null||fe===void 0||fe.call(Q,!1),oe=!0}try{$||f(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=l(n),R?.({trap:r});var be=function(){$&&f();var De=function(){r._setSubtreeIsolation(!0),O(),M?.({trap:r})},Ie=T();Ie?Ie.then(De):De()};if($)return $(i.containers.concat()).then(be,be),this;be()}catch(De){if(Q===pu.getActiveTrap(u)&&oe){var w;(w=Q._setSubtreeIsolation)===null||w===void 0||w.call(Q,!0)}throw De}return this},deactivate:function(B){if(!i.active)return this;var R=Qm({onDeactivate:s.onDeactivate,onPostDeactivate:s.onPostDeactivate,checkCanReturnFocus:s.checkCanReturnFocus},B);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,i.paused||r._setSubtreeIsolation(!1),i.alreadySilent.clear(),X(),i.active=!1,i.paused=!1,O(),pu.deactivateTrap(u,r);var M=o(R,"onDeactivate"),$=o(R,"onPostDeactivate"),Q=o(R,"checkCanReturnFocus"),oe=o(R,"delayReturnFocus"),fe=o(R,"returnFocus","returnFocusOnDeactivate");M?.({trap:r});var be=function(){fe&&g(h(i.nodeFocusedBeforeActivation)),$?.({trap:r})},w=function(){oe&&fe?e4(be):be()};return fe&&Q?(Q(h(i.nodeFocusedBeforeActivation)).then(w,w),this):(w(),this)},pause:function(B){return i.active?(i.manuallyPaused=!0,this._setPausedState(!0,B)):this},unpause:function(B){return i.active?(i.manuallyPaused=!1,u[u.length-1]!==this?this:this._setPausedState(!1,B)):this},updateContainerElements:function(B){var R=[].concat(B).filter(Boolean);return i.containers=R.map(function(M){return typeof M=="string"?n.querySelector(M):M}),s.isolateSubtrees&&U(i.containers),i.active&&(f(),i.paused||r._setSubtreeIsolation(!0)),O(),this}},Object.defineProperties(r,{_isManuallyPaused:{value:function(){return i.manuallyPaused}},_setPausedState:{value:function(B,R){if(i.paused===B)return this;if(i.paused=B,B){var M=o(R,"onPause"),$=o(R,"onPostPause");M?.({trap:r}),X(),r._setSubtreeIsolation(!1),O(),$?.({trap:r})}else{var Q=o(R,"onUnpause"),oe=o(R,"onPostUnpause");Q?.({trap:r});var fe=function(){f();var be=function(){r._setSubtreeIsolation(!0),O(),oe?.({trap:r})},w=T();w?w.then(be):be()};fe()}return this}},_setSubtreeIsolation:{value:function(B){s.isolateSubtrees&&i.adjacentElements.forEach(function(R){var M;B?s.isolateSubtrees==="aria-hidden"?((R.ariaHidden==="true"||((M=R.getAttribute("aria-hidden"))===null||M===void 0?void 0:M.toLowerCase())==="true")&&i.alreadySilent.add(R),R.setAttribute("aria-hidden","true")):((R.inert||R.hasAttribute("inert"))&&i.alreadySilent.add(R),R.setAttribute("inert",!0)):i.alreadySilent.has(R)||(s.isolateSubtrees==="aria-hidden"?R.removeAttribute("aria-hidden"):R.removeAttribute("inert"))})}}}),r.updateContainerElements(e),r};function pr(){return window._nc_focus_trap??=[],window._nc_focus_trap}function Q6(){let e=[];return{pause(){e=[...pr()];for(const t of e)t.pause()},unpause(){if(e.length===pr().length)for(const t of e)t.unpause();e=[]}}}function e2(e,t={}){const n=Q6();qt(e,()=>{Rt(t.disabled)||(Rt(e)?n.pause():n.unpause())}),Sn(()=>{n.unpause()})}const t2=["top","right","bottom","left"],t4=["start","end"],n4=t2.reduce((e,t)=>e.concat(t,t+"-"+t4[0],t+"-"+t4[1]),[]),hr=Math.min,j0=Math.max,n2={left:"right",right:"left",bottom:"top",top:"bottom"};function pp(e,t,n){return j0(e,hr(t,n))}function Fs(e,t){return typeof e=="function"?e(t):e}function Au(e){return e.split("-")[0]}function In(e){return e.split("-")[1]}function hp(e){return e==="x"?"y":"x"}function Tc(e){return e==="y"?"height":"width"}function Eu(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function zc(e){return hp(Eu(e))}function vp(e,t,n){n===void 0&&(n=!1);const u=In(e),s=zc(e),i=Tc(s);let r=s==="x"?u===(n?"end":"start")?"right":"left":u==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(r=qo(r)),[r,qo(r)]}function u2(e){const t=qo(e);return[Wo(e),t,Wo(t)]}function Wo(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const u4=["left","right"],s4=["right","left"],s2=["top","bottom"],i2=["bottom","top"];function r2(e,t,n){switch(e){case"top":case"bottom":return n?t?s4:u4:t?u4:s4;case"left":case"right":return t?s2:i2;default:return[]}}function o2(e,t,n,u){const s=In(e);let i=r2(Au(e),n==="start",u);return s&&(i=i.map(r=>r+"-"+s),t&&(i=i.concat(i.map(Wo)))),i}function qo(e){const t=Au(e);return n2[t]+e.slice(t.length)}function a2(e){var t,n,u,s;return{top:(t=e.top)!=null?t:0,right:(n=e.right)!=null?n:0,bottom:(u=e.bottom)!=null?u:0,left:(s=e.left)!=null?s:0}}function Ep(e){return typeof e!="number"?a2(e):{top:e,right:e,bottom:e,left:e}}function Gi(e){const{x:t,y:n,width:u,height:s}=e;return{width:u,height:s,top:n,left:t,right:t+u,bottom:n+s,x:t,y:n}}function i4(e,t,n){let{reference:u,floating:s}=e;const i=Eu(t),r=zc(t),o=Tc(r),a=Au(t),c=i==="y",l=u.x+u.width/2-s.width/2,d=u.y+u.height/2-s.height/2,f=u[o]/2-s[o]/2;let g;switch(a){case"top":g={x:l,y:u.y-s.height};break;case"bottom":g={x:l,y:u.y+u.height};break;case"right":g={x:u.x+u.width,y:d};break;case"left":g={x:u.x-s.width,y:d};break;default:g={x:u.x,y:u.y}}const h=In(t);return h&&(g[r]+=f*(h==="end"?1:-1)*(n&&c?-1:1)),g}async function l2(e,t){var n;t===void 0&&(t={});const{x:u,y:s,platform:i,rects:r,elements:o,strategy:a}=e,{boundary:c="clippingAncestors",rootBoundary:l="viewport",elementContext:d="floating",altBoundary:f=!1,padding:g=0}=Fs(t,e),h=Ep(g),E=o[f?d==="floating"?"reference":"floating":d],b=Gi(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(E)))==null||n?E:E.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:a})),C=d==="floating"?{x:u,y:s,width:r.floating.width,height:r.floating.height}:r.reference,x=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),k=await(i.isElement==null?void 0:i.isElement(x))&&await(i.getScale==null?void 0:i.getScale(x))||{x:1,y:1},S=Gi(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:C,offsetParent:x,strategy:a}):C);return{top:(b.top-S.top+h.top)/k.y,bottom:(S.bottom-b.bottom+h.bottom)/k.y,left:(b.left-S.left+h.left)/k.x,right:(S.right-b.right+h.right)/k.x}}const c2=50,d2=async(e,t,n)=>{const{placement:u="bottom",strategy:s="absolute",middleware:i=[],platform:r}=n,o=r.detectOverflow?r:{...r,detectOverflow:l2},a=await(r.isRTL==null?void 0:r.isRTL(t));let c=await r.getElementRects({reference:e,floating:t,strategy:s}),{x:l,y:d}=i4(c,u,a),f=u,g=0;const h={};for(let E=0;E({name:"arrow",options:e,async fn(t){const{x:n,y:u,placement:s,rects:i,platform:r,elements:o,middlewareData:a}=t,{element:c,padding:l=0}=Fs(e,t)||{};if(c==null)return{};const d=Ep(l),f={x:n,y:u},g=zc(s),h=Tc(g),E=await r.getDimensions(c),b=g==="y",C=b?"top":"left",x=b?"bottom":"right",k=b?"clientHeight":"clientWidth",S=i.reference[h]+i.reference[g]-f[g]-i.floating[h],H=f[g]-i.reference[g],T=await(r.getOffsetParent==null?void 0:r.getOffsetParent(c));let U=T?T[k]:0;(!U||!await(r.isElement==null?void 0:r.isElement(T)))&&(U=o.floating[k]||i.floating[h]);const X=S/2-H/2,K=U/2-E[h]/2-1,D=hr(d[C],K),O=hr(d[x],K),B=U-E[h]-O,R=U/2-E[h]/2+X,M=pp(D,R,B),$=!a.arrow&&In(s)!=null&&R!==M&&i.reference[h]/2-(RIn(u)===e),...n.filter(u=>In(u)!==e)]:n.filter(u=>Au(u)===u)).filter(u=>e?In(u)===e||(t?Wo(u)!==u:!1):!0)}const f2=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,u,s;const{rects:i,middlewareData:r,placement:o,platform:a,elements:c}=t,{crossAxis:l=!1,alignment:d,allowedPlacements:f=n4,autoAlignment:g=!0,...h}=Fs(e,t),E=d!==void 0||f===n4?g2(d||null,g,f):f,b=((n=r.autoPlacement)==null?void 0:n.index)||0,C=E[b];if(C==null)return{};if(o!==C)return{reset:{placement:E[0]}};const x=await a.detectOverflow(t,h),k=vp(C,i,await(a.isRTL==null?void 0:a.isRTL(c.floating))),S=[x[Au(C)],x[k[0]],x[k[1]]],H=[...((u=r.autoPlacement)==null?void 0:u.overflows)||[],{placement:C,overflows:S}],T=E[b+1];if(T)return{data:{index:b+1,overflows:H},reset:{placement:T}};const U=H.map(K=>{const D=In(K.placement);return[K.placement,D&&l?K.overflows.slice(0,2).reduce((O,B)=>O+B,0):K.overflows[0],K.overflows]}).sort((K,D)=>K[1]-D[1]),X=((s=U.filter(K=>K[2].slice(0,In(K[0])?2:3).every(D=>D<=0))[0])==null?void 0:s[0])||U[0][0];return X!==o?{data:{index:b+1,overflows:H},reset:{placement:X}}:{}}}},p2=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,u;const{placement:s,middlewareData:i,rects:r,initialPlacement:o,platform:a,elements:c}=t,{mainAxis:l=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:E=!0,...b}=Fs(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const C=Au(s),x=Eu(o),k=Au(o)===o,S=await(a.isRTL==null?void 0:a.isRTL(c.floating)),H=f||(k||!E?[qo(o)]:u2(o)),T=h!=="none";!f&&T&&H.push(...o2(o,E,h,S));const U=[o,...H],X=await a.detectOverflow(t,b),K=[];let D=((u=i.flip)==null?void 0:u.overflows)||[];if(l&&K.push(X[C]),d){const M=vp(s,r,S);K.push(X[M[0]],X[M[1]])}if(D=[...D,{placement:s,overflows:K}],!K.every(M=>M<=0)){var O,B;const M=(((O=i.flip)==null?void 0:O.index)||0)+1,$=U[M];if($&&(!(d==="alignment"&&x!==Eu($))||D.every(oe=>Eu(oe.placement)===x?oe.overflows[0]>0:!0)))return{data:{index:M,overflows:D},reset:{placement:$}};let Q=(B=D.filter(oe=>oe.overflows[0]<=0).sort((oe,fe)=>oe.overflows[1]-fe.overflows[1])[0])==null?void 0:B.placement;if(!Q)switch(g){case"bestFit":{var R;const oe=(R=D.filter(fe=>{if(T){const be=Eu(fe.placement);return be===x||be==="y"}return!0}).map(fe=>[fe.placement,fe.overflows.filter(be=>be>0).reduce((be,w)=>be+w,0)]).sort((fe,be)=>fe[1]-be[1])[0])==null?void 0:R[0];oe&&(Q=oe);break}case"initialPlacement":Q=o;break}if(s!==Q)return{reset:{placement:Q}}}return{}}}},h2=new Set(["left","top"]);async function v2(e,t){const{placement:n,platform:u,elements:s}=e,i=await(u.isRTL==null?void 0:u.isRTL(s.floating)),r=Au(n),o=In(n),a=Eu(n)==="y",c=h2.has(r)?-1:1,l=i&&a?-1:1,d=Fs(t,e);let{mainAxis:f,crossAxis:g,alignmentAxis:h}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return o&&typeof h=="number"&&(g=o==="end"?h*-1:h),a?{x:g*l,y:f*c}:{x:f*c,y:g*l}}const E2=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,u;const{x:s,y:i,placement:r,middlewareData:o}=t,a=await v2(t,e);return r===((n=o.offset)==null?void 0:n.placement)&&(u=o.arrow)!=null&&u.alignmentOffset?{}:{x:s+a.x,y:i+a.y,data:{...a,placement:r}}}}},C2=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:u,placement:s,platform:i}=t,{mainAxis:r=!0,crossAxis:o=!1,limiter:a={fn:x=>{let{x:k,y:S}=x;return{x:k,y:S}}},...c}=Fs(e,t),l={x:n,y:u},d=await i.detectOverflow(t,c),f=Eu(s),g=hp(f);let h=l[g],E=l[f];const b=(x,k)=>pp(k+d[x==="y"?"top":"left"],k,k-d[x==="y"?"bottom":"right"]);r&&(h=b(g,h)),o&&(E=b(f,E));const C=a.fn({...t,[g]:h,[f]:E});return{...C,data:{x:C.x-n,y:C.y-u,enabled:{[g]:r,[f]:o}}}}}},y2=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:u,platform:s,elements:i}=t,{apply:r=()=>{},...o}=Fs(e,t),a=await s.detectOverflow(t,o),c=Au(n),l=In(n),d=Eu(n)==="y",{width:f,height:g}=u.floating;let h,E;c==="top"||c==="bottom"?(h=c,E=l===(await(s.isRTL==null?void 0:s.isRTL(i.floating))?"start":"end")?"left":"right"):(E=c,h=l==="end"?"top":"bottom");const b=g-a.top-a.bottom,C=f-a.left-a.right,x=hr(g-a[h],b),k=hr(f-a[E],C),S=t.middlewareData.shift,H=!S;let T=x,U=k;S!=null&&S.enabled.x&&(U=C),S!=null&&S.enabled.y&&(T=b),H&&!l&&(d?U=f-2*j0(a.left,a.right):T=g-2*j0(a.top,a.bottom)),await r({...t,availableWidth:U,availableHeight:T});const X=await s.getDimensions(i.floating);return f!==X.width||g!==X.height?{reset:{rects:!0}}:{}}}};function Bn(e){var t;return((t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Xn(e){return Bn(e).getComputedStyle(e)}const r4=Math.min,Yi=Math.max,Ko=Math.round;function Cp(e){const t=Xn(e);let n=parseFloat(t.width),u=parseFloat(t.height);const s=e.offsetWidth,i=e.offsetHeight,r=Ko(n)!==s||Ko(u)!==i;return r&&(n=s,u=i),{width:n,height:u,fallback:r}}function Gu(e){return xp(e)?(e.nodeName||"").toLowerCase():""}let Zr;function yp(){if(Zr)return Zr;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(Zr=e.brands.map((t=>t.brand+"/"+t.version)).join(" "),Zr):navigator.userAgent}function Qn(e){return e instanceof Bn(e).HTMLElement}function Uu(e){return e instanceof Bn(e).Element}function xp(e){return e instanceof Bn(e).Node}function o4(e){return typeof ShadowRoot>"u"?!1:e instanceof Bn(e).ShadowRoot||e instanceof ShadowRoot}function Ia(e){const{overflow:t,overflowX:n,overflowY:u,display:s}=Xn(e);return/auto|scroll|overlay|hidden|clip/.test(t+u+n)&&!["inline","contents"].includes(s)}function x2(e){return["table","td","th"].includes(Gu(e))}function M0(e){const t=/firefox/i.test(yp()),n=Xn(e),u=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||!!u&&u!=="none"||t&&n.willChange==="filter"||t&&!!n.filter&&n.filter!=="none"||["transform","perspective"].some((s=>n.willChange.includes(s)))||["paint","layout","strict","content"].some((s=>{const i=n.contain;return i!=null&&i.includes(s)}))}function wp(){return!/^((?!chrome|android).)*safari/i.test(yp())}function Pc(e){return["html","body","#document"].includes(Gu(e))}function bp(e){return Uu(e)?e:e.contextElement}const Bp={x:1,y:1};function ni(e){const t=bp(e);if(!Qn(t))return Bp;const n=t.getBoundingClientRect(),{width:u,height:s,fallback:i}=Cp(t);let r=(i?Ko(n.width):n.width)/u,o=(i?Ko(n.height):n.height)/s;return r&&Number.isFinite(r)||(r=1),o&&Number.isFinite(o)||(o=1),{x:r,y:o}}function vr(e,t,n,u){var s,i;t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),o=bp(e);let a=Bp;t&&(u?Uu(u)&&(a=ni(u)):a=ni(e));const c=o?Bn(o):window,l=!wp()&&n;let d=(r.left+(l&&((s=c.visualViewport)==null?void 0:s.offsetLeft)||0))/a.x,f=(r.top+(l&&((i=c.visualViewport)==null?void 0:i.offsetTop)||0))/a.y,g=r.width/a.x,h=r.height/a.y;if(o){const E=Bn(o),b=u&&Uu(u)?Bn(u):u;let C=E.frameElement;for(;C&&u&&b!==E;){const x=ni(C),k=C.getBoundingClientRect(),S=getComputedStyle(C);k.x+=(C.clientLeft+parseFloat(S.paddingLeft))*x.x,k.y+=(C.clientTop+parseFloat(S.paddingTop))*x.y,d*=x.x,f*=x.y,g*=x.x,h*=x.y,d+=k.x,f+=k.y,C=Bn(C).frameElement}}return{width:g,height:h,top:f,right:d+g,bottom:f+h,left:d,x:d,y:f}}function Hu(e){return((xp(e)?e.ownerDocument:e.document)||window.document).documentElement}function La(e){return Uu(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function kp(e){return vr(Hu(e)).left+La(e).scrollLeft}function Er(e){if(Gu(e)==="html")return e;const t=e.assignedSlot||e.parentNode||o4(e)&&e.host||Hu(e);return o4(t)?t.host:t}function Ap(e){const t=Er(e);return Pc(t)?t.ownerDocument.body:Qn(t)&&Ia(t)?t:Ap(t)}function Go(e,t){var n;t===void 0&&(t=[]);const u=Ap(e),s=u===((n=e.ownerDocument)==null?void 0:n.body),i=Bn(u);return s?t.concat(i,i.visualViewport||[],Ia(u)?u:[]):t.concat(u,Go(u))}function a4(e,t,n){return t==="viewport"?Gi((function(u,s){const i=Bn(u),r=Hu(u),o=i.visualViewport;let a=r.clientWidth,c=r.clientHeight,l=0,d=0;if(o){a=o.width,c=o.height;const f=wp();(f||!f&&s==="fixed")&&(l=o.offsetLeft,d=o.offsetTop)}return{width:a,height:c,x:l,y:d}})(e,n)):Uu(t)?Gi((function(u,s){const i=vr(u,!0,s==="fixed"),r=i.top+u.clientTop,o=i.left+u.clientLeft,a=Qn(u)?ni(u):{x:1,y:1};return{width:u.clientWidth*a.x,height:u.clientHeight*a.y,x:o*a.x,y:r*a.y}})(t,n)):Gi((function(u){const s=Hu(u),i=La(u),r=u.ownerDocument.body,o=Yi(s.scrollWidth,s.clientWidth,r.scrollWidth,r.clientWidth),a=Yi(s.scrollHeight,s.clientHeight,r.scrollHeight,r.clientHeight);let c=-i.scrollLeft+kp(u);const l=-i.scrollTop;return Xn(r).direction==="rtl"&&(c+=Yi(s.clientWidth,r.clientWidth)-o),{width:o,height:a,x:c,y:l}})(Hu(e)))}function l4(e){return Qn(e)&&Xn(e).position!=="fixed"?e.offsetParent:null}function c4(e){const t=Bn(e);let n=l4(e);for(;n&&x2(n)&&Xn(n).position==="static";)n=l4(n);return n&&(Gu(n)==="html"||Gu(n)==="body"&&Xn(n).position==="static"&&!M0(n))?t:n||(function(u){let s=Er(u);for(;Qn(s)&&!Pc(s);){if(M0(s))return s;s=Er(s)}return null})(e)||t}function w2(e,t,n){const u=Qn(t),s=Hu(t),i=vr(e,!0,n==="fixed",t);let r={scrollLeft:0,scrollTop:0};const o={x:0,y:0};if(u||!u&&n!=="fixed")if((Gu(t)!=="body"||Ia(s))&&(r=La(t)),Qn(t)){const a=vr(t,!0);o.x=a.x+t.clientLeft,o.y=a.y+t.clientTop}else s&&(o.x=kp(s));return{x:i.left+r.scrollLeft-o.x,y:i.top+r.scrollTop-o.y,width:i.width,height:i.height}}const b2={getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:u,strategy:s}=e;const i=n==="clippingAncestors"?(function(c,l){const d=l.get(c);if(d)return d;let f=Go(c).filter((b=>Uu(b)&&Gu(b)!=="body")),g=null;const h=Xn(c).position==="fixed";let E=h?Er(c):c;for(;Uu(E)&&!Pc(E);){const b=Xn(E),C=M0(E);(h?C||g:C||b.position!=="static"||!g||!["absolute","fixed"].includes(g.position))?g=b:f=f.filter((x=>x!==E)),E=Er(E)}return l.set(c,f),f})(t,this._c):[].concat(n),r=[...i,u],o=r[0],a=r.reduce(((c,l)=>{const d=a4(t,l,s);return c.top=Yi(d.top,c.top),c.right=r4(d.right,c.right),c.bottom=r4(d.bottom,c.bottom),c.left=Yi(d.left,c.left),c}),a4(t,o,s));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:u}=e;const s=Qn(n),i=Hu(n);if(n===i)return t;let r={scrollLeft:0,scrollTop:0},o={x:1,y:1};const a={x:0,y:0};if((s||!s&&u!=="fixed")&&((Gu(n)!=="body"||Ia(i))&&(r=La(n)),Qn(n))){const c=vr(n);o=ni(n),a.x=c.x+n.clientLeft,a.y=c.y+n.clientTop}return{width:t.width*o.x,height:t.height*o.y,x:t.x*o.x-r.scrollLeft*o.x+a.x,y:t.y*o.y-r.scrollTop*o.y+a.y}},isElement:Uu,getDimensions:function(e){return Qn(e)?Cp(e):e.getBoundingClientRect()},getOffsetParent:c4,getDocumentElement:Hu,getScale:ni,async getElementRects(e){let{reference:t,floating:n,strategy:u}=e;const s=this.getOffsetParent||c4,i=this.getDimensions;return{reference:w2(t,await s(n),u),floating:{x:0,y:0,...await i(n)}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>Xn(e).direction==="rtl"},B2=(e,t,n)=>{const u=new Map,s={platform:b2,...n},i={...s.platform,_c:u};return d2(e,t,{...s,platform:i})},Wu={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover"],delay:{show:0,hide:400}}}};function k2(e,t){let n=Wu.themes[e]||{},u;do u=n[t],typeof u>"u"?n.$extend?n=Wu.themes[n.$extend]||{}:(n=null,u=Wu[t]):n=null;while(n);return u}function A2(e){const t=[e];let n=Wu.themes[e]||{};do n.$extend&&!n.$resetCss?(t.push(n.$extend),n=Wu.themes[n.$extend]||{}):n=null;while(n);return t.map(u=>`v-popper--theme-${u}`)}function d4(e){const t=[e];let n=Wu.themes[e]||{};do n.$extend?(t.push(n.$extend),n=Wu.themes[n.$extend]||{}):n=null;while(n);return t}let Cr=!1;if(typeof window<"u"){Cr=!1;try{const e=Object.defineProperty({},"passive",{get(){Cr=!0}});window.addEventListener("test",null,e)}catch{}}let Dp=!1;typeof window<"u"&&typeof navigator<"u"&&(Dp=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const D2=["auto","top","bottom","left","right"].reduce((e,t)=>e.concat([t,`${t}-start`,`${t}-end`]),[]),m4={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},g4={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function f4(e,t){const n=e.indexOf(t);n!==-1&&e.splice(n,1)}function Pl(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}const Nn=[];let ss=null;const p4={};function h4(e){let t=p4[e];return t||(t=p4[e]=[]),t}let $0=function(){};typeof window<"u"&&($0=window.Element);function Je(e){return function(t){return k2(t.theme,e)}}const Il="__floating-vue__popper",Fp=()=>Me({name:"VPopper",provide(){return{[Il]:{parentPopper:this}}},inject:{[Il]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:Je("disabled")},positioningDisabled:{type:Boolean,default:Je("positioningDisabled")},placement:{type:String,default:Je("placement"),validator:e=>D2.includes(e)},delay:{type:[String,Number,Object],default:Je("delay")},distance:{type:[Number,String],default:Je("distance")},skidding:{type:[Number,String],default:Je("skidding")},triggers:{type:Array,default:Je("triggers")},showTriggers:{type:[Array,Function],default:Je("showTriggers")},hideTriggers:{type:[Array,Function],default:Je("hideTriggers")},popperTriggers:{type:Array,default:Je("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:Je("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:Je("popperHideTriggers")},container:{type:[String,Object,$0,Boolean],default:Je("container")},boundary:{type:[String,$0],default:Je("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:Je("strategy")},autoHide:{type:[Boolean,Function],default:Je("autoHide")},handleResize:{type:Boolean,default:Je("handleResize")},instantMove:{type:Boolean,default:Je("instantMove")},eagerMount:{type:Boolean,default:Je("eagerMount")},popperClass:{type:[String,Array,Object],default:Je("popperClass")},computeTransformOrigin:{type:Boolean,default:Je("computeTransformOrigin")},autoMinSize:{type:Boolean,default:Je("autoMinSize")},autoSize:{type:[Boolean,String],default:Je("autoSize")},autoMaxSize:{type:Boolean,default:Je("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:Je("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:Je("preventOverflow")},overflowPadding:{type:[Number,String],default:Je("overflowPadding")},arrowPadding:{type:[Number,String],default:Je("arrowPadding")},arrowOverflow:{type:Boolean,default:Je("arrowOverflow")},flip:{type:Boolean,default:Je("flip")},shift:{type:Boolean,default:Je("shift")},shiftCrossAxis:{type:Boolean,default:Je("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:Je("noAutoFocus")},disposeTimeout:{type:Number,default:Je("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},randomId:`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var e;return(e=this[Il])==null?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return((e=this.popperTriggers)==null?void 0:e.includes("hover"))||((t=this.popperShowTriggers)==null?void 0:t.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((e,t)=>(e[t]="$_computePosition",e),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:n=!1}={}){var u,s;(u=this.parentPopper)!=null&&u.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(n||!this.disabled)&&(((s=this.parentPopper)==null?void 0:s.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var e;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((e=this.referenceNode)==null?void 0:e.call(this))??this.$el,this.$_targetNodes=this.targetNodes().filter(t=>t.nodeType===t.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.isDisposed||(this.isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const e={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&e.middleware.push(E2({mainAxis:this.distance,crossAxis:this.skidding}));const t=this.placement.startsWith("auto");if(t?e.middleware.push(f2({alignment:this.placement.split("-")[1]??""})):e.placement=this.placement,this.preventOverflow&&(this.shift&&e.middleware.push(C2({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!t&&this.flip&&e.middleware.push(p2({padding:this.overflowPadding,boundary:this.boundary}))),e.middleware.push(m2({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&e.middleware.push({name:"arrowOverflow",fn:({placement:u,rects:s,middlewareData:i})=>{let r;const{centerOffset:o}=i.arrow;return u.startsWith("top")||u.startsWith("bottom")?r=Math.abs(o)>s.reference.width/2:r=Math.abs(o)>s.reference.height/2,{data:{overflow:r}}}}),this.autoMinSize||this.autoSize){const u=this.autoSize?this.autoSize:this.autoMinSize?"min":null;e.middleware.push({name:"autoSize",fn:({rects:s,placement:i,middlewareData:r})=>{var o;if((o=r.autoSize)!=null&&o.skip)return{};let a,c;return i.startsWith("top")||i.startsWith("bottom")?a=s.reference.width:c=s.reference.height,this.$_innerNode.style[u==="min"?"minWidth":u==="max"?"maxWidth":"width"]=a!=null?`${a}px`:null,this.$_innerNode.style[u==="min"?"minHeight":u==="max"?"maxHeight":"height"]=c!=null?`${c}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,e.middleware.push(y2({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:u,availableHeight:s})=>{this.$_innerNode.style.maxWidth=u!=null?`${u}px`:null,this.$_innerNode.style.maxHeight=s!=null?`${s}px`:null}})));const n=await B2(this.$_referenceNode,this.$_popperNode,e);Object.assign(this.result,{x:n.x,y:n.y,placement:n.placement,strategy:n.strategy,arrow:{...n.middlewareData.arrow,...n.middlewareData.arrowOverflow}})},$_scheduleShow(e,t=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),ss&&this.instantMove&&ss.instantMove&&ss!==this.parentPopper){ss.$_applyHide(!0),this.$_applyShow(!0);return}t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e,t=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(ss=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,!this.isShown&&(this.$_ensureTeleport(),await Pl(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Go(this.$_referenceNode),...Go(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const t=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),u=n.parentNode.getBoundingClientRect(),s=t.x+t.width/2-(u.left+n.offsetLeft),i=t.y+t.height/2-(u.top+n.offsetTop);this.result.transformOrigin=`${s}px ${i}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let n=0;n0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,f4(Nn,this),Nn.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of d4(this.theme)){const u=h4(n);f4(u,this),u.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}ss===this&&(ss=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=this.disposeTimeout;t!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await Pl(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let e=this.container;if(typeof e=="string"?e=window.document.querySelector(e):e===!1&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,m4,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],m4,this.popperTriggers,this.popperShowTriggers,e);const t=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,g4,this.triggers,this.hideTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],g4,this.popperTriggers,this.popperHideTriggers,t)},$_registerEventListeners(e,t,n){this.$_events.push({targetNodes:e,eventType:t,handler:n}),e.forEach(u=>u.addEventListener(t,n,Cr?{passive:!0}:void 0))},$_registerTriggerListeners(e,t,n,u,s){let i=n;u!=null&&(i=typeof u=="function"?u(i):u),i.forEach(r=>{const o=t[r];o&&this.$_registerEventListeners(e,o,s)})},$_removeEventListeners(e){const t=[];this.$_events.forEach(n=>{const{targetNodes:u,eventType:s,handler:i}=n;!e||e===s?u.forEach(r=>r.removeEventListener(s,i)):t.push(n)}),this.$_events=t},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const n of this.$_targetNodes){const u=n.getAttribute(e);u&&(n.removeAttribute(e),n.setAttribute(t,u))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const n in e){const u=e[n];u==null?t.removeAttribute(n):t.setAttribute(n,u)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$_referenceNode.getBoundingClientRect();if(Zi>=e.left&&Zi<=e.right&&Ji>=e.top&&Ji<=e.bottom){const t=this.$_popperNode.getBoundingClientRect(),n=Zi-Ou,u=Ji-Ru,s=t.left+t.width/2-Ou+(t.top+t.height/2)-Ru+t.width+t.height,i=Ou+n*s,r=Ru+u*s;return Jr(Ou,Ru,i,r,t.left,t.top,t.left,t.bottom)||Jr(Ou,Ru,i,r,t.left,t.top,t.right,t.top)||Jr(Ou,Ru,i,r,t.right,t.top,t.right,t.bottom)||Jr(Ou,Ru,i,r,t.left,t.bottom,t.right,t.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(Dp){const e=Cr?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",t=>v4(t),e),document.addEventListener("touchend",t=>E4(t,!0),e)}else window.addEventListener("mousedown",e=>v4(e),!0),window.addEventListener("click",e=>E4(e,!1),!0);window.addEventListener("resize",_2)}function v4(e,t){for(let n=0;n=0;u--){const s=Nn[u];try{const i=s.containsGlobalTarget=s.mouseDownContains||s.popperNode().contains(e.target);s.pendingHide=!1,requestAnimationFrame(()=>{if(s.pendingHide=!1,!n[s.randomId]&&C4(s,i,e)){if(s.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&i){let o=s.parentPopper;for(;o;)n[o.randomId]=!0,o=o.parentPopper;return}let r=s.parentPopper;for(;r&&C4(r,r.containsGlobalTarget,e);)r.$_handleGlobalClose(e,t),r=r.parentPopper}})}catch{}}}function C4(e,t,n){return n.closeAllPopover||n.closePopover&&t||S2(e,n)&&!t}function S2(e,t){if(typeof e.autoHide=="function"){const n=e.autoHide(t);return e.lastAutoHide=n,n}return e.autoHide}function _2(){for(let e=0;e{Ou=Zi,Ru=Ji,Zi=e.clientX,Ji=e.clientY},Cr?{passive:!0}:void 0);function Jr(e,t,n,u,s,i,r,o){const a=((r-s)*(t-i)-(o-i)*(e-s))/((o-i)*(n-e)-(r-s)*(u-t)),c=((n-e)*(t-i)-(u-t)*(e-s))/((o-i)*(n-e)-(r-s)*(u-t));return a>=0&&a<=1&&c>=0&&c<=1}const N2={extends:Fp()},Ic=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n};function T2(e,t,n,u,s,i){return _(),W("div",{ref:"reference",class:ze(["v-popper",{"v-popper--shown":e.slotData.isShown}])},[Pe(e.$slots,"default",yn(an(e.slotData)))],2)}const z2=Ic(N2,[["render",T2]]);function P2(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var n=e.indexOf("Trident/");if(n>0){var u=e.indexOf("rv:");return parseInt(e.substring(u+3,e.indexOf(".",u)),10)}var s=e.indexOf("Edge/");return s>0?parseInt(e.substring(s+5,e.indexOf(".",s)),10):-1}let lo;function V0(){V0.init||(V0.init=!0,lo=P2()!==-1)}var co={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){V0(),ku(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",lo&&this.$el.appendChild(e),e.data="about:blank",lo||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!lo&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const I2=eE();X1("data-v-b329ee4c");const L2={class:"resize-observer",tabindex:"-1"};Q1();const O2=I2((e,t,n,u,s,i)=>(_(),we("div",L2)));co.render=O2,co.__scopeId="data-v-b329ee4c",co.__file="src/components/ResizeObserver.vue";const Sp=(e="theme")=>({computed:{themeClass(){return A2(this[e])}}}),R2=Me({name:"VPopperContent",components:{ResizeObserver:co},mixins:[Sp()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(e){return e!=null&&!isNaN(e)?`${e}px`:null}}}),j2=["id","aria-hidden","tabindex","data-popper-placement"],M2={ref:"inner",class:"v-popper__inner"},$2=Z("div",{class:"v-popper__arrow-outer"},null,-1),V2=Z("div",{class:"v-popper__arrow-inner"},null,-1),U2=[$2,V2];function H2(e,t,n,u,s,i){const r=hn("ResizeObserver");return _(),W("div",{id:e.popperId,ref:"popover",class:ze(["v-popper__popper",[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}]]),style:zn(e.result?{position:e.result.strategy,transform:`translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`}:void 0),"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0,onKeyup:t[2]||(t[2]=gr(o=>e.autoHide&&e.$emit("hide"),["esc"]))},[Z("div",{class:"v-popper__backdrop",onClick:t[0]||(t[0]=o=>e.autoHide&&e.$emit("hide"))}),Z("div",{class:"v-popper__wrapper",style:zn(e.result?{transformOrigin:e.result.transformOrigin}:void 0)},[Z("div",M2,[e.mounted?(_(),W(et,{key:0},[Z("div",null,[Pe(e.$slots,"default")]),e.handleResize?(_(),we(r,{key:0,onNotify:t[1]||(t[1]=o=>e.$emit("resize",o))})):ye("",!0)],64)):ye("",!0)],512),Z("div",{ref:"arrow",class:"v-popper__arrow-container",style:zn(e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0)},U2,4)],4)],46,j2)}const W2=Ic(R2,[["render",H2]]),q2={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}};let U0=function(){};typeof window<"u"&&(U0=window.Element);const K2=Me({name:"VPopperWrapper",components:{Popper:z2,PopperContent:W2},mixins:[q2,Sp("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,U0,Boolean],default:void 0},boundary:{type:[String,U0],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(e=>e!==this.$refs.popperContent.$el)}}});function G2(e,t,n,u,s,i){const r=hn("PopperContent"),o=hn("Popper");return _(),we(o,Ze({ref:"popper"},e.$props,{theme:e.finalTheme,"target-nodes":e.getTargetNodes,"popper-node":()=>e.$refs.popperContent.$el,class:[e.themeClass],onShow:t[0]||(t[0]=()=>e.$emit("show")),onHide:t[1]||(t[1]=()=>e.$emit("hide")),"onUpdate:shown":t[2]||(t[2]=a=>e.$emit("update:shown",a)),onApplyShow:t[3]||(t[3]=()=>e.$emit("apply-show")),onApplyHide:t[4]||(t[4]=()=>e.$emit("apply-hide")),onCloseGroup:t[5]||(t[5]=()=>e.$emit("close-group")),onCloseDirective:t[6]||(t[6]=()=>e.$emit("close-directive")),onAutoHide:t[7]||(t[7]=()=>e.$emit("auto-hide")),onResize:t[8]||(t[8]=()=>e.$emit("resize"))}),{default:he(({popperId:a,isShown:c,shouldMountContent:l,skipTransition:d,autoHide:f,show:g,hide:h,handleResize:E,onResize:b,classes:C,result:x})=>[Pe(e.$slots,"default",{shown:c,show:g,hide:h}),Ee(r,{ref:"popperContent","popper-id":a,theme:e.finalTheme,shown:c,mounted:l,"skip-transition":d,"auto-hide":f,"handle-resize":E,classes:C,result:x,onHide:h,onResize:b},{default:he(()=>[Pe(e.$slots,"popper",{shown:c,hide:h})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const H0=Ic(K2,[["render",G2]]),Y2={...H0,name:"VDropdown",vPopperTheme:"dropdown"};({...H0},{...H0}),Fp();const y4=Wu,Z2=Y2;function J2(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var _p={exports:{}},xt=_p.exports={},Hn,Wn;function W0(){throw new Error("setTimeout has not been defined")}function q0(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Hn=setTimeout:Hn=W0}catch{Hn=W0}try{typeof clearTimeout=="function"?Wn=clearTimeout:Wn=q0}catch{Wn=q0}})();function Np(e){if(Hn===setTimeout)return setTimeout(e,0);if((Hn===W0||!Hn)&&setTimeout)return Hn=setTimeout,setTimeout(e,0);try{return Hn(e,0)}catch{try{return Hn.call(null,e,0)}catch{return Hn.call(this,e,0)}}}function X2(e){if(Wn===clearTimeout)return clearTimeout(e);if((Wn===q0||!Wn)&&clearTimeout)return Wn=clearTimeout,clearTimeout(e);try{return Wn(e)}catch{try{return Wn.call(null,e)}catch{return Wn.call(this,e)}}}var Cu=[],ui=!1,fs,mo=-1;function Q2(){!ui||!fs||(ui=!1,fs.length?Cu=fs.concat(Cu):mo=-1,Cu.length&&Tp())}function Tp(){if(!ui){var e=Np(Q2);ui=!0;for(var t=Cu.length;t;){for(fs=Cu,Cu=[];++mo1)for(var n=1;nconsole.error("SEMVER",...t):()=>{},Ll}var Ol,w4;function Ip(){if(w4)return Ol;w4=1;const e="2.0.0",t=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,u=16,s=t-6;return Ol={MAX_LENGTH:t,MAX_SAFE_COMPONENT_LENGTH:u,MAX_SAFE_BUILD_LENGTH:s,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},Ol}var Rl={exports:{}},b4;function tx(){return b4||(b4=1,(function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:u,MAX_LENGTH:s}=Ip(),i=Pp();t=e.exports={};const r=t.re=[],o=t.safeRe=[],a=t.src=[],c=t.safeSrc=[],l=t.t={};let d=0;const f="[a-zA-Z0-9-]",g=[["\\s",1],["\\d",s],[f,u]],h=b=>{for(const[C,x]of g)b=b.split(`${C}*`).join(`${C}{0,${x}}`).split(`${C}+`).join(`${C}{1,${x}}`);return b},E=(b,C,x)=>{const k=h(C),S=d++;i(b,S,C),l[b]=S,a[S]=C,c[S]=k,r[S]=new RegExp(C,x?"g":void 0),o[S]=new RegExp(k,x?"g":void 0)};E("NUMERICIDENTIFIER","0|[1-9]\\d*"),E("NUMERICIDENTIFIERLOOSE","\\d+"),E("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`),E("MAINVERSION",`(${a[l.NUMERICIDENTIFIER]})\\.(${a[l.NUMERICIDENTIFIER]})\\.(${a[l.NUMERICIDENTIFIER]})`),E("MAINVERSIONLOOSE",`(${a[l.NUMERICIDENTIFIERLOOSE]})\\.(${a[l.NUMERICIDENTIFIERLOOSE]})\\.(${a[l.NUMERICIDENTIFIERLOOSE]})`),E("PRERELEASEIDENTIFIER",`(?:${a[l.NONNUMERICIDENTIFIER]}|${a[l.NUMERICIDENTIFIER]})`),E("PRERELEASEIDENTIFIERLOOSE",`(?:${a[l.NONNUMERICIDENTIFIER]}|${a[l.NUMERICIDENTIFIERLOOSE]})`),E("PRERELEASE",`(?:-(${a[l.PRERELEASEIDENTIFIER]}(?:\\.${a[l.PRERELEASEIDENTIFIER]})*))`),E("PRERELEASELOOSE",`(?:-?(${a[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[l.PRERELEASEIDENTIFIERLOOSE]})*))`),E("BUILDIDENTIFIER",`${f}+`),E("BUILD",`(?:\\+(${a[l.BUILDIDENTIFIER]}(?:\\.${a[l.BUILDIDENTIFIER]})*))`),E("FULLPLAIN",`v?${a[l.MAINVERSION]}${a[l.PRERELEASE]}?${a[l.BUILD]}?`),E("FULL",`^${a[l.FULLPLAIN]}$`),E("LOOSEPLAIN",`[v=\\s]*${a[l.MAINVERSIONLOOSE]}${a[l.PRERELEASELOOSE]}?${a[l.BUILD]}?`),E("LOOSE",`^${a[l.LOOSEPLAIN]}$`),E("GTLT","((?:<|>)?=?)"),E("XRANGEIDENTIFIERLOOSE",`${a[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),E("XRANGEIDENTIFIER",`${a[l.NUMERICIDENTIFIER]}|x|X|\\*`),E("XRANGEPLAIN",`[v=\\s]*(${a[l.XRANGEIDENTIFIER]})(?:\\.(${a[l.XRANGEIDENTIFIER]})(?:\\.(${a[l.XRANGEIDENTIFIER]})(?:${a[l.PRERELEASE]})?${a[l.BUILD]}?)?)?`),E("XRANGEPLAINLOOSE",`[v=\\s]*(${a[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[l.XRANGEIDENTIFIERLOOSE]})(?:${a[l.PRERELEASELOOSE]})?${a[l.BUILD]}?)?)?`),E("XRANGE",`^${a[l.GTLT]}\\s*${a[l.XRANGEPLAIN]}$`),E("XRANGELOOSE",`^${a[l.GTLT]}\\s*${a[l.XRANGEPLAINLOOSE]}$`),E("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),E("COERCE",`${a[l.COERCEPLAIN]}(?:$|[^\\d])`),E("COERCEFULL",a[l.COERCEPLAIN]+`(?:${a[l.PRERELEASE]})?(?:${a[l.BUILD]})?(?:$|[^\\d])`),E("COERCERTL",a[l.COERCE],!0),E("COERCERTLFULL",a[l.COERCEFULL],!0),E("LONETILDE","(?:~>?)"),E("TILDETRIM",`(\\s*)${a[l.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",E("TILDE",`^${a[l.LONETILDE]}${a[l.XRANGEPLAIN]}$`),E("TILDELOOSE",`^${a[l.LONETILDE]}${a[l.XRANGEPLAINLOOSE]}$`),E("LONECARET","(?:\\^)"),E("CARETTRIM",`(\\s*)${a[l.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",E("CARET",`^${a[l.LONECARET]}${a[l.XRANGEPLAIN]}$`),E("CARETLOOSE",`^${a[l.LONECARET]}${a[l.XRANGEPLAINLOOSE]}$`),E("COMPARATORLOOSE",`^${a[l.GTLT]}\\s*(${a[l.LOOSEPLAIN]})$|^$`),E("COMPARATOR",`^${a[l.GTLT]}\\s*(${a[l.FULLPLAIN]})$|^$`),E("COMPARATORTRIM",`(\\s*)${a[l.GTLT]}\\s*(${a[l.LOOSEPLAIN]}|${a[l.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",E("HYPHENRANGE",`^\\s*(${a[l.XRANGEPLAIN]})\\s+-\\s+(${a[l.XRANGEPLAIN]})\\s*$`),E("HYPHENRANGELOOSE",`^\\s*(${a[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[l.XRANGEPLAINLOOSE]})\\s*$`),E("STAR","(<|>)?=?\\s*\\*"),E("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),E("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Rl,Rl.exports)),Rl.exports}var jl,B4;function nx(){if(B4)return jl;B4=1;const e=Object.freeze({loose:!0}),t=Object.freeze({});return jl=n=>n?typeof n!="object"?e:n:t,jl}var Ml,k4;function ux(){if(k4)return Ml;k4=1;const e=/^[0-9]+$/,t=(n,u)=>{if(typeof n=="number"&&typeof u=="number")return n===u?0:nt(u,n)},Ml}var $l,A4;function Lp(){if(A4)return $l;A4=1;const e=Pp(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:n}=Ip(),{safeRe:u,t:s}=tx(),i=nx(),{compareIdentifiers:r}=ux();class o{constructor(c,l){if(l=i(l),c instanceof o){if(c.loose===!!l.loose&&c.includePrerelease===!!l.includePrerelease)return c;c=c.version}else if(typeof c!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof c}".`);if(c.length>t)throw new TypeError(`version is longer than ${t} characters`);e("SemVer",c,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const d=c.trim().match(l.loose?u[s.LOOSE]:u[s.FULL]);if(!d)throw new TypeError(`Invalid Version: ${c}`);if(this.raw=c,this.major=+d[1],this.minor=+d[2],this.patch=+d[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");d[4]?this.prerelease=d[4].split(".").map(f=>{if(/^[0-9]+$/.test(f)){const g=+f;if(g>=0&&gc.major?1:this.minorc.minor?1:this.patchc.patch?1:0}comparePre(c){if(c instanceof o||(c=new o(c,this.options)),this.prerelease.length&&!c.prerelease.length)return-1;if(!this.prerelease.length&&c.prerelease.length)return 1;if(!this.prerelease.length&&!c.prerelease.length)return 0;let l=0;do{const d=this.prerelease[l],f=c.prerelease[l];if(e("prerelease compare",l,d,f),d===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(d===void 0)return-1;if(d!==f)return r(d,f)}while(++l)}compareBuild(c){c instanceof o||(c=new o(c,this.options));let l=0;do{const d=this.build[l],f=c.build[l];if(e("build compare",l,d,f),d===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(d===void 0)return-1;if(d!==f)return r(d,f)}while(++l)}inc(c,l,d){if(c.startsWith("pre")){if(!l&&d===!1)throw new Error("invalid increment argument: identifier is empty");if(l){const f=`-${l}`.match(this.options.loose?u[s.PRERELEASELOOSE]:u[s.PRERELEASE]);if(!f||f[1]!==l)throw new Error(`invalid identifier: ${l}`)}}switch(c){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",l,d);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",l,d);break;case"prepatch":this.prerelease.length=0,this.inc("patch",l,d),this.inc("pre",l,d);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",l,d),this.inc("pre",l,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 f=Number(d)?1:0;if(this.prerelease.length===0)this.prerelease=[f];else{let g=this.prerelease.length;for(;--g>=0;)typeof this.prerelease[g]=="number"&&(this.prerelease[g]++,g=-2);if(g===-1){if(l===this.prerelease.join(".")&&d===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(f)}}if(l){let g=[l,f];d===!1&&(g=[l]),r(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=g):this.prerelease=g}break}default:throw new Error(`invalid increment argument: ${c}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return $l=o,$l}var Vl,D4;function sx(){if(D4)return Vl;D4=1;const e=Lp();return Vl=(t,n)=>new e(t,n).major,Vl}var ix=sx();const F4=Sr(ix);var Ul,S4;function rx(){if(S4)return Ul;S4=1;const e=Lp();return Ul=(t,n,u=!1)=>{if(t instanceof e)return t;try{return new e(t,n)}catch(s){if(!u)return null;throw s}},Ul}var Hl,_4;function ox(){if(_4)return Hl;_4=1;const e=rx();return Hl=(t,n)=>{const u=e(t,n);return u?u.version:null},Hl}var ax=ox();const lx=Sr(ax);class cx{bus;constructor(t){typeof t.getVersion!="function"||!lx(t.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):F4(t.getVersion())!==F4(this.getVersion())&&console.warn("Proxying an event bus of version "+t.getVersion()+" with "+this.getVersion()),this.bus=t}getVersion(){return"3.3.3"}subscribe(t,n){this.bus.subscribe(t,n)}unsubscribe(t,n){this.bus.unsubscribe(t,n)}emit(t,...n){this.bus.emit(t,...n)}}class dx{handlers=new Map;getVersion(){return"3.3.3"}subscribe(t,n){this.handlers.set(t,(this.handlers.get(t)||[]).concat(n))}unsubscribe(t,n){this.handlers.set(t,(this.handlers.get(t)||[]).filter(u=>u!==n))}emit(t,...n){(this.handlers.get(t)||[]).forEach(u=>{try{u(n[0])}catch(s){console.error("could not invoke event listener",s)}})}}let Si=null;function Lc(){return Si!==null?Si: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"?Si=new cx(window._nc_event_bus):Si=window._nc_event_bus=new dx,Si)}function Oc(e,t){Lc().subscribe(e,t)}function Op(e,t){Lc().unsubscribe(e,t)}function mx(e,...t){Lc().emit(e,...t)}class Yo{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(t,n,u){this.scope=`${u?Yo.GLOBAL_SCOPE_PERSISTENT:Yo.GLOBAL_SCOPE_VOLATILE}_${btoa(t)}_`,this.wrapped=n}scopeKey(t){return`${this.scope}${t}`}setItem(t,n){this.wrapped.setItem(this.scopeKey(t),n)}getItem(t){return this.wrapped.getItem(this.scopeKey(t))}removeItem(t){this.wrapped.removeItem(this.scopeKey(t))}clear(){Object.keys(this.wrapped).filter(t=>t.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class gx{appId;persisted=!1;clearedOnLogout=!1;constructor(t){this.appId=t}persist(t=!0){return this.persisted=t,this}clearOnLogout(t=!0){return this.clearedOnLogout=t,this}build(){return new Yo(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function fx(e){return new gx(e)}Ex();function px(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function Rp(e){if(!e||typeof e!="string")throw new Error("Invalid CSRF token given",{cause:{token:e}});globalThis._nc_auth_requestToken!==e&&(globalThis._nc_auth_requestToken=e,globalThis.document&&(document.head.dataset.requesttoken=e),mx("csrf-token-update",{token:e,_internal:!0}))}async function hx(){const e=mi("/csrftoken"),t=await fetch(e);if(!t.ok)throw new Error("Could not fetch CSRF token from API",{cause:t});try{const{token:n}=await t.json();return Rp(n),n}catch(n){throw new Error("Could not parse CSRF token from API response",{cause:n})}}function vx(e){const t=async({token:n})=>{try{e(n)}catch(u){console.error("Error updating CSRF token observer",u)}};return Oc("csrf-token-update",t),()=>Op("csrf-token-update",t)}function Ex(){Oc("csrf-token-update",({token:e,_internal:t})=>{t||Rp(e)})}fx("public").persist().build();let js;function N4(e,t){return e?e.getAttribute(t):null}function jp(){if(js!==void 0)return js;const e=document?.getElementsByTagName("head")[0];if(!e)return null;const t=N4(e,"data-user");return t===null?(js=null,js):(js={uid:t,displayName:N4(e,"data-user-displayname"),isAdmin:!!window._oc_isadmin},js)}var bt=(e=>(e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warn=2]="Warn",e[e.Error=3]="Error",e[e.Fatal=4]="Fatal",e))(bt||{});class Cx{context;constructor(t){this.context=t||{}}formatMessage(t,n,u){let s="["+bt[n].toUpperCase()+"] ";return u&&u.app&&(s+=u.app+": "),typeof t=="string"?s+t:(s+=`Unexpected ${t.name}`,t.message&&(s+=` "${t.message}"`),n===bt.Debug&&t.stack&&(s+=` +const p3="logreader",o1="7.0.0",Ji=globalThis||void 0||self;function dc(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Me={},as=[],xn=()=>{},h3=()=>!1,ra=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),oa=e=>e.startsWith("onUpdate:"),Et=Object.assign,mc=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},a1=Object.prototype.hasOwnProperty,Xe=(e,t)=>a1.call(e,t),Be=Array.isArray,Pu=e=>br(e)==="[object Map]",po=e=>br(e)==="[object Set]",Rd=e=>br(e)==="[object Date]",Ne=e=>typeof e=="function",nt=e=>typeof e=="string",dn=e=>typeof e=="symbol",Ge=e=>e!==null&&typeof e=="object",v3=e=>(Ge(e)||Ne(e))&&Ne(e.then)&&Ne(e.catch),E3=Object.prototype.toString,br=e=>E3.call(e),l1=e=>br(e).slice(8,-1),C3=e=>br(e)==="[object Object]",aa=e=>nt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ii=dc(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),la=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},c1=/-\w/g,Mt=la(e=>e.replace(c1,t=>t.slice(1).toUpperCase())),d1=/\B([A-Z])/g,bu=la(e=>e.replace(d1,"-$1").toLowerCase()),ca=la(e=>e.charAt(0).toUpperCase()+e.slice(1)),to=la(e=>e?`on${ca(e)}`:""),Dt=(e,t)=>!Object.is(e,t),rl=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:u,value:n})},m1=e=>{const t=parseFloat(e);return isNaN(t)?e:t},g1=e=>{const t=nt(e)?Number(e):NaN;return isNaN(t)?e:t};let jd;const ho=()=>jd||(jd=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Ji<"u"?Ji:{});function _n(e){if(Be(e)){const t={};for(let n=0;nn.startsWith("/*")?"":n).split(f1).forEach(n=>{if(n){const u=n.split(p1);u.length>1&&(t[u[0].trim()]=u[1].trim())}}),t}function Ae(e){let t="";if(nt(e))t=e;else if(Be(e))for(let n=0;n!!(e&&e.__v_isRef===!0),te=e=>nt(e)?e:e==null?"":Be(e)||Ge(e)&&(e.toString===E3||!Ne(e.toString))?b3(e)?te(e.value):JSON.stringify(e,w3,2):String(e),w3=(e,t)=>b3(t)?w3(e,t.value):Pu(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[u,s],i)=>(n[ol(u,i)+" =>"]=s,n),{})}:po(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ol(n))}:dn(t)?ol(t):Ge(t)&&!Be(t)&&!C3(t)?String(t):t,ol=(e,t="")=>{var n;return dn(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function w1(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:String(e)}let Ct;class k3{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ct&&(Ct.active?(this.parent=Ct,this.index=(Ct.scopes||(Ct.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const u=this.scopes.slice();for(t=0,n=u.length;t0&&--this._on===0){if(Ct===this)Ct=this.prevScope;else{let t=Ct;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,u;for(n=0,u=this.effects.length;n0)return;if(Ri){let t=Ri;for(Ri=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Pi;){let t=Pi;for(Pi=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(u){e||(e=u)}t=n}}if(e)throw e}function _3(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function N3(e){let t,n=e.depsTail,u=n;for(;u;){const s=u.prevDep;u.version===-1?(u===n&&(n=s),hc(u),k1(u)):t=u,u.dep.activeLink=u.prevActiveLink,u.prevActiveLink=void 0,u=s}e.deps=t,e.depsTail=n}function m0(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(T3(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function T3(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Qi)||(e.globalVersion=Qi,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!m0(e))))return;e.flags|=2;const t=e.dep,n=et,u=Nn;et=e,Nn=!0;try{_3(e);const s=e.fn(e._value);(t.version===0||Dt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{et=n,Nn=u,N3(e),e.flags&=-3}}function hc(e,t=!1){const{dep:n,prevSub:u,nextSub:s}=e;if(u&&(u.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=u,e.nextSub=void 0),n.subs===e&&(n.subs=u,!u&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)hc(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function k1(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Nn=!0;const z3=[];function Eu(){z3.push(Nn),Nn=!1}function Cu(){const e=z3.pop();Nn=e===void 0?!0:e}function $d(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=et;et=void 0;try{t()}finally{et=n}}}let Qi=0;class B1{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ma{constructor(t){this.computed=t,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(t){if(!et||!Nn||et===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==et)n=this.activeLink=new B1(et,this),et.deps?(n.prevDep=et.depsTail,et.depsTail.nextDep=n,et.depsTail=n):et.deps=et.depsTail=n,O3(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const u=n.nextDep;u.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=u),n.prevDep=et.depsTail,n.nextDep=void 0,et.depsTail.nextDep=n,et.depsTail=n,et.deps===n&&(et.deps=u)}return n}trigger(t){this.version++,Qi++,this.notify(t)}notify(t){fc();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{pc()}}}function O3(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let u=t.deps;u;u=u.nextDep)O3(u)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const vo=new WeakMap,ms=Symbol(""),g0=Symbol(""),er=Symbol("");function Rt(e,t,n){if(Nn&&et){let u=vo.get(e);u||vo.set(e,u=new Map);let s=u.get(n);s||(u.set(n,s=new ma),s.map=u,s.key=n),s.track()}}function au(e,t,n,u,s,i){const r=vo.get(e);if(!r){Qi++;return}const o=a=>{a&&a.trigger()};if(fc(),t==="clear")r.forEach(o);else{const a=Be(e),l=a&&aa(n);if(a&&n==="length"){const c=Number(u);r.forEach((d,g)=>{(g==="length"||g===er||!dn(g)&&g>=c)&&o(d)})}else switch((n!==void 0||r.has(void 0))&&o(r.get(n)),l&&o(r.get(er)),t){case"add":a?l&&o(r.get("length")):(o(r.get(ms)),Pu(e)&&o(r.get(g0)));break;case"delete":a||(o(r.get(ms)),Pu(e)&&o(r.get(g0)));break;case"set":Pu(e)&&o(r.get(ms));break}}pc()}function A1(e,t){const n=vo.get(e);return n&&n.get(t)}function Ts(e){const t=We(e);return t===e||(Rt(t,"iterate",er),an(e))?t:Gn(e)?qn(e)?t.map(n=>Es(wn(n))):t.map(Es):t.map(wn)}function ga(e){return Rt(e=We(e),"iterate",er),e}function Vn(e,t){return Gn(e)?Es(qn(e)?wn(t):t):wn(t)}const D1={__proto__:null,[Symbol.iterator](){return ll(this,Symbol.iterator,e=>Vn(this,e))},concat(...e){return Ts(this).concat(...e.map(t=>Be(t)?Ts(t):t))},entries(){return ll(this,"entries",e=>(e[1]=Vn(this,e[1]),e))},every(e,t){return Qn(this,"every",e,t,void 0,arguments)},filter(e,t){return Qn(this,"filter",e,t,n=>n.map(u=>Vn(this,u)),arguments)},find(e,t){return Qn(this,"find",e,t,n=>Vn(this,n),arguments)},findIndex(e,t){return Qn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Qn(this,"findLast",e,t,n=>Vn(this,n),arguments)},findLastIndex(e,t){return Qn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Qn(this,"forEach",e,t,void 0,arguments)},includes(...e){return cl(this,"includes",e)},indexOf(...e){return cl(this,"indexOf",e)},join(e){return Ts(this).join(e)},lastIndexOf(...e){return cl(this,"lastIndexOf",e)},map(e,t){return Qn(this,"map",e,t,void 0,arguments)},pop(){return fi(this,"pop")},push(...e){return fi(this,"push",e)},reduce(e,...t){return Vd(this,"reduce",e,t)},reduceRight(e,...t){return Vd(this,"reduceRight",e,t)},shift(){return fi(this,"shift")},some(e,t){return Qn(this,"some",e,t,void 0,arguments)},splice(...e){return fi(this,"splice",e)},toReversed(){return Ts(this).toReversed()},toSorted(e){return Ts(this).toSorted(e)},toSpliced(...e){return Ts(this).toSpliced(...e)},unshift(...e){return fi(this,"unshift",e)},values(){return ll(this,"values",e=>Vn(this,e))}};function ll(e,t,n){const u=ga(e),s=u[t]();return u!==e&&!an(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.done||(i.value=n(i.value)),i}),s}const F1=Array.prototype;function Qn(e,t,n,u,s,i){const r=ga(e),o=r!==e&&!an(e),a=r[t];if(a!==F1[t]){const d=a.apply(e,i);return o?wn(d):d}let l=n;r!==e&&(o?l=function(d,g){return n.call(this,Vn(e,d),g,e)}:n.length>2&&(l=function(d,g){return n.call(this,d,g,e)}));const c=a.call(r,l,u);return o&&s?s(c):c}function Vd(e,t,n,u){const s=ga(e),i=s!==e&&!an(e);let r=n,o=!1;s!==e&&(i?(o=u.length===0,r=function(l,c,d){return o&&(o=!1,l=Vn(e,l)),n.call(this,l,Vn(e,c),d,e)}):n.length>3&&(r=function(l,c,d){return n.call(this,l,c,d,e)}));const a=s[t](r,...u);return o?Vn(e,a):a}function cl(e,t,n){const u=We(e);Rt(u,"iterate",er);const s=u[t](...n);return(s===-1||s===!1)&&ha(n[0])?(n[0]=We(n[0]),u[t](...n)):s}function fi(e,t,n=[]){Eu(),fc();const u=We(e)[t].apply(e,n);return pc(),Cu(),u}const S1=dc("__proto__,__v_isRef,__isVue"),L3=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(dn));function _1(e){dn(e)||(e=String(e));const t=We(this);return Rt(t,"has",e),t.hasOwnProperty(e)}class I3{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,u){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return u===(s?i?V3:$3:i?M3:j3).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(u)?t:void 0;const r=Be(t);if(!s){let a;if(r&&(a=D1[n]))return a;if(n==="hasOwnProperty")return _1}const o=Reflect.get(t,n,it(t)?t:u);if((dn(n)?L3.has(n):S1(n))||(s||Rt(t,"get",n),i))return o;if(it(o)){const a=r&&aa(n)?o:o.value;return s&&Ge(a)?tr(a):a}return Ge(o)?s?tr(o):vs(o):o}}class P3 extends I3{constructor(t=!1){super(!1,t)}set(t,n,u,s){let i=t[n];const r=Be(t)&&aa(n);if(!this._isShallow){const l=Gn(i);if(!an(u)&&!Gn(u)&&(i=We(i),u=We(u)),!r&&it(i)&&!it(u))return l||(i.value=u),!0}const o=r?Number(n)e,jr=e=>Reflect.getPrototypeOf(e);function L1(e,t,n){return function(...u){const s=this.__v_raw,i=We(s),r=Pu(i),o=e==="entries"||e===Symbol.iterator&&r,a=e==="keys"&&r,l=s[e](...u),c=n?f0:t?Es:wn;return!t&&Rt(i,"iterate",a?g0:ms),Et(Object.create(l),{next(){const{value:d,done:g}=l.next();return g?{value:d,done:g}:{value:o?[c(d[0]),c(d[1])]:c(d),done:g}}})}}function Mr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function I1(e,t){const n={get(u){const s=this.__v_raw,i=We(s),r=We(u);e||(Dt(u,r)&&Rt(i,"get",u),Rt(i,"get",r));const{has:o}=jr(i),a=t?f0:e?Es:wn;if(o.call(i,u))return a(s.get(u));if(o.call(i,r))return a(s.get(r));s!==i&&s.get(u)},get size(){const u=this.__v_raw;return!e&&Rt(We(u),"iterate",ms),u.size},has(u){const s=this.__v_raw,i=We(s),r=We(u);return e||(Dt(u,r)&&Rt(i,"has",u),Rt(i,"has",r)),u===r?s.has(u):s.has(u)||s.has(r)},forEach(u,s){const i=this,r=i.__v_raw,o=We(r),a=t?f0:e?Es:wn;return!e&&Rt(o,"iterate",ms),r.forEach((l,c)=>u.call(s,a(l),a(c),i))}};return Et(n,e?{add:Mr("add"),set:Mr("set"),delete:Mr("delete"),clear:Mr("clear")}:{add(u){const s=We(this),i=jr(s),r=We(u),o=!t&&!an(u)&&!Gn(u)?r:u;return i.has.call(s,o)||Dt(u,o)&&i.has.call(s,u)||Dt(r,o)&&i.has.call(s,r)||(s.add(o),au(s,"add",o,o)),this},set(u,s){!t&&!an(s)&&!Gn(s)&&(s=We(s));const i=We(this),{has:r,get:o}=jr(i);let a=r.call(i,u);a||(u=We(u),a=r.call(i,u));const l=o.call(i,u);return i.set(u,s),a?Dt(s,l)&&au(i,"set",u,s):au(i,"add",u,s),this},delete(u){const s=We(this),{has:i,get:r}=jr(s);let o=i.call(s,u);o||(u=We(u),o=i.call(s,u)),r&&r.call(s,u);const a=s.delete(u);return o&&au(s,"delete",u,void 0),a},clear(){const u=We(this),s=u.size!==0,i=u.clear();return s&&au(u,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(u=>{n[u]=L1(u,e,t)}),n}function fa(e,t){const n=I1(e,t);return(u,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?u:Reflect.get(Xe(n,s)&&s in u?n:u,s,i)}const P1={get:fa(!1,!1)},R1={get:fa(!1,!0)},j1={get:fa(!0,!1)},M1={get:fa(!0,!0)},j3=new WeakMap,M3=new WeakMap,$3=new WeakMap,V3=new WeakMap;function $1(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function vs(e){return Gn(e)?e:pa(e,!1,N1,P1,j3)}function V1(e){return pa(e,!1,z1,R1,M3)}function tr(e){return pa(e,!0,T1,j1,$3)}function U1(e){return pa(e,!0,O1,M1,V3)}function pa(e,t,n,u,s){if(!Ge(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=s.get(e);if(i)return i;const r=$1(l1(e));if(r===0)return e;const o=new Proxy(e,r===2?u:n);return s.set(e,o),o}function qn(e){return Gn(e)?qn(e.__v_raw):!!(e&&e.__v_isReactive)}function Gn(e){return!!(e&&e.__v_isReadonly)}function an(e){return!!(e&&e.__v_isShallow)}function ha(e){return e?!!e.__v_raw:!1}function We(e){const t=e&&e.__v_raw;return t?We(t):e}function vc(e){return!Xe(e,"__v_skip")&&Object.isExtensible(e)&&y3(e,"__v_skip",!0),e}const wn=e=>Ge(e)?vs(e):e,Es=e=>Ge(e)?tr(e):e;function it(e){return e?e.__v_isRef===!0:!1}function be(e){return U3(e,!1)}function Cs(e){return U3(e,!0)}function U3(e,t){return it(e)?e:new H1(e,t)}class H1{constructor(t,n){this.dep=new ma,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:We(t),this._value=n?t:wn(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,u=this.__v_isShallow||an(t)||Gn(t);t=u?t:We(t),Dt(t,n)&&(this._rawValue=t,this._value=u?t:wn(t),this.dep.trigger())}}function N(e){return it(e)?e.value:e}function Nt(e){return Ne(e)?e():N(e)}const W1={get:(e,t,n)=>t==="__v_raw"?e:N(Reflect.get(e,t,n)),set:(e,t,n,u)=>{const s=e[t];return it(s)&&!it(n)?(s.value=n,!0):Reflect.set(e,t,n,u)}};function H3(e){return qn(e)?e:new Proxy(e,W1)}class q1{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new ma,{get:u,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=u,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function K1(e){return new q1(e)}function Y1(e){const t=Be(e)?new Array(e.length):{};for(const n in e)t[n]=W3(e,n);return t}class G1{constructor(t,n,u){this._object=t,this._defaultValue=u,this.__v_isRef=!0,this._value=void 0,this._key=dn(n)?n:String(n),this._raw=We(t);let s=!0,i=t;if(!Be(t)||dn(this._key)||!aa(this._key))do s=!ha(i)||an(i);while(s&&(i=i.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=N(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&it(this._raw[this._key])){const n=this._object[this._key];if(it(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return A1(this._raw,this._key)}}class Z1{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Eo(e,t,n){return it(e)?e:Ne(e)?new Z1(e):Ge(e)&&arguments.length>1?W3(e,t,n):be(e)}function W3(e,t,n){return new G1(e,t,n)}class X1{constructor(t,n,u){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ma(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Qi-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=u}notify(){if(this.flags|=16,!(this.flags&8)&&et!==this)return S3(this,!0),!0}get value(){const t=this.dep.track();return T3(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function J1(e,t,n=!1){let u,s;return Ne(e)?u=e:(u=e.get,s=e.set),new X1(u,s,n)}const $r={},Co=new WeakMap;let ns;function Q1(e,t=!1,n=ns){if(n){let u=Co.get(n);u||Co.set(n,u=[]),u.push(e)}}function eE(e,t,n=Me){const{immediate:u,deep:s,once:i,scheduler:r,augmentJob:o,call:a}=n,l=k=>s?k:an(k)||s===!1||s===0?lu(k,1):lu(k);let c,d,g,m,f=!1,p=!1;if(it(e)?(d=()=>e.value,f=an(e)):qn(e)?(d=()=>l(e),f=!0):Be(e)?(p=!0,f=e.some(k=>qn(k)||an(k)),d=()=>e.map(k=>{if(it(k))return k.value;if(qn(k))return l(k);if(Ne(k))return a?a(k,2):k()})):Ne(e)?t?d=a?()=>a(e,2):e:d=()=>{if(g){Eu();try{g()}finally{Cu()}}const k=ns;ns=c;try{return a?a(e,3,[m]):e(m)}finally{ns=k}}:d=xn,t&&s){const k=d,j=s===!0?1/0:s;d=()=>lu(k(),j)}const E=gc(),v=()=>{c.stop(),E&&E.active&&mc(E.effects,c)};if(i&&t){const k=t;t=(...j)=>{const F=k(...j);return v(),F}}let C=p?new Array(e.length).fill($r):$r;const y=k=>{if(!(!(c.flags&1)||!c.dirty&&!k))if(t){const j=c.run();if(k||s||f||(p?j.some((F,P)=>Dt(F,C[P])):Dt(j,C))){g&&g();const F=ns;ns=c;try{const P=[j,C===$r?void 0:p&&C[0]===$r?[]:C,m];C=j,a?a(t,3,P):t(...P)}finally{ns=F}}}else c.run()};return o&&o(y),c=new D3(d),c.scheduler=r?()=>r(y,!1):y,m=k=>Q1(k,!1,c),g=c.onStop=()=>{const k=Co.get(c);if(k){if(a)a(k,4);else for(const j of k)j();Co.delete(c)}},t?u?y(!0):C=c.run():r?r(y.bind(null,!0),!0):c.run(),v.pause=c.pause.bind(c),v.resume=c.resume.bind(c),v.stop=v,v}function lu(e,t=1/0,n){if(t<=0||!Ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,it(e))lu(e.value,t,n);else if(Be(e))for(let u=0;u{lu(u,t,n)});else if(C3(e)){for(const u in e)lu(e[u],t,n);for(const u of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,u)&&lu(e[u],t,n)}return e}function wr(e,t,n,u){try{return u?e(...u):e()}catch(s){va(s,t,n)}}function kn(e,t,n,u){if(Ne(e)){const s=wr(e,t,n,u);return s&&v3(s)&&s.catch(i=>{va(i,t,n)}),s}if(Be(e)){const s=[];for(let i=0;i>>1,s=Wt[u],i=nr(s);i=nr(n)?Wt.push(e):Wt.splice(nE(t),0,e),e.flags|=1,K3()}}function K3(){yo||(yo=q3.then(Z3))}function Y3(e){if(!Be(e))Ou&&e.id===-1?Ou.splice(js+1,0,e):e.flags&1||(Gs.push(e),e.flags|=1);else for(let t=0;tnr(n)-nr(u));if(Gs.length=0,Ou){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function Z3(e){try{for(Pn=0;Pnre;function re(e,t=_t,n){if(!t||e._n)return e;const u=(...s)=>{u._d&&Do(-1);const i=xo(t),r=vu.length;let o;try{o=e(...s)}finally{for(let a=vu.length;a>r;a--)Ac();xo(i),u._d&&Do(1)}return o};return u._n=!0,u._c=!0,u._d=!0,u}function Lu(e,t){if(_t===null)return e;const n=Ba(_t),u=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&Ne(t)?t.call(u&&u.proxy):t}}function rE(){return!!(zn()||gs)}const oE=Symbol.for("v-scx"),aE=()=>Tt(oE);function Ca(e,t){return ya(e,null,t)}function lE(e,t){return ya(e,null,{flush:"sync"})}function $t(e,t,n){return ya(e,t,n)}function ya(e,t,n=Me){const{immediate:u,deep:s,flush:i,once:r}=n,o=Et({},n),a=t&&u||!t&&i!=="post";let l;if(or){if(i==="sync"){const m=aE();l=m.__watcherHandles||(m.__watcherHandles=[])}else if(!a){const m=()=>{};return m.stop=xn,m.resume=xn,m.pause=xn,m}}const c=jt;o.call=(m,f,p)=>kn(m,c,f,p);let d=!1;i==="post"?o.scheduler=m=>{Ht(m,c&&c.suspense)}:i!=="sync"&&(d=!0,o.scheduler=(m,f)=>{f?m():Ec(m)}),o.augmentJob=m=>{t&&(m.flags|=4),d&&(m.flags|=2,c&&(m.id=c.uid,m.i=c))};const g=eE(e,t,o);return or&&(l?l.push(g):a&&g()),g}function cE(e,t,n){const u=this.proxy,s=nt(e)?e.includes(".")?X3(u,e):()=>u[e]:e.bind(u,u);let i;Ne(t)?i=t:(i=t.handler,n=t);const r=Br(this),o=ya(s,i.bind(u),n);return r(),o}function X3(e,t){const n=t.split(".");return()=>{let u=e;for(let s=0;se.__isTeleport,ss=e=>e&&(e.disabled||e.disabled===""),dE=e=>e&&(e.defer||e.defer===""),Hd=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Wd=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,h0=(e,t)=>{const n=e&&e.to;return nt(n)?t?t(n):null:n},mE={name:"Teleport",__isTeleport:!0,process(e,t,n,u,s,i,r,o,a,l){const{mc:c,pc:d,pbc:g,o:{insert:m,querySelector:f,createText:p,createComment:E,parentNode:v}}=l,C=ss(t.props);let{dynamicChildren:y}=t;const k=(P,K,$)=>{P.shapeFlag&16&&c(P.children,K,$,s,i,r,o,a)},j=(P=t)=>{const K=ss(P.props),$=P.target=h0(P.props,f),B=v0($,P,p,m);$&&(r!=="svg"&&Hd($)?r="svg":r!=="mathml"&&Wd($)&&(r="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add($),K||(k(P,$,B),Ti(P,!1)))},F=P=>{const K=()=>{if(_u.get(P)===K){if(_u.delete(P),ss(P.props)){const $=v(P.el)||n;k(P,$,P.anchor),Ti(P,!0)}j(P)}};_u.set(P,K),Ht(K,i)};if(e==null){const P=t.el=p(""),K=t.anchor=p("");if(m(P,n,u),m(K,n,u),dE(t.props)||i&&i.pendingBranch){F(t);return}C&&(k(t,n,K),Ti(t,!0)),j()}else{t.el=e.el;const P=t.anchor=e.anchor,K=_u.get(e);if(K){K.flags|=8,_u.delete(e),F(t);return}t.targetStart=e.targetStart;const $=t.target=e.target,B=t.targetAnchor=e.targetAnchor,T=ss(e.props),x=T?n:$,z=T?P:B;if(r==="svg"||Hd($)?r="svg":(r==="mathml"||Wd($))&&(r="mathml"),y?(g(e.dynamicChildren,y,x,s,i,r,o),Bc(e,t,!0)):a||d(e,t,x,z,s,i,r,o,!1),C)T?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Vr(t,n,P,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const L=h0(t.props,f);L&&(t.target=L,Vr(t,L,null,l,0))}else T&&Vr(t,$,B,l,1);Ti(t,C)}},remove(e,t,n,{um:u,o:{remove:s}},i){const{shapeFlag:r,children:o,anchor:a,targetStart:l,targetAnchor:c,target:d,props:g}=e,m=ss(g),f=i||!m,p=_u.get(e);if(p&&(p.flags|=8,_u.delete(e)),d&&(s(l),s(c)),i&&s(a),!p&&(m||d)&&r&16)for(let E=0;E{e.isMounted=!0}),ii(()=>{e.isUnmounting=!0}),e}const pn=[Function,Array],Q3={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:pn,onEnter:pn,onAfterEnter:pn,onEnterCancelled:pn,onBeforeLeave:pn,onLeave:pn,onAfterLeave:pn,onLeaveCancelled:pn,onBeforeAppear:pn,onAppear:pn,onAfterAppear:pn,onAppearCancelled:pn},ef=e=>{const t=e.subTree;return t.component?ef(t.component):t},hE={name:"BaseTransition",props:Q3,setup(e,{slots:t}){const n=zn(),u=pE();return()=>{const s=t.default&&uf(t.default(),!0),i=s&&s.length?tf(s):n.subTree?me():void 0;if(!i)return;const r=We(e),{mode:o}=r;if(u.isLeaving)return dl(i);const a=bo(i);if(!a)return dl(i);let l=E0(a,r,u,n,d=>l=d);a.type!==Ft&&ur(a,l);let c=n.subTree&&bo(n.subTree);if(c&&c.type!==Ft&&!is(c,a)&&ef(n).type!==Ft){let d=E0(c,r,u,n);if(ur(c,d),o==="out-in"&&a.type!==Ft)return u.isLeaving=!0,d.afterLeave=()=>{u.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,c=void 0},dl(i);o==="in-out"&&a.type!==Ft?d.delayLeave=(g,m,f)=>{const p=nf(u,c);p[String(c.key)]=c,g[En]=()=>{m(),g[En]=void 0,delete l.delayedLeave,c=void 0},l.delayedLeave=()=>{f(),delete l.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return i}}};function tf(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Ft){t=n;break}}return t}const vE=hE;function nf(e,t){const{leavingVNodes:n}=e;let u=n.get(t.type);return u||(u=Object.create(null),n.set(t.type,u)),u}function E0(e,t,n,u,s){const{appear:i,mode:r,persisted:o=!1,onBeforeEnter:a,onEnter:l,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:g,onLeave:m,onAfterLeave:f,onLeaveCancelled:p,onBeforeAppear:E,onAppear:v,onAfterAppear:C,onAppearCancelled:y}=t,k=String(e.key),j=nf(n,e),F=($,B)=>{$&&kn($,u,9,B)},P=($,B)=>{const T=B[1];F($,B),Be($)?$.every(x=>x.length<=1)&&T():$.length<=1&&T()},K={mode:r,persisted:o,beforeEnter($){let B=a;if(!n.isMounted)if(i)B=E||a;else return;$[En]&&$[En](!0);const T=j[k];T&&is(e,T)&&T.el[En]&&T.el[En](),F(B,[$])},enter($){if(j[k]===e)return;let B=l,T=c,x=d;if(!n.isMounted)if(i)B=v||l,T=C||c,x=y||d;else return;let z=!1;$[pi]=I=>{z||(z=!0,I?F(x,[$]):F(T,[$]),K.delayedLeave&&K.delayedLeave(),$[pi]=void 0)};const L=$[pi].bind(null,!1);B?P(B,[$,L]):L()},leave($,B){const T=String(e.key);if($[pi]&&$[pi](!0),n.isUnmounting)return B();F(g,[$]);let x=!1;$[En]=L=>{x||(x=!0,B(),L?F(p,[$]):F(f,[$]),$[En]=void 0,j[T]===e&&delete j[T])};const z=$[En].bind(null,!1);j[T]=e,m?P(m,[$,z]):z()},clone($){const B=E0($,t,n,u,s);return s&&s(B),B}};return K}function dl(e){if(ba(e))return e=Vu(e),e.children=null,e}function bo(e){if(!ba(e))return xa(e.type)&&e.children?tf(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Ne(n.default))return n.default()}}function ur(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;ur(xa(n.type)&&bo(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function uf(e,t=!1,n){let u=[],s=0;for(let i=0;i1)for(let i=0;in.value,set:s=>n.value=s})}return n}function qd(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const wo=new WeakMap;function ji(e,t,n,u,s=!1){if(Be(e)){e.forEach((p,E)=>ji(p,t&&(Be(t)?t[E]:t),n,u,s));return}if(Zs(u)&&!s){u.shapeFlag&512&&u.type.__asyncResolved&&u.component.subTree.component&&ji(e,t,n,u.component.subTree);return}const i=u.shapeFlag&4?Ba(u.component):u.el,r=s?null:i,{i:o,r:a}=e,l=t&&t.r,c=o.refs===Me?o.refs={}:o.refs,d=o.setupState,g=We(d),m=d===Me?h3:p=>qd(c,p)?!1:Xe(g,p),f=(p,E)=>!(E&&qd(c,E));if(l!=null&&l!==a){if(Kd(t),nt(l))c[l]=null,m(l)&&(d[l]=null);else if(it(l)){const p=t;f(l,p.k)&&(l.value=null),p.k&&(c[p.k]=null)}}if(Ne(a))wr(a,o,12,[r,c]);else{const p=nt(a),E=it(a);if(p||E){const v=()=>{if(e.f){const C=p?m(a)?d[a]:c[a]:f()||!e.k?a.value:c[e.k];if(s)Be(C)&&mc(C,i);else if(Be(C))C.includes(i)||C.push(i);else if(p)c[a]=[i],m(a)&&(d[a]=c[a]);else{const y=[i];f(a,e.k)&&(a.value=y),e.k&&(c[e.k]=y)}}else p?(c[a]=r,m(a)&&(d[a]=r)):E&&(f(a,e.k)&&(a.value=r),e.k&&(c[e.k]=r))};if(r){const C=()=>{v(),wo.delete(e)};C.id=-1,wo.set(e,C),Ht(C,n)}else Kd(e),v()}}}function Kd(e){const t=wo.get(e);t&&(t.flags|=8,wo.delete(e))}ho().requestIdleCallback,ho().cancelIdleCallback;const Zs=e=>!!e.type.__asyncLoader,ba=e=>e.type.__isKeepAlive;function EE(e,t){rf(e,"a",t)}function CE(e,t){rf(e,"da",t)}function rf(e,t,n=jt){const u=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(wa(t,u,n),n){let s=n.parent;for(;s&&s.parent;)ba(s.parent.vnode)&&yE(u,t,n,s),s=s.parent}}function yE(e,t,n,u){const s=wa(t,e,u,!0);Bn(()=>{mc(u[t],s)},n)}function wa(e,t,n=jt,u=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...r)=>{Eu();const o=Br(n),a=kn(t,n,e,r);return o(),Cu(),a});return u?s.unshift(i):s.push(i),i}}const wu=e=>(t,n=jt)=>{(!or||e==="sp")&&wa(e,(...u)=>t(...u),n)},xE=wu("bm"),Qt=wu("m"),of=wu("bu"),af=wu("u"),ii=wu("bum"),Bn=wu("um"),bE=wu("sp"),wE=wu("rtg"),kE=wu("rtc");function BE(e,t=jt){wa("ec",e,t)}const Cc="components",AE="directives";function mn(e,t){return yc(Cc,e,!0,t)||e}const lf=Symbol.for("v-ndc");function hu(e){return nt(e)?yc(Cc,e,!1)||e:e||lf}function DE(e){return yc(AE,e)}function yc(e,t,n=!0,u=!1){const s=_t||jt;if(s){const i=s.type;if(e===Cc){const o=oC(i,!1);if(o&&(o===t||o===Mt(t)||o===ca(Mt(t))))return i}const r=Yd(s[e]||i[e],t)||Yd(s.appContext[e],t);return!r&&u?i:r}}function Yd(e,t){return e&&(e[t]||e[Mt(t)]||e[ca(Mt(t))])}function Zn(e,t,n,u){let s;const i=n,r=Be(e);if(r||nt(e)){const o=r&&qn(e);let a=!1,l=!1;o&&(a=!an(e),l=Gn(e),e=ga(e)),s=new Array(e.length);for(let c=0,d=e.length;ct(o,a,void 0,i));else{const o=Object.keys(e);s=new Array(o.length);for(let a=0,l=o.length;a{const i=u.fn(...s);return i&&(i.key=u.key),i}:u.fn)}return e}function De(e,t,n,u,s,i){if(n==null&&(n={}),_t.ce||_t.parent&&Zs(_t.parent)&&_t.parent.ce){const l=n,c=Object.keys(l).length>0;return t!=="default"&&(l.name=t),D(),pe(qe,null,[le("slot",l,u&&u())],c?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const o=vu.length;D();let a;try{const l=r&&cf(r(n)),c=n.key||i||l&&l.key;a=pe(qe,{key:(c&&!dn(c)?c:`_${t}`)+(!l&&u?"_fb":"")},l||(u?u():[]),l&&e._===1?64:-2)}catch(l){for(let c=vu.length;c>o;c--)Ac();throw l}finally{r&&r._c&&(r._d=!0)}return!s&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function cf(e){return e.some(t=>ir(t)?!(t.type===Ft||t.type===qe&&!cf(t.children)):!0)?e:null}function ko(e,t){const n={};for(const u in e)n[t&&/[A-Z]/.test(u)?`on:${u}`:to(u)]=e[u];return n}const C0=e=>e?Nf(e)?Ba(e):C0(e.parent):null,Mi=Et(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>C0(e.parent),$root:e=>C0(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>gf(e),$forceUpdate:e=>e.f||(e.f=()=>{Ec(e.update)}),$nextTick:e=>e.n||(e.n=yu.bind(e.proxy)),$watch:e=>cE.bind(e)}),ml=(e,t)=>e!==Me&&!e.__isScriptSetup&&Xe(e,t),FE={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:u,data:s,props:i,accessCache:r,type:o,appContext:a}=e;if(t[0]!=="$"){const g=r[t];if(g!==void 0)switch(g){case 1:return u[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(ml(u,t))return r[t]=1,u[t];if(s!==Me&&Xe(s,t))return r[t]=2,s[t];if(Xe(i,t))return r[t]=3,i[t];if(n!==Me&&Xe(n,t))return r[t]=4,n[t];y0&&(r[t]=0)}}const l=Mi[t];let c,d;if(l)return t==="$attrs"&&Rt(e.attrs,"get",""),l(e);if((c=o.__cssModules)&&(c=c[t]))return c;if(n!==Me&&Xe(n,t))return r[t]=4,n[t];if(d=a.config.globalProperties,Xe(d,t))return d[t]},set({_:e},t,n){const{data:u,setupState:s,ctx:i}=e;return ml(s,t)?(s[t]=n,!0):u!==Me&&Xe(u,t)?(u[t]=n,!0):Xe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:u,appContext:s,props:i,type:r}},o){let a;return!!(n[o]||e!==Me&&o[0]!=="$"&&Xe(e,o)||ml(t,o)||Xe(i,o)||Xe(u,o)||Xe(Mi,o)||Xe(s.config.globalProperties,o)||(a=r.__cssModules)&&a[o])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Xe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function bc(){return df().slots}function SE(){return df().attrs}function df(e){const t=zn();return t.setupContext||(t.setupContext=zf(t))}function Bo(e){return Be(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function $u(e,t){return!e||!t?e||t:Be(e)&&Be(t)?e.concat(t):Et({},Bo(e),Bo(t))}let y0=!0;function _E(e){const t=gf(e),n=e.proxy,u=e.ctx;y0=!1,t.beforeCreate&&Gd(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:r,watch:o,provide:a,inject:l,created:c,beforeMount:d,mounted:g,beforeUpdate:m,updated:f,activated:p,deactivated:E,beforeDestroy:v,beforeUnmount:C,destroyed:y,unmounted:k,render:j,renderTracked:F,renderTriggered:P,errorCaptured:K,serverPrefetch:$,expose:B,inheritAttrs:T,components:x,directives:z,filters:L}=t;if(l&&NE(l,u,null),r)for(const G in r){const ue=r[G];Ne(ue)&&(u[G]=ue.bind(n))}if(s){const G=s.call(n,n);Ge(G)&&(e.data=vs(G))}if(y0=!0,i)for(const G in i){const ue=i[G],oe=Ne(ue)?ue.bind(n,n):Ne(ue.get)?ue.get.bind(n,n):xn,Ee=!Ne(ue)&&Ne(ue.set)?ue.set.bind(n):xn,b=Z({get:oe,set:Ee});Object.defineProperty(u,G,{enumerable:!0,configurable:!0,get:()=>b.value,set:Se=>b.value=Se})}if(o)for(const G in o)mf(o[G],u,n,G);if(a){const G=Ne(a)?a.call(n):a;Reflect.ownKeys(G).forEach(ue=>{p0(ue,G[ue])})}c&&Gd(c,e,"c");function I(G,ue){Be(ue)?ue.forEach(oe=>G(oe.bind(n))):ue&&G(ue.bind(n))}if(I(xE,d),I(Qt,g),I(of,m),I(af,f),I(EE,p),I(CE,E),I(BE,K),I(kE,F),I(wE,P),I(ii,C),I(Bn,k),I(bE,$),Be(B))if(B.length){const G=e.exposed||(e.exposed={});B.forEach(ue=>{Object.defineProperty(G,ue,{get:()=>n[ue],set:oe=>n[ue]=oe,enumerable:!0})})}else e.exposed||(e.exposed={});j&&e.render===xn&&(e.render=j),T!=null&&(e.inheritAttrs=T),x&&(e.components=x),z&&(e.directives=z),$&&sf(e)}function NE(e,t,n=xn){Be(e)&&(e=x0(e));for(const u in e){const s=e[u];let i;Ge(s)?"default"in s?i=Tt(s.from||u,s.default,!0):i=Tt(s.from||u):i=Tt(s),it(i)?Object.defineProperty(t,u,{enumerable:!0,configurable:!0,get:()=>i.value,set:r=>i.value=r}):t[u]=i}}function Gd(e,t,n){kn(Be(e)?e.map(u=>u.bind(t.proxy)):e.bind(t.proxy),t,n)}function mf(e,t,n,u){let s=u.includes(".")?X3(n,u):()=>n[u];if(nt(e)){const i=t[e];Ne(i)&&$t(s,i)}else if(Ne(e))$t(s,e.bind(n));else if(Ge(e))if(Be(e))e.forEach(i=>mf(i,t,n,u));else{const i=Ne(e.handler)?e.handler.bind(n):t[e.handler];Ne(i)&&$t(s,i,e)}}function gf(e){const t=e.type,{mixins:n,extends:u}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:r}}=e.appContext,o=i.get(t);let a;return o?a=o:!s.length&&!n&&!u?a=t:(a={},s.length&&s.forEach(l=>Ao(a,l,r,!0)),Ao(a,t,r)),Ge(t)&&i.set(t,a),a}function Ao(e,t,n,u=!1){const{mixins:s,extends:i}=t;i&&Ao(e,i,n,!0),s&&s.forEach(r=>Ao(e,r,n,!0));for(const r in t)if(!(u&&r==="expose")){const o=TE[r]||n&&n[r];e[r]=o?o(e[r],t[r]):t[r]}return e}const TE={data:Zd,props:Xd,emits:Xd,methods:zi,computed:zi,beforeCreate:Ut,created:Ut,beforeMount:Ut,mounted:Ut,beforeUpdate:Ut,updated:Ut,beforeDestroy:Ut,beforeUnmount:Ut,destroyed:Ut,unmounted:Ut,activated:Ut,deactivated:Ut,errorCaptured:Ut,serverPrefetch:Ut,components:zi,directives:zi,watch:OE,provide:Zd,inject:zE};function Zd(e,t){return t?e?function(){return Et(Ne(e)?e.call(this,this):e,Ne(t)?t.call(this,this):t)}:t:e}function zE(e,t){return zi(x0(e),x0(t))}function x0(e){if(Be(e)){const t={};for(let n=0;n{let c,d=Me,g;return lE(()=>{const m=e[s];Dt(c,m)&&(c=m,l())}),{get(){return a(),n.get?n.get(c):c},set(m){const f=n.set?n.set(m):m;if(!Dt(f,c)&&!(d!==Me&&Dt(m,d)))return;const p=u.vnode.props,E=!!(p&&(t in p||s in p||i in p)&&(`onUpdate:${t}`in p||`onUpdate:${s}`in p||`onUpdate:${i}`in p));E||(c=m,l()),u.emit(`update:${t}`,f),Dt(m,d)&&(Dt(m,f)&&!Dt(f,g)||E&&d!==Me&&!Dt(f,c))&&l(),d=m,g=f}}});return o[Symbol.iterator]=()=>{let a=0;return{next(){return a<2?{value:a++?r||Me:o,done:!1}:{done:!0}}}},o}const pf=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Mt(t)}Modifiers`]||e[`${bu(t)}Modifiers`];function PE(e,t,...n){if(e.isUnmounted)return;const u=e.vnode.props||Me;let s=n;const i=t.startsWith("update:"),r=i&&pf(u,t.slice(7));r&&(r.trim&&(s=n.map(c=>nt(c)?c.trim():c)),r.number&&(s=s.map(m1)));let o,a=u[o=to(t)]||u[o=to(Mt(t))];!a&&i&&(a=u[o=to(bu(t))]),a&&kn(a,e,6,s);const l=u[o+"Once"];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[o])return;e.emitted[o]=!0,kn(l,e,6,s)}}const RE=new WeakMap;function hf(e,t,n=!1){const u=n?RE:t.emitsCache,s=u.get(e);if(s!==void 0)return s;const i=e.emits;let r={},o=!1;if(!Ne(e)){const a=l=>{const c=hf(l,t,!0);c&&(o=!0,Et(r,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!o?(Ge(e)&&u.set(e,null),null):(Be(i)?i.forEach(a=>r[a]=null):Et(r,i),Ge(e)&&u.set(e,r),r)}function ka(e,t){return!e||!ra(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Xe(e,t[0].toLowerCase()+t.slice(1))||Xe(e,bu(t))||Xe(e,t))}function Jd(e){const{type:t,vnode:n,proxy:u,withProxy:s,propsOptions:[i],slots:r,attrs:o,emit:a,render:l,renderCache:c,props:d,data:g,setupState:m,ctx:f,inheritAttrs:p}=e,E=xo(e);let v,C;try{if(n.shapeFlag&4){const k=s||u,j=k;v=Un(l.call(j,k,c,d,m,g,f)),C=o}else{const k=t;v=Un(k.length>1?k(d,{attrs:o,slots:r,emit:a}):k(d,null)),C=t.props?o:jE(o)}}catch(k){vu.length=0,va(k,e,1),v=le(Ft)}let y=v;if(C&&p!==!1){const k=Object.keys(C),{shapeFlag:j}=y;k.length&&j&7&&(i&&k.some(oa)&&(C=ME(C,i)),y=Vu(y,C,!1,!0))}if(n.dirs&&(y=Vu(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition){const k=xa(y.type)&&bo(y)||y;ur(k,n.transition)}return v=y,xo(E),v}const jE=e=>{let t;for(const n in e)(n==="class"||n==="style"||ra(n))&&((t||(t={}))[n]=e[n]);return t},ME=(e,t)=>{const n={};for(const u in e)(!oa(u)||!(u.slice(9)in t))&&(n[u]=e[u]);return n};function $E(e,t,n){const{props:u,children:s,component:i}=e,{props:r,children:o,patchFlag:a}=t,l=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return u?Qd(u,r,l):!!r;if(a&8){const c=t.dynamicProps;for(let d=0;dObject.create(Ef),yf=e=>Object.getPrototypeOf(e)===Ef;function UE(e,t,n,u=!1){const s={},i=Cf();e.propsDefaults=Object.create(null),xf(e,t,s,i);for(const r in e.propsOptions[0])r in s||(s[r]=void 0);n?e.props=u?s:V1(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function HE(e,t,n,u){const{props:s,attrs:i,vnode:{patchFlag:r}}=e,o=We(s),[a]=e.propsOptions;let l=!1;if((u||r>0)&&!(r&16)){if(r&8){const c=e.vnode.dynamicProps;for(let d=0;d{a=!0;const[g,m]=bf(d,t,!0);Et(r,g),m&&o.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!i&&!a)return Ge(e)&&u.set(e,as),as;if(Be(i))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",kc=e=>Be(e)?e.map(Un):[Un(e)],qE=(e,t,n)=>{if(t._n)return t;const u=re((...s)=>kc(t(...s)),n);return u._c=!1,u},wf=(e,t,n)=>{const u=e._ctx;for(const s in e){if(wc(s))continue;const i=e[s];if(Ne(i))t[s]=qE(s,i,u);else if(i!=null){const r=kc(i);t[s]=()=>r}}},kf=(e,t)=>{const n=kc(t);e.slots.default=()=>n},Bf=(e,t,n)=>{for(const u in t)(n||!wc(u))&&(e[u]=t[u])},KE=(e,t,n)=>{const u=e.slots=Cf();if(e.vnode.shapeFlag&32){const s=t._;s?(Bf(u,t,n),n&&y3(u,"_",s,!0)):wf(t,u)}else t&&kf(e,t)},YE=(e,t,n)=>{const{vnode:u,slots:s}=e;let i=!0,r=Me;if(u.shapeFlag&32){const o=t._;o?n&&o===1?i=!1:Bf(s,t,n):(i=!t.$stable,wf(t,s)),r=t}else t&&(kf(e,t),r={default:1});if(i)for(const o in s)!wc(o)&&r[o]==null&&delete s[o]},Ht=QE;function GE(e){return ZE(e)}function ZE(e,t){const n=ho();n.__VUE__=!0;const{insert:u,remove:s,patchProp:i,createElement:r,createText:o,createComment:a,setText:l,setElementText:c,parentNode:d,nextSibling:g,setScopeId:m=xn,insertStaticContent:f}=e,p=(w,S,U,ee=null,J=null,q=null,se=void 0,M=null,ne=!!S.dynamicChildren)=>{if(w===S)return;w&&!is(w,S)&&(ee=Fe(w),ye(w,J,q,!0),w=null),S.patchFlag===-2&&(ne=!1,S.dynamicChildren=null),S.dynamicChildren&&w&&w.dynamicChildren&&w.dynamicChildren.hasOnce&&(S.dynamicChildren===as&&(S.dynamicChildren=[]),S.dynamicChildren.hasOnce=!0);const{type:Y,ref:fe,shapeFlag:ge}=S;switch(Y){case kr:E(w,S,U,ee);break;case Ft:v(w,S,U,ee);break;case no:w==null&&C(S,U,ee,se);break;case qe:x(w,S,U,ee,J,q,se,M,ne);break;default:ge&1?j(w,S,U,ee,J,q,se,M,ne):ge&6?z(w,S,U,ee,J,q,se,M,ne):(ge&64||ge&128)&&Y.process(w,S,U,ee,J,q,se,M,ne,Lt)}fe!=null&&J?ji(fe,w&&w.ref,q,S||w,!S):fe==null&&w&&w.ref!=null&&ji(w.ref,null,q,w,!0)},E=(w,S,U,ee)=>{if(w==null)u(S.el=o(S.children),U,ee);else{const J=S.el=w.el;S.children!==w.children&&l(J,S.children)}},v=(w,S,U,ee)=>{w==null?u(S.el=a(S.children||""),U,ee):S.el=w.el},C=(w,S,U,ee)=>{[w.el,w.anchor]=f(w.children,S,U,ee,w.el,w.anchor)},y=({el:w,anchor:S},U,ee)=>{let J;for(;w&&w!==S;)J=g(w),u(w,U,ee),w=J;u(S,U,ee)},k=({el:w,anchor:S})=>{let U;for(;w&&w!==S;)U=g(w),s(w),w=U;s(S)},j=(w,S,U,ee,J,q,se,M,ne)=>{if(S.type==="svg"?se="svg":S.type==="math"&&(se="mathml"),w==null)F(S,U,ee,J,q,se,M,ne);else{const Y=w.el&&w.el._isVueCE?w.el:null;try{Y&&Y._beginPatch(),$(w,S,J,q,se,M,ne)}finally{Y&&Y._endPatch()}}},F=(w,S,U,ee,J,q,se,M)=>{let ne,Y;const{props:fe,shapeFlag:ge,transition:ve,dirs:Ce}=w;if(ne=w.el=r(w.type,q,fe&&fe.is,fe),ge&8?c(ne,w.children):ge&16&&K(w.children,ne,null,ee,J,gl(w,q),se,M),Ce&&Zu(w,null,ee,"created"),P(ne,w,w.scopeId,se,ee),fe){for(const V in fe)V!=="value"&&!Ii(V)&&i(ne,V,null,fe[V],q,ee);"value"in fe&&i(ne,"value",null,fe.value,q),(Y=fe.onVnodeBeforeMount)&&In(Y,ee,w)}Ce&&Zu(w,null,ee,"beforeMount");const Pe=XE(J,ve);Pe&&ve.beforeEnter(ne),u(ne,S,U),((Y=fe&&fe.onVnodeMounted)||Pe||Ce)&&Ht(()=>{Y&&In(Y,ee,w),Pe&&ve.enter(ne),Ce&&Zu(w,null,ee,"mounted")},J)},P=(w,S,U,ee,J)=>{if(U&&m(w,U),ee)for(let q=0;q{for(let Y=ne;Y{const M=S.el=w.el;let{patchFlag:ne,dynamicChildren:Y,dirs:fe}=S;ne|=w.patchFlag&16;const ge=w.props||Me,ve=S.props||Me;let Ce;if(U&&Xu(U,!1),(Ce=ve.onVnodeBeforeUpdate)&&In(Ce,U,S,w),fe&&Zu(S,w,U,"beforeUpdate"),U&&Xu(U,!0),Y&&(!w.dynamicChildren||w.dynamicChildren.length!==Y.length)&&(ne=0,se=!1,Y=null),(ge.innerHTML&&ve.innerHTML==null||ge.textContent&&ve.textContent==null)&&c(M,""),Y?B(w.dynamicChildren,Y,M,U,ee,gl(S,J),q):se||oe(w,S,M,null,U,ee,gl(S,J),q,!1),ne>0){if(ne&16)T(M,ge,ve,U,J);else if(ne&2&&ge.class!==ve.class&&i(M,"class",null,ve.class,J),ne&4&&i(M,"style",ge.style,ve.style,J),ne&8){const Pe=S.dynamicProps;for(let V=0;V{Ce&&In(Ce,U,S,w),fe&&Zu(S,w,U,"updated")},ee)},B=(w,S,U,ee,J,q,se)=>{for(let M=0;M{if(S!==U){if(S!==Me)for(const q in S)!Ii(q)&&!(q in U)&&i(w,q,S[q],null,J,ee);for(const q in U){if(Ii(q))continue;const se=U[q],M=S[q];se!==M&&q!=="value"&&i(w,q,M,se,J,ee)}"value"in U&&i(w,"value",S.value,U.value,J)}},x=(w,S,U,ee,J,q,se,M,ne)=>{const Y=S.el=w?w.el:o(""),fe=S.anchor=w?w.anchor:o("");let{patchFlag:ge,dynamicChildren:ve,slotScopeIds:Ce}=S;Ce&&(M=M?M.concat(Ce):Ce),w==null?(u(Y,U,ee),u(fe,U,ee),K(S.children||[],U,fe,J,q,se,M,ne)):ge>0&&ge&64&&ve&&w.dynamicChildren&&w.dynamicChildren.length===ve.length?(B(w.dynamicChildren,ve,U,J,q,se,M),(S.key!=null||J&&S===J.subTree)&&Bc(w,S,!0)):oe(w,S,U,fe,J,q,se,M,ne)},z=(w,S,U,ee,J,q,se,M,ne)=>{S.slotScopeIds=M,w==null?S.shapeFlag&512?J.ctx.activate(S,U,ee,se,ne):L(S,U,ee,J,q,se,ne):I(w,S,ne)},L=(w,S,U,ee,J,q,se)=>{const M=w.component=uC(w,ee,J);if(ba(w)&&(M.ctx.renderer=Lt),sC(M,!1,se),M.asyncDep){if(J&&J.registerDep(M,G,se),!w.el){const ne=M.subTree=le(Ft);v(null,ne,S,U),w.placeholder=ne.el}}else G(M,w,S,U,J,q,se)},I=(w,S,U)=>{const ee=S.component=w.component;if($E(w,S,U))if(ee.asyncDep&&!ee.asyncResolved){S.el=w.el,ue(ee,S,U);return}else ee.next=S,ee.update();else S.el=w.el,ee.vnode=S},G=(w,S,U,ee,J,q,se)=>{const M=()=>{if(w.isMounted){let{next:ge,bu:ve,u:Ce,parent:Pe,vnode:V}=w;{const ut=Af(w);if(ut){ge&&(ge.el=V.el,ue(w,ge,se)),ut.asyncDep.then(()=>{Ht(()=>{w.isUnmounted||Y()},J)});return}}let X=ge,ce;Xu(w,!1),ge?(ge.el=V.el,ue(w,ge,se)):ge=V,ve&&rl(ve),(ce=ge.props&&ge.props.onVnodeBeforeUpdate)&&In(ce,Pe,ge,V),Xu(w,!0);const we=Jd(w),Oe=w.subTree;w.subTree=we,p(Oe,we,d(Oe.el),Fe(Oe),w,J,q),ge.el=we.el,X===null&&VE(w,we.el),Ce&&Ht(Ce,J),(ce=ge.props&&ge.props.onVnodeUpdated)&&Ht(()=>In(ce,Pe,ge,V),J)}else{let ge;const{el:ve,props:Ce}=S,{bm:Pe,m:V,parent:X,root:ce,type:we}=w,Oe=Zs(S);Xu(w,!1),Pe&&rl(Pe),!Oe&&(ge=Ce&&Ce.onVnodeBeforeMount)&&In(ge,X,S),Xu(w,!0);{ce.ce&&ce.ce._hasShadowRoot()&&ce.ce._injectChildStyle(we,w.parent?w.parent.type:void 0);const ut=w.subTree=Jd(w);p(null,ut,U,ee,w,J,q),S.el=ut.el}if(V&&Ht(V,J),!Oe&&(ge=Ce&&Ce.onVnodeMounted)){const ut=S;Ht(()=>In(ge,X,ut),J)}(S.shapeFlag&256||X&&Zs(X.vnode)&&X.vnode.shapeFlag&256)&&w.a&&Ht(w.a,J),w.isMounted=!0,S=U=ee=null}};w.scope.on();const ne=w.effect=new D3(M);w.scope.off();const Y=w.update=ne.run.bind(ne),fe=w.job=ne.runIfDirty.bind(ne);fe.i=w,fe.id=w.uid,ne.scheduler=()=>Ec(fe),Xu(w,!0),Y()},ue=(w,S,U)=>{S.component=w;const ee=w.vnode.props;w.vnode=S,w.next=null,HE(w,S.props,ee,U),YE(w,S.children,U),Eu(),Ud(w),Cu()},oe=(w,S,U,ee,J,q,se,M,ne=!1)=>{const Y=w&&w.children,fe=w?w.shapeFlag:0,ge=S.children,{patchFlag:ve,shapeFlag:Ce}=S;if(ve>0){if(ve&128){b(Y,ge,U,ee,J,q,se,M,ne);return}else if(ve&256){Ee(Y,ge,U,ee,J,q,se,M,ne);return}}Ce&8?(fe&16&&he(Y,J,q),ge!==Y&&c(U,ge)):fe&16?Ce&16?b(Y,ge,U,ee,J,q,se,M,ne):he(Y,J,q,!0):(fe&8&&c(U,""),Ce&16&&K(ge,U,ee,J,q,se,M,ne))},Ee=(w,S,U,ee,J,q,se,M,ne)=>{w=w||as,S=S||as;const Y=w.length,fe=S.length,ge=Math.min(Y,fe);let ve;for(ve=0;vefe?he(w,J,q,!0,!1,ge):K(S,U,ee,J,q,se,M,ne,ge)},b=(w,S,U,ee,J,q,se,M,ne)=>{let Y=0;const fe=S.length;let ge=w.length-1,ve=fe-1;for(;Y<=ge&&Y<=ve;){const Ce=w[Y],Pe=S[Y]=ne?ou(S[Y]):Un(S[Y]);if(is(Ce,Pe))p(Ce,Pe,U,null,J,q,se,M,ne);else break;Y++}for(;Y<=ge&&Y<=ve;){const Ce=w[ge],Pe=S[ve]=ne?ou(S[ve]):Un(S[ve]);if(is(Ce,Pe))p(Ce,Pe,U,null,J,q,se,M,ne);else break;ge--,ve--}if(Y>ge){if(Y<=ve){const Ce=ve+1,Pe=Ceve)for(;Y<=ge;)ye(w[Y],J,q,!0),Y++;else{const Ce=Y,Pe=Y,V=new Map;for(Y=Pe;Y<=ve;Y++){const ot=S[Y]=ne?ou(S[Y]):Un(S[Y]);ot.key!=null&&V.set(ot.key,Y)}let X,ce=0;const we=ve-Pe+1;let Oe=!1,ut=0;const wt=new Array(we);for(Y=0;Y=we){ye(ot,J,q,!0);continue}let at;if(ot.key!=null)at=V.get(ot.key);else for(X=Pe;X<=ve;X++)if(wt[X-Pe]===0&&is(ot,S[X])){at=X;break}at===void 0?ye(ot,J,q,!0):(wt[at-Pe]=Y+1,at>=ut?ut=at:Oe=!0,p(ot,S[at],U,null,J,q,se,M,ne),ce++)}const kt=Oe?JE(wt):as;for(X=kt.length-1,Y=we-1;Y>=0;Y--){const ot=Pe+Y,at=S[ot],mt=S[ot+1],qt=ot+1{const{el:q,type:se,transition:M,children:ne,shapeFlag:Y}=w;if(Y&6){Se(w.component.subTree,S,U,ee);return}if(Y&128){w.suspense.move(S,U,ee);return}if(Y&64){se.move(w,S,U,Lt);return}if(se===qe){u(q,S,U);for(let fe=0;feM.enter(q),J));else{const{leave:fe,delayLeave:ge,afterLeave:ve}=M,Ce=()=>{w.ctx.isUnmounted?s(q):u(q,S,U)},Pe=()=>{const V=q._isLeaving||!!q[En];q._isLeaving&&q[En](!0),M.persisted&&!V?Ce():fe(q,()=>{Ce(),ve&&ve()})};ge?ge(q,Ce,Pe):Pe()}else u(q,S,U)},ye=(w,S,U,ee=!1,J=!1)=>{const{type:q,props:se,ref:M,children:ne,dynamicChildren:Y,shapeFlag:fe,patchFlag:ge,dirs:ve,cacheIndex:Ce,memo:Pe}=w;if((ge===-2||Y&&Y.hasOnce)&&(J=!1),M!=null&&(Eu(),ji(M,null,U,w,!0),Cu()),Ce!=null&&(!w.ctx||w.ctx===S)&&(S.renderCache[Ce]=void 0),fe&256){S.ctx.deactivate(w);return}const V=fe&1&&ve,X=!Zs(w);let ce;if(X&&(ce=se&&se.onVnodeBeforeUnmount)&&In(ce,S,w),fe&6)xe(w.component,U,ee);else{if(fe&128){w.suspense.unmount(U,ee);return}V&&Zu(w,null,S,"beforeUnmount"),fe&64?w.type.remove(w,S,U,Lt,ee):Y&&!Y.hasOnce&&(q!==qe||ge>0&&ge&64)?he(Y,S,U,!1,!0):(q===qe&&ge&384||!J&&fe&16)&&he(ne,S,U),ee&&A(w)}const we=Pe!=null&&Ce==null;(X&&(ce=se&&se.onVnodeUnmounted)||V||we)&&Ht(()=>{ce&&In(ce,S,w),V&&Zu(w,null,S,"unmounted"),we&&(w.el=null)},U)},A=w=>{const{type:S,el:U,anchor:ee,transition:J}=w;if(S===qe){Je(U,ee);return}if(S===no){k(w),J&&!J.persisted&&J.afterLeave&&J.afterLeave();return}const q=()=>{s(U),J&&!J.persisted&&J.afterLeave&&J.afterLeave()};if(w.shapeFlag&1&&J&&!J.persisted){const{leave:se,delayLeave:M}=J,ne=()=>se(U,q);M?M(w.el,q,ne):ne()}else q()},Je=(w,S)=>{let U;for(;w!==S;)U=g(w),s(w),w=U;s(S)},xe=(w,S,U)=>{const{bum:ee,scope:J,job:q,subTree:se,um:M,m:ne,a:Y}=w;tm(ne),tm(Y),ee&&rl(ee),J.stop(),q?(q.flags|=8,ye(se,w,S,U)):w.vnode.el&&se&&(se.transition=w.vnode.transition,ye(se,w,S,U)),M&&Ht(M,S),Ht(()=>{w.isUnmounted=!0},S)},he=(w,S,U,ee=!1,J=!1,q=0)=>{for(let se=q;se{if(w.shapeFlag&6)return Fe(w.component.subTree);if(w.shapeFlag&128)return w.suspense.next();const S=g(w.anchor||w.el),U=S&&S[J3];return U?g(U):S};let Ke=!1;const Ot=(w,S,U)=>{let ee;w==null?S._vnode&&(ye(S._vnode,null,null,!0),ee=S._vnode.component):p(S._vnode||null,w,S,null,null,null,U),S._vnode=w,Ke||(Ke=!0,Ud(ee),G3(),Ke=!1)},Lt={p,um:ye,m:Se,r:A,mt:L,mc:K,pc:oe,pbc:B,n:Fe,o:e};return{render:Ot,hydrate:void 0,createApp:IE(Ot)}}function gl({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Xu({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function XE(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Bc(e,t,n=!1){const u=e.children,s=t.children;if(Be(u)&&Be(s))for(let i=0;i>1,e[n[o]]0&&(t[u]=n[i-1]),n[i]=u)}}for(i=n.length,r=n[i-1];i-- >0;)n[i]=r,r=t[r];return n}function Af(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Af(t)}function tm(e){if(e)for(let t=0;te.__isSuspense;function QE(e,t){t&&t.pendingBranch?Be(e)?t.effects.push(...e):t.effects.push(e):Y3(e)}const qe=Symbol.for("v-fgt"),kr=Symbol.for("v-txt"),Ft=Symbol.for("v-cmt"),no=Symbol.for("v-stc"),vu=[];let rn=null;function D(e=!1){vu.push(rn=e?null:[])}function Ac(){vu.pop(),rn=vu[vu.length-1]||null}let sr=1;function Do(e,t=!1){sr+=e,e<0&&rn&&t&&(rn.hasOnce=!0)}function Sf(e){return e.dynamicChildren=sr>0?rn||as:null,Ac(),sr>0&&rn&&rn.push(e),e}function R(e,t,n,u,s,i){return Sf(H(e,t,n,u,s,i,!0))}function pe(e,t,n,u,s){return Sf(le(e,t,n,u,s,!0))}function ir(e){return e?e.__v_isVNode===!0:!1}function is(e,t){return e.type===t.type&&e.key===t.key}const _f=({key:e})=>e??null,uo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?nt(e)||it(e)||Ne(e)?{i:_t,r:e,k:t,f:!!n}:e:null);function H(e,t=null,n=null,u=0,s=null,i=e===qe?0:1,r=!1,o=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_f(t),ref:t&&uo(t),scopeId:Ea,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:i,patchFlag:u,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:_t};return o?(Fo(a,n),i&128&&e.normalize(a)):n&&(a.shapeFlag|=nt(n)?8:16),sr>0&&!r&&rn&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&rn.push(a),a}const le=eC;function eC(e,t=null,n=null,u=0,s=null,i=!1){if((!e||e===lf)&&(e=Ft),ir(e)){const o=Vu(e,t,!0);return n&&Fo(o,n),sr>0&&!i&&rn&&(o.shapeFlag&6?rn[rn.indexOf(e)]=o:rn.push(o)),o.patchFlag=-2,o}if(aC(e)&&(e=e.__vccOpts),t){t=un(t);let{class:o,style:a}=t;o&&!nt(o)&&(t.class=Ae(o)),Ge(a)&&(ha(a)&&!Be(a)&&(a=Et({},a)),t.style=_n(a))}const r=nt(e)?1:Ff(e)?128:xa(e)?64:Ge(e)?4:Ne(e)?2:0;return H(e,t,n,u,s,r,i,!0)}function un(e){return e?ha(e)||yf(e)?Et({},e):e:null}function Vu(e,t,n=!1,u=!1){const{props:s,ref:i,patchFlag:r,children:o,transition:a}=e,l=t?Ve(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&_f(l),ref:t&&t.ref?n&&i?Be(i)?i.concat(uo(t)):[i,uo(t)]:uo(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==qe?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Vu(e.ssContent),ssFallback:e.ssFallback&&Vu(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return a&&u&&ur(c,a.clone(c)),c}function Re(e=" ",t=0){return le(kr,null,e,t)}function me(e="",t=!1){return t?(D(),pe(Ft,null,e)):le(Ft,null,e)}function Un(e){return e==null||typeof e=="boolean"?le(Ft):Be(e)?le(qe,null,e.slice()):ir(e)?ou(e):le(kr,null,String(e))}function ou(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Vu(e)}function Fo(e,t){let n=0;const{shapeFlag:u}=e;if(t==null)t=null;else if(Be(t))n=16;else if(typeof t=="object")if(u&65){const s=t.default;s&&(s._c&&(s._d=!1),Fo(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!yf(t)?t._ctx=_t:s===3&&_t&&(_t.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Ne(t)){if(u&65){Fo(e,{default:t});return}t={default:t,_ctx:_t},n=32}else t=String(t),u&64?(n=16,t=[Re(t)]):n=8;e.children=t,e.shapeFlag|=n}function Ve(...e){const t={};for(let n=0;njt||_t;let So,rr;{const e=ho(),t=(n,u)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(u),i=>{s.length>1?s.forEach(r=>r(i)):s[0](i)}};So=t("__VUE_INSTANCE_SETTERS__",n=>jt=n),rr=t("__VUE_SSR_SETTERS__",n=>or=n)}const Br=e=>{const t=jt;return So(e),e.scope.on(),()=>{e.scope.off(),So(t)}},nm=()=>{jt&&jt.scope.off(),So(null)};function Nf(e){return e.vnode.shapeFlag&4}let or=!1;function sC(e,t=!1,n=!1){t&&rr(t);const{props:u,children:s}=e.vnode,i=Nf(e);UE(e,u,i,t),KE(e,s,n||t);const r=i?iC(e,t):void 0;return t&&rr(!1),r}function iC(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,FE);const{setup:u}=n;if(u){Eu();const s=e.setupContext=u.length>1?zf(e):null,i=Br(e),r=wr(u,e,0,[e.props,s]),o=v3(r);if(Cu(),i(),(o||e.sp)&&!Zs(e)&&sf(e),o){if(r.then(nm,nm),t)return r.then(a=>{rr(!0);try{um(e,a,t)}finally{rr(!1)}}).catch(a=>{va(a,e,0)});e.asyncDep=r}else um(e,r)}else Tf(e)}function um(e,t,n){Ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ge(t)&&(e.setupState=H3(t)),Tf(e)}function Tf(e,t,n){const u=e.type;e.render||(e.render=u.render||xn);{const s=Br(e);Eu();try{_E(e)}finally{Cu(),s()}}}const rC={get(e,t){return Rt(e,"get",""),e[t]}};function zf(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,rC),slots:e.slots,emit:e.emit,expose:t}}function Ba(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(H3(vc(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Mi)return Mi[n](e)},has(t,n){return n in t||n in Mi}})):e.proxy}function oC(e,t=!0){return Ne(e)?e.displayName||e.name:e.name||t&&e.__name}function aC(e){return Ne(e)&&"__vccOpts"in e}const Z=(e,t)=>J1(e,t,or);function je(e,t,n){try{Do(-1);const u=arguments.length;return u===2?Ge(t)&&!Be(t)?ir(t)?le(e,null,[t]):le(e,t):le(e,null,t):(u>3?n=Array.prototype.slice.call(arguments,2):u===3&&ir(n)&&(n=[n]),le(e,t,n))}finally{Do(1)}}const lC="3.5.43",sm=xn;let w0;const im=typeof window<"u"&&window.trustedTypes;if(im)try{w0=im.createPolicy("vue",{createHTML:e=>e})}catch{}const Of=w0?e=>w0.createHTML(e):e=>e,cC="http://www.w3.org/2000/svg",dC="http://www.w3.org/1998/Math/MathML",iu=typeof document<"u"?document:null,rm=iu&&iu.createElement("template"),mC={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,u)=>{const s=t==="svg"?iu.createElementNS(cC,e):t==="mathml"?iu.createElementNS(dC,e):n?iu.createElement(e,{is:n}):iu.createElement(e);return e==="select"&&u&&u.multiple!=null&&s.setAttribute("multiple",u.multiple),s},createText:e=>iu.createTextNode(e),createComment:e=>iu.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iu.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,u,s,i){const r=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{rm.innerHTML=Of(u==="svg"?`${e}`:u==="mathml"?`${e}`:e);const o=rm.content;if(u==="svg"||u==="mathml"){const a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}t.insertBefore(o,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Du="transition",hi="animation",ar=Symbol("_vtc"),Lf={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},gC=Et({},Q3,Lf),fC=e=>(e.displayName="Transition",e.props=gC,e),Ms=fC((e,{slots:t})=>je(vE,pC(e),t)),Ju=(e,t=[])=>{Be(e)?e.forEach(n=>n(...t)):e&&e(...t)},om=e=>e?Be(e)?e.some(t=>t.length>1):e.length>1:!1;function pC(e){const t={};for(const x in e)x in Lf||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:u,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:l=r,appearToClass:c=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,f=hC(s),p=f&&f[0],E=f&&f[1],{onBeforeEnter:v,onEnter:C,onEnterCancelled:y,onLeave:k,onLeaveCancelled:j,onBeforeAppear:F=v,onAppear:P=C,onAppearCancelled:K=y}=t,$=(x,z,L,I)=>{x._enterCancelled=I,Qu(x,z?c:o),Qu(x,z?l:r),L&&L()},B=(x,z)=>{x._isLeaving=!1,Qu(x,d),Qu(x,m),Qu(x,g),z&&z()},T=x=>(z,L)=>{const I=x?P:C,G=()=>$(z,x,L);Ju(I,[z,G]),am(()=>{Qu(z,x?a:i),eu(z,x?c:o),om(I)||lm(z,u,p,G)})};return Et(t,{onBeforeEnter(x){Ju(v,[x]),eu(x,i),eu(x,r)},onBeforeAppear(x){Ju(F,[x]),eu(x,a),eu(x,l)},onEnter:T(!1),onAppear:T(!0),onLeave(x,z){x._isLeaving=!0;const L=()=>B(x,z);eu(x,d),x._enterCancelled?(eu(x,g),mm(x)):(mm(x),eu(x,g)),am(()=>{x._isLeaving&&(Qu(x,d),eu(x,m),om(k)||lm(x,u,E,L))}),Ju(k,[x,L])},onEnterCancelled(x){$(x,!1,void 0,!0),Ju(y,[x])},onAppearCancelled(x){$(x,!0,void 0,!0),Ju(K,[x])},onLeaveCancelled(x){B(x),Ju(j,[x])}})}function hC(e){if(e==null)return null;if(Ge(e))return[fl(e.enter),fl(e.leave)];{const t=fl(e);return[t,t]}}function fl(e){return g1(e)}function eu(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ar]||(e[ar]=new Set)).add(t)}function Qu(e,t){t.split(/\s+/).forEach(u=>u&&e.classList.remove(u));const n=e[ar];n&&(n.delete(t),n.size||(e[ar]=void 0))}function am(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let vC=0;function lm(e,t,n,u){const s=e._endId=++vC,i=()=>{s===e._endId&&u()};if(n!=null)return setTimeout(i,n);const{type:r,timeout:o,propCount:a}=EC(e,t);if(!r)return u();const l=r+"end";let c=0;const d=()=>{e.removeEventListener(l,g),i()},g=m=>{m.target===e&&++c>=a&&d()};setTimeout(()=>{c(n[f]||"").split(", "),s=u(`${Du}Delay`),i=u(`${Du}Duration`),r=cm(s,i),o=u(`${hi}Delay`),a=u(`${hi}Duration`),l=cm(o,a);let c=null,d=0,g=0;t===Du?r>0&&(c=Du,d=r,g=i.length):t===hi?l>0&&(c=hi,d=l,g=a.length):(d=Math.max(r,l),c=d>0?r>l?Du:hi:null,g=c?c===Du?i.length:a.length:0);const m=c===Du&&/\b(?:transform|all)(?:,|$)/.test(u(`${Du}Property`).toString());return{type:c,timeout:d,propCount:g,hasTransform:m}}function cm(e,t){for(;e.lengthdm(n)+dm(e[u])))}function dm(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function mm(e){return(e?e.ownerDocument:document).body.offsetHeight}function CC(e,t,n){const u=e[ar];u&&(t=(t?[t,...u]:[...u]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const _o=Symbol("_vod"),If=Symbol("_vsh"),ls={name:"show",beforeMount(e,{value:t},{transition:n}){e[_o]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):vi(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:u}){!t!=!n&&(u?t?(u.beforeEnter(e),vi(e,!0),u.enter(e)):u.leave(e,()=>{vi(e,!1)}):vi(e,t))},beforeUnmount(e,{value:t}){vi(e,t)}};function vi(e,t){e.style.display=t?e[_o]:"none",e[If]=!t}const Pf=Symbol("");function Aa(e){const t=zn();if(!t)return;const n=t.ut=(s=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(i=>No(i,s))},u=()=>{const s=e(t.proxy);t.ce?No(t.ce,s):k0(t.subTree,s),n(s)};of(()=>{Y3(u)}),Qt(()=>{$t(u,xn,{flush:"post"});const s=new MutationObserver(u);s.observe(t.subTree.el.parentNode,{childList:!0}),Bn(()=>s.disconnect())})}function k0(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{k0(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)No(e.el,t);else if(e.type===qe)e.children.forEach(n=>k0(n,t));else if(e.type===no){let{el:n,anchor:u}=e;for(;n&&(No(n,t),n!==u);)n=n.nextSibling}}function No(e,t){if(e.nodeType===1){const n=e.style;let u="";for(const s in t){const i=w1(t[s]);n.setProperty(`--${s}`,i),u+=`--${s}: ${i};`}n[Pf]=u}}const yC=/(?:^|;)\s*display\s*:/;function xC(e,t,n){const u=e.style,s=nt(n);let i=!1;if(n&&!s){if(t)if(nt(t))for(const r of t.split(";")){const o=r.slice(0,r.indexOf(":")).trim();n[o]==null&&Oi(u,o,"")}else for(const r in t)n[r]==null&&Oi(u,r,"");for(const r in n){r==="display"&&(i=!0);const o=n[r];o!=null?wC(e,r,!nt(t)&&t?t[r]:void 0,o)||Oi(u,r,o):Oi(u,r,"")}}else if(s){if(t!==n){const r=u[Pf];r&&(n+=";"+r),u.cssText=n,i=yC.test(n)}}else t&&e.removeAttribute("style");_o in e&&(e[_o]=i?u.display:"",e[If]&&(u.display="none"))}const Ur=/\s*!important$/;function Oi(e,t,n){if(Be(n))n.forEach(u=>Oi(e,t,u));else if(n==null&&(n=""),t.startsWith("--"))Ur.test(n)?e.setProperty(t,n.replace(Ur,""),"important"):e.setProperty(t,n);else{const u=bC(e,t);Ur.test(n)?e.setProperty(bu(u),n.replace(Ur,""),"important"):e[u]=n}}const gm=["Webkit","Moz","ms"],pl={};function bC(e,t){const n=pl[t];if(n)return n;let u=Mt(t);if(u!=="filter"&&u in e)return pl[t]=u;u=ca(u);for(let s=0;shl||(_C.then(()=>hl=0),hl=Date.now());function TC(e,t){const n=u=>{if(!u._vts)u._vts=Date.now();else if(u._vts<=n.attached)return;const s=n.value;if(Be(s)){const i=u.stopImmediatePropagation;u.stopImmediatePropagation=()=>{i.call(u),u._stopped=!0};const r=s.slice(),o=[u];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,zC=(e,t,n,u,s,i)=>{const r=s==="svg";t==="class"?CC(e,u,r):t==="style"?xC(e,n,u):ra(t)?oa(t)||AC(e,t,n,u,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):OC(e,t,u,r))?(hm(e,t,u),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&pm(e,t,u,r,i,t!=="value")):e._isVueCE&&(LC(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!nt(u)))?hm(e,Mt(t),u,i,t):(t==="true-value"?e._trueValue=u:t==="false-value"&&(e._falseValue=u),pm(e,t,u,r))};function OC(e,t,n,u){if(u)return!!(t==="innerHTML"||t==="textContent"||t in e&&Em(t)&&Ne(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Em(t)&&nt(n)?!1:t in e}function LC(e,t){const n=e._def.props;if(!n)return!1;const u=Mt(t);return Array.isArray(n)?n.some(s=>Mt(s)===u):Object.keys(n).some(s=>Mt(s)===u)}function IC(e="$style"){{const t=zn();if(!t)return Me;const n=t.type.__cssModules;return n&&n[e]||Me}}const PC=["ctrl","shift","alt","meta"],RC={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>PC.some(n=>e[`${n}Key`]&&!t.includes(n))},ln=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),u=t.join(".");return n[u]||(n[u]=((s,...i)=>{for(let r=0;r{const n=e._withKeys||(e._withKeys={}),u=t.join(".");return n[u]||(n[u]=(s=>{if(!("key"in s))return;const i=bu(s.key);if(t.some(r=>r===i||jC[r]===i))return e(s)}))},MC=Et({patchProp:zC},mC);let Cm;function $C(){return Cm||(Cm=GE(MC))}const To=((...e)=>{const t=$C().createApp(...e),{mount:n}=t;return t.mount=u=>{const s=UC(u);if(!s)return;const i=t._component;!Ne(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const r=n(s,!1,VC(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),r},t});function VC(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function UC(e){return nt(e)?document.querySelector(e):e}let Rf;const Da=e=>Rf=e,jf=Symbol();function B0(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var $i;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})($i||($i={}));function HC(){const e=B3(!0),t=e.run(()=>be({}));let n=[],u=[];const s=vc({install(i){Da(s),s._a=i,i.provide(jf,s),i.config.globalProperties.$pinia=s,u.forEach(r=>n.push(r)),u=[]},use(i){return this._a?n.push(i):u.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Mf=()=>{};function ym(e,t,n,u=Mf){e.add(t);const s=()=>{e.delete(t)&&u()};return!n&&gc()&&A3(s),s}function zs(e,...t){e.forEach(n=>{n(...t)})}const WC=e=>e(),xm=Symbol(),vl=Symbol();function A0(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,u)=>e.set(u,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const u=t[n],s=e[n];B0(s)&&B0(u)&&e.hasOwnProperty(n)&&!it(u)&&!qn(u)?e[n]=A0(s,u):e[n]=u}return e}const qC=Symbol();function KC(e){return!B0(e)||!Object.prototype.hasOwnProperty.call(e,qC)}const{assign:Nu}=Object;function YC(e){return!!(it(e)&&e.effect)}function GC(e,t,n,u){const{state:s,actions:i,getters:r}=t,o=n.state.value[e];let a;function l(){o||(n.state.value[e]=s?s():{});const c=Y1(n.state.value[e]);return Nu(c,i,Object.keys(r||{}).reduce((d,g)=>(d[g]=vc(Z(()=>{Da(n);const m=n._s.get(e);return r[g].call(m,m)})),d),{}))}return a=$f(e,l,t,n,u,!0),a}function $f(e,t,n={},u,s,i){let r;const o=Nu({actions:{}},n),a={deep:!0};let l,c,d=new Set,g=new Set,m;const f=u.state.value[e];!i&&!f&&(u.state.value[e]={});let p;function E(P){let K;l=c=!1,typeof P=="function"?(P(u.state.value[e]),K={type:$i.patchFunction,storeId:e,events:m}):(A0(u.state.value[e],P),K={type:$i.patchObject,payload:P,storeId:e,events:m});const $=p=Symbol();yu().then(()=>{p===$&&(l=!0)}),c=!0,zs(d,K,u.state.value[e])}const v=i?function(){const{state:P}=n,K=P?P():{};this.$patch($=>{Nu($,K)})}:Mf;function C(){r.stop(),d.clear(),g.clear(),u._s.delete(e)}const y=(P,K="")=>{if(xm in P)return P[vl]=K,P;const $=function(){Da(u);const B=Array.from(arguments),T=new Set,x=new Set;function z(G){T.add(G)}function L(G){x.add(G)}zs(g,{args:B,name:$[vl],store:j,after:z,onError:L});let I;try{I=P.apply(this&&this.$id===e?this:j,B)}catch(G){throw zs(x,G),G}return I instanceof Promise?I.then(G=>(zs(T,G),G)).catch(G=>(zs(x,G),Promise.reject(G))):(zs(T,I),I)};return $[xm]=!0,$[vl]=K,$},k={_p:u,$id:e,$onAction:ym.bind(null,g),$patch:E,$reset:v,$subscribe(P,K={}){const $=ym(d,P,K.detached,()=>B()),B=r.run(()=>$t(()=>u.state.value[e],T=>{(K.flush==="sync"?c:l)&&P({storeId:e,type:$i.direct,events:m},T)},Nu({},a,K)));return $},$dispose:C},j=vs(k);u._s.set(e,j);const F=(u._a&&u._a.runWithContext||WC)(()=>u._e.run(()=>(r=B3()).run(()=>t({action:y}))));for(const P in F){const K=F[P];if(it(K)&&!YC(K)||qn(K))i||(f&&KC(K)&&(it(K)?K.value=f[P]:A0(K,f[P])),u.state.value[e][P]=K);else if(typeof K=="function"){const $=y(K,P);F[P]=$,o.actions[P]=K}}return Nu(j,F),Nu(We(j),F),Object.defineProperty(j,"$state",{get:()=>u.state.value[e],set:P=>{E(K=>{Nu(K,P)})}}),u._p.forEach(P=>{Nu(j,r.run(()=>P({store:j,app:u._a,pinia:u,options:o})))}),f&&i&&n.hydrate&&n.hydrate(j.$state,f),l=!0,c=!0,j}function Vf(e,t,n){let u;const s=typeof t=="function";u=s?n:t;function i(r,o){const a=rE();return r=r||(a?Tt(jf,null):null),r&&Da(r),r=Rf,r._s.has(e)||(s?$f(e,t,u,r):GC(e,u,r)),r._s.get(e)}return i.$id=e,i}function Hr(e,t,n){const u={ocsVersion:2};Uf(u);const s=u.ocsVersion===1?1:2;return F0()+"/ocs/v"+s+".php"+D0(e)}function D0(e,t,n){const u={escape:!0},s=function(i,r){return r=r||{},i.replace(/{([^{}]*)}/g,function(o,a){const l=r[a];return u.escape?encodeURIComponent(typeof l=="string"||typeof l=="number"?l.toString():o):typeof l=="string"||typeof l=="number"?l.toString():o})};return e.charAt(0)!=="/"&&(e="/"+e),s(e,{})}function ri(e,t,n){const u={noRewrite:!1};Uf(u);const s=Fa();return!u.noRewrite&&typeof window<"u"&&window.OC?.config?.modRewriteWorking===!0?s+D0(e):s+"/index.php"+D0(e)}function ZC(e,t){return t.includes(".")?bm(e,"img",t):bm(e,"img",`${t}.svg`)}function bm(e,t,n){Sa();const u=window.OC?.coreApps?.includes(e)??!1,s=n.slice(-3)==="php";let i=Fa();return s&&!u?(i+=`/index.php/apps/${e}`,i+=`/${encodeURI(t)}`,n!=="index.php"&&(i+=`/${n}`)):!s&&!u?(i=XC(e),i+=`/${t}/`,i.at(-1)!=="/"&&(i+="/"),i+=n):(i+=`/${e}`,i+=`/${t}`,i+=`/${n}`),i}function F0(){return Sa(),window.location.protocol+"//"+window.location.host+Fa()}function Fa(){Sa();let e=window._oc_webroot;if(typeof e>"u"){e=location.pathname;const t=e.indexOf("/index.php/");if(t!==-1)e=e.slice(0,t);else{const n=e.indexOf("/",1);e=e.slice(0,n>0?n:void 0)}}return e}function XC(e){return Sa(),(window._oc_appswebroots??{})[e]??""}function Sa(){if(typeof window>"u")throw new Error("This function is only available in a DOM environment")}function Uf(e){if(typeof window>"u"&&!e?.baseURL)throw new Error("This function requires baseURL option to be provided in non-DOM environments")}function wm(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,u=Array(t);n2?n-2:0),s=2;s1?t-1:0),u=1;u"u"?null:rt(BigInt.prototype.toString),Sm=typeof Symbol>"u"?null:rt(Symbol.prototype.toString),Zt=rt(Object.prototype.hasOwnProperty),xi=rt(Object.prototype.toString),At=rt(RegExp.prototype.test),nu=Yf(TypeError);function rt(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,u=new Array(n>1?n-1:0),s=1;s2&&arguments[2]!==void 0?arguments[2]:us;if(km&&km(e,null),!Xs(t))return e;let u=t.length;for(;u--;){let s=t[u];if(typeof s=="string"){const i=n(s);i!==s&&(uy(t)||(t[u]=i),s=i)}e[s]=!0}return e}function cy(e){for(let t=0;t/g),Ey=zt(/\${[\w\W]*/g),Cy=zt(/^data-[\-\w.\u00B7-\uFFFF]+$/),yy=zt(/^aria-[\-\w]+$/),Om=zt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),xy=zt(/^(?:\w+script|data):/i),by=zt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),wy=zt(/^html$/i),ky=zt(/^[a-z][.\w]*(-[.\w]+)+$/i),Bl=zt(/<[/\w!]/g),Lm=zt(/<[/\w]/g),By=zt(/<\/no(script|embed|frames)/i),Im=zt(/\/>/i),pt={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Ay=bt(He({},["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"])),Dy=function(){return typeof window>"u"?null:window},Fy=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let n=null;const u="data-tt-policy-suffix";t&&t.hasAttribute(u)&&(n=t.getAttribute(u));const s="dompurify"+(n?"#"+n:"");try{return e.createPolicy(s,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},Pm=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Fu=function(e,t,n,u){return Zt(e,t)&&Xs(e[t])?He(u.base?nn(u.base):{},e[t],u.transform):n},Al=function(e,t,n){const u=Zt(e,t)?e[t]:void 0;return u&&typeof u=="object"?nn(u):n()};function Gf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Dy();const t=h=>Gf(h);if(t.version="3.4.17",t.removed=[],!e||!e.document||e.document.nodeType!==pt.document||!e.Element)return t.isSupported=!1,t;let n=e.document;const u=n,s=u.currentScript;e.DocumentFragment;const i=e.HTMLTemplateElement,r=e.Node,o=e.Element,a=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;const l=e.DOMParser,c=e.trustedTypes,d=o.prototype,g=hn(d,"cloneNode"),m=hn(d,"remove"),f=hn(d,"removeAttributeNode"),p=hn(d,"nextSibling"),E=hn(d,"childNodes"),v=hn(d,"parentNode"),C=hn(d,"shadowRoot"),y=hn(d,"attributes"),k=r&&r.prototype?hn(r.prototype,"nodeType"):null,j=r&&r.prototype?hn(r.prototype,"nodeName"):null,F=r&&r.prototype?hn(r.prototype,"ownerDocument"):null,P=function(h){return k?k(h):h.nodeType},K=function(h){return j?j(h):h.nodeName},$=my(d,"namespaceURI"),B=function(h){return $?$(h):h.namespaceURI};if(typeof i=="function"){const h=n.createElement("template");h.content&&h.content.ownerDocument&&(n=h.content.ownerDocument)}let T,x="",z,L=!1,I=0;const G=function(){if(I>0)throw nu('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.')},ue=function(h){G(),I++;try{return T.createHTML(h)}finally{I--}},oe=function(h){G(),I++;try{return T.createScriptURL(h)}finally{I--}},Ee=function(){return L||(z=Fy(c,s),L=!0),z},b=n,Se=b.implementation,ye=b.createNodeIterator,A=b.createDocumentFragment,Je=b.getElementsByTagName,xe=u.importNode;let he=Pm();t.isSupported=typeof Hf=="function"&&typeof v=="function"&&Se&&Se.createHTMLDocument!==void 0;const Fe=hy,Ke=vy,Ot=Ey,Lt=Cy,w=yy,S=xy,U=by,ee=ky;let J=Om,q=null;const se=He({},[..._m,...xl,...bl,...wl,...Nm]);let M=null;const ne=He({},[...Tm,...kl,...zm,...Wr]);let Y=Object.seal($s(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}})),fe=null,ge=null;const ve=Object.seal($s(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Ce=!0,Pe=!0,V=!1,X=!0,ce=!1,we=!0,Oe=!1,ut=!1,wt=null,kt=null,ot=!1,at=!1,mt=!1,qt=!1,gn=!0,pd=!1;const hd="user-content-";let Ha=!0,Wa=!1,Ku=null,Ds={},Yu=null;const vd=He({},["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 Ed=null;const Cd=He({},["audio","video","img","source","image","track"]);let yd=null;const xd=He({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Or="http://www.w3.org/1998/Math/MathML",Lr="http://www.w3.org/2000/svg",On="http://www.w3.org/1999/xhtml";let Fs=On,qa=!1,Ka=null;const $v=He({},[Or,Lr,On],yl),bd=bt(["mi","mo","mn","ms","mtext"]);let Ya=He({},bd);const wd=bt(["annotation-xml"]);let Ga=He({},wd);const Vv=He({},["title","style","font","a","script"]);let di=null;const Uv=["application/xhtml+xml","text/html"],Hv="text/html";let gt=null,Ss=null;const Wv=n.createElement("form"),kd=function(h){return h instanceof RegExp||h instanceof Function},Za=function(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Ss&&Ss===h)return;(!h||typeof h!="object")&&(h={}),h=nn(h),di=Uv.indexOf(h.PARSER_MEDIA_TYPE)===-1?Hv:h.PARSER_MEDIA_TYPE,gt=di==="application/xhtml+xml"?yl:us,q=Fu(h,"ALLOWED_TAGS",se,{transform:gt}),M=Fu(h,"ALLOWED_ATTR",ne,{transform:gt}),Ka=Fu(h,"ALLOWED_NAMESPACES",$v,{transform:yl}),yd=Fu(h,"ADD_URI_SAFE_ATTR",xd,{transform:gt,base:xd}),Ed=Fu(h,"ADD_DATA_URI_TAGS",Cd,{transform:gt,base:Cd}),Yu=Fu(h,"FORBID_CONTENTS",vd,{transform:gt}),fe=Fu(h,"FORBID_TAGS",nn({}),{transform:gt}),ge=Fu(h,"FORBID_ATTR",nn({}),{transform:gt}),Ds=Zt(h,"USE_PROFILES")?h.USE_PROFILES&&typeof h.USE_PROFILES=="object"?nn(h.USE_PROFILES):h.USE_PROFILES:!1,Ce=h.ALLOW_ARIA_ATTR!==!1,Pe=h.ALLOW_DATA_ATTR!==!1,V=h.ALLOW_UNKNOWN_PROTOCOLS||!1,X=h.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ce=h.SAFE_FOR_TEMPLATES||!1,we=h.SAFE_FOR_XML!==!1,Oe=h.WHOLE_DOCUMENT||!1,at=h.RETURN_DOM||!1,mt=h.RETURN_DOM_FRAGMENT||!1,qt=h.RETURN_TRUSTED_TYPE||!1,ot=h.FORCE_BODY||!1,gn=h.SANITIZE_DOM!==!1,pd=h.SANITIZE_NAMED_PROPS||!1,Ha=h.KEEP_CONTENT!==!1,Wa=h.IN_PLACE||!1,J=gy(h.ALLOWED_URI_REGEXP)?h.ALLOWED_URI_REGEXP:Om,Fs=typeof h.NAMESPACE=="string"?h.NAMESPACE:On,Ya=Al(h,"MATHML_TEXT_INTEGRATION_POINTS",()=>He({},bd)),Ga=Al(h,"HTML_INTEGRATION_POINTS",()=>He({},wd));const O=Al(h,"CUSTOM_ELEMENT_HANDLING",()=>$s(null));if(Y=$s(null),Zt(O,"tagNameCheck")&&kd(O.tagNameCheck)&&(Y.tagNameCheck=O.tagNameCheck),Zt(O,"attributeNameCheck")&&kd(O.attributeNameCheck)&&(Y.attributeNameCheck=O.attributeNameCheck),Zt(O,"allowCustomizedBuiltInElements")&&typeof O.allowCustomizedBuiltInElements=="boolean"&&(Y.allowCustomizedBuiltInElements=O.allowCustomizedBuiltInElements),zt(Y),ce&&(Pe=!1),mt&&(at=!0),Ds&&(q=He({},Nm),M=$s(null),Ds.html===!0&&(He(q,_m),He(M,Tm)),Ds.svg===!0&&(He(q,xl),He(M,kl),He(M,Wr)),Ds.svgFilters===!0&&(He(q,bl),He(M,kl),He(M,Wr)),Ds.mathMl===!0&&(He(q,wl),He(M,zm),He(M,Wr))),ve.tagCheck=null,ve.attributeCheck=null,Zt(h,"ADD_TAGS")&&(typeof h.ADD_TAGS=="function"?ve.tagCheck=h.ADD_TAGS:Xs(h.ADD_TAGS)&&(q===se&&(q=nn(q)),He(q,h.ADD_TAGS,gt))),Zt(h,"ADD_ATTR")&&(typeof h.ADD_ATTR=="function"?ve.attributeCheck=h.ADD_ATTR:Xs(h.ADD_ATTR)&&(M===ne&&(M=nn(M)),He(M,h.ADD_ATTR,gt))),Zt(h,"ADD_FORBID_CONTENTS")&&Xs(h.ADD_FORBID_CONTENTS)&&(Yu===vd&&(Yu=nn(Yu)),He(Yu,h.ADD_FORBID_CONTENTS,gt)),Ha&&(q["#text"]=!0),Oe&&He(q,["html","head","body"]),q.table&&(He(q,["tbody"]),delete fe.tbody),h.TRUSTED_TYPES_POLICY){if(typeof h.TRUSTED_TYPES_POLICY.createHTML!="function")throw nu('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof h.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw nu('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const W=T;T=h.TRUSTED_TYPES_POLICY;try{x=ue("")}catch(Q){throw T=W,Q}}else h.TRUSTED_TYPES_POLICY===null?(T=void 0,x=""):(T===void 0&&(T=Ee()),T&&typeof x=="string"&&(x=ue("")));bt&&bt(h),Ss=h},Bd=He({},[...xl,...bl,...fy]),Ad=He({},[...wl,...py]),qv=function(h,O,W){return O.namespaceURI===On?h==="svg":O.namespaceURI===Or?h==="svg"&&(W==="annotation-xml"||Ya[W]):!!Bd[h]},Kv=function(h,O,W){return O.namespaceURI===On?h==="math":O.namespaceURI===Lr?h==="math"&&Ga[W]:!!Ad[h]},Yv=function(h,O,W){return O.namespaceURI===Lr&&!Ga[W]||O.namespaceURI===Or&&!Ya[W]?!1:!Ad[h]&&(Vv[h]||!Bd[h])},Gv=function(h){const O=B(h),W=us(K(h)),Q=v(h);let ke,ze;return Q&&P(Q)===pt.element?(ke={namespaceURI:B(Q)},ze=us(K(Q))):(ke={namespaceURI:Fs},ze="template"),Ka[O]?O===Lr?qv(W,ke,ze):O===Or?Kv(W,ke,ze):O===On?Yv(W,ke,ze):!!(di==="application/xhtml+xml"&&Ka[O]):!1},Gu=function(h){Ei(t.removed,{element:h});try{v(h).removeChild(h)}catch{if(m(h),!v(h))throw nu("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Dd=function(h,O,W){try{f(h,O)}catch{try{h.removeAttribute(W)}catch{}}},Xa=function(h){Qa(h);const O=E(h);O&&tu(iy(O),Q=>{try{m(Q)}catch{}});const W=P(h)===pt.element?y(h):null;if(W)for(let Q=W.length-1;Q>=0;--Q){const ke=W[Q],ze=ke&&ke.name;typeof ze=="string"&&Dd(h,ke,ze)}},_s=function(h,O,W){if(!W)try{W=O.getAttributeNode(h)}catch{W=null}Ei(t.removed,{attribute:W||null,from:O});try{W?f(O,W):O.removeAttribute(h)}catch{try{O.removeAttribute(h)}catch{}}if(h==="is")if(at||mt)try{Gu(O)}catch{}else try{O.setAttribute(h,"")}catch{}},Fd=function(h){const O=y(h);if(O)for(let W=O.length-1;W>=0;--W){const Q=O[W],ke=Q&&Q.name;typeof ke!="string"||M[gt(ke)]||Dd(h,Q,ke)}},Ja=function(h,O){let W=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const Q=[h];for(;Q.length>0;){const ke=Q.pop();if(O(ke)===!1)continue;if(W&&P(ke)===pt.element){const Ie=C(ke);Bu(Ie)&&Q.push(Ie)}const ze=E(ke);if(ze)for(let Ie=ze.length-1;Ie>=0;--Ie)Q.push(ze[Ie])}},Qa=function(h){Ja(h,O=>{P(O)===pt.element&&Fd(O)})},el=function(h){const O=[];return Ja(h,W=>{O.push(W)},!0),O},Zv=function(h,O){const W=El();tu(el(h),Q=>{P(Q)===pt.element&&Cl(W,Q)}),tu(O,Q=>{P(Q)===pt.element&&!Ci(W,Q)&&Fd(Q)})},Sd=function(h,O){let W=!1;return tu(t.removed,Q=>{Q.element&&(W=W||Q.element===h,Qa(Q.element))}),Zv(h,O),W},Xv=8,Jv=function(h,O){const W=Ku;let Q=null;const ke=()=>(Q||(Q=El(),tu(O,ze=>{Cl(Q,ze)})),Q);for(let ze=0;;ze++){const Ie=el(h),ct=[h];let Au=!1;if(tu(Ie,fn=>{P(fn)===pt.documentFragment?Ei(ct,fn):!Au&&!Ci(W,fn)&&(Au=Ci(ke(),fn))}),!Au)return;if(ze>=Xv)throw nu("the tree kept changing during in-place sanitization; refusing to return it");tu(ct,(fn,Kt)=>{Qv(fn,Kt>0,h,ke())})}},Qv=function(h,O,W,Q){const ke=tl(h);let ze;for(;ze=ke.nextNode();)!Ci(Q,ze)||Ci(Ku,ze)||(O&&Dn(he.uponSanitizeShadowNode,ze,null),ul(ze,W),sl(ze,W),Bu(ze.content)&&gi(ze.content))},e1=function(h){Ku&&Cl(Ku,h)},_d=function(h,O){return we?h==="patchsrc"?!0:h==="for"&&O!=="label"&&O!=="output":!1},t1=function(h){we&&Ja(h,O=>{const W=P(O);if(W===pt.processingInstruction||W===pt.comment&&At(Lm,O.data)){try{m(O)}catch{}return!1}if(W===pt.element){const Q=O,ke=gt(K(O));try{Q.hasAttribute&&Q.hasAttribute("patchsrc")&&Q.removeAttribute("patchsrc"),Q.hasAttribute&&Q.hasAttribute("for")&&_d("for",ke)&&Q.removeAttribute("for")}catch{}}return!0})},Nd=function(h){let O=null,W=null;if(ot)h=""+h;else{const ze=Am(h,/^[\r\n\t ]+/);W=ze&&ze[0]}di==="application/xhtml+xml"&&Fs===On&&(h=''+h+"");const Q=T?ue(h):h;if(Fs===On)try{O=new l().parseFromString(Q,di)}catch{}if(!O||!O.documentElement){O=Se.createDocument(Fs,"template",null);try{O.documentElement.innerHTML=qa?x:Q}catch{}}const ke=O.body||O.documentElement;return h&&W&&ke.insertBefore(n.createTextNode(W),ke.childNodes[0]||null),Fs===On?Je.call(O,Oe?"html":"body")[0]:Oe?O.documentElement:ke},tl=function(h){const O=F?F(h):h.ownerDocument;return ye.call(O||h,h,a.SHOW_ELEMENT|a.SHOW_COMMENT|a.SHOW_TEXT|a.SHOW_PROCESSING_INSTRUCTION|a.SHOW_CDATA_SECTION,null)},Ir=function(h){return h=yi(h,Fe," "),h=yi(h,Ke," "),h=yi(h,Ot," "),h},nl=function(h){var O;Td(h);const W=(O=h.querySelectorAll)===null||O===void 0?void 0:O.call(h,"template");W&&tu(W,Q=>{Bu(Q.content)&&nl(Q.content)})},Td=function(h){h.normalize();const O=F?F(h):h.ownerDocument,W=ye.call(O||h,h,a.SHOW_TEXT|a.SHOW_COMMENT|a.SHOW_CDATA_SECTION|a.SHOW_PROCESSING_INSTRUCTION,null);let Q=W.nextNode();for(;Q;)Q.data=Ir(Q.data),Q=W.nextNode()},Pr=function(h){const O=j?j(h):null;return typeof O!="string"||gt(O)!=="form"?!1:typeof h.nodeName!="string"||typeof h.textContent!="string"||typeof h.removeChild!="function"||h.attributes!==y(h)||typeof h.removeAttribute!="function"||typeof h.removeAttributeNode!="function"||typeof h.getAttributeNode!="function"||typeof h.setAttribute!="function"||typeof h.namespaceURI!="string"||typeof h.insertBefore!="function"||typeof h.hasChildNodes!="function"||h.nodeType!==k(h)||h.childNodes!==E(h)},Bu=function(h){if(!k||typeof h!="object"||h===null)return!1;try{return k(h)===pt.documentFragment}catch{return!1}},mi=function(h){if(!k||typeof h!="object"||h===null)return!1;try{return typeof k(h)=="number"}catch{return!1}};function Dn(h,O,W){h.length!==0&&tu(h,Q=>{Q.call(t,O,W,Ss)})}const n1=function(h,O){return!!(we&&h.hasChildNodes()&&!mi(h.firstElementChild)&&At(Bl,h.textContent)&&At(Bl,h.innerHTML)||we&&Ay[O]&&P(h)===pt.element&&B(h)===On&&(mi(h.firstElementChild)||typeof h.textContent=="string"&&At(Bl,h.textContent))||h.nodeType===pt.processingInstruction||we&&h.nodeType===pt.comment&&At(Lm,h.data))},Rr=function(h,O){if(h instanceof RegExp)return At(h,O);if(h instanceof Function){for(var W=arguments.length,Q=new Array(W>2?W-2:0),ke=2;ke=0;--Ie){const ct=h===W?g(ke[Ie],!0):ke[Ie];Q.insertBefore(ct,p(h))}}}return Gu(h),!0},zd=function(h,O,W,Q){return h.length===0?O:O===W||O===Q?nn(O):O},Ns=function(h,O){return h===O||v(h)!==null?!1:(Wa&&Qa(h),!0)},ul=function(h,O){if(e1(h),Dn(he.beforeSanitizeElements,h,null),Ns(h,O))return!0;if(Pr(h))return Gu(h),!0;const W=gt(K(h));if(q=zd(he.uponSanitizeElement,q,se,wt),Dn(he.uponSanitizeElement,h,{tagName:W,allowedTags:q}),Ns(h,O))return!0;if(n1(h,W))return Gu(h),!0;if(fe[W]||!(ve.tagCheck instanceof Function&&ve.tagCheck(W))&&!q[W]){const Q=u1(h,W,O);return Q===!1&&(Dn(he.afterSanitizeElements,h,null),Ns(h,O))?!0:Q}if(P(h)===pt.element&&!Gv(h)||(W==="noscript"||W==="noembed"||W==="noframes")&&At(By,h.innerHTML))return Gu(h),!0;if(ce&&h.nodeType===pt.text){const Q=Ir(h.textContent);h.textContent!==Q&&(Ei(t.removed,{element:h.cloneNode()}),h.textContent=Q)}return Dn(he.afterSanitizeElements,h,null),Ns(h,O)},Od=function(h,O,W){if(ge[O]||_d(O,h)||gn&&(O==="id"||O==="name")&&(W in n||W in Wv))return!1;const Q=M[O]||ve.attributeCheck instanceof Function&&ve.attributeCheck(O,h);return Pe&&At(Lt,O)||Ce&&At(w,O)?!0:Q?yd[O]||At(J,yi(W,U,""))||(O==="src"||O==="xlink:href"||O==="href")&&h!=="script"&&Dm(W,"data:")===0&&Ed[h]||V&&!At(S,yi(W,U,""))?!0:!W:Ld(h)&&Rr(Y.tagNameCheck,h)&&Rr(Y.attributeNameCheck,O,h)||O==="is"&&Y.allowCustomizedBuiltInElements&&Rr(Y.tagNameCheck,W)},s1=He({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Ld=function(h){return!s1[us(h)]&&At(ee,h)},i1=function(h,O,W,Q){if(T&&typeof c=="object"&&typeof c.getAttributeType=="function"&&!W)switch(c.getAttributeType(h,O)){case"TrustedHTML":return ue(Q);case"TrustedScriptURL":return oe(Q)}return Q},r1=function(h,O,W,Q){try{return W?h.setAttributeNS(W,O,Q):h.setAttribute(O,Q),Pr(h)?(Gu(h),!1):!0}catch{return _s(O,h),!1}},Id=function(h,O){return we&&At(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,O)?!0:us(h)==="attributename"&&Am(O,"href")!==null},sl=function(h,O){if(Dn(he.beforeSanitizeAttributes,h,null),Ns(h,O))return;const W=h.attributes;if(!W||Pr(h))return;M=zd(he.uponSanitizeAttribute,M,ne,kt);const Q={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:M,forceKeepAttr:void 0};let ke=W.length;const ze=gt(h.nodeName);for(;ke--;){const Ie=W[ke],ct=Ie.name,Au=Ie.namespaceURI,fn=Ie.value,Kt=gt(ct),Ln=fn;let Bt=ct==="value"?Ln:oy(Ln),Pd=!1;if(Q.attrName=Kt,Q.attrValue=Bt,Q.keepAttr=!0,Q.forceKeepAttr=void 0,Dn(he.uponSanitizeAttribute,h,Q),Bt=Q.attrValue,pd&&(Kt==="id"||Kt==="name")&&Dm(Bt,hd)!==0&&(_s(ct,h,Ie),Bt=hd+Bt,Pd=!0),Id(ct,Bt)){_s(ct,h,Ie);continue}if(!Q.forceKeepAttr){if(!Q.keepAttr){_s(ct,h,Ie);continue}if(!X&&At(Im,Bt)){_s(ct,h,Ie);continue}if(ce&&(Bt=Ir(Bt)),!Od(ze,Kt,Bt)){_s(ct,h,Ie);continue}Bt=i1(ze,Kt,Au,Bt),Bt!==Ln&&r1(h,ct,Au,Bt)&&Pd&&Bm(t.removed)}}Dn(he.afterSanitizeAttributes,h,null),Ns(h,O)},gi=function(h){let O=null;const W=tl(h);for(Dn(he.beforeSanitizeShadowDOM,h,null);O=W.nextNode();)if(Dn(he.uponSanitizeShadowNode,O,null),ul(O,h),sl(O,h),Bu(O.content)&&gi(O.content),P(O)===pt.element){const Q=C(O);Bu(Q)&&(il(Q),gi(Q))}ce&&Td(h),Dn(he.afterSanitizeShadowDOM,h,null)},il=function(h){const O=[{node:h,shadow:null}];for(;O.length>0;){const W=O.pop();if(W.shadow){gi(W.shadow);continue}const Q=W.node,ke=P(Q)===pt.element,ze=E(Q);if(ze)for(let Ie=ze.length-1;Ie>=0;--Ie)O.push({node:ze[Ie],shadow:null});if(ke){const Ie=j?j(Q):null;if(typeof Ie=="string"&>(Ie)==="template"){const ct=Q.content;Bu(ct)&&O.push({node:ct,shadow:null})}}if(ke){const Ie=C(Q);Bu(Ie)&&O.push({node:null,shadow:Ie},{node:Ie,shadow:null})}}};return t.sanitize=function(h){let O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},W=null,Q=null,ke=null,ze=null;if(qa=!h,qa&&(h=""),typeof h!="string"&&!mi(h)&&(h=dy(h),typeof h!="string"))throw nu("dirty is not a string, aborting");if(!t.isSupported)return h;ut?(q=wt,M=kt):Za(O),(he.uponSanitizeElement.length>0||he.uponSanitizeAttribute.length>0)&&(q=nn(q)),he.uponSanitizeAttribute.length>0&&(M=nn(M)),t.removed=[];const Ie=Wa&&typeof h!="string"&&mi(h);let ct=[];const Au=Ku;if(Ie){t1(h);const Ln=K(h);if(typeof Ln=="string"){const Bt=gt(Ln);if(!q[Bt]||fe[Bt])throw Xa(h),nu("root node is forbidden and cannot be sanitized in-place")}if(Pr(h))throw Xa(h),nu("root node is clobbered and cannot be sanitized in-place");ct=el(h),Ku=El()}else if(mi(h))W=Nd(""),Q=W.ownerDocument.importNode(h,!0),Q.nodeType===pt.element&&Q.nodeName==="BODY"||Q.nodeName==="HTML"?W=Q:W.appendChild(Q),il(W);else{if(!at&&!ce&&!Oe&&h.indexOf("<")===-1)return T&&qt?ue(h):h;if(W=Nd(h),!W)return at?null:qt?x:""}W&&ot&&Gu(W.firstChild);const fn=Ie?h:W;try{Ie&&il(h);const Ln=tl(fn);for(;ke=Ln.nextNode();)ul(ke,fn),sl(ke,fn),Bu(ke.content)&&gi(ke.content);Ie&&Jv(h,ct)}catch(Ln){throw Ie&&(Xa(h),Sd(h,ct)),Ln}finally{Ku=Au}if(Ie){if(Sd(h,ct))throw nu("a node selected for removal could not be safely returned; refusing to sanitize in place");return ce&&nl(h),h}if(at){if(ce&&nl(W),mt)for(ze=A.call(W.ownerDocument);W.firstChild;)ze.appendChild(W.firstChild);else ze=W;return(M.shadowroot||M.shadowrootmode)&&(ze=xe.call(u,ze,!0)),ze}let Kt=Oe?W.outerHTML:W.innerHTML;return Oe&&q["!doctype"]&&W.ownerDocument&&W.ownerDocument.doctype&&W.ownerDocument.doctype.name&&At(wy,W.ownerDocument.doctype.name)&&(Kt=" +`+Kt),ce&&(Kt=Ir(Kt)),T&&qt?ue(Kt):Kt},t.setConfig=function(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Za(h),ut=!0,wt=q,kt=M},t.clearConfig=function(){Ss=null,ut=!1,wt=null,kt=null,T=z,x=""},t.isValidAttribute=function(h,O,W){Ss||Za({});const Q=gt(h),ke=gt(O);return typeof W=="string"&&(Id(O,W)||!X&&At(Im,W))?!1:Od(Q,ke,W)},t.addHook=function(h,O){typeof O=="function"&&Zt(he,h)&&Ei(he[h],O)},t.removeHook=function(h,O){if(Zt(he,h)){if(O!==void 0){const W=sy(he[h],O);return W===-1?void 0:ry(he[h],W,1)[0]}return Bm(he[h])}},t.removeHooks=function(h){Zt(he,h)&&(he[h]=[])},t.removeAllHooks=function(){he=Pm()},t}var Zf=Gf();function Ar(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Dl,Rm;function Sy(){if(Rm)return Dl;Rm=1;var e=/["'&<>]/;Dl=t;function t(n){var u=""+n,s=e.exec(u);if(!s)return u;var i,r="",o=0,a=0;for(o=s.index;ot)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function ae(e,t,n,u,s){const i=typeof n=="object"?n:void 0,r=typeof u=="number"?u:typeof n=="number"?n:void 0,o={escape:!0,sanitize:!0,...typeof s=="object"?s:typeof u=="object"?u:{}},a=f=>f,l=(o.sanitize?Zf.sanitize:a)||a,c=o.escape?jm:a,d=f=>typeof f=="string"||typeof f=="number",g=(f,p,E)=>f.replace(/%n/g,""+E).replace(/{([^{}]*)}/g,(v,C)=>{if(p===void 0||!(C in p))return c(v);const y=p[C];return d(y)?c(`${y}`):typeof y=="object"&&d(y.value)?(y.escape!==!1?jm:a)(`${y.value}`):c(v)});let m=(s?.bundle??Jf(e)).translations[t]||t;return m=Array.isArray(m)?m[0]:m,l(typeof i=="object"||r!==void 0?g(m,i,r):m)}function zy(e,t,n,u,s,i){const r="_"+t+"_::_"+n+"_",o=i?.bundle??Jf(e),a=o.translations[r];if(typeof a<"u"){const l=a;if(Array.isArray(l)){const c=o.pluralFunction(u);return ae(e,l[c],s,u,i)}}return u===1?ae(e,t,s,u,i):ae(e,n,s,u,i)}function Oy(e,t=fs()){switch(t==="pt-BR"&&(t="xbr"),t.length>3&&(t=t.substring(0,t.lastIndexOf("-"))),t){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 e===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 e===0||e===1?0:1;case"be":case"bs":case"hr":case"ru":case"sh":case"sr":case"uk":return e%10===1&&e%100!==11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"cs":case"sk":return e===1?0:e>=2&&e<=4?1:2;case"ga":return e===1?0:e===2?1:2;case"lt":return e%10===1&&e%100!==11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2;case"sl":return e%100===1?0:e%100===2?1:e%100===3||e%100===4?2:3;case"mk":return e%10===1?0:1;case"mt":return e===1?0:e===0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3;case"lv":return e===0?0:e%10===1&&e%100!==11?1:2;case"pl":return e===1?0:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?1:2;case"cy":return e===1?0:e===2?1:e===8||e===11?2:3;case"ro":return e===1?0:e===0||e%100>0&&e%100<20?1:2;case"ar":return e===0?0:e===1?1:e===2?2:e%100>=3&&e%100<=10?3:e%100>=11&&e%100<=99?4:5;default:return 0}}function Ly(e=Date.now(),t={}){const n={ignoreSeconds:!1,language:fs(),relativeTime:"long",...t},u=new Date(e),s=new Intl.RelativeTimeFormat([n.language,fs()],{numeric:"auto",style:n.relativeTime}),i=(u.getTime()-Date.now())/1e3;if(Math.abs(i)<59.5)return n.ignoreSeconds||s.format(Math.round(i),"second");const r=i/60;if(Math.abs(r)<=59)return s.format(Math.round(r),"minute");const o=r/60;if(Math.abs(o)<23.5)return s.format(Math.round(o),"hour");const a=o/24;if(Math.abs(a)<6.5)return s.format(Math.round(a),"day");if(Math.abs(a)<27.5){const d=a/7;return s.format(Math.round(d),"week")}const l=a/30,c=Math.abs(l)<11?{month:n.relativeTime,day:"numeric"}:{year:n.relativeTime==="narrow"?"2-digit":"numeric",month:n.relativeTime};return new Intl.DateTimeFormat([n.language,fs()],c).format(u)}const Iy=()=>{},cr=Array.isArray,_a=Symbol(""),Py=Symbol("");function Mm(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ry(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!jy(e[n],t[n]))return!1;return!0}function jy(e,t){return cr(e)?$m(e,t):cr(t)?$m(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function $m(e,t){return cr(t)?e.length===t.length&&e.every((n,u)=>n===t[u]):e.length===1&&e[0]===t}function Vm(e){const t=Tt(_a),n=Tt(Py),u=Z(()=>{const a=N(e.to);return t.resolve(a)}),s=Z(()=>{const{matched:a}=u.value,{length:l}=a,c=a[l-1],d=n.matched;if(!c||!d.length)return-1;const g=d.findIndex(Mm.bind(null,c));if(g>-1)return g;const m=Um(a[l-2]);return l>1&&Um(c)===m&&d[d.length-1].path!==m?d.findIndex(Mm.bind(null,a[l-2])):g}),i=Z(()=>s.value>-1&&Vy(n.params,u.value.params)),r=Z(()=>s.value>-1&&s.value===n.matched.length-1&&Ry(n.params,u.value.params));function o(a={}){if($y(a)){const l=t[N(e.replace)?"replace":"push"](N(e.to)).catch(Iy);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>l),l}return Promise.resolve()}return{route:u,href:Z(()=>u.value.href),isActive:i,isExactActive:r,navigate:o}}function My(e){return e.length===1?e[0]:e}const Qf=Te({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Vm,setup(e,{slots:t}){const n=vs(Vm(e)),{options:u}=Tt(_a),s=Z(()=>({[Hm(e.activeClass,u.linkActiveClass,"router-link-active")]:n.isActive,[Hm(e.exactActiveClass,u.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&My(t.default(n));return e.custom?i:je("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}});function $y(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Vy(e,t){for(const n in t){const u=t[n],s=e[n];if(cr(u)){if(!cr(s)||s.length!==u.length||u.some((i,r)=>i.valueOf()!==s[r].valueOf()))return!1}else if(u!==s)return!1}return!0}function Um(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Hm=(e,t,n)=>e??t??n,[Uy]=window.OC?.config?.version?.split(".")??[],ep=Number.parseInt(Uy??"35"),zo=ep<32,N0=ep<34,Hy=Symbol.for("NcFormBox:context");function Wy(){return Tt(Hy,{isInFormBox:!1,formBoxItemClass:void 0})}const Ze=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n},qy={class:"button-vue__wrapper"},Ky={class:"button-vue__icon"},Yy={class:"button-vue__text"},Gy=Te({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(e,{emit:t}){const n=e,u=t,{formBoxItemClass:s}=Wy(),i=Tt(_a,null)!==null,r=Z(()=>i&&n.to?"RouterLink":n.href?"a":"button"),o=Z(()=>r.value==="button"&&typeof n.pressed=="boolean"),a=Z(()=>n.pressed?"primary":n.pressed===!1&&n.variant==="primary"?"secondary":n.variant),l=Z(()=>a.value.startsWith("tertiary")),c=Z(()=>n.alignment.split("-")[0]),d=Z(()=>n.alignment.includes("-")),g=Tt("NcPopover:trigger:attrs",()=>({}),!1),m=Z(()=>g()),f=Z(()=>{if(r.value==="RouterLink")return{to:n.to,activeClass:"active"};if(r.value==="a")return{href:n.href||"#",target:n.target,rel:"nofollow noreferrer noopener",download:n.download||void 0};if(r.value==="button")return{...m.value,"aria-pressed":n.pressed,type:n.type,disabled:n.disabled}});function p(E){o.value&&u("update:pressed",!n.pressed),u("click",E)}return(E,v)=>(D(),pe(hu(r.value),Ve({class:["button-vue",[`button-vue--size-${e.size}`,{[`button-vue--${a.value}`]:a.value,"button-vue--tertiary":l.value,"button-vue--wide":e.wide,[`button-vue--${c.value}`]:c.value!=="center","button-vue--reverse":d.value,"button-vue--legacy":N(zo),"button-vue--legacy34":N(N0)},N(s)]],"aria-label":e.ariaLabel},f.value,{onClick:p}),{default:re(()=>[H("span",qy,[H("span",Ky,[De(E.$slots,"icon",{},void 0,!0)]),H("span",Yy,[De(E.$slots,"default",{},()=>[Re(te(e.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),dt=Ze(Gy,[["__scopeId","data-v-47ce59a3"]]);window._nc_vue_element_id=window._nc_vue_element_id??0;function cn(){return`nc-vue-${window._nc_vue_element_id++}`}const Zy=["aria-labelledby"],Xy={key:0,class:"empty-content__icon","aria-hidden":"true"},Jy=["id"],Qy={key:2,class:"empty-content__description"},e5={key:3,class:"empty-content__action"},t5=Te({__name:"NcEmptyContent",props:{description:{default:""},name:{default:""}},setup(e){const t=cn();return(n,u)=>(D(),R("div",{"aria-labelledby":N(t),class:"empty-content",role:"note"},[n.$slots.icon?(D(),R("div",Xy,[De(n.$slots,"icon",{},void 0,!0)])):me("",!0),e.name!==""||n.$slots.name?(D(),R("div",{key:1,id:N(t),class:"empty-content__name"},[De(n.$slots,"name",{},()=>[Re(te(e.name),1)],!0)],8,Jy)):me("",!0),e.description!==""||n.$slots.description?(D(),R("p",Qy,[De(n.$slots,"description",{},()=>[Re(te(e.description),1)],!0)])):me("",!0),n.$slots.action?(D(),R("div",e5,[De(n.$slots,"action",{},void 0,!0)])):me("",!0)],8,Zy))}}),n5=Ze(t5,[["__scopeId","data-v-8609a4c1"]]);var u5="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",Wm="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",s5="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",i5="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",Oo="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",r5="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",o5="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",tp="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",T0="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",a5="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",l5="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",c5="M14,19H18V5H14M6,19H10V5H6V19Z",d5="M8,5.14V19.14L19,12.14L8,5.14Z",m5="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";const g5=["aria-hidden","aria-label"],f5={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},p5=["d"],h5=["innerHTML"],v5=Te({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(e){Aa(s=>({fb515064:n.value}));const t=e,n=Z(()=>typeof t.size=="number"?`${t.size}px`:t.size),u=Z(()=>{if(!t.svg||t.path)return;const s=Zf.sanitize(t.svg),i=new DOMParser().parseFromString(s,"image/svg+xml");return i.querySelector("parsererror")?"":(i.documentElement.id&&i.documentElement.removeAttribute("id"),i.documentElement.outerHTML)});return(s,i)=>(D(),R("span",{"aria-hidden":e.name?void 0:"true","aria-label":e.name||void 0,class:Ae(["icon-vue",{"icon-vue--directional":e.directional,"icon-vue--inline":e.inline}]),role:"img"},[u.value?(D(),R("span",{key:1,innerHTML:u.value},null,8,h5)):(D(),R("svg",f5,[H("path",{d:e.path},null,8,p5)]))],10,g5))}}),St=Ze(v5,[["__scopeId","data-v-aaedb1c3"]]),E5=["role"],C5={key:0,class:"notecard__heading"},y5={class:"notecard__text"},x5=Te({__name:"NcNoteCard",props:{heading:{default:void 0},showAlert:{type:Boolean},text:{default:void 0},type:{default:"warning"}},setup(e){const t=e,n=Z(()=>t.showAlert||t.type==="error"),u=Z(()=>{switch(t.type){case"error":return s5;case"success":return r5;case"info":return l5;default:return u5}});return(s,i)=>(D(),R("div",{class:Ae(["notecard",{[`notecard--${e.type}`]:e.type,"notecard--legacy":N(zo)}]),role:n.value?"alert":"note"},[De(s.$slots,"icon",{},()=>[le(N(St),{path:u.value,class:Ae(["notecard__icon",{"notecard__icon--heading":e.heading}]),inline:""},null,8,["path","class"])],!0),H("div",null,[e.heading?(D(),R("p",C5,te(e.heading),1)):me("",!0),De(s.$slots,"default",{},()=>[H("p",y5,te(e.text),1)],!0)])],10,E5))}}),Lo=Ze(x5,[["__scopeId","data-v-6be9fa31"]]),st=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n},b5={name:"CogOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},w5=["aria-hidden","aria-label"],k5=["fill","width","height"],B5={d:"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"},A5={key:0};function D5(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cog-outline-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",B5,[n.title?(D(),R("title",A5,te(n.title),1)):me("",!0)])],8,k5))],16,w5)}const F5=st(b5,[["render",D5]]),S5={name:"FormatListBulletedSquareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},_5=["aria-hidden","aria-label"],N5=["fill","width","height"],T5={d:"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9"},z5={key:0};function O5(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon format-list-bulleted-square-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",T5,[n.title?(D(),R("title",z5,te(n.title),1)):me("",!0)])],8,N5))],16,_5)}const L5=st(S5,[["render",O5]]);function I5(e,t=100,n={}){if(typeof e!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw new RangeError("`wait` must not be negative.");if(typeof n=="boolean")throw new TypeError("The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.");const{immediate:u}=n;let s,i,r,o,a;function l(){const g=s,m=i;return s=void 0,i=void 0,a=e.apply(g,m),a}function c(){const g=Date.now()-o;g=0?r=setTimeout(c,t-g):(r=void 0,u||(a=l()))}const d=function(...g){if(s&&this!==s&&Object.getPrototypeOf(this)===Object.getPrototypeOf(s))throw new Error("Debounced method called with different contexts of the same prototype.");s=this,i=g,o=Date.now();const m=u&&!r;if(r||(r=setTimeout(c,t)),m)return a=l(),a};return Object.defineProperty(d,"isPending",{get(){return r!==void 0}}),d.clear=()=>{r&&(clearTimeout(r),r=void 0,s=void 0,i=void 0)},d.flush=()=>{r&&d.trigger()},d.trigger=()=>{a=l(),d.clear()},d}function Io(e,t){return gc()?(A3(e,t),!0):!1}const z0=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const P5=e=>e!=null,R5=Object.prototype.toString,j5=e=>R5.call(e)==="[object Object]",Fl=()=>{};function Vi(e){return Array.isArray(e)?e:[e]}function M5(e){return zn()}function $5(e,t=!0,n){M5()?Qt(e,n):t?e():yu(e)}function V5(e,t=1e3,n={}){const{immediate:u=!0,immediateCallback:s=!1}=n;let i=null;const r=Cs(!1);function o(){i&&(clearInterval(i),i=null)}function a(){r.value=!1,o()}function l(){const c=Nt(t);c<=0||(r.value=!0,s&&e(),o(),r.value&&(i=setInterval(e,c)))}return u&&z0&&l(),(it(t)||typeof t=="function")&&Io($t(t,()=>{r.value&&z0&&l()})),Io(a),{isActive:U1(r),pause:a,resume:l}}function U5(e,t,n){return $t(e,t,{...n,immediate:!0})}const Dr=z0?window:void 0;function Wn(e){var t;const n=Nt(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function so(...e){const t=(u,s,i,r)=>(u.addEventListener(s,i,r),()=>u.removeEventListener(s,i,r)),n=Z(()=>{const u=Vi(Nt(e[0])).filter(s=>s!=null);return u.every(s=>typeof s!="string")?u:void 0});return U5(()=>{var u,s;return[(u=(s=n.value)===null||s===void 0?void 0:s.map(i=>Wn(i)))!==null&&u!==void 0?u:[Dr].filter(i=>i!=null),Vi(Nt(n.value?e[1]:e[0])),Vi(N(n.value?e[2]:e[1])),Nt(n.value?e[3]:e[2])]},([u,s,i,r],o,a)=>{if(!u?.length||!s?.length||!i?.length)return;const l=j5(r)?{...r}:r,c=u.flatMap(d=>s.flatMap(g=>i.map(m=>t(d,g,m,l))));a(()=>{c.forEach(d=>d())})},{flush:"post"})}function H5(){const e=Cs(!1),t=zn();return t&&Qt(()=>{e.value=!0},t),e}function np(e){const t=H5();return Z(()=>(t.value,!!e()))}function W5(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function qm(...e){let t,n,u={};e.length===3?(t=e[0],n=e[1],u=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],u=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Dr,eventName:i="keydown",passive:r=!1,dedupe:o=!1}=u,a=W5(t);return so(s,i,l=>{l.repeat&&Nt(o)||a(l)&&n(l)},r)}function q5(e,t,n={}){const{window:u=Dr,...s}=n;let i;const r=np(()=>u&&"ResizeObserver"in u),o=()=>{i&&(i.disconnect(),i=void 0)},a=$t(Z(()=>{const c=Nt(e);return Array.isArray(c)?c.map(d=>Wn(d)):[Wn(c)]}),c=>{if(o(),r.value&&u){i=new ResizeObserver(t);for(const d of c)d&&i.observe(d,s)}},{immediate:!0,flush:"post"}),l=()=>{o(),a()};return Io(l),{isSupported:r,stop:l}}function O0(e,t={width:0,height:0},n={}){const{window:u=Dr,box:s="content-box"}=n,i=Z(()=>{var d;return(d=Wn(e))===null||d===void 0||(d=d.namespaceURI)===null||d===void 0?void 0:d.includes("svg")}),r=Cs(t.width),o=Cs(t.height),{stop:a}=q5(e,([d])=>{const g=s==="border-box"?d.borderBoxSize:s==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(u&&i.value){const m=Wn(e);if(m){const f=m.getBoundingClientRect();r.value=f.width,o.value=f.height}}else if(g){const m=Vi(g);r.value=m.reduce((f,{inlineSize:p})=>f+p,0),o.value=m.reduce((f,{blockSize:p})=>f+p,0)}else r.value=d.contentRect.width,o.value=d.contentRect.height},n);$5(()=>{const d=Wn(e);if(d&&"offsetWidth"in d)if(s==="content-box"&&u){const g=u.getComputedStyle(d),m=Number.parseFloat(g.paddingLeft)+Number.parseFloat(g.paddingRight),f=Number.parseFloat(g.paddingTop)+Number.parseFloat(g.paddingBottom),p=Number.parseFloat(g.borderLeftWidth)+Number.parseFloat(g.borderRightWidth),E=Number.parseFloat(g.borderTopWidth)+Number.parseFloat(g.borderBottomWidth);r.value=d.offsetWidth-m-p,o.value=d.offsetHeight-f-E}else r.value=d.offsetWidth,o.value=d.offsetHeight;else d&&(r.value=t.width,o.value=t.height)});const l=$t(()=>Wn(e),d=>{r.value=d?t.width:0,o.value=d?t.height:0});function c(){a(),l()}return{width:r,height:o,stop:c}}function K5(e,t,n={}){const{root:u,rootMargin:s,threshold:i=0,window:r=Dr,immediate:o=!0}=n,a=np(()=>r&&"IntersectionObserver"in r),l=Z(()=>Vi(Nt(e)).map(Wn).filter(P5));let c=Fl;const d=Cs(o),g=a.value?$t(()=>[l.value,Wn(u),Nt(s),d.value],([f,p,E])=>{if(c(),!d.value||!f.length)return;const v=new IntersectionObserver(t,{root:Wn(p),rootMargin:E,threshold:i});f.forEach(C=>C&&v.observe(C)),c=()=>{v.disconnect(),c=Fl}},{immediate:o,flush:"post"}):Fl,m=()=>{c(),g(),d.value=!1};return Io(m),{isSupported:a,isActive:d,pause(){c(),d.value=!1},resume(){d.value=!0},stop:m}}function Y5(e,t={}){const{threshold:n=50,onSwipe:u,onSwipeEnd:s,onSwipeStart:i,passive:r=!0}=t,o=vs({x:0,y:0}),a=vs({x:0,y:0}),l=Z(()=>o.x-a.x),c=Z(()=>o.y-a.y),{max:d,abs:g}=Math,m=Z(()=>d(g(l.value),g(c.value))>=n),f=Cs(!1),p=Z(()=>m.value?g(l.value)>g(c.value)?l.value>0?"left":"right":c.value>0?"up":"down":"none"),E=F=>[F.touches[0].clientX,F.touches[0].clientY],v=(F,P)=>{o.x=F,o.y=P},C=(F,P)=>{a.x=F,a.y=P},y={passive:r,capture:!r},k=F=>{f.value&&s?.(F,p.value),f.value=!1},j=[so(e,"touchstart",F=>{if(F.touches.length!==1)return;const[P,K]=E(F);v(P,K),C(P,K),i?.(F)},y),so(e,"touchmove",F=>{if(F.touches.length!==1)return;const[P,K]=E(F);C(P,K),y.capture&&!y.passive&&Math.abs(l.value)>Math.abs(c.value)&&F.preventDefault(),!f.value&&m.value&&(f.value=!0),f.value&&u?.(F)},y),so(e,["touchend","touchcancel"],k,y)];return{isSwiping:f,direction:p,coordsStart:o,coordsEnd:a,lengthX:l,lengthY:c,stop:()=>j.forEach(F=>F())}}class G5{bundle;constructor(t){this.bundle={pluralFunction:t,translations:{}}}addTranslations(t){const n=Object.values(t.translations[""]??{}).map(({msgid:u,msgid_plural:s,msgstr:i})=>s!==void 0?[`_${u}_::_${s}_`,i]:[u,i[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(n)}}gettext(t,n={}){return ae("",t,n,void 0,{bundle:this.bundle})}ngettext(t,n,u,s={}){return zy("",t,n,u,s,{bundle:this.bundle})}}class Z5{debug=!1;language="en";translations={};setLanguage(t){return this.language=t,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(fs().replace("-","_"))}addTranslation(t,n){return this.translations[t]=n,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const t=new G5(n=>Oy(n,this.language));return this.language in this.translations&&t.addTranslations(this.translations[this.language]),t}}function up(){return new Z5}const Dc=up().detectLanguage().build(),X5=(...e)=>Dc.ngettext(...e),$e=(...e)=>Dc.gettext(...e);function yt(...e){for(const t of e)if(!t.registered){for(const{l:n,t:u}of t){if(n!==fs()||!u)continue;const s=Object.fromEntries(Object.entries(u).map(([i,r])=>[i,{msgid:i,msgid_plural:r.p,msgstr:r.v}]));Dc.addTranslations({translations:{"":s}})}t.registered=!0}}const J5=[{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"]},"Invalid date":{v:["Neplatné datum"]},"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"]},"Invalid date":{v:["Ugyldig dato"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"Invalid date":{v:["Ungültiges Datum"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"Invalid date":{v:["Ungültiges Datum"]},"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"]},"Invalid date":{v:["Vigane kuupäev"]},"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 secondes"]},"Invalid date":{v:["Date non valide"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques sec."]}}},{l:"ga",t:{"a few seconds ago":{v:["cúpla soicind ó shin"]},"Invalid date":{v:["Dáta neamhbhailí"]},"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:["数秒前"]},"Invalid date":{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"]},"Invalid date":{v:["Data inválida"]},"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:["för några sekunder sedan"]},"Invalid date":{v:["Ogiltigt datum"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaç saniye önce"]},"Invalid date":{v:["Tarih geçersiz"]},"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:["秒前"]}}}],Q5=[{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:["動作"]}}}],ex=[{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:["Échap"]},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:["Mellanslag"]},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鍵"]}}}],tx=[{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:["Valfri länk"]}}},{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:["任何連結"]}}}],nx=[{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örsvalet"]},"Close Smart Picker":{v:["Stäng smartväljaren"]},"Smart Picker":{v:["Smartväljare"]}}},{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:["智慧型挑選器"]}}}],ux=[{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 valda"]},"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:["選項"]}}}],sx=[{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:["Enregistrer les modifications"]}}},{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:["Rensa 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:["儲存變更"]}}}],sp=[{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:["關閉"]}}}],ix=[{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:["Kopierat"]},"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:["複製到剪貼簿"]}}}],rx=[{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í"]},"Widget height":{v:["Výška ovládacího prvku"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Enable interactive view":{v:["Aktiver interaktiv visning"]},"Widget height":{v:["Kontrolhøjde"]}}},{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"]},"Widget height":{v:["Hauteur du widget"]}}},{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"]},"Widget height":{v:["Hoogte van widget"]}}},{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:["Включить интерактивный просмотр"]},"Widget height":{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:["Widgethöjd"]}}},{l:"tr",t:{"Enable interactive view":{v:["Etkileşimli görünümü aç"]},"Widget height":{v:["Araç takımı yüksekliği"]}}},{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:["啟用互動檢視"]}}}],ox=[{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 en 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:["輸入連結"]}}}],ip=[{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:["Kortkommandon"]}}},{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:["鍵盤快速鍵"]}}}],ax=[{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 davantage « {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:['Läs in 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:["開始輸入以進行搜尋"]}}}],lx=[{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:["Läser in …"]}}},{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:["載入中......"]}}}],cx=[{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:["開始幻燈片"]}}}],Km=[{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:["提供者圖示"]}}}],dx=[{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:["搜尋"]}}}],mx=[{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:["選取提供者"]}}}],gx=[{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:["Navigering för inställningar"]}}},{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:["設定值導覽"]}}}],fx=[{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 modifications"]}}},{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:["還原變更"]}}}],px=["aria-label"],hx=["width","height"],vx=["fill"],Ex=["fill"],Cx={key:0},yx=Te({__name:"NcLoadingIcon",props:{appearance:{default:"auto"},name:{default:""},size:{default:20}},setup(e){const t=e,n=Z(()=>{const u=["#777","#CCC"];return t.appearance==="light"?u:t.appearance==="dark"?u.reverse():["var(--color-loading-light)","var(--color-loading-dark)"]});return(u,s)=>(D(),R("span",{"aria-label":e.name,role:"img",class:"material-design-icon loading-icon"},[(D(),R("svg",{width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",{fill:n.value[0],d:"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z"},null,8,vx),H("path",{fill:n.value[1],d:"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z"},[e.name?(D(),R("title",Cx,te(e.name),1)):me("",!0)],8,Ex)],8,hx))],8,px))}}),Fc=Ze(yx,[["__scopeId","data-v-cf399190"]]);yt(lx);const xx=Te({__name:"NcDialogButton",props:{callback:{type:Function,default:()=>{}},disabled:{type:Boolean,default:!1},icon:{default:void 0},label:{},type:{default:"button"},variant:{default:"tertiary"}},emits:["click"],setup(e,{emit:t}){const n=e,u=t,s=be(!1);async function i(r){if(!s.value){s.value=!0;try{const o=n.type==="reset"?!1:void 0,a=await n.callback?.()??o;a!==!1&&u("click",r,a)}finally{s.value=!1}}}return(r,o)=>(D(),pe(N(dt),{"aria-label":e.label,disabled:e.disabled,type:e.type,variant:e.variant,onClick:i},{icon:re(()=>[De(r.$slots,"icon",{},()=>[s.value?(D(),pe(N(Fc),{key:0,name:N($e)("Loading …")},null,8,["name"])):e.icon!==void 0?(D(),pe(N(St),{key:1,svg:e.icon},null,8,["svg"])):me("",!0)])]),default:re(()=>[Re(te(e.label)+" ",1)]),_:3},8,["aria-label","disabled","type","variant"]))}});var rp=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],Po=rp.join(","),op=typeof Element>"u",ys=op?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ro=!op&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e?.ownerDocument},jo=function(e,t){var n;t===void 0&&(t=!0);var u=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),s=u===""||u==="true",i=s||t&&e&&(typeof e.closest=="function"?e.closest("[inert]"):jo(e.parentNode));return i},bx=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},ap=function(e,t,n){if(jo(e))return[];var u=Array.prototype.slice.apply(e.querySelectorAll(Po));return t&&ys.call(e,Po)&&u.unshift(e),u=u.filter(n),u},Mo=function(e,t,n){for(var u=[],s=Array.from(e);s.length;){var i=s.shift();if(!jo(i,!1))if(i.tagName==="SLOT"){var r=i.assignedElements(),o=r.length?r:i.children,a=Mo(o,!0,n);n.flatten?u.push.apply(u,a):u.push({scopeParent:i,candidates:a})}else{var l=ys.call(i,Po);l&&n.filter(i)&&(t||!e.includes(i))&&u.push(i);var c=i.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(i),d=!jo(c,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(i));if(c&&d){var g=Mo(c===!0?i.children:c.children,!0,n);n.flatten?u.push.apply(u,g):u.push({scopeParent:i,candidates:g})}else s.unshift.apply(s,i.children)}}return u},lp=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},rs=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||bx(e))&&!lp(e)?0:e.tabIndex},wx=function(e,t){var n=rs(e);return n<0&&t&&!lp(e)?0:n},kx=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},cp=function(e){return e.tagName==="INPUT"},Bx=function(e){return cp(e)&&e.type==="hidden"},Ax=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},Dx=function(e,t){for(var n=0;nsummary:first-of-type"),a=o?e.parentElement:e;if(ys.call(a,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof u=="function"){for(var l=e;e;){var c=e.parentElement,d=Ro(e);if(c&&!c.shadowRoot&&u(c)===!0)return Ym(e);e.assignedSlot?e=e.assignedSlot:!c&&d!==e.ownerDocument?e=d.host:e=c}e=l}if(Nx(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return Ym(e);return!1},zx=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n=0)},dp=function(e){var t=[],n=[];return e.forEach(function(u,s){var i=!!u.scopeParent,r=i?u.scopeParent:u,o=wx(r,i),a=i?dp(u.candidates):r;o===0?i?t.push.apply(t,a):t.push(r):n.push({documentOrder:s,tabIndex:o,item:u,isScope:i,content:a})}),n.sort(kx).reduce(function(u,s){return s.isScope?u.push.apply(u,s.content):u.push(s.content),u},[]).concat(t)},Lx=function(e,t){t=t||{};var n;return t.getShadowRoot?n=Mo([e],t.includeContainer,{filter:L0.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Ox}):n=ap(e,t.includeContainer,L0.bind(null,t)),dp(n)},Ix=function(e,t){t=t||{};var n;return t.getShadowRoot?n=Mo([e],t.includeContainer,{filter:$o.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):n=ap(e,t.includeContainer,$o.bind(null,t)),n},Os=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ys.call(e,Po)===!1?!1:L0(t,e)},Px=rp.concat("iframe:not([inert]):not([inert] *)").join(","),Sl=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ys.call(e,Px)===!1?!1:$o(t,e)};function I0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,u=Array(t);n=e.length?{done:!0}:{done:!1,value:e[u++]}},e:function(a){throw a},f:s}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i,r=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var a=n.next();return r=a.done,a},e:function(a){o=!0,i=a},f:function(){try{r||n.return==null||n.return()}finally{if(o)throw i}}}}function jx(e,t,n){return(t=Hx(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Mx(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function $x(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Zm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);t&&(u=u.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,u)}return n}function Xm(e){for(var t=1;t0?e[e.length-1]:null},activateTrap:function(e,t){var n=cu.getActiveTrap(e);t!==n&&cu.pauseTrap(e);var u=e.indexOf(t);u===-1||e.splice(u,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);n!==-1&&e.splice(n,1),cu.unpauseTrap(e)},pauseTrap:function(e){var t=cu.getActiveTrap(e);t?._setPausedState(!0)},unpauseTrap:function(e){var t=cu.getActiveTrap(e);t&&!t._isManuallyPaused()&&t._setPausedState(!1)}},Wx=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},qx=function(e){return e?.key==="Escape"||e?.key==="Esc"||e?.keyCode===27},Ui=function(e){return e?.key==="Tab"||e?.keyCode===9},Kx=function(e){return Ui(e)&&!e.shiftKey},Yx=function(e){return Ui(e)&&e.shiftKey},Jm=function(e){return setTimeout(e,0)},bi=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),u=1;u1&&arguments[1]!==void 0?arguments[1]:{},L=z.hasFallback,I=L===void 0?!1:L,G=z.params,ue=G===void 0?[]:G,oe=s[x];if(typeof oe=="function"&&(oe=oe.apply(void 0,Vx(ue))),oe===!0&&(oe=void 0),!oe){if(oe===void 0||oe===!1)return oe;throw new Error("`".concat(x,"` was specified but was not a node, or did not return a node"))}var Ee=oe;if(typeof oe=="string"){try{Ee=n.querySelector(oe)}catch(b){throw new Error("`".concat(x,'` appears to be an invalid selector; error="').concat(b.message,'"'),{cause:b})}if(!Ee&&!I)throw new Error("`".concat(x,"` as selector refers to no known node"))}return Ee},c=function(x){var z=x.activeElement;return z?z.shadowRoot&&z.shadowRoot.activeElement!==null?c(z.shadowRoot):z:null},d=function(){var x=l("initialFocus",{hasFallback:!0});if(x===!1)return!1;if(x===void 0||x&&!Sl(x,s.tabbableOptions)){var z=c(n);if(a(z)>=0)x=z;else{var L=i.tabbableGroups[0],I=L&&L.firstTabbableNode;x=I||l("fallbackFocus")}}else x===null&&(x=l("fallbackFocus"));if(!x)throw new Error("Your focus-trap needs to have at least one focusable element");return x},g=function(){if(i.containerGroups=i.containers.map(function(x){var z=Lx(x,s.tabbableOptions),L=Ix(x,s.tabbableOptions),I=z.length>0?z[0]:void 0,G=z.length>0?z[z.length-1]:void 0,ue=L.find(function(b){return Os(b)}),oe=L.slice().reverse().find(function(b){return Os(b)}),Ee=!!z.find(function(b){return rs(b)>0});return{container:x,tabbableNodes:z,focusableNodes:L,posTabIndexesFound:Ee,firstTabbableNode:I,lastTabbableNode:G,firstDomTabbableNode:ue,lastDomTabbableNode:oe,nextTabbableNode:function(b){var Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ye=z.indexOf(b);return ye<0?Se?L.slice(L.indexOf(b)+1).find(function(A){return Os(A)}):L.slice(0,L.indexOf(b)).reverse().find(function(A){return Os(A)}):z[ye+(Se?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(x){return x.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!l("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(x){return x.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},m=function(x){if(x!==!1){if(x===c(n)){i.mostRecentlyFocusedNode=x;return}if(!x||!x.focus){m(d());return}x.focus({preventScroll:!!s.preventScroll}),i.mostRecentlyFocusedNode=x,Wx(x)&&x.select()}},f=function(x){var z=l("setReturnFocus",{params:[x]});return z||(z===!1?!1:x)},p=function(x){var z=x.target,L=x.event,I=x.isBackward,G=I===void 0?!1:I;z=z||qr(L),g();var ue=null;if(i.tabbableGroups.length>0){var oe=a(z,L),Ee=oe>=0?i.containerGroups[oe]:void 0;if(oe<0)G?ue=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:ue=i.tabbableGroups[0].firstTabbableNode;else if(G){var b=i.tabbableGroups.findIndex(function(he){var Fe=he.firstTabbableNode;return z===Fe});if(b<0&&(Ee.container===z||Sl(z,s.tabbableOptions)&&!Os(z,s.tabbableOptions)&&!Ee.nextTabbableNode(z,!1))&&(b=oe),b>=0){var Se=b===0?i.tabbableGroups.length-1:b-1,ye=i.tabbableGroups[Se];ue=rs(z)>=0?ye.lastTabbableNode:ye.lastDomTabbableNode}else Ui(L)||(ue=Ee.nextTabbableNode(z,!1))}else{var A=i.tabbableGroups.findIndex(function(he){var Fe=he.lastTabbableNode;return z===Fe});if(A<0&&(Ee.container===z||Sl(z,s.tabbableOptions)&&!Os(z,s.tabbableOptions)&&!Ee.nextTabbableNode(z))&&(A=oe),A>=0){var Je=A===i.tabbableGroups.length-1?0:A+1,xe=i.tabbableGroups[Je];ue=rs(z)>=0?xe.firstTabbableNode:xe.firstDomTabbableNode}else Ui(L)||(ue=Ee.nextTabbableNode(z))}}else ue=l("fallbackFocus");return ue},E=function(x){var z=qr(x);if(!(a(z,x)>=0)){if(bi(s.clickOutsideDeactivates,x)){r.deactivate({returnFocus:s.returnFocusOnDeactivate});return}bi(s.allowOutsideClick,x)||x.preventDefault()}},v=function(x){var z=qr(x),L=a(z,x)>=0;if(L||z instanceof Document)L&&(i.mostRecentlyFocusedNode=z);else{x.stopImmediatePropagation();var I,G=!0;if(i.mostRecentlyFocusedNode)if(rs(i.mostRecentlyFocusedNode)>0){var ue=a(i.mostRecentlyFocusedNode),oe=i.containerGroups[ue].tabbableNodes;if(oe.length>0){var Ee=oe.findIndex(function(b){return b===i.mostRecentlyFocusedNode});Ee>=0&&(s.isKeyForward(i.recentNavEvent)?Ee+1=0&&(I=oe[Ee-1],G=!1))}}else i.containerGroups.some(function(b){return b.tabbableNodes.some(function(Se){return rs(Se)>0})})||(G=!1);else G=!1;G&&(I=p({target:i.mostRecentlyFocusedNode,isBackward:s.isKeyBackward(i.recentNavEvent)})),m(I||i.mostRecentlyFocusedNode||d())}i.recentNavEvent=void 0},C=function(x){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=x;var L=p({event:x,isBackward:z});L&&(Ui(x)&&x.preventDefault(),m(L))},y=function(x){(s.isKeyForward(x)||s.isKeyBackward(x))&&C(x,s.isKeyBackward(x))},k=function(x){qx(x)&&bi(s.escapeDeactivates,x)!==!1&&(x.preventDefault(),r.deactivate())},j=function(x){var z=qr(x);a(z,x)>=0||bi(s.clickOutsideDeactivates,x)||bi(s.allowOutsideClick,x)||(x.preventDefault(),x.stopImmediatePropagation())},F=function(){if(i.active){cu.activateTrap(u,r);var x;return s.delayInitialFocus?x=new Promise(function(z){i.delayInitialFocusTimer=Jm(function(){m(d()),z()})}):m(d()),n.addEventListener("focusin",v,!0),n.addEventListener("mousedown",E,{capture:!0,passive:!1}),n.addEventListener("touchstart",E,{capture:!0,passive:!1}),n.addEventListener("click",j,{capture:!0,passive:!1}),n.addEventListener("keydown",y,{capture:!0,passive:!1}),n.addEventListener("keydown",k),x}},P=function(x){i.active&&!i.paused&&r._setSubtreeIsolation(!1),i.adjacentElements.clear(),i.alreadySilent.clear();var z=new Set,L=new Set,I=Gm(x),G;try{for(I.s();!(G=I.n()).done;){var ue=G.value;z.add(ue);for(var oe=typeof ShadowRoot<"u"&&ue.getRootNode()instanceof ShadowRoot,Ee=ue;Ee;){z.add(Ee);var b=Ee.parentElement,Se=[];b?Se=b.children:!b&&oe&&(Se=Ee.getRootNode().children,b=Ee.getRootNode().host,oe=typeof ShadowRoot<"u"&&b.getRootNode()instanceof ShadowRoot);var ye=Gm(Se),A;try{for(ye.s();!(A=ye.n()).done;){var Je=A.value;L.add(Je)}}catch(xe){ye.e(xe)}finally{ye.f()}Ee=b}}}catch(xe){I.e(xe)}finally{I.f()}z.forEach(function(xe){L.delete(xe)}),i.adjacentElements=L},K=function(){if(i.active)return n.removeEventListener("focusin",v,!0),n.removeEventListener("mousedown",E,!0),n.removeEventListener("touchstart",E,!0),n.removeEventListener("click",j,!0),n.removeEventListener("keydown",y,!0),n.removeEventListener("keydown",k),r},$=function(x){var z=i.mostRecentlyFocusedNode;if(z){var L=x.some(function(G){var ue=Array.from(G.removedNodes);return ue.some(function(oe){return oe===z||typeof oe.contains=="function"&&oe.contains(z)})});if(L&&i.containers.some(function(G){return G?.isConnected})){g();var I=d();m(I)}}},B=typeof window<"u"&&"MutationObserver"in window?new MutationObserver($):void 0,T=function(){B&&(B.disconnect(),i.active&&!i.paused&&i.containers.map(function(x){B.observe(x,{subtree:!0,childList:!0})}))};return r={get active(){return i.active},get paused(){return i.paused},activate:function(x){if(i.active)return this;var z=o(x,"onActivate"),L=o(x,"onPostActivate"),I=o(x,"checkCanFocusTrap"),G=cu.getActiveTrap(u),ue=!1;if(G&&!G.paused){var oe;(oe=G._setSubtreeIsolation)===null||oe===void 0||oe.call(G,!1),ue=!0}try{I||g(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=c(n),z?.({trap:r});var Ee=function(){I&&g();var Se=function(){r._setSubtreeIsolation(!0),T(),L?.({trap:r})},ye=F();ye?ye.then(Se):Se()};if(I)return I(i.containers.concat()).then(Ee,Ee),this;Ee()}catch(Se){if(G===cu.getActiveTrap(u)&&ue){var b;(b=G._setSubtreeIsolation)===null||b===void 0||b.call(G,!0)}throw Se}return this},deactivate:function(x){if(!i.active)return this;var z=Xm({onDeactivate:s.onDeactivate,onPostDeactivate:s.onPostDeactivate,checkCanReturnFocus:s.checkCanReturnFocus},x);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,i.paused||r._setSubtreeIsolation(!1),i.alreadySilent.clear(),K(),i.active=!1,i.paused=!1,T(),cu.deactivateTrap(u,r);var L=o(z,"onDeactivate"),I=o(z,"onPostDeactivate"),G=o(z,"checkCanReturnFocus"),ue=o(z,"delayReturnFocus"),oe=o(z,"returnFocus","returnFocusOnDeactivate");L?.({trap:r});var Ee=function(){oe&&m(f(i.nodeFocusedBeforeActivation)),I?.({trap:r})},b=function(){ue&&oe?Jm(Ee):Ee()};return oe&&G?(G(f(i.nodeFocusedBeforeActivation)).then(b,b),this):(b(),this)},pause:function(x){return i.active?(i.manuallyPaused=!0,this._setPausedState(!0,x)):this},unpause:function(x){return i.active?(i.manuallyPaused=!1,u[u.length-1]!==this?this:this._setPausedState(!1,x)):this},updateContainerElements:function(x){var z=[].concat(x).filter(Boolean);return i.containers=z.map(function(L){return typeof L=="string"?n.querySelector(L):L}),s.isolateSubtrees&&P(i.containers),i.active&&(g(),i.paused||r._setSubtreeIsolation(!0)),T(),this}},Object.defineProperties(r,{_isManuallyPaused:{value:function(){return i.manuallyPaused}},_setPausedState:{value:function(x,z){if(i.paused===x)return this;if(i.paused=x,x){var L=o(z,"onPause"),I=o(z,"onPostPause");L?.({trap:r}),K(),r._setSubtreeIsolation(!1),T(),I?.({trap:r})}else{var G=o(z,"onUnpause"),ue=o(z,"onPostUnpause");G?.({trap:r});var oe=function(){g();var Ee=function(){r._setSubtreeIsolation(!0),T(),ue?.({trap:r})},b=F();b?b.then(Ee):Ee()};oe()}return this}},_setSubtreeIsolation:{value:function(x){s.isolateSubtrees&&i.adjacentElements.forEach(function(z){var L;x?s.isolateSubtrees==="aria-hidden"?((z.ariaHidden==="true"||((L=z.getAttribute("aria-hidden"))===null||L===void 0?void 0:L.toLowerCase())==="true")&&i.alreadySilent.add(z),z.setAttribute("aria-hidden","true")):((z.inert||z.hasAttribute("inert"))&&i.alreadySilent.add(z),z.setAttribute("inert",!0)):i.alreadySilent.has(z)||(s.isolateSubtrees==="aria-hidden"?z.removeAttribute("aria-hidden"):z.removeAttribute("inert"))})}}}),r.updateContainerElements(e),r};function dr(){return window._nc_focus_trap??=[],window._nc_focus_trap}function Zx(){let e=[];return{pause(){e=[...dr()];for(const t of e)t.pause()},unpause(){if(e.length===dr().length)for(const t of e)t.unpause();e=[]}}}function Xx(e,t={}){const n=Zx();$t(e,()=>{Nt(t.disabled)||(Nt(e)?n.pause():n.unpause())}),Bn(()=>{n.unpause()})}const Jx=["top","right","bottom","left"],Qm=["start","end"],e4=Jx.reduce((e,t)=>e.concat(t,t+"-"+Qm[0],t+"-"+Qm[1]),[]),mr=Math.min,P0=Math.max,Qx={left:"right",right:"left",bottom:"top",top:"bottom"};function fp(e,t,n){return P0(e,mr(t,n))}function Bs(e,t){return typeof e=="function"?e(t):e}function xu(e){return e.split("-")[0]}function Tn(e){return e.split("-")[1]}function pp(e){return e==="x"?"y":"x"}function Sc(e){return e==="y"?"height":"width"}function gu(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function _c(e){return pp(gu(e))}function hp(e,t,n){n===void 0&&(n=!1);const u=Tn(e),s=_c(e),i=Sc(s);let r=s==="x"?u===(n?"end":"start")?"right":"left":u==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(r=Uo(r)),[r,Uo(r)]}function e6(e){const t=Uo(e);return[Vo(e),t,Vo(t)]}function Vo(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const t4=["left","right"],n4=["right","left"],t6=["top","bottom"],n6=["bottom","top"];function u6(e,t,n){switch(e){case"top":case"bottom":return n?t?n4:t4:t?t4:n4;case"left":case"right":return t?t6:n6;default:return[]}}function s6(e,t,n,u){const s=Tn(e);let i=u6(xu(e),n==="start",u);return s&&(i=i.map(r=>r+"-"+s),t&&(i=i.concat(i.map(Vo)))),i}function Uo(e){const t=xu(e);return Qx[t]+e.slice(t.length)}function i6(e){var t,n,u,s;return{top:(t=e.top)!=null?t:0,right:(n=e.right)!=null?n:0,bottom:(u=e.bottom)!=null?u:0,left:(s=e.left)!=null?s:0}}function vp(e){return typeof e!="number"?i6(e):{top:e,right:e,bottom:e,left:e}}function Hi(e){const{x:t,y:n,width:u,height:s}=e;return{width:u,height:s,top:n,left:t,right:t+u,bottom:n+s,x:t,y:n}}function u4(e,t,n){let{reference:u,floating:s}=e;const i=gu(t),r=_c(t),o=Sc(r),a=xu(t),l=i==="y",c=u.x+u.width/2-s.width/2,d=u.y+u.height/2-s.height/2,g=u[o]/2-s[o]/2;let m;switch(a){case"top":m={x:c,y:u.y-s.height};break;case"bottom":m={x:c,y:u.y+u.height};break;case"right":m={x:u.x+u.width,y:d};break;case"left":m={x:u.x-s.width,y:d};break;default:m={x:u.x,y:u.y}}const f=Tn(t);return f&&(m[r]+=g*(f==="end"?1:-1)*(n&&l?-1:1)),m}async function r6(e,t){var n;t===void 0&&(t={});const{x:u,y:s,platform:i,rects:r,elements:o,strategy:a}=e,{boundary:l="clippingAncestors",rootBoundary:c="viewport",elementContext:d="floating",altBoundary:g=!1,padding:m=0}=Bs(t,e),f=vp(m),p=o[g?d==="floating"?"reference":"floating":d],E=Hi(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(p)))==null||n?p:p.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:l,rootBoundary:c,strategy:a})),v=d==="floating"?{x:u,y:s,width:r.floating.width,height:r.floating.height}:r.reference,C=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),y=await(i.isElement==null?void 0:i.isElement(C))&&await(i.getScale==null?void 0:i.getScale(C))||{x:1,y:1},k=Hi(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:v,offsetParent:C,strategy:a}):v);return{top:(E.top-k.top+f.top)/y.y,bottom:(k.bottom-E.bottom+f.bottom)/y.y,left:(E.left-k.left+f.left)/y.x,right:(k.right-E.right+f.right)/y.x}}const o6=50,a6=async(e,t,n)=>{const{placement:u="bottom",strategy:s="absolute",middleware:i=[],platform:r}=n,o=r.detectOverflow?r:{...r,detectOverflow:r6},a=await(r.isRTL==null?void 0:r.isRTL(t));let l=await r.getElementRects({reference:e,floating:t,strategy:s}),{x:c,y:d}=u4(l,u,a),g=u,m=0;const f={};for(let p=0;p({name:"arrow",options:e,async fn(t){const{x:n,y:u,placement:s,rects:i,platform:r,elements:o,middlewareData:a}=t,{element:l,padding:c=0}=Bs(e,t)||{};if(l==null)return{};const d=vp(c),g={x:n,y:u},m=_c(s),f=Sc(m),p=await r.getDimensions(l),E=m==="y",v=E?"top":"left",C=E?"bottom":"right",y=E?"clientHeight":"clientWidth",k=i.reference[f]+i.reference[m]-g[m]-i.floating[f],j=g[m]-i.reference[m],F=await(r.getOffsetParent==null?void 0:r.getOffsetParent(l));let P=F?F[y]:0;(!P||!await(r.isElement==null?void 0:r.isElement(F)))&&(P=o.floating[y]||i.floating[f]);const K=k/2-j/2,$=P/2-p[f]/2-1,B=mr(d[v],$),T=mr(d[C],$),x=P-p[f]-T,z=P/2-p[f]/2+K,L=fp(B,z,x),I=!a.arrow&&Tn(s)!=null&&z!==L&&i.reference[f]/2-(zTn(u)===e),...n.filter(u=>Tn(u)!==e)]:n.filter(u=>xu(u)===u)).filter(u=>e?Tn(u)===e||(t?Vo(u)!==u:!1):!0)}const d6=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,u,s;const{rects:i,middlewareData:r,placement:o,platform:a,elements:l}=t,{crossAxis:c=!1,alignment:d,allowedPlacements:g=e4,autoAlignment:m=!0,...f}=Bs(e,t),p=d!==void 0||g===e4?c6(d||null,m,g):g,E=((n=r.autoPlacement)==null?void 0:n.index)||0,v=p[E];if(v==null)return{};if(o!==v)return{reset:{placement:p[0]}};const C=await a.detectOverflow(t,f),y=hp(v,i,await(a.isRTL==null?void 0:a.isRTL(l.floating))),k=[C[xu(v)],C[y[0]],C[y[1]]],j=[...((u=r.autoPlacement)==null?void 0:u.overflows)||[],{placement:v,overflows:k}],F=p[E+1];if(F)return{data:{index:E+1,overflows:j},reset:{placement:F}};const P=j.map($=>{const B=Tn($.placement);return[$.placement,B&&c?$.overflows.slice(0,2).reduce((T,x)=>T+x,0):$.overflows[0],$.overflows]}).sort(($,B)=>$[1]-B[1]),K=((s=P.filter($=>$[2].slice(0,Tn($[0])?2:3).every(B=>B<=0))[0])==null?void 0:s[0])||P[0][0];return K!==o?{data:{index:E+1,overflows:j},reset:{placement:K}}:{}}}},m6=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,u;const{placement:s,middlewareData:i,rects:r,initialPlacement:o,platform:a,elements:l}=t,{mainAxis:c=!0,crossAxis:d=!0,fallbackPlacements:g,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:f="none",flipAlignment:p=!0,...E}=Bs(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const v=xu(s),C=gu(o),y=xu(o)===o,k=await(a.isRTL==null?void 0:a.isRTL(l.floating)),j=g||(y||!p?[Uo(o)]:e6(o)),F=f!=="none";!g&&F&&j.push(...s6(o,p,f,k));const P=[o,...j],K=await a.detectOverflow(t,E),$=[];let B=((u=i.flip)==null?void 0:u.overflows)||[];if(c&&$.push(K[v]),d){const L=hp(s,r,k);$.push(K[L[0]],K[L[1]])}if(B=[...B,{placement:s,overflows:$}],!$.every(L=>L<=0)){var T,x;const L=(((T=i.flip)==null?void 0:T.index)||0)+1,I=P[L];if(I&&(!(d==="alignment"&&C!==gu(I))||B.every(ue=>gu(ue.placement)===C?ue.overflows[0]>0:!0)))return{data:{index:L,overflows:B},reset:{placement:I}};let G=(x=B.filter(ue=>ue.overflows[0]<=0).sort((ue,oe)=>ue.overflows[1]-oe.overflows[1])[0])==null?void 0:x.placement;if(!G)switch(m){case"bestFit":{var z;const ue=(z=B.filter(oe=>{if(F){const Ee=gu(oe.placement);return Ee===C||Ee==="y"}return!0}).map(oe=>[oe.placement,oe.overflows.filter(Ee=>Ee>0).reduce((Ee,b)=>Ee+b,0)]).sort((oe,Ee)=>oe[1]-Ee[1])[0])==null?void 0:z[0];ue&&(G=ue);break}case"initialPlacement":G=o;break}if(s!==G)return{reset:{placement:G}}}return{}}}},g6=new Set(["left","top"]);async function f6(e,t){const{placement:n,platform:u,elements:s}=e,i=await(u.isRTL==null?void 0:u.isRTL(s.floating)),r=xu(n),o=Tn(n),a=gu(n)==="y",l=g6.has(r)?-1:1,c=i&&a?-1:1,d=Bs(t,e);let{mainAxis:g,crossAxis:m,alignmentAxis:f}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return o&&typeof f=="number"&&(m=o==="end"?f*-1:f),a?{x:m*c,y:g*l}:{x:g*l,y:m*c}}const p6=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,u;const{x:s,y:i,placement:r,middlewareData:o}=t,a=await f6(t,e);return r===((n=o.offset)==null?void 0:n.placement)&&(u=o.arrow)!=null&&u.alignmentOffset?{}:{x:s+a.x,y:i+a.y,data:{...a,placement:r}}}}},h6=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:u,placement:s,platform:i}=t,{mainAxis:r=!0,crossAxis:o=!1,limiter:a={fn:C=>{let{x:y,y:k}=C;return{x:y,y:k}}},...l}=Bs(e,t),c={x:n,y:u},d=await i.detectOverflow(t,l),g=gu(s),m=pp(g);let f=c[m],p=c[g];const E=(C,y)=>fp(y+d[C==="y"?"top":"left"],y,y-d[C==="y"?"bottom":"right"]);r&&(f=E(m,f)),o&&(p=E(g,p));const v=a.fn({...t,[m]:f,[g]:p});return{...v,data:{x:v.x-n,y:v.y-u,enabled:{[m]:r,[g]:o}}}}}},v6=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:u,platform:s,elements:i}=t,{apply:r=()=>{},...o}=Bs(e,t),a=await s.detectOverflow(t,o),l=xu(n),c=Tn(n),d=gu(n)==="y",{width:g,height:m}=u.floating;let f,p;l==="top"||l==="bottom"?(f=l,p=c===(await(s.isRTL==null?void 0:s.isRTL(i.floating))?"start":"end")?"left":"right"):(p=l,f=c==="end"?"top":"bottom");const E=m-a.top-a.bottom,v=g-a.left-a.right,C=mr(m-a[f],E),y=mr(g-a[p],v),k=t.middlewareData.shift,j=!k;let F=C,P=y;k!=null&&k.enabled.x&&(P=v),k!=null&&k.enabled.y&&(F=E),j&&!c&&(d?P=g-2*P0(a.left,a.right):F=m-2*P0(a.top,a.bottom)),await r({...t,availableWidth:P,availableHeight:F});const K=await s.getDimensions(i.floating);return g!==K.width||m!==K.height?{reset:{rects:!0}}:{}}}};function yn(e){var t;return((t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Kn(e){return yn(e).getComputedStyle(e)}const s4=Math.min,Wi=Math.max,Ho=Math.round;function Ep(e){const t=Kn(e);let n=parseFloat(t.width),u=parseFloat(t.height);const s=e.offsetWidth,i=e.offsetHeight,r=Ho(n)!==s||Ho(u)!==i;return r&&(n=s,u=i),{width:n,height:u,fallback:r}}function Uu(e){return yp(e)?(e.nodeName||"").toLowerCase():""}let Kr;function Cp(){if(Kr)return Kr;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(Kr=e.brands.map((t=>t.brand+"/"+t.version)).join(" "),Kr):navigator.userAgent}function Yn(e){return e instanceof yn(e).HTMLElement}function Ru(e){return e instanceof yn(e).Element}function yp(e){return e instanceof yn(e).Node}function i4(e){return typeof ShadowRoot>"u"?!1:e instanceof yn(e).ShadowRoot||e instanceof ShadowRoot}function Na(e){const{overflow:t,overflowX:n,overflowY:u,display:s}=Kn(e);return/auto|scroll|overlay|hidden|clip/.test(t+u+n)&&!["inline","contents"].includes(s)}function E6(e){return["table","td","th"].includes(Uu(e))}function R0(e){const t=/firefox/i.test(Cp()),n=Kn(e),u=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||!!u&&u!=="none"||t&&n.willChange==="filter"||t&&!!n.filter&&n.filter!=="none"||["transform","perspective"].some((s=>n.willChange.includes(s)))||["paint","layout","strict","content"].some((s=>{const i=n.contain;return i!=null&&i.includes(s)}))}function xp(){return!/^((?!chrome|android).)*safari/i.test(Cp())}function Nc(e){return["html","body","#document"].includes(Uu(e))}function bp(e){return Ru(e)?e:e.contextElement}const wp={x:1,y:1};function Js(e){const t=bp(e);if(!Yn(t))return wp;const n=t.getBoundingClientRect(),{width:u,height:s,fallback:i}=Ep(t);let r=(i?Ho(n.width):n.width)/u,o=(i?Ho(n.height):n.height)/s;return r&&Number.isFinite(r)||(r=1),o&&Number.isFinite(o)||(o=1),{x:r,y:o}}function gr(e,t,n,u){var s,i;t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),o=bp(e);let a=wp;t&&(u?Ru(u)&&(a=Js(u)):a=Js(e));const l=o?yn(o):window,c=!xp()&&n;let d=(r.left+(c&&((s=l.visualViewport)==null?void 0:s.offsetLeft)||0))/a.x,g=(r.top+(c&&((i=l.visualViewport)==null?void 0:i.offsetTop)||0))/a.y,m=r.width/a.x,f=r.height/a.y;if(o){const p=yn(o),E=u&&Ru(u)?yn(u):u;let v=p.frameElement;for(;v&&u&&E!==p;){const C=Js(v),y=v.getBoundingClientRect(),k=getComputedStyle(v);y.x+=(v.clientLeft+parseFloat(k.paddingLeft))*C.x,y.y+=(v.clientTop+parseFloat(k.paddingTop))*C.y,d*=C.x,g*=C.y,m*=C.x,f*=C.y,d+=y.x,g+=y.y,v=yn(v).frameElement}}return{width:m,height:f,top:g,right:d+m,bottom:g+f,left:d,x:d,y:g}}function ju(e){return((yp(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ta(e){return Ru(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function kp(e){return gr(ju(e)).left+Ta(e).scrollLeft}function fr(e){if(Uu(e)==="html")return e;const t=e.assignedSlot||e.parentNode||i4(e)&&e.host||ju(e);return i4(t)?t.host:t}function Bp(e){const t=fr(e);return Nc(t)?t.ownerDocument.body:Yn(t)&&Na(t)?t:Bp(t)}function Wo(e,t){var n;t===void 0&&(t=[]);const u=Bp(e),s=u===((n=e.ownerDocument)==null?void 0:n.body),i=yn(u);return s?t.concat(i,i.visualViewport||[],Na(u)?u:[]):t.concat(u,Wo(u))}function r4(e,t,n){return t==="viewport"?Hi((function(u,s){const i=yn(u),r=ju(u),o=i.visualViewport;let a=r.clientWidth,l=r.clientHeight,c=0,d=0;if(o){a=o.width,l=o.height;const g=xp();(g||!g&&s==="fixed")&&(c=o.offsetLeft,d=o.offsetTop)}return{width:a,height:l,x:c,y:d}})(e,n)):Ru(t)?Hi((function(u,s){const i=gr(u,!0,s==="fixed"),r=i.top+u.clientTop,o=i.left+u.clientLeft,a=Yn(u)?Js(u):{x:1,y:1};return{width:u.clientWidth*a.x,height:u.clientHeight*a.y,x:o*a.x,y:r*a.y}})(t,n)):Hi((function(u){const s=ju(u),i=Ta(u),r=u.ownerDocument.body,o=Wi(s.scrollWidth,s.clientWidth,r.scrollWidth,r.clientWidth),a=Wi(s.scrollHeight,s.clientHeight,r.scrollHeight,r.clientHeight);let l=-i.scrollLeft+kp(u);const c=-i.scrollTop;return Kn(r).direction==="rtl"&&(l+=Wi(s.clientWidth,r.clientWidth)-o),{width:o,height:a,x:l,y:c}})(ju(e)))}function o4(e){return Yn(e)&&Kn(e).position!=="fixed"?e.offsetParent:null}function a4(e){const t=yn(e);let n=o4(e);for(;n&&E6(n)&&Kn(n).position==="static";)n=o4(n);return n&&(Uu(n)==="html"||Uu(n)==="body"&&Kn(n).position==="static"&&!R0(n))?t:n||(function(u){let s=fr(u);for(;Yn(s)&&!Nc(s);){if(R0(s))return s;s=fr(s)}return null})(e)||t}function C6(e,t,n){const u=Yn(t),s=ju(t),i=gr(e,!0,n==="fixed",t);let r={scrollLeft:0,scrollTop:0};const o={x:0,y:0};if(u||!u&&n!=="fixed")if((Uu(t)!=="body"||Na(s))&&(r=Ta(t)),Yn(t)){const a=gr(t,!0);o.x=a.x+t.clientLeft,o.y=a.y+t.clientTop}else s&&(o.x=kp(s));return{x:i.left+r.scrollLeft-o.x,y:i.top+r.scrollTop-o.y,width:i.width,height:i.height}}const y6={getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:u,strategy:s}=e;const i=n==="clippingAncestors"?(function(l,c){const d=c.get(l);if(d)return d;let g=Wo(l).filter((E=>Ru(E)&&Uu(E)!=="body")),m=null;const f=Kn(l).position==="fixed";let p=f?fr(l):l;for(;Ru(p)&&!Nc(p);){const E=Kn(p),v=R0(p);(f?v||m:v||E.position!=="static"||!m||!["absolute","fixed"].includes(m.position))?m=E:g=g.filter((C=>C!==p)),p=fr(p)}return c.set(l,g),g})(t,this._c):[].concat(n),r=[...i,u],o=r[0],a=r.reduce(((l,c)=>{const d=r4(t,c,s);return l.top=Wi(d.top,l.top),l.right=s4(d.right,l.right),l.bottom=s4(d.bottom,l.bottom),l.left=Wi(d.left,l.left),l}),r4(t,o,s));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:u}=e;const s=Yn(n),i=ju(n);if(n===i)return t;let r={scrollLeft:0,scrollTop:0},o={x:1,y:1};const a={x:0,y:0};if((s||!s&&u!=="fixed")&&((Uu(n)!=="body"||Na(i))&&(r=Ta(n)),Yn(n))){const l=gr(n);o=Js(n),a.x=l.x+n.clientLeft,a.y=l.y+n.clientTop}return{width:t.width*o.x,height:t.height*o.y,x:t.x*o.x-r.scrollLeft*o.x+a.x,y:t.y*o.y-r.scrollTop*o.y+a.y}},isElement:Ru,getDimensions:function(e){return Yn(e)?Ep(e):e.getBoundingClientRect()},getOffsetParent:a4,getDocumentElement:ju,getScale:Js,async getElementRects(e){let{reference:t,floating:n,strategy:u}=e;const s=this.getOffsetParent||a4,i=this.getDimensions;return{reference:C6(t,await s(n),u),floating:{x:0,y:0,...await i(n)}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>Kn(e).direction==="rtl"},x6=(e,t,n)=>{const u=new Map,s={platform:y6,...n},i={...s.platform,_c:u};return a6(e,t,{...s,platform:i})},Mu={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover"],delay:{show:0,hide:400}}}};function b6(e,t){let n=Mu.themes[e]||{},u;do u=n[t],typeof u>"u"?n.$extend?n=Mu.themes[n.$extend]||{}:(n=null,u=Mu[t]):n=null;while(n);return u}function w6(e){const t=[e];let n=Mu.themes[e]||{};do n.$extend&&!n.$resetCss?(t.push(n.$extend),n=Mu.themes[n.$extend]||{}):n=null;while(n);return t.map(u=>`v-popper--theme-${u}`)}function l4(e){const t=[e];let n=Mu.themes[e]||{};do n.$extend?(t.push(n.$extend),n=Mu.themes[n.$extend]||{}):n=null;while(n);return t}let pr=!1;if(typeof window<"u"){pr=!1;try{const e=Object.defineProperty({},"passive",{get(){pr=!0}});window.addEventListener("test",null,e)}catch{}}let Ap=!1;typeof window<"u"&&typeof navigator<"u"&&(Ap=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const k6=["auto","top","bottom","left","right"].reduce((e,t)=>e.concat([t,`${t}-start`,`${t}-end`]),[]),c4={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},d4={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function m4(e,t){const n=e.indexOf(t);n!==-1&&e.splice(n,1)}function _l(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}const Fn=[];let es=null;const g4={};function f4(e){let t=g4[e];return t||(t=g4[e]=[]),t}let j0=function(){};typeof window<"u"&&(j0=window.Element);function Ue(e){return function(t){return b6(t.theme,e)}}const Nl="__floating-vue__popper",Dp=()=>Te({name:"VPopper",provide(){return{[Nl]:{parentPopper:this}}},inject:{[Nl]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:Ue("disabled")},positioningDisabled:{type:Boolean,default:Ue("positioningDisabled")},placement:{type:String,default:Ue("placement"),validator:e=>k6.includes(e)},delay:{type:[String,Number,Object],default:Ue("delay")},distance:{type:[Number,String],default:Ue("distance")},skidding:{type:[Number,String],default:Ue("skidding")},triggers:{type:Array,default:Ue("triggers")},showTriggers:{type:[Array,Function],default:Ue("showTriggers")},hideTriggers:{type:[Array,Function],default:Ue("hideTriggers")},popperTriggers:{type:Array,default:Ue("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:Ue("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:Ue("popperHideTriggers")},container:{type:[String,Object,j0,Boolean],default:Ue("container")},boundary:{type:[String,j0],default:Ue("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:Ue("strategy")},autoHide:{type:[Boolean,Function],default:Ue("autoHide")},handleResize:{type:Boolean,default:Ue("handleResize")},instantMove:{type:Boolean,default:Ue("instantMove")},eagerMount:{type:Boolean,default:Ue("eagerMount")},popperClass:{type:[String,Array,Object],default:Ue("popperClass")},computeTransformOrigin:{type:Boolean,default:Ue("computeTransformOrigin")},autoMinSize:{type:Boolean,default:Ue("autoMinSize")},autoSize:{type:[Boolean,String],default:Ue("autoSize")},autoMaxSize:{type:Boolean,default:Ue("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:Ue("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:Ue("preventOverflow")},overflowPadding:{type:[Number,String],default:Ue("overflowPadding")},arrowPadding:{type:[Number,String],default:Ue("arrowPadding")},arrowOverflow:{type:Boolean,default:Ue("arrowOverflow")},flip:{type:Boolean,default:Ue("flip")},shift:{type:Boolean,default:Ue("shift")},shiftCrossAxis:{type:Boolean,default:Ue("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:Ue("noAutoFocus")},disposeTimeout:{type:Number,default:Ue("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},randomId:`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var e;return(e=this[Nl])==null?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return((e=this.popperTriggers)==null?void 0:e.includes("hover"))||((t=this.popperShowTriggers)==null?void 0:t.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((e,t)=>(e[t]="$_computePosition",e),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:n=!1}={}){var u,s;(u=this.parentPopper)!=null&&u.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(n||!this.disabled)&&(((s=this.parentPopper)==null?void 0:s.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var e;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((e=this.referenceNode)==null?void 0:e.call(this))??this.$el,this.$_targetNodes=this.targetNodes().filter(t=>t.nodeType===t.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.isDisposed||(this.isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const e={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&e.middleware.push(p6({mainAxis:this.distance,crossAxis:this.skidding}));const t=this.placement.startsWith("auto");if(t?e.middleware.push(d6({alignment:this.placement.split("-")[1]??""})):e.placement=this.placement,this.preventOverflow&&(this.shift&&e.middleware.push(h6({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!t&&this.flip&&e.middleware.push(m6({padding:this.overflowPadding,boundary:this.boundary}))),e.middleware.push(l6({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&e.middleware.push({name:"arrowOverflow",fn:({placement:u,rects:s,middlewareData:i})=>{let r;const{centerOffset:o}=i.arrow;return u.startsWith("top")||u.startsWith("bottom")?r=Math.abs(o)>s.reference.width/2:r=Math.abs(o)>s.reference.height/2,{data:{overflow:r}}}}),this.autoMinSize||this.autoSize){const u=this.autoSize?this.autoSize:this.autoMinSize?"min":null;e.middleware.push({name:"autoSize",fn:({rects:s,placement:i,middlewareData:r})=>{var o;if((o=r.autoSize)!=null&&o.skip)return{};let a,l;return i.startsWith("top")||i.startsWith("bottom")?a=s.reference.width:l=s.reference.height,this.$_innerNode.style[u==="min"?"minWidth":u==="max"?"maxWidth":"width"]=a!=null?`${a}px`:null,this.$_innerNode.style[u==="min"?"minHeight":u==="max"?"maxHeight":"height"]=l!=null?`${l}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,e.middleware.push(v6({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:u,availableHeight:s})=>{this.$_innerNode.style.maxWidth=u!=null?`${u}px`:null,this.$_innerNode.style.maxHeight=s!=null?`${s}px`:null}})));const n=await x6(this.$_referenceNode,this.$_popperNode,e);Object.assign(this.result,{x:n.x,y:n.y,placement:n.placement,strategy:n.strategy,arrow:{...n.middlewareData.arrow,...n.middlewareData.arrowOverflow}})},$_scheduleShow(e,t=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),es&&this.instantMove&&es.instantMove&&es!==this.parentPopper){es.$_applyHide(!0),this.$_applyShow(!0);return}t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e,t=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(es=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,!this.isShown&&(this.$_ensureTeleport(),await _l(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Wo(this.$_referenceNode),...Wo(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const t=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),u=n.parentNode.getBoundingClientRect(),s=t.x+t.width/2-(u.left+n.offsetLeft),i=t.y+t.height/2-(u.top+n.offsetTop);this.result.transformOrigin=`${s}px ${i}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let n=0;n0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,m4(Fn,this),Fn.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of l4(this.theme)){const u=f4(n);m4(u,this),u.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}es===this&&(es=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=this.disposeTimeout;t!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await _l(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let e=this.container;if(typeof e=="string"?e=window.document.querySelector(e):e===!1&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,c4,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],c4,this.popperTriggers,this.popperShowTriggers,e);const t=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,d4,this.triggers,this.hideTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],d4,this.popperTriggers,this.popperHideTriggers,t)},$_registerEventListeners(e,t,n){this.$_events.push({targetNodes:e,eventType:t,handler:n}),e.forEach(u=>u.addEventListener(t,n,pr?{passive:!0}:void 0))},$_registerTriggerListeners(e,t,n,u,s){let i=n;u!=null&&(i=typeof u=="function"?u(i):u),i.forEach(r=>{const o=t[r];o&&this.$_registerEventListeners(e,o,s)})},$_removeEventListeners(e){const t=[];this.$_events.forEach(n=>{const{targetNodes:u,eventType:s,handler:i}=n;!e||e===s?u.forEach(r=>r.removeEventListener(s,i)):t.push(n)}),this.$_events=t},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const n of this.$_targetNodes){const u=n.getAttribute(e);u&&(n.removeAttribute(e),n.setAttribute(t,u))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const n in e){const u=e[n];u==null?t.removeAttribute(n):t.setAttribute(n,u)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$_referenceNode.getBoundingClientRect();if(qi>=e.left&&qi<=e.right&&Ki>=e.top&&Ki<=e.bottom){const t=this.$_popperNode.getBoundingClientRect(),n=qi-Tu,u=Ki-zu,s=t.left+t.width/2-Tu+(t.top+t.height/2)-zu+t.width+t.height,i=Tu+n*s,r=zu+u*s;return Yr(Tu,zu,i,r,t.left,t.top,t.left,t.bottom)||Yr(Tu,zu,i,r,t.left,t.top,t.right,t.top)||Yr(Tu,zu,i,r,t.right,t.top,t.right,t.bottom)||Yr(Tu,zu,i,r,t.left,t.bottom,t.right,t.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(Ap){const e=pr?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",t=>p4(t),e),document.addEventListener("touchend",t=>h4(t,!0),e)}else window.addEventListener("mousedown",e=>p4(e),!0),window.addEventListener("click",e=>h4(e,!1),!0);window.addEventListener("resize",D6)}function p4(e,t){for(let n=0;n=0;u--){const s=Fn[u];try{const i=s.containsGlobalTarget=s.mouseDownContains||s.popperNode().contains(e.target);s.pendingHide=!1,requestAnimationFrame(()=>{if(s.pendingHide=!1,!n[s.randomId]&&v4(s,i,e)){if(s.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&i){let o=s.parentPopper;for(;o;)n[o.randomId]=!0,o=o.parentPopper;return}let r=s.parentPopper;for(;r&&v4(r,r.containsGlobalTarget,e);)r.$_handleGlobalClose(e,t),r=r.parentPopper}})}catch{}}}function v4(e,t,n){return n.closeAllPopover||n.closePopover&&t||A6(e,n)&&!t}function A6(e,t){if(typeof e.autoHide=="function"){const n=e.autoHide(t);return e.lastAutoHide=n,n}return e.autoHide}function D6(){for(let e=0;e{Tu=qi,zu=Ki,qi=e.clientX,Ki=e.clientY},pr?{passive:!0}:void 0);function Yr(e,t,n,u,s,i,r,o){const a=((r-s)*(t-i)-(o-i)*(e-s))/((o-i)*(n-e)-(r-s)*(u-t)),l=((n-e)*(t-i)-(u-t)*(e-s))/((o-i)*(n-e)-(r-s)*(u-t));return a>=0&&a<=1&&l>=0&&l<=1}const F6={extends:Dp()},Tc=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n};function S6(e,t,n,u,s,i){return D(),R("div",{ref:"reference",class:Ae(["v-popper",{"v-popper--shown":e.slotData.isShown}])},[De(e.$slots,"default",vn(un(e.slotData)))],2)}const _6=Tc(F6,[["render",S6]]);function N6(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var n=e.indexOf("Trident/");if(n>0){var u=e.indexOf("rv:");return parseInt(e.substring(u+3,e.indexOf(".",u)),10)}var s=e.indexOf("Edge/");return s>0?parseInt(e.substring(s+5,e.indexOf(".",s)),10):-1}let io;function M0(){M0.init||(M0.init=!0,io=N6()!==-1)}var ro={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){M0(),yu(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",io&&this.$el.appendChild(e),e.data="about:blank",io||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!io&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const T6=iE();uE("data-v-b329ee4c");const z6={class:"resize-observer",tabindex:"-1"};sE();const O6=T6((e,t,n,u,s,i)=>(D(),pe("div",z6)));ro.render=O6,ro.__scopeId="data-v-b329ee4c",ro.__file="src/components/ResizeObserver.vue";const Fp=(e="theme")=>({computed:{themeClass(){return w6(this[e])}}}),L6=Te({name:"VPopperContent",components:{ResizeObserver:ro},mixins:[Fp()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(e){return e!=null&&!isNaN(e)?`${e}px`:null}}}),I6=["id","aria-hidden","tabindex","data-popper-placement"],P6={ref:"inner",class:"v-popper__inner"},R6=H("div",{class:"v-popper__arrow-outer"},null,-1),j6=H("div",{class:"v-popper__arrow-inner"},null,-1),M6=[R6,j6];function $6(e,t,n,u,s,i){const r=mn("ResizeObserver");return D(),R("div",{id:e.popperId,ref:"popover",class:Ae(["v-popper__popper",[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}]]),style:_n(e.result?{position:e.result.strategy,transform:`translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`}:void 0),"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0,onKeyup:t[2]||(t[2]=lr(o=>e.autoHide&&e.$emit("hide"),["esc"]))},[H("div",{class:"v-popper__backdrop",onClick:t[0]||(t[0]=o=>e.autoHide&&e.$emit("hide"))}),H("div",{class:"v-popper__wrapper",style:_n(e.result?{transformOrigin:e.result.transformOrigin}:void 0)},[H("div",P6,[e.mounted?(D(),R(qe,{key:0},[H("div",null,[De(e.$slots,"default")]),e.handleResize?(D(),pe(r,{key:0,onNotify:t[1]||(t[1]=o=>e.$emit("resize",o))})):me("",!0)],64)):me("",!0)],512),H("div",{ref:"arrow",class:"v-popper__arrow-container",style:_n(e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0)},M6,4)],4)],46,I6)}const V6=Tc(L6,[["render",$6]]),U6={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}};let $0=function(){};typeof window<"u"&&($0=window.Element);const H6=Te({name:"VPopperWrapper",components:{Popper:_6,PopperContent:V6},mixins:[U6,Fp("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,$0,Boolean],default:void 0},boundary:{type:[String,$0],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(e=>e!==this.$refs.popperContent.$el)}}});function W6(e,t,n,u,s,i){const r=mn("PopperContent"),o=mn("Popper");return D(),pe(o,Ve({ref:"popper"},e.$props,{theme:e.finalTheme,"target-nodes":e.getTargetNodes,"popper-node":()=>e.$refs.popperContent.$el,class:[e.themeClass],onShow:t[0]||(t[0]=()=>e.$emit("show")),onHide:t[1]||(t[1]=()=>e.$emit("hide")),"onUpdate:shown":t[2]||(t[2]=a=>e.$emit("update:shown",a)),onApplyShow:t[3]||(t[3]=()=>e.$emit("apply-show")),onApplyHide:t[4]||(t[4]=()=>e.$emit("apply-hide")),onCloseGroup:t[5]||(t[5]=()=>e.$emit("close-group")),onCloseDirective:t[6]||(t[6]=()=>e.$emit("close-directive")),onAutoHide:t[7]||(t[7]=()=>e.$emit("auto-hide")),onResize:t[8]||(t[8]=()=>e.$emit("resize"))}),{default:re(({popperId:a,isShown:l,shouldMountContent:c,skipTransition:d,autoHide:g,show:m,hide:f,handleResize:p,onResize:E,classes:v,result:C})=>[De(e.$slots,"default",{shown:l,show:m,hide:f}),le(r,{ref:"popperContent","popper-id":a,theme:e.finalTheme,shown:l,mounted:c,"skip-transition":d,"auto-hide":g,"handle-resize":p,classes:v,result:C,onHide:f,onResize:E},{default:re(()=>[De(e.$slots,"popper",{shown:l,hide:f})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const V0=Tc(H6,[["render",W6]]),q6={...V0,name:"VDropdown",vPopperTheme:"dropdown"};({...V0},{...V0}),Dp();const E4=Mu,K6=q6;function Y6(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Sp={exports:{}},ft=Sp.exports={},Mn,$n;function U0(){throw new Error("setTimeout has not been defined")}function H0(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Mn=setTimeout:Mn=U0}catch{Mn=U0}try{typeof clearTimeout=="function"?$n=clearTimeout:$n=H0}catch{$n=H0}})();function _p(e){if(Mn===setTimeout)return setTimeout(e,0);if((Mn===U0||!Mn)&&setTimeout)return Mn=setTimeout,setTimeout(e,0);try{return Mn(e,0)}catch{try{return Mn.call(null,e,0)}catch{return Mn.call(this,e,0)}}}function G6(e){if($n===clearTimeout)return clearTimeout(e);if(($n===H0||!$n)&&clearTimeout)return $n=clearTimeout,clearTimeout(e);try{return $n(e)}catch{try{return $n.call(null,e)}catch{return $n.call(this,e)}}}var fu=[],Qs=!1,cs,oo=-1;function Z6(){!Qs||!cs||(Qs=!1,cs.length?fu=cs.concat(fu):oo=-1,fu.length&&Np())}function Np(){if(!Qs){var e=_p(Z6);Qs=!0;for(var t=fu.length;t;){for(cs=fu,fu=[];++oo1)for(var n=1;nconsole.error("SEMVER",...t):()=>{},Tl}var zl,y4;function Op(){if(y4)return zl;y4=1;const e="2.0.0",t=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,u=16,s=t-6;return zl={MAX_LENGTH:t,MAX_SAFE_COMPONENT_LENGTH:u,MAX_SAFE_BUILD_LENGTH:s,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},zl}var Ol={exports:{}},x4;function J6(){return x4||(x4=1,(function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:u,MAX_LENGTH:s}=Op(),i=zp();t=e.exports={};const r=t.re=[],o=t.safeRe=[],a=t.src=[],l=t.safeSrc=[],c=t.t={};let d=0;const g="[a-zA-Z0-9-]",m=[["\\s",1],["\\d",s],[g,u]],f=E=>{for(const[v,C]of m)E=E.split(`${v}*`).join(`${v}{0,${C}}`).split(`${v}+`).join(`${v}{1,${C}}`);return E},p=(E,v,C)=>{const y=f(v),k=d++;i(E,k,v),c[E]=k,a[k]=v,l[k]=y,r[k]=new RegExp(v,C?"g":void 0),o[k]=new RegExp(y,C?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${g}*`),p("MAINVERSION",`(${a[c.NUMERICIDENTIFIER]})\\.(${a[c.NUMERICIDENTIFIER]})\\.(${a[c.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${a[c.NUMERICIDENTIFIERLOOSE]})\\.(${a[c.NUMERICIDENTIFIERLOOSE]})\\.(${a[c.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${a[c.NONNUMERICIDENTIFIER]}|${a[c.NUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${a[c.NONNUMERICIDENTIFIER]}|${a[c.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASE",`(?:-(${a[c.PRERELEASEIDENTIFIER]}(?:\\.${a[c.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${a[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[c.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${g}+`),p("BUILD",`(?:\\+(${a[c.BUILDIDENTIFIER]}(?:\\.${a[c.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${a[c.MAINVERSION]}${a[c.PRERELEASE]}?${a[c.BUILD]}?`),p("FULL",`^${a[c.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${a[c.MAINVERSIONLOOSE]}${a[c.PRERELEASELOOSE]}?${a[c.BUILD]}?`),p("LOOSE",`^${a[c.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${a[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${a[c.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${a[c.XRANGEIDENTIFIER]})(?:\\.(${a[c.XRANGEIDENTIFIER]})(?:\\.(${a[c.XRANGEIDENTIFIER]})(?:${a[c.PRERELEASE]})?${a[c.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${a[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[c.XRANGEIDENTIFIERLOOSE]})(?:${a[c.PRERELEASELOOSE]})?${a[c.BUILD]}?)?)?`),p("XRANGE",`^${a[c.GTLT]}\\s*${a[c.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${a[c.GTLT]}\\s*${a[c.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),p("COERCE",`${a[c.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",a[c.COERCEPLAIN]+`(?:${a[c.PRERELEASE]})?(?:${a[c.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",a[c.COERCE],!0),p("COERCERTLFULL",a[c.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${a[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",p("TILDE",`^${a[c.LONETILDE]}${a[c.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${a[c.LONETILDE]}${a[c.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${a[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",p("CARET",`^${a[c.LONECARET]}${a[c.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${a[c.LONECARET]}${a[c.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${a[c.GTLT]}\\s*(${a[c.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${a[c.GTLT]}\\s*(${a[c.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${a[c.GTLT]}\\s*(${a[c.LOOSEPLAIN]}|${a[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${a[c.XRANGEPLAIN]})\\s+-\\s+(${a[c.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${a[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[c.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Ol,Ol.exports)),Ol.exports}var Ll,b4;function Q6(){if(b4)return Ll;b4=1;const e=Object.freeze({loose:!0}),t=Object.freeze({});return Ll=n=>n?typeof n!="object"?e:n:t,Ll}var Il,w4;function e2(){if(w4)return Il;w4=1;const e=/^[0-9]+$/,t=(n,u)=>{if(typeof n=="number"&&typeof u=="number")return n===u?0:nt(u,n)},Il}var Pl,k4;function Lp(){if(k4)return Pl;k4=1;const e=zp(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:n}=Op(),{safeRe:u,t:s}=J6(),i=Q6(),{compareIdentifiers:r}=e2();class o{constructor(l,c){if(c=i(c),l instanceof o){if(l.loose===!!c.loose&&l.includePrerelease===!!c.includePrerelease)return l;l=l.version}else if(typeof l!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof l}".`);if(l.length>t)throw new TypeError(`version is longer than ${t} characters`);e("SemVer",l,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;const d=l.trim().match(c.loose?u[s.LOOSE]:u[s.FULL]);if(!d)throw new TypeError(`Invalid Version: ${l}`);if(this.raw=l,this.major=+d[1],this.minor=+d[2],this.patch=+d[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");d[4]?this.prerelease=d[4].split(".").map(g=>{if(/^[0-9]+$/.test(g)){const m=+g;if(m>=0&&ml.major?1:this.minorl.minor?1:this.patchl.patch?1:0}comparePre(l){if(l instanceof o||(l=new o(l,this.options)),this.prerelease.length&&!l.prerelease.length)return-1;if(!this.prerelease.length&&l.prerelease.length)return 1;if(!this.prerelease.length&&!l.prerelease.length)return 0;let c=0;do{const d=this.prerelease[c],g=l.prerelease[c];if(e("prerelease compare",c,d,g),d===void 0&&g===void 0)return 0;if(g===void 0)return 1;if(d===void 0)return-1;if(d!==g)return r(d,g)}while(++c)}compareBuild(l){l instanceof o||(l=new o(l,this.options));let c=0;do{const d=this.build[c],g=l.build[c];if(e("build compare",c,d,g),d===void 0&&g===void 0)return 0;if(g===void 0)return 1;if(d===void 0)return-1;if(d!==g)return r(d,g)}while(++c)}inc(l,c,d){if(l.startsWith("pre")){if(!c&&d===!1)throw new Error("invalid increment argument: identifier is empty");if(c){const g=`-${c}`.match(this.options.loose?u[s.PRERELEASELOOSE]:u[s.PRERELEASE]);if(!g||g[1]!==c)throw new Error(`invalid identifier: ${c}`)}}switch(l){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 g=Number(d)?1:0;if(this.prerelease.length===0)this.prerelease=[g];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(".")&&d===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(g)}}if(c){let m=[c,g];d===!1&&(m=[c]),r(this.prerelease[0],c)===0?isNaN(this.prerelease[1])&&(this.prerelease=m):this.prerelease=m}break}default:throw new Error(`invalid increment argument: ${l}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return Pl=o,Pl}var Rl,B4;function t2(){if(B4)return Rl;B4=1;const e=Lp();return Rl=(t,n)=>new e(t,n).major,Rl}var n2=t2();const A4=Ar(n2);var jl,D4;function u2(){if(D4)return jl;D4=1;const e=Lp();return jl=(t,n,u=!1)=>{if(t instanceof e)return t;try{return new e(t,n)}catch(s){if(!u)return null;throw s}},jl}var Ml,F4;function s2(){if(F4)return Ml;F4=1;const e=u2();return Ml=(t,n)=>{const u=e(t,n);return u?u.version:null},Ml}var i2=s2();const r2=Ar(i2);class o2{bus;constructor(t){typeof t.getVersion!="function"||!r2(t.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):A4(t.getVersion())!==A4(this.getVersion())&&console.warn("Proxying an event bus of version "+t.getVersion()+" with "+this.getVersion()),this.bus=t}getVersion(){return"3.3.3"}subscribe(t,n){this.bus.subscribe(t,n)}unsubscribe(t,n){this.bus.unsubscribe(t,n)}emit(t,...n){this.bus.emit(t,...n)}}class a2{handlers=new Map;getVersion(){return"3.3.3"}subscribe(t,n){this.handlers.set(t,(this.handlers.get(t)||[]).concat(n))}unsubscribe(t,n){this.handlers.set(t,(this.handlers.get(t)||[]).filter(u=>u!==n))}emit(t,...n){(this.handlers.get(t)||[]).forEach(u=>{try{u(n[0])}catch(s){console.error("could not invoke event listener",s)}})}}let wi=null;function zc(){return wi!==null?wi: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"?wi=new o2(window._nc_event_bus):wi=window._nc_event_bus=new a2,wi)}function Oc(e,t){zc().subscribe(e,t)}function Ip(e,t){zc().unsubscribe(e,t)}function l2(e,...t){zc().emit(e,...t)}class qo{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(t,n,u){this.scope=`${u?qo.GLOBAL_SCOPE_PERSISTENT:qo.GLOBAL_SCOPE_VOLATILE}_${btoa(t)}_`,this.wrapped=n}scopeKey(t){return`${this.scope}${t}`}setItem(t,n){this.wrapped.setItem(this.scopeKey(t),n)}getItem(t){return this.wrapped.getItem(this.scopeKey(t))}removeItem(t){this.wrapped.removeItem(this.scopeKey(t))}clear(){Object.keys(this.wrapped).filter(t=>t.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class c2{appId;persisted=!1;clearedOnLogout=!1;constructor(t){this.appId=t}persist(t=!0){return this.persisted=t,this}clearOnLogout(t=!0){return this.clearedOnLogout=t,this}build(){return new qo(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function d2(e){return new c2(e)}p2();function m2(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function Pp(e){if(!e||typeof e!="string")throw new Error("Invalid CSRF token given",{cause:{token:e}});globalThis._nc_auth_requestToken!==e&&(globalThis._nc_auth_requestToken=e,globalThis.document&&(document.head.dataset.requesttoken=e),l2("csrf-token-update",{token:e,_internal:!0}))}async function g2(){const e=ri("/csrftoken"),t=await fetch(e);if(!t.ok)throw new Error("Could not fetch CSRF token from API",{cause:t});try{const{token:n}=await t.json();return Pp(n),n}catch(n){throw new Error("Could not parse CSRF token from API response",{cause:n})}}function f2(e){const t=async({token:n})=>{try{e(n)}catch(u){console.error("Error updating CSRF token observer",u)}};return Oc("csrf-token-update",t),()=>Ip("csrf-token-update",t)}function p2(){Oc("csrf-token-update",({token:e,_internal:t})=>{t||Pp(e)})}d2("public").persist().build();let Ls;function S4(e,t){return e?e.getAttribute(t):null}function Rp(){if(Ls!==void 0)return Ls;const e=document?.getElementsByTagName("head")[0];if(!e)return null;const t=S4(e,"data-user");return t===null?(Ls=null,Ls):(Ls={uid:t,displayName:S4(e,"data-user-displayname"),isAdmin:!!window._oc_isadmin},Ls)}var ht=(e=>(e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warn=2]="Warn",e[e.Error=3]="Error",e[e.Fatal=4]="Fatal",e))(ht||{});class h2{context;constructor(t){this.context=t||{}}formatMessage(t,n,u){let s="["+ht[n].toUpperCase()+"] ";return u&&u.app&&(s+=u.app+": "),typeof t=="string"?s+t:(s+=`Unexpected ${t.name}`,t.message&&(s+=` "${t.message}"`),n===ht.Debug&&t.stack&&(s+=` Stack trace: -${t.stack}`),s)}log(t,n,u){if(!(typeof this.context?.level=="number"&&t{document.readyState==="complete"||document.readyState==="interactive"?(t.context.level=window._oc_config?.loglevel??bt.Warn,window._oc_debug&&(t.context.level=bt.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function Rc(){return new xx(yx)}const Su=Rc().detectUser().setApp("@nextcloud/vue").build(),Zo=Iy(),wx=Me({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),bx="_ncPopover_HD5BC",Bx={"material-design-icon":"_material-design-icon_sCkSO",ncPopover:bx},Mp="nc-popover-9";y4.themes[Mp]=structuredClone(y4.themes.dropdown);const kx={name:"NcPopover",components:{Dropdown:Z2,NcPopoverTriggerProvider:wx},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:e=>["menu","listbox","tree","grid","dialog","true"].includes(e)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:Mp}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?Zo?"right":"left":this.placement==="end"?Zo?"left":"right":this.placement}},watch:{shown(e){this.internalShown=e},internalShown(e){this.$emit("update:shown",e)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const e=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const t of e)t.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const e=this.getPopoverContentElement();e.tabIndex=-1,e&&(this.$focusTrap=fp(e,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:pr(),fallBackFocus:e}),this.$focusTrap.activate())},clearFocusTrap(e={}){try{this.$focusTrap?.deactivate(e),this.$focusTrap=null}catch(t){Su.warn("[NcPopover] Failed to clear focus trap",{error:t})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(e){e.type==="keydown"&&e.key==="Escape"&&e.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function Ax(e,t,n,u,s,i){const r=hn("NcPopoverTriggerProvider"),o=hn("Dropdown");return _(),we(o,{ref:"popover",shown:s.internalShown,"onUpdate:shown":[t[0]||(t[0]=a=>s.internalShown=a),t[1]||(t[1]=a=>s.internalShown=a)],autoHide:!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:4,handleResize:"",noAutoFocus:!0,placement:i.internalPlacement,popperClass:[e.$style.ncPopover,n.popoverBaseClass],popperTriggers:i.popperTriggers,popperHideTriggers:i.popperHideTriggers,popperShowTriggers:i.popperShowTriggers,theme:u.theme,triggers:i.internalTriggers,hideTriggers:i.hideTriggers,showTriggers:i.showTriggers,onApplyShow:i.afterShow,onApplyHide:i.afterHide},{popper:he(a=>[Pe(e.$slots,"default",yn(an(a)))]),default:he(()=>[Ee(r,{shown:s.internalShown,popupRole:n.popupRole},{default:he(a=>[Pe(e.$slots,"trigger",yn(an(a)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const Dx={$style:Bx},T4=ut(kx,[["render",Ax],["__cssModules",Dx]]),$p=Symbol.for("NcActions:isSemanticMenu"),Vp=Symbol.for("NcActions:closeMenu"),Fx={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Sx=["aria-hidden","aria-label"],_x=["fill","width","height"],Nx={d:"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"},Tx={key:0};function zx(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",Nx,[n.title?(_(),W("title",Tx,re(n.title),1)):ye("",!0)])],8,_x))],16,Sx)}const Px=ut(Fx,[["render",zx]]);Ft(n6);function Up(e){return Array.isArray(e)&&e.some(t=>{if(t===null)return!1;if(typeof t=="object"){const n=t;if(n.type===Pt||n.type===et&&!Up(n.children)||n.type===Dr&&!n.children.trim())return!1}return!0})}const Ix=".focusable",Lx={name:"NcActions",components:{NcButton:Ct,NcPopover:T4},provide(){return{[$p]:ne(()=>this.actionsMenuSemanticType==="menu"),[Vp]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:Ye("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(e){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(e)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(e){return["small","normal","large"].includes(e)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:fn()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(e){e!==this.opened&&(this.opened=e)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){e2(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(e){return e?.type?.name},isValidSingleAction(e){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(e))},isAction(e){return this.getActionName(e)?.startsWith?.("NcAction")},isIconUrl(e){try{return!!new URL(e,e.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(e){e?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(e=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:e}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,e&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(Ix)},onKeydown(e){if(e.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}e.preventDefault();const t=this.getFocusableMenuItemElements(),n=[...t].indexOf(document.activeElement);if(n===-1)return;const u=e.shiftKey?n-1:n+1;(u<0||u===t.length)&&this.closeMenu(!0),this.focusIndex=u,this.focusAction();return}this.config.withArrowNavigation&&(e.key==="ArrowUp"&&this.focusPreviousAction(e),e.key==="ArrowDown"&&this.focusNextAction(e),e.key==="PageUp"&&this.focusFirstAction(e),e.key==="PageDown"&&this.focusLastAction(e)),this.handleEscapePressed(e)},onTriggerKeydown(e){e.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(e){e.key==="Escape"&&(this.closeMenu(),e.preventDefault())},removeCurrentActive(){const e=this.$refs.menu.querySelector("li.active");e&&e.classList.remove("active")},focusAction(){const e=this.getFocusableMenuItemElements()[this.focusIndex];if(e){this.removeCurrentActive();const t=e.closest("li.action");e.focus(),t&&t.classList.add("active")}},focusPreviousAction(e){this.opened&&(this.focusIndex===0?this.focusLastAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(e){if(this.opened){const t=this.getFocusableMenuItemElements().length-1;this.focusIndex===t?this.focusFirstAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(e){if(this.opened){this.preventIfEvent(e);const t=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=t>-1?t:0,this.focusAction()}},focusLastAction(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(e){e&&(e.preventDefault(),e.stopPropagation())},onFocus(e){this.$emit("focus",e)},onBlur(e){this.$emit("blur",e),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(e){this.$emit("click",e)}},render(){const e=[],t=(g,h)=>{g.forEach(E=>{if(this.isAction(E)){h.push(E);return}E.type===et&&t(E.children,h)})};if(t(this.$slots.default?.(),e),e.length===0)return;let n=e.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const u=n.slice(0,this.inline),s=e.filter(g=>!u.includes(g)),i=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],r=["NcActionInput","NcActionTextEditable"],o=["NcActionLink","NcActionRouter"],a=s.some(g=>r.includes(this.getActionName(g))),c=s.some(g=>i.includes(this.getActionName(g))),l=s.some(g=>o.includes(this.getActionName(g)));a?this.actionsMenuSemanticType="dialog":c?this.actionsMenuSemanticType="menu":l?this.actionsMenuSemanticType="navigation":e.filter(g=>this.getActionName(g).startsWith("NcAction")).length===e.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const d=g=>{const h=g?.props?.icon,E=g?.children?.icon?.()?.[0]??(this.isIconUrl(h)?Ke("img",{class:"action-item__menutoggle__icon",src:h,alt:""}):Ke("span",{class:["icon",h]})),b=g?.children?.default?.()?.[0]?.children?.trim(),C=this.forceName?b:"";let x=g?.props?.title;this.forceName||x||(x=b);const k={...g?.props??{}},S=["submit","reset"].includes(k.type)?k.modelValue:"button";return delete k.modelValue,delete k.type,Ke(Ct,Ze(k,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":g?.props?.["aria-label"]||b,title:x,disabled:this.disabled||g?.props?.disabled,pressed:g?.props?.modelValue,size:this.size,type:S,wide:this.wide,variant:this.variant||(C?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":g?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>C,icon:()=>E})},f=g=>{const h=Up(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?Ke("span",{class:["icon",this.defaultIcon]}):Ke(Px,{size:20}),E=`${this.randomId}-trigger`;return Ke(T4,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterHide:this.onClosed},{trigger:()=>Ke(Ct,{id:E,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>h,default:()=>this.menuName}),default:()=>Ke("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[Ke("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":E,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[g])])})};return e.length===1&&n.length===1&&!this.forceMenu?d(e[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),u.length>0&&this.inline>0?Ke("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...u.map(d),s.length>0?Ke("div",{class:["action-item",{"action-item--open":this.opened}]},[f(s)]):null]):Ke("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[f(e)]))}},Hp=ut(Lx,[["__scopeId","data-v-7206c1f1"]]);Ft(t6);const Ox={long:Ye("a few seconds ago"),short:Ye("seconds ago"),narrow:Ye("sec. ago")};function Rx(e=Date.now(),t={}){let n;const u=ne(()=>new Date(Rt(e))),s=ne(()=>{const{language:o,relativeTime:a,ignoreSeconds:c}=Rt(t);return{...o&&{language:o},...a&&{relativeTime:a},ignoreSeconds:c?Ox[a||"long"]:!1}}),i=_e("");ba(r);function r(){const o=u.value.getTime();if(Number.isNaN(o)){i.value=Ye("Invalid date");return}else i.value=Ry(u.value,s.value);if(Rt(t).update!==!1){const a=Math.abs(Date.now()-o),c=a>12e4||s.value.ignoreSeconds?Math.min(a/60,18e5):1e3;n=window.setTimeout(r,c)}}return Sn(()=>n&&window.clearTimeout(n)),ir(i)}function jx(e,t){const n=ne(()=>({locale:Xf(),format:{dateStyle:"short",timeStyle:"medium"},...Rt(t)})),u=ne(()=>new Intl.DateTimeFormat(n.value.locale,n.value.format));return ne(()=>u.value.format(Rt(e)))}const Wp=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),Mx=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),$x=/^[a-zA-Z0-9]$/,Vx=/^[^\x20-\x7F]$/;function Ux(e,t){return!(e.target instanceof HTMLElement)||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement||e.target.isContentEditable?!0:t.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function z4(e,t){return n=>{if((Wp?n.metaKey:n.ctrlKey)===!!t.ctrl){if(n.altKey!==!!t.alt||t.shift!==void 0&&n.shiftKey!==!!t.shift||Ux(n,t))return;t.prevent&&n.preventDefault(),t.stop&&n.stopPropagation(),e(n)}}}function G0(e,t=()=>{},n={}){if(Mx)return()=>{};const u=(o,a)=>{if(o.key===a)return!0;if(n.caseSensitive){const c=a===a.toLowerCase(),l=o.key===o.key.toLowerCase();if(c!==l)return!1}return $x.test(a)&&Vx.test(o.key)?o.code.replace(/^(?:Key|Digit|Numpad)/,"")===a.toUpperCase():o.key.toLowerCase()===a.toLowerCase()},s=o=>typeof e=="function"?e(o):typeof e=="string"?u(o,e):Array.isArray(e)?e.some(a=>u(o,a)):!0,i=Gm(s,z4(t,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),r=n.push?Gm(s,z4(t,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{i(),r()}}function Hx(e=document.body){const t=window.getComputedStyle(e).getPropertyValue("--background-invert-if-dark");return t!==void 0?t==="invert(100%)":!1}Hx();const Wx=_e(qp());window.addEventListener("resize",()=>{Wx.value=qp()});function qp(){return window.outerHeight===window.screen.height}const jc=1024,Kp=jc/2,Jo=e=>document.documentElement.clientWidth{Gp.value=Jo(jc),qx.value=Jo(Kp)},{passive:!0});function Kx(){return ir(Gp)}function P4(e){return!e.parent||"vapor"in e||"vapor"in e.parent||e.parent.subTree!==e.vnode?null:e.parent}function Gx(e){const t=[e];let n=P4(e);for(;n;)t.push(n),n=P4(n);return t}function Yx(){const e=Ln();if(!e)throw new Error("useScopeId must be called within a setup context");const t=Gx(e).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(t.map(n=>[n,""]))}Ft(ip,g6);const Zx=["aria-labelledby","aria-describedby"],Jx=["data-theme-light","data-theme-dark"],Xx=["id"],Qx={class:"icons-menu"},ew=["title"],tw=["id"],nw={class:"modal-container__content"},uw=Me({inheritAttrs:!1,__name:"NcModal",props:qu({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{},slideshowRunning:{type:Boolean,default:!1},slideshowRunningModifiers:{}}),emits:qu(["next","previous","close","update:show"],["update:show","update:slideshowRunning"]),setup(e,{emit:t}){_a(O=>({v46e58dab:C.value,v58d005d2:h.value}));const n=ri(e,"show"),u=ri(e,"slideshowRunning"),s=e,i=t,r=Yx(),o=fn(),a=An("mask");let c;Sn(()=>D()),qt(()=>s.additionalTrapElements,O=>{c&&c.updateContainerElements([a.value,...O])});const{isActive:l,pause:d,resume:f}=W5(k,xo(()=>s.slideshowDelay),{immediate:!1}),g=_e(0);ba(()=>{u.value&&!s.slideshowPaused?f():l.value&&d()});const h=ne(()=>`${s.slideshowDelay}ms`),{stop:E}=J5(a,{onSwipeEnd:H});Sn(E),G0("Escape",()=>{pr().at(-1)===c&&U()},{allowInModal:!0}),G0(["ArrowLeft","ArrowRight"],O=>{document.activeElement&&!a.value.contains(document.activeElement)||(O.key==="ArrowLeft"!==Zo?S():k())},{allowInModal:!0});const b=kc(),C=ne(()=>{let O=0;return s.hasNext&&s.enableSlideshow&&O++,!s.noClose&&s.closeButtonOutside&&O++,b.actions&&O++,O}),x=ne(()=>s.name.trim()!==""||C.value>0);un(()=>{!s.name&&s.labelId});function k(O){if(!s.hasNext){u.value=!1;return}O&&l.value&&T(),i("next",O)}function S(O){s.hasPrevious&&(O&&l.value&&T(),i("previous",O))}function H(O,B){if(!s.disableSwipe){if(B!=="left"&&B!=="right")return;B==="left"!==Zo?k(O):S(O)}}function T(){d(),f(),g.value++}function U(O){s.noClose||(n.value=!1,setTimeout(()=>{i("close",O)},300))}function X(O){s.closeOnClickOutside&&U(O)}async function K(){if(c)return;await ku();const O={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:pr(),escapeDeactivates:!1,setReturnFocus:s.setReturnFocus};c=fp([a.value,...s.additionalTrapElements],O),c.activate()}function D(){c&&(c?.deactivate(),c=void 0)}return(O,B)=>(_(),we(lE,{disabled:e.container===null,to:e.container},[Ee(Hs,{name:"fade",appear:"",onAfterEnter:K,onBeforeLeave:D},{default:he(()=>[Mu(Z("div",Ze({...O.$attrs,...I(r)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":e.dark||e.closeButtonOutside||e.hasPrevious||e.hasNext,"modal-mask--light":e.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":e.labelId||`modal-name-${I(o)}`,"aria-describedby":"modal-description-"+I(o),tabindex:"-1"}),[Ee(Hs,{name:"fade-visibility",appear:""},{default:he(()=>[x.value?(_(),W("div",{key:0,class:"modal-header","data-theme-light":e.lightBackdrop,"data-theme-dark":!e.lightBackdrop},[e.name.trim()!==""?(_(),W("h2",{key:0,id:"modal-name-"+I(o),class:"modal-header__name"},re(e.name),9,Xx)):ye("",!0),Z("div",Qx,[e.hasNext&&e.enableSlideshow?(_(),W("button",{key:0,class:ze(["play-pause-icons",{"play-pause-icons--paused":e.slideshowPaused}]),title:I(l)?I(Ye)("Pause slideshow"):I(Ye)("Start slideshow"),type:"button",onClick:B[0]||(B[0]=R=>u.value=!u.value)},[Ee(It,{class:"play-pause-icons__icon",inline:"",name:I(l)?I(Ye)("Pause slideshow"):I(Ye)("Start slideshow"),path:I(l)?I(g5):I(f5)},null,8,["name","path"]),I(l)?(_(),W("svg",{key:`${I(o)}-animation-${g.value}`,class:"progress-ring"},[...B[1]||(B[1]=[Z("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",cx:"50%",cy:"50%"},null,-1)])])):ye("",!0)],10,ew)):ye("",!0),Ee(Hp,{class:"header-actions",inline:e.inlineActions},{default:he(()=>[Pe(O.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!e.noClose&&e.closeButtonOutside?(_(),we(Ct,{key:1,"aria-label":I(Ye)("Close"),class:"header-close",variant:"tertiary",onClick:U},{icon:he(()=>[Ee(It,{path:I(P0)},null,8,["path"])]),_:1},8,["aria-label"])):ye("",!0)])],8,Jx)):ye("",!0)]),_:3}),Ee(Hs,{name:`modal-${e.outTransition?"out":"in"}`,appear:""},{default:he(()=>[Mu(Z("div",{class:ze(["modal-wrapper",[`modal-wrapper--${e.size}`,{"modal-wrapper--spread-navigation":e.spreadNavigation,"modal-wrapper--no-header":!x.value}]]),onMousedown:gn(X,["self"])},[Ee(Hs,{name:"fade-visibility",appear:""},{default:he(()=>[Mu(Ee(Ct,{"aria-label":I(Ye)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:S},{icon:he(()=>[Ee(It,{directional:"",path:I(c5),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[gs,e.hasPrevious]])]),_:1}),Z("div",{id:"modal-description-"+I(o),class:"modal-container"},[Z("div",nw,[Pe(O.$slots,"default",{},void 0,!0)]),!e.noClose&&!e.closeButtonOutside?(_(),we(Ct,{key:0,"aria-label":I(Ye)("Close"),class:"modal-container__close",variant:"tertiary",onClick:U},{icon:he(()=>[Ee(It,{path:I(P0)},null,8,["path"])]),_:1},8,["aria-label"])):ye("",!0)],8,tw),Ee(Hs,{name:"fade-visibility",appear:""},{default:he(()=>[Mu(Ee(Ct,{"aria-label":I(Ye)("Next"),class:"next",variant:"tertiary-no-background",onClick:k},{icon:he(()=>[Ee(It,{directional:"",path:I(np),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[gs,e.hasNext]])]),_:1})],34),[[gs,n.value]])]),_:3},8,["name"])],16,Zx),[[gs,n.value]])]),_:3})],8,["disabled","to"]))}}),Yp=ut(uw,[["__scopeId","data-v-c6039372"]]),sw=["id","textContent"],iw=["aria-label","aria-labelledby"],rw={class:"dialog__text"},ow={class:"dialog__actions"},aw=Me({__name:"NcDialog",props:qu({name:{},message:{default:""},additionalTrapElements:{default:()=>[]},container:{default:"body"},size:{default:"small"},buttons:{default:()=>[]},isForm:{type:Boolean},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},outTransition:{type:Boolean},navigationAriaLabel:{default:""},navigationAriaLabelledby:{default:""},contentClasses:{default:""},dialogClasses:{default:""},navigationClasses:{default:""}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:qu(["closing","reset","submit"],["update:open"]),setup(e,{emit:t}){const n=ri(e,"open"),u=e,s=t,i=kc(),r=An("wrapper"),{width:o}=L0(r,{width:900,height:0}),a=ne(()=>o.value<876),c=ne(()=>i?.navigation!==void 0),l=fn(),d=ne(()=>u.navigationAriaLabel||void 0),f=ne(()=>{if(!u.navigationAriaLabel)return u.navigationAriaLabelledby||l}),g=An("dialogElement"),h=ne(()=>u.isForm&&!c.value?"form":"div"),E=ne(()=>h.value!=="form"?{}:{submit(H){H.preventDefault(),s("submit",H)},reset(H){H.preventDefault(),s("reset",H)}}),b=_e(!0);function C(H,T){H.type==="submit"&&h.value==="form"&&"reportValidity"in g.value&&!g.value.reportValidity()||(x(T),window.setTimeout(()=>k(),300))}function x(H){b.value=!1,s("closing",H)}function k(){b.value=!0,n.value=!1}const S=ne(()=>({noClose:u.noClose,container:u.container===void 0?"body":u.container,labelId:l,size:u.size,show:n.value&&b.value,outTransition:u.outTransition,closeOnClickOutside:u.closeOnClickOutside,additionalTrapElements:u.additionalTrapElements}));return(H,T)=>n.value?(_(),we(I(Yp),Ze({key:0,class:"dialog__modal",disableSwipe:""},S.value,{onClose:k,"onUpdate:show":T[0]||(T[0]=U=>x())}),{default:he(()=>[Z("h2",{id:I(l),class:"dialog__name",textContent:re(e.name)},null,8,sw),(_(),we(xu(h.value),Ze({ref:"dialogElement",class:["dialog",e.dialogClasses]},Do(E.value)),{default:he(()=>[Z("div",{ref:"wrapper",class:ze(["dialog__wrapper",[{"dialog__wrapper--collapsed":a.value}]])},[c.value?(_(),W("nav",{key:0,class:ze(["dialog__navigation",e.navigationClasses]),"aria-label":d.value,"aria-labelledby":f.value},[Pe(H.$slots,"navigation",{isCollapsed:a.value},void 0,!0)],10,iw)):ye("",!0),Z("div",{class:ze(["dialog__content",e.contentClasses])},[Pe(H.$slots,"default",{},()=>[Z("p",rw,re(e.message),1)],!0)],2)],2),Z("div",ow,[Pe(H.$slots,"actions",{},()=>[(_(!0),W(et,null,tu(e.buttons,(U,X)=>(_(),we(I(B6),Ze({key:X},{ref_for:!0},U,{onClick:(K,D)=>C(U,D)}),null,16,["onClick"]))),128))],!0)])]),_:3},16,["class"]))]),_:3},16)):ye("",!0)}}),lw=ut(aw,[["__scopeId","data-v-adda232f"]]),cw=Me({name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(){return this.vnodes||this.$slots?.default?.({})}});function oi(e,t,n){const u=`#initial-state-${e}-${t}`;if(window._nc_initial_state?.has(u))return window._nc_initial_state.get(u);window._nc_initial_state||(window._nc_initial_state=new Map);const s=document.querySelector(u);if(s===null){if(n!==void 0)return n;throw new Error(`Could not find initial state ${t} of ${e}`)}try{const i=JSON.parse(atob(s.value));return window._nc_initial_state.set(u,i),i}catch(i){if(console.error("[@nextcloud/initial-state] Could not parse initial state",{key:t,app:e,error:i}),n!==void 0)return n;throw new Error(`Could not parse initial state ${t} of ${e}`,{cause:i})}}function dw(e){let t=!1,n;return(...u)=>(t||(t=!0,n=e(...u)),n)}let Zp="missing-app-name";try{Zp=f3}catch{Su.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.")}const mw=Zp;let Jp="";try{Jp=n1}catch{Su.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.")}const gw=Jp;function fw(){return jt("appName",mw)}const pw=dw(()=>{const e=oi("core","apps",[]),t=fw();return e.find(({id:n})=>n===t)?.name??t}),Xp=Symbol.for("NcAppSettingsDialog:registration"),Mc=Symbol.for("NcAppSettingsDialog:legacy");function hw(){return jt(Xp)}const vw=Me({__name:"NcAppSettingsDialogVersion",setup(e){const t=jt(Mc),n=pw();return(u,s)=>(_(),W("div",{class:ze([u.$style.appSettingsDialogVersion,{[u.$style.appSettingsDialogVersion__legacy]:I(t)}])},re(I(n))+" "+re(I(gw)),3))}}),Ew="_appSettingsDialogVersion_zdiMg",Cw="_appSettingsDialogVersion__legacy_S2z5e",yw={"material-design-icon":"_material-design-icon_hQ2c6",appSettingsDialogVersion:Ew,appSettingsDialogVersion__legacy:Cw},xw={$style:yw},ww=ut(vw,[["__cssModules",xw]]);Ft(h6);const bw={key:0,class:"app-settings__title"},Bw={key:1,class:"navigation-list"},kw=["aria-current","href","onClick","onKeydown"],Aw={key:0,class:"navigation-list__link-icon"},Dw={class:"navigation-list__link-text"},Fw=Me({__name:"NcAppSettingsDialog",props:qu({showNavigation:{type:Boolean},container:{default:"body"},name:{default:""},additionalTrapElements:{default:()=>[]},legacy:{type:Boolean,default:!1},noVersion:{type:Boolean,default:!1}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:["update:open"],setup(e){const t=ri(e,"open"),n=e;h0(Xp,{registerSection:E,unregisterSection:b}),h0(Mc,xo(()=>n.legacy));const u=An("settingsScroller"),s=Kx(),i=_e(""),r=_e(!1),o=_e([]),a=ne(()=>!s.value&&n.showNavigation),c=ne(()=>o.value.some(({icon:C})=>!!C)),l=j5(()=>{i.value="",document.activeElement?.className.includes("navigation-list__link")&&document.activeElement.blur()},300),d=new Map;di(()=>{d.clear()});function f(C){r.value=!0,document.getElementById("settings-section_"+C).scrollIntoView({behavior:"smooth",inline:"nearest"}),i.value=C,setTimeout(()=>{r.value=!1},1e3)}function g(C){C||(t.value=!1,u.value.scrollTop=0)}function h(){t.value&&!r.value&&l()}function E(C,x,k,S){if(o.value.some(({id:H})=>C===H))throw new Error(`Duplicate section id found: ${C}. Settings navigation sections must have unique section ids.`);o.value.some(({name:H})=>x===H),k!==void 0?d.set(C,k):d.has(C)?k=d.get(C):(k=Math.max(0,...d.values())+1,d.set(C,k)),o.value=[...o.value,{id:C,name:x,order:k,icon:S}].sort(({order:H},{order:T})=>H-T),o.value.length===1&&(i.value=C)}function b(C){o.value=o.value.filter(({id:x})=>C!==x),i.value===C&&(i.value=o.value[0]?.id??"")}return(C,x)=>t.value?(_(),we(lw,{key:0,class:ze(["app-settings",{"app-settings--legacy":I(z0)}]),contentClasses:"app-settings__content",navigationClasses:"app-settings__navigation",additionalTrapElements:e.additionalTrapElements,container:e.container,closeOnClickOutside:"","navigation-aria-label":I(Ye)("Settings navigation"),size:"large",name:e.name,"onUpdate:open":g},Bc({default:he(()=>[Z("div",{ref:"settingsScroller",onScroll:h},[Pe(C.$slots,"default",{},void 0,!0),e.noVersion?ye("",!0):(_(),we(ww,{key:0}))],544)]),_:2},[a.value?{name:"navigation",fn:he(({isCollapsed:k})=>[I(z0)?ye("",!0):(_(),W("div",bw,re(e.name),1)),k?ye("",!0):(_(),W("ul",Bw,[(_(!0),W(et,null,tu(o.value,S=>(_(),W("li",{key:S.id},[Z("a",{"aria-current":`${S.id===i.value}`,class:ze(["navigation-list__link",{"navigation-list__link--active":S.id===i.value,"navigation-list__link--icon":c.value}]),href:`#settings-section_${S.id}`,tabindex:"0",onClick:gn(H=>f(S.id),["prevent"]),onKeydown:gr(H=>f(S.id),["enter"])},[c.value?(_(),W("div",Aw,[S.icon?(_(),we(cw,{key:0,vnodes:S.icon},null,8,["vnodes"])):ye("",!0)])):ye("",!0),Z("span",Dw,re(S.name),1)],42,kw)]))),128))]))]),key:"0"}:void 0]),1032,["class","additionalTrapElements","container","navigation-aria-label","name"])):ye("",!0)}}),Sw=ut(Fw,[["__scopeId","data-v-71803906"]]),_w=["id","aria-labelledby"],Nw=["id"],Tw={class:"app-settings-section__description"},zw={class:"app-settings-section__content"},Pw=Me({__name:"NcAppSettingsSection",props:{name:{},description:{},id:{},order:{}},setup(e){const t=e,n=kc(),{registerSection:u,unregisterSection:s}=hw(),i=jt(Mc),r=ne(()=>"settings-section_"+t.id);return qt(()=>t.id,()=>{/^[a-z0-9\-_]+$/.test(t.id)||Su.warn(`Invalid id prop: ${t.id}. Only alphanumeric, dash and underscore are allowed.`)},{immediate:!0}),qt([()=>t.id,()=>t.name,()=>t.order],([o,a,c],[l,,])=>{s(l),u(o,a,c,n?.icon?.())}),un(()=>{u(t.id,t.name,t.order,n?.icon?.())}),di(()=>{s(t.id)}),(o,a)=>(_(),W("section",{id:r.value,"aria-labelledby":`${r.value}--label`,class:ze(["app-settings-section",{"app-settings-section__legacy":I(i)}])},[Z("h3",{id:`${r.value}--label`,class:"app-settings-section__name"},re(e.name),9,Nw),Z("div",Tw,re(e.description),1),Z("div",zw,[Pe(o.$slots,"default",{},void 0,!0)])],10,_w))}}),qs=ut(Pw,[["__scopeId","data-v-9f146f2d"]]);Ft(rp);const Iw=Me({__name:"NcAppSettingsShortcutsSection",setup(e){return(t,n)=>(_(),we(qs,{id:"keyboard-shortcuts",name:I(Ye)("Keyboard shortcuts")},{default:he(()=>[Z("div",{class:ze(t.$style.appSettingsSectionShortcuts)},[Pe(t.$slots,"default")],2)]),_:3},8,["name"]))}}),Lw="_appSettingsSectionShortcuts_r6ONT",Ow={appSettingsSectionShortcuts:Lw},Rw={$style:Ow},jw=ut(Iw,[["__cssModules",Rw]]);Ft(u6);const Mw=Me({__name:"NcKbd",props:{symbol:{default:()=>{}},mac:{type:Boolean,default:()=>Wp}},setup(e){const t=ne(()=>({ArrowUp:"↑",ArrowDown:"↓",ArrowLeft:"←",ArrowRight:"→",Control:e.mac?"⌘":Ye("Ctrl"),Alt:e.mac?"⌥":Ye("Alt"),Shift:e.mac?"⇧":Ye("Shift"),Enter:e.mac?"⏎":Ye("Enter"),Tab:e.mac?"⇥":Ye("Tab"),Delete:e.mac?"⌫":Ye("Delete"),Escape:e.mac?"⎋":Ye("Escape"),Space:Ye("Space")})),n=ne(()=>e.symbol&&t.value[e.symbol]||e.symbol);return(u,s)=>(_(),W("kbd",{class:ze(u.$style.kbd)},[Pe(u.$slots,"default",{},()=>[We(re(n.value),1)])],2))}}),$w="_kbd_ouG-F",Vw={"material-design-icon":"_material-design-icon_TcOah",kbd:$w},Uw={$style:Vw},Hw=ut(Mw,[["__cssModules",Uw]]),Ww="⚠️ NcHotKey must have a label or slot content",qw=Me({__name:"NcHotkey",props:{label:{default:()=>{}},hotkey:{default:()=>{}}},setup(e){const t=ne(()=>e.hotkey?.split(/\s+/).map(n=>n.trim()));return(n,u)=>(_(),W("li",{class:ze(n.$style.hotkey)},[Z("span",{role:"term",class:ze(n.$style.hotkey__keys)},[Pe(n.$slots,"hotkey",{},()=>[(_(!0),W(et,null,tu(t.value,(s,i)=>(_(),we(Hw,{key:i,symbol:s},null,8,["symbol"]))),128))])],2),Z("span",{role:"definition",class:ze(n.$style.hotkey__label)},[Pe(n.$slots,"default",{},()=>[We(re(e.label||Ww),1)])],2)],2))}}),Kw="_hotkey_W5WOO",Gw="_hotkey__label_UJqDg",Yw="_hotkey__keys_DhshL",Zw={"material-design-icon":"_material-design-icon_b8Jeb",hotkey:Kw,hotkey__label:Gw,hotkey__keys:Yw},Jw={$style:Zw},Xw=ut(qw,[["__cssModules",Jw]]);Ft(rp);const Qw=Me({__name:"NcHotkeyList",props:{label:{default:()=>{}}},setup(e){const t=`NcHotkeyList_${fn()}`;return(n,u)=>(_(),W("div",{class:ze(n.$style.hotkeyList)},[Z("div",{id:t,class:ze([n.$style.hotkeyList__heading,{"hidden-visually":!e.label}])},re(e.label||I(Ye)("Keyboard shortcuts")),3),Z("ul",{"aria-labelledby":t},[Pe(n.$slots,"default")])],2))}}),eb="_hotkeyList_l6iQ2",tb="_hotkeyList__heading_N5hMl",nb={hotkeyList:eb,hotkeyList__heading:tb},ub={$style:nb},sb=ut(Qw,[["__cssModules",ub]]),ib="modulepreload",rb=function(e,t){return new URL(e,t).href},I4={},ob=function(e,t,n){let u=Promise.resolve();if(t&&t.length>0){let i=function(c){return Promise.all(c.map(l=>Promise.resolve(l).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const r=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),a=o?.nonce||o?.getAttribute("nonce");u=i(t.map(c=>{if(c=rb(c,n),c in I4)return;I4[c]=!0;const l=c.endsWith(".css"),d=l?'[rel="stylesheet"]':"";if(n)for(let g=r.length-1;g>=0;g--){const h=r[g];if(h.href===c&&(!l||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=l?"stylesheet":ib,l||(f.as="script"),f.crossOrigin="",f.href=c,a&&f.setAttribute("nonce",a),document.head.appendChild(f),l)return new Promise((g,h)=>{f.addEventListener("load",g),f.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(i){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=i,window.dispatchEvent(r),!r.defaultPrevented)throw i}return u.then(i=>{for(const r of i||[])r.status==="rejected"&&s(r.reason);return e().catch(s)})};function ab(){try{return oi("core","capabilities")}catch{return console.debug("Could not find capabilities initial state fall back to _oc_capabilities"),"_oc_capabilities"in window?window._oc_capabilities:{}}}var lb="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";const Qp=sp().detectLanguage();for(const e of[{language:"ar",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" لا يصلح كاسم مجلد.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" غير مسموح به كاسم مجلد']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" غير مسموح به داخل اسم مجلد.']},{msgid:"All files",msgstr:["كل الملفات"]},{msgid:"Choose",msgstr:["إختَر"]},{msgid:"Choose {file}",msgstr:["إختر {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["إختَر %n ملف","إختَر %n ملف","إختَر %n ملف","إختَر %n ملفات","إختَر %n ملف","إختر %n ملف"]},{msgid:"Copy",msgstr:["نسخ"]},{msgid:"Copy to {target}",msgstr:["نسخ إلى {target}"]},{msgid:"Could not create the new folder",msgstr:["تعذّر إنشاء المجلد الجديد"]},{msgid:"Could not load files settings",msgstr:["يتعذّر تحميل إعدادات الملفات"]},{msgid:"Could not load files views",msgstr:["تعذر تحميل عرض الملفات"]},{msgid:"Create directory",msgstr:["إنشاء مجلد"]},{msgid:"Current view selector",msgstr:["محدد العرض الحالي"]},{msgid:"Favorites",msgstr:["المفضلة"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["الملفات والمجلدات التي تحددها كمفضلة ستظهر هنا."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["الملفات و المجلدات التي قمت مؤخراً بتعديلها سوف تظهر هنا."]},{msgid:"Filter file list",msgstr:["تصفية قائمة الملفات"]},{msgid:"Folder name cannot be empty.",msgstr:["اسم المجلد لا يمكن أن يكون فارغاً."]},{msgid:"Home",msgstr:["البداية"]},{msgid:"Modified",msgstr:["التعديل"]},{msgid:"Move",msgstr:["نقل"]},{msgid:"Move to {target}",msgstr:["نقل إلى {target}"]},{msgid:"Name",msgstr:["الاسم"]},{msgid:"New",msgstr:["جديد"]},{msgid:"New folder",msgstr:["مجلد جديد"]},{msgid:"New folder name",msgstr:["اسم المجلد الجديد"]},{msgid:"No files in here",msgstr:["لا توجد ملفات هنا"]},{msgid:"No files matching your filter were found.",msgstr:["لا توجد ملفات تتطابق مع عامل التصفية الذي وضعته"]},{msgid:"No matching files",msgstr:["لا توجد ملفات مطابقة"]},{msgid:"Recent",msgstr:["الحالي"]},{msgid:"Select all entries",msgstr:["حدد جميع الإدخالات"]},{msgid:"Select entry",msgstr:["إختَر المدخل"]},{msgid:"Select the row for {nodename}",msgstr:["إختر سطر الـ {nodename}"]},{msgid:"Size",msgstr:["الحجم"]},{msgid:"Undo",msgstr:["تراجع"]},{msgid:"Upload some content or sync with your devices!",msgstr:["قم برفع بعض المحتوى أو المزامنة مع أجهزتك!"]}]},{language:"ast",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["«{name}» ye un nome de carpeta inválidu."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["«{name}» ye un nome de carpeta inválidu"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["Nun se permite'l caráuter «/» dientro'l nome de les carpetes."]},{msgid:"All files",msgstr:["Tolos ficheros"]},{msgid:"Choose",msgstr:["Escoyer"]},{msgid:"Choose {file}",msgstr:["Escoyer «{ficheru}»"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escoyer %n ficheru","Escoyer %n ficheros"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar en: {target}"]},{msgid:"Could not create the new folder",msgstr:["Nun se pudo crear la carpeta"]},{msgid:"Could not load files settings",msgstr:["Nun se pudo cargar la configuración de los ficheros"]},{msgid:"Could not load files views",msgstr:["Nun se pudieron cargar les vistes de los ficheros"]},{msgid:"Create directory",msgstr:["Crear un direutoriu"]},{msgid:"Current view selector",msgstr:["Selector de la vista actual"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Equí apaecen los ficheros y les carpetes que metas en Favoritos."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Equí apaecen los fichero y les carpetes que modificares apocayá."]},{msgid:"Filter file list",msgstr:["Peñerar la llista de ficheros"]},{msgid:"Folder name cannot be empty.",msgstr:["El nome de la carpeta nun pue tar baleru."]},{msgid:"Home",msgstr:["Aniciu"]},{msgid:"Modified",msgstr:["Modificóse"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"New",msgstr:["Nuevu"]},{msgid:"New folder",msgstr:["Carpeta nueva"]},{msgid:"New folder name",msgstr:["Nome de carpeta nuevu"]},{msgid:"No files in here",msgstr:["Equí nun hai nengún ficheru"]},{msgid:"No files matching your filter were found.",msgstr:["Nun s'atopó nengún ficheru que concasare cola peñera."]},{msgid:"No matching files",msgstr:["Nun hai nengún ficheru que concase"]},{msgid:"Recent",msgstr:["De recién"]},{msgid:"Select all entries",msgstr:["Seleicionar toles entraes"]},{msgid:"Select entry",msgstr:["Seleicionar la entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleicionar la filera de: {nodename}"]},{msgid:"Size",msgstr:["Tamañu"]},{msgid:"Undo",msgstr:["Desfacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Xubi dalgún elementu o sincroniza colos tos preseos!"]}]},{language:"ca",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" no està permès en el nom d'una carpeta.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`No és permès d'usar el caràcter "{char}" en un nom.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no és un nom permès.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" és un mot reservat i no està permès en el nom de les carpetes.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" és un mot reservat i no està permès com a nom.']},{msgid:"All files",msgstr:["Tots els fitxers"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Un element amb el mateix nom ja existeix a {dirname}"]},{msgid:"Cancel",msgstr:["Cancel·lar"]},{msgid:"Cancel the entire operation",msgstr:["Cancel·lar tota l'operació"]},{msgid:"Choose",msgstr:["Tria"]},{msgid:"Choose {file}",msgstr:["Tria {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Tria %n fitxer","Tria %n fitxers"]},{msgid:"Close",msgstr:["Tanca"]},{msgid:"Confirm",msgstr:["Confirma"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copia"]},{msgid:"Copy to {target}",msgstr:["Copia a {target}"]},{msgid:"Could not create the new folder",msgstr:["No s'ha pogut crear la carpeta nova"]},{msgid:"Could not load files settings",msgstr:["No es poden carregar fitxers de configuració"]},{msgid:"Could not load files views",msgstr:["No es poden carregar fitxers de vistes"]},{msgid:"Create directory",msgstr:["Crea un directori"]},{msgid:"Current view selector",msgstr:["Selector de visualització actual"]},{msgid:"Enter your name",msgstr:["Escriviu el vostre nom"]},{msgid:"Error: {message}",msgstr:["Error: {message}"]},{msgid:"Existing files",msgstr:["Fitxers existents"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Els fitxers i carpetes existents s'eliminaran si no se seleccionen. Si tots dos són escollits, seran reanomenats."]},{msgid:"Existing version",msgstr:["Versió existent"]},{msgid:"Failed to set nickname.",msgstr:["No s'ha pogut desar el sobrenom."]},{msgid:"Favorites",msgstr:["Preferits"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Els fitxers i les carpetes que marqueu com a favorits es mostraran aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Els fitxers i les carpetes recentment modificats es mostraran aquí."]},{msgid:"Filter file list",msgstr:["Filtrar llistat de fitxers"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Els noms de les carpetes no poden acabar amb "{extension}".']},{msgid:"Guest identification",msgstr:["Identificació com a convidat"]},{msgid:"Home",msgstr:["Inici"]},{msgid:"Info: {message}",msgstr:["Informació: {message}"]},{msgid:"Invalid folder name.",msgstr:["El nom de carpeta no és vàlid."]},{msgid:"Invalid name.",msgstr:["Nom no vàlid."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Hi ha elements amb el mateix nom que ja existeixen a {dirname}, selecciona quins conservar."]},{msgid:"Keep both",msgstr:["Queda't amb tots dos"]},{msgid:"Last modified date unknown",msgstr:["Data de l'última modificació desconeguda"]},{msgid:"Modified",msgstr:["Data de modificació"]},{msgid:"Move",msgstr:["Desplaça"]},{msgid:"Move to {target}",msgstr:["Desplaça a {target}"]},{msgid:"Name",msgstr:["Nom"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Els noms poden tenir com a màxim 64 caràcters."]},{msgid:"Names must not be empty.",msgstr:["Els noms no poden ser buits."]},{msgid:'Names must not end with "{extension}".',msgstr:[`Els noms no poden acabar amb l'extensió "{extension}".`]},{msgid:"Names must not start with a dot.",msgstr:["Els noms no poden començar amb un punt."]},{msgid:"New",msgstr:["Crea"]},{msgid:"New files",msgstr:["Fitxers nous"]},{msgid:"New folder",msgstr:["Carpeta nova"]},{msgid:"New folder name",msgstr:["Nom de la carpeta nova"]},{msgid:"New version",msgstr:["Nova versió"]},{msgid:"No files in here",msgstr:["No hi ha cap fitxer"]},{msgid:"No files matching your filter were found.",msgstr:["No s'ha trobat cap fitxer que coincideixi amb el filtre."]},{msgid:"No matching files",msgstr:["No hi ha cap fitxer que coincideixi"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Si us plau, escriu un nom amb 2 caràcters com a mínim."]},{msgid:"Recent",msgstr:["Recents"]},{msgid:"Replace",msgstr:["Substituir"]},{msgid:"Select all checkboxes",msgstr:["Selecciona totes les caselles de selecció"]},{msgid:"Select all entries",msgstr:["Selecciona totes les entrades"]},{msgid:"Select entry",msgstr:["Selecciona l'entrada"]},{msgid:"Select file to keep",msgstr:["Selecciona el fitxer a conservar"]},{msgid:"Select files to keep",msgstr:["Selecciona els fitxers per conservar"]},{msgid:"Select the row for {nodename}",msgstr:["Selecciona la fila per a {nodename}"]},{msgid:"Size",msgstr:["Mida"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omet %n fitxer","Omet %n fitxers"]},{msgid:"Submit name",msgstr:["Entreu el nom"]},{msgid:"Success: {message}",msgstr:["Èxit: {message}"]},{msgid:"Undo",msgstr:["Desfés"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Pugeu contingut o sincronitzeu-lo amb els vostres dispositius!"]},{msgid:"Warning: {message}",msgstr:["Avís: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quan se selecciona una nova carpeta, qualsevol fitxer en conflicte dins d'ella també s'escriurà."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Quan se selecciona una nova carpeta, qualsevol fitxer que hi hagi dins d'ella també serà sobreescrit."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quan se selecciona una nova carpeta, el contingut s'escriu a la carpeta existent i es realitza una resolució recursiva de conflictes."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Actualment se us mostra com a {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Actualment no esteu identificat."]},{msgid:"You cannot leave the name empty.",msgstr:["No podeu deixar el nom buit."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Heu de triar com a mínim una solució de conflicte"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Heu de seleccionar com a mínim una versió de cada fitxer per continuar."]}]},{language:"cs_CZ",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["znak „{char}“ není možné použít uvnitř názvu složky."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ není možné použít uvnitř názvu."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ není možné použít jako název."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ je vyhrazeným názvem a není možné ho používat pro názvy složek."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ je vyhrazeným názvem a není možné ho použít."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n kolize souboru","%n kolize souborů","%n kolizí souborů","%n kolize souborů"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n kolize souborů v {dirname}","%n kolize souborů v {dirname}","%n kolizí souborů v {dirname}","%n kolize souborů v {dirname}"]},{msgid:"All files",msgstr:["Veškeré soubory"]},{msgid:"Cancel",msgstr:["Storno"]},{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},{msgid:"Choose",msgstr:["Zvolit"]},{msgid:"Choose {file}",msgstr:["Zvolit {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Zvolte %n soubor","Zvolte %n soubory","Zvolte %n souborů","Zvolte %n soubory"]},{msgid:"Confirm",msgstr:["Potvrdit"]},{msgid:"Continue",msgstr:["Pokračovat"]},{msgid:"Copy",msgstr:["Zkopírovat"]},{msgid:"Copy to {target}",msgstr:["Zkopírovat do {target}"]},{msgid:"Could not create the new folder",msgstr:["Novou složku se nepodařilo vytvořit"]},{msgid:"Could not load files settings",msgstr:["Nepodařilo se načíst nastavení pro soubory"]},{msgid:"Could not load files views",msgstr:["Nepodařilo se načíst pohledy souborů"]},{msgid:"Create directory",msgstr:["Vytvořit složku"]},{msgid:"Current view selector",msgstr:["Výběr stávajícího zobrazení"]},{msgid:"Enter your name",msgstr:["Zadejte své jméno"]},{msgid:"Existing version",msgstr:["Existující verze"]},{msgid:"Failed to set nickname.",msgstr:["Nepodařilo se nastavit přezdívku."]},{msgid:"Favorites",msgstr:["Oblíbené"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Zde se zobrazí soubory a složky, které označíte jako oblíbené."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Zde se zobrazí soubory a složky, které jste nedávno pozměnili."]},{msgid:"Filter file list",msgstr:["Filtrovat seznam souborů"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Názvy složek nemohou končit na „{extension}“."]},{msgid:"Guest identification",msgstr:["Identifikace hosta"]},{msgid:"Home",msgstr:["Domů"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, pak k názvu příchozího souboru bude přidáno číslo."]},{msgid:"Invalid folder name.",msgstr:["Neplatný název složky."]},{msgid:"Invalid name.",msgstr:["Neplatný název."]},{msgid:"Last modified date unknown",msgstr:["Datum poslední změny neznámé"]},{msgid:"Modified",msgstr:["Změněno"]},{msgid:"Move",msgstr:["Přesounout"]},{msgid:"Move to {target}",msgstr:["Přesunout do {target}"]},{msgid:"Name",msgstr:["Název"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Je třeba, aby délka jmen nepřesahovala 64 znaků."]},{msgid:"Names must not be empty.",msgstr:["Názvy je třeba vyplnit."]},{msgid:'Names must not end with "{extension}".',msgstr:["Názvy nemohou končit na „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Názvy nemohou začínat tečkou."]},{msgid:"New",msgstr:["Nové"]},{msgid:"New folder",msgstr:["Nová složka"]},{msgid:"New folder name",msgstr:["Název pro novou složku"]},{msgid:"New version",msgstr:["Nová verze"]},{msgid:"No files in here",msgstr:["Nejsou zde žádné soubory"]},{msgid:"No files matching your filter were found.",msgstr:["Nenalezeny žádné soubory odpovídající vašemu filtru"]},{msgid:"No matching files",msgstr:["Žádné odpovídající soubory"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Zadejte jméno dlouhé alespoň 2 znaky."]},{msgid:"Recent",msgstr:["Nedávné"]},{msgid:"Select all checkboxes",msgstr:["Vybrat všechny zaškrtávací kolonky"]},{msgid:"Select all entries",msgstr:["Vybrat všechny položky"]},{msgid:"Select all existing files",msgstr:["Vybrat všechny existující soubory"]},{msgid:"Select all new files",msgstr:["Vybrat všechny nové soubory"]},{msgid:"Select entry",msgstr:["Vybrat položku"]},{msgid:"Select the row for {nodename}",msgstr:["Vybrat řádek pro {nodename}"]},{msgid:"Size",msgstr:["Velikost"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Přeskočit %n soubor","Přeskočit %n soubory","Přeskočit %n souborů","Přeskočit %n soubory"]},{msgid:"Skip this file",msgstr:["Přeskočit tento soubor"]},{msgid:"Submit name",msgstr:["Odeslat jméno"]},{msgid:"Undo",msgstr:["Zpět"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Nahrajte sem nějaký obsah nebo proveďte synchronizaci se svými zařízeními!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Pokud je vybrána příchozí složka, budou v ní také přepsány jakékoli kolidující soubory."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Když je vybrána příchozí složka, jakékoli soubory v ní budou také přepsány."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Pokud je vybrána příchozí složka, je obsah zapsán do existující složky a je provedeno rekurzivní vyřešení kolizí."]},{msgid:"Which files do you want to keep?",msgstr:["Které soubory chcete ponechat?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["V tuto chvíli jste identifikováni jako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["V tuto chvíli nejste identifikovaní."]},{msgid:"You cannot leave the name empty.",msgstr:["Jméno nelze ponechat nevyplněné."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Je třeba zvolit alespoň jedno z řešení kolize"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}]},{language:"da",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" er ikke tilladt i et navn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" er ikke tilladt i et navn.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" er et ugyldigt mappenavn.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" er ikke et tilladt mappenavn']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" er et reserveret navn og er derfor ikke tilladt.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er ikke tilladt i et mappenavn.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n filer konflikter"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n filkonflikt i {dirname}","%n filkonflikter i {dirname}"]},{msgid:"All files",msgstr:["Alle filer"]},{msgid:"Cancel",msgstr:["Fortryd"]},{msgid:"Cancel the entire operation",msgstr:["Annullér hele operationen"]},{msgid:"Choose",msgstr:["Vælg"]},{msgid:"Choose {file}",msgstr:["Vælg {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vælg %n fil","Vælg %n filer"]},{msgid:"Confirm",msgstr:["Bekræft"]},{msgid:"Continue",msgstr:["Fortsæt"]},{msgid:"Copy",msgstr:["Kopier"]},{msgid:"Copy to {target}",msgstr:["Kopier til {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunne ikke oprette den nye mappe"]},{msgid:"Could not load files settings",msgstr:["Filindstillingerne kunne ikke indlæses"]},{msgid:"Could not load files views",msgstr:["Kunne ikke indlæse filvisninger"]},{msgid:"Create directory",msgstr:["Opret mappe"]},{msgid:"Current view selector",msgstr:["Aktuel visningsvælger"]},{msgid:"Enter your name",msgstr:["Indtast dit navn"]},{msgid:"Existing version",msgstr:["Eksisterende version"]},{msgid:"Failed to set nickname.",msgstr:["Forsøg på at gemme kaldenavn mislykkedes."]},{msgid:"Favorites",msgstr:["Favoritter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer og mapper, du markerer som foretrukne, vises her."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer og mapper, du for nylig har ændret, vises her."]},{msgid:"Filter file list",msgstr:["Filtrer fil liste"]},{msgid:"Folder name cannot be empty.",msgstr:["Mappenavnet må ikke være tomt."]},{msgid:"Guest identification",msgstr:["Gæsteidentifikation"]},{msgid:"Home",msgstr:["Hjem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn."]},{msgid:"Invalid name.",msgstr:["Ugyldigt navn."]},{msgid:"Last modified date unknown",msgstr:["Senest ændret dato ukendt"]},{msgid:"Modified",msgstr:["Ændret"]},{msgid:"Move",msgstr:["Flyt"]},{msgid:"Move to {target}",msgstr:["Flyt til {target}"]},{msgid:"Name",msgstr:["Navn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Navne kan højst være 64 tegn lange."]},{msgid:"Names must not be empty.",msgstr:["Navne kan ikke være tomt."]},{msgid:'Names must not end with "{extension}".',msgstr:['Navne må ikke ende på "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Navne skal starte med et punktum."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mappe"]},{msgid:"New folder name",msgstr:["Ny mappe navn"]},{msgid:"New version",msgstr:["Ny version"]},{msgid:"No files in here",msgstr:["Ingen filer here"]},{msgid:"No files matching your filter were found.",msgstr:["Der blev ikke fundet nogen filer, der matcher dit filter."]},{msgid:"No matching files",msgstr:["Ingen matchende filer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Indtast et navn med mindst 2 tegn."]},{msgid:"Recent",msgstr:["Seneste"]},{msgid:"Select all checkboxes",msgstr:["Markér alle afkrydsningsfelter"]},{msgid:"Select all entries",msgstr:["Vælg alle poster"]},{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},{msgid:"Select entry",msgstr:["Vælg post"]},{msgid:"Select the row for {nodename}",msgstr:["Vælg rækken for {nodenavn}"]},{msgid:"Size",msgstr:["Størelse"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Spring %n fil over","Spring %n filer over"]},{msgid:"Skip this file",msgstr:["Spring denne fil over"]},{msgid:"Submit name",msgstr:["Indsend navn"]},{msgid:"Undo",msgstr:["Fortryd"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload noget indhold eller synkroniser med dine enheder!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indkommende mappe er valgt, vil eventuelle modstridende filer i det også blive overskrevet."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en indkommende mappe er valgt, er indholdet skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres."]},{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du have?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du er i øjeblikket identificeret som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du er ikke identificeret."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan ikke efterlade navnet tomt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du skal vælge mindst én konfliktløsning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}]},{language:"de",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ist innerhalb eines Ordnernamens nicht zulässig.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ist innerhalb eines Namens nicht zulässig.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ist kein zulässiger Name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig für Ordnernamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig.']},{msgid:"All files",msgstr:["Alle Dateien"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Ein Element mit demselben Namen existiert bereits in {dirname}."]},{msgid:"Cancel",msgstr:["Abbrechen"]},{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},{msgid:"Choose",msgstr:["Auswählen"]},{msgid:"Choose {file}",msgstr:["{file} auswählen"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n Datei auswählen","%n Dateien auswählen"]},{msgid:"Close",msgstr:["Schließen"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Continue",msgstr:["Fortsetzen"]},{msgid:"Copy",msgstr:["Kopieren"]},{msgid:"Copy to {target}",msgstr:["Nach {target} kopieren"]},{msgid:"Could not create the new folder",msgstr:["Der neue Ordner konnte nicht erstellt werden"]},{msgid:"Could not load files settings",msgstr:["Dateieinstellungen konnten nicht geladen werden"]},{msgid:"Could not load files views",msgstr:["Dateiansichten konnten nicht geladen werden"]},{msgid:"Create directory",msgstr:["Verzeichnis erstellen"]},{msgid:"Current view selector",msgstr:["Aktuelle Ansichtsauswahl"]},{msgid:"Enter your name",msgstr:["Gib deinen Namen ein"]},{msgid:"Error: {message}",msgstr:["Fehler: {message}"]},{msgid:"Existing files",msgstr:["Vorhandene Dateien"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Vorhandene Dateien und Ordner werden gelöscht, wenn sie nicht ausgewählt werden. Wenn beides ausgewählt wird, werden sie umbenannt."]},{msgid:"Existing version",msgstr:["Vorhandene Version"]},{msgid:"Failed to set nickname.",msgstr:["Spitzname konnte nicht gespeichert werden."]},{msgid:"Favorites",msgstr:["Favoriten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien und Ordner, die du als Favorit markierst, werden hier angezeigt."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien und Ordner, die du kürzlich geändert hast, werden hier angezeigt."]},{msgid:"Filter file list",msgstr:["Dateiliste filtern"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ordnernamen dürfen nicht mit "{extension}" enden.']},{msgid:"Guest identification",msgstr:["Gast-Identifikation"]},{msgid:"Home",msgstr:["Home"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Ungültiger Ordnername."]},{msgid:"Invalid name.",msgstr:["Ungültiger Name."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Es existieren bereits Elemente mit demselben Namen in {dirname}, auswählen, welche behalten werden sollen."]},{msgid:"Keep both",msgstr:["Beides behalten"]},{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},{msgid:"Modified",msgstr:["Geändert"]},{msgid:"Move",msgstr:["Verschieben"]},{msgid:"Move to {target}",msgstr:["Nach {target} verschieben"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen dürfen maximal 64 Zeichen lang sein."]},{msgid:"Names must not be empty.",msgstr:["Namen dürfen nicht leer sein."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen dürfen nicht mit "{extension}" enden.']},{msgid:"Names must not start with a dot.",msgstr:["Namen dürfen nicht mit einem Punkt beginnen."]},{msgid:"New",msgstr:["Neu"]},{msgid:"New files",msgstr:["Neue Dateien"]},{msgid:"New folder",msgstr:["Neuer Ordner"]},{msgid:"New folder name",msgstr:["Neuer Ordnername"]},{msgid:"New version",msgstr:["Neue Version"]},{msgid:"No files in here",msgstr:["Hier sind keine Dateien"]},{msgid:"No files matching your filter were found.",msgstr:["Es wurden keine Dateien gefunden, die deinem Filter entsprechen."]},{msgid:"No matching files",msgstr:["Keine passenden Dateien"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Bitte einen Namen mit mindestens zwei Zeichen eingeben."]},{msgid:"Recent",msgstr:["Neueste"]},{msgid:"Replace",msgstr:["Ersetzen"]},{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},{msgid:"Select all entries",msgstr:["Alle Einträge auswählen"]},{msgid:"Select entry",msgstr:["Eintrag auswählen"]},{msgid:"Select file to keep",msgstr:["Zu behaltende Datei auswählen"]},{msgid:"Select files to keep",msgstr:["Zu behaltende Dateien auswählen"]},{msgid:"Select the row for {nodename}",msgstr:["Die Zeile für {nodename} auswählen."]},{msgid:"Size",msgstr:["Größe"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n Datei überspringen","%n Dateien überspringen"]},{msgid:"Submit name",msgstr:["Namen senden"]},{msgid:"Success: {message}",msgstr:["Erfolg: {message}"]},{msgid:"Undo",msgstr:["Rückgängig machen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lade Inhalte hoch oder synchronisiere diese mit deinen Geräten!"]},{msgid:"Warning: {message}",msgstr:["Warnung: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, werden alle darin enthaltenen, in Konflikt stehenden Dateien ebenfalls überschrieben."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, werden alle darin enthaltenen Dateien ebenfalls überschrieben."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, wird der Inhalt in den bestehenden Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du bist derzeit als {nickname} identifiziert."]},{msgid:"You are currently not identified.",msgstr:["Du bist momentan nicht identifiziert."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kannst den Namen nicht leer lassen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Es muss mindestens eine Konfliktlösung gewählt werden"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren."]}]},{language:"de_DE",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ist innerhalb eines Ordnernamens nicht zulässig.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ist innerhalb eines Namens nicht zulässig.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ist kein zulässiger Name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig für Ordnernamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig.']},{msgid:"All files",msgstr:["Alle Dateien"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Ein Element mit demselben Namen existiert bereits in {dirname}."]},{msgid:"Cancel",msgstr:["Abbrechen"]},{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},{msgid:"Choose",msgstr:["Auswählen"]},{msgid:"Choose {file}",msgstr:["{file} auswählen"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n Datei auswählen","%n Dateien auswählen"]},{msgid:"Close",msgstr:["Schließen"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Continue",msgstr:["Fortsetzen"]},{msgid:"Copy",msgstr:["Kopieren"]},{msgid:"Copy to {target}",msgstr:["Nach {target} kopieren"]},{msgid:"Could not create the new folder",msgstr:["Der neue Ordner konnte nicht erstellt werden"]},{msgid:"Could not load files settings",msgstr:["Dateieinstellungen konnten nicht geladen werden"]},{msgid:"Could not load files views",msgstr:["Dateiansichten konnten nicht geladen werden"]},{msgid:"Create directory",msgstr:["Verzeichnis erstellen"]},{msgid:"Current view selector",msgstr:["Aktuelle Ansichtsauswahl"]},{msgid:"Enter your name",msgstr:["Geben Sie Ihren Namen ein"]},{msgid:"Error: {message}",msgstr:["Fehler: {message}"]},{msgid:"Existing files",msgstr:["Vorhandene Dateien"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Vorhandene Dateien und Ordner werden gelöscht, wenn sie nicht ausgewählt werden. Wenn beides ausgewählt wird, werden sie umbenannt."]},{msgid:"Existing version",msgstr:["Vorhandene Version"]},{msgid:"Failed to set nickname.",msgstr:["Spitzname konnte nicht gespeichert werden."]},{msgid:"Favorites",msgstr:["Favoriten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien und Ordner, die Sie als Favorit markieren, werden hier angezeigt."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien und Ordner, die Sie kürzlich geändert haben, werden hier angezeigt."]},{msgid:"Filter file list",msgstr:["Dateiliste filtern"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ordnernamen dürfen nicht mit "{extension}" enden.']},{msgid:"Guest identification",msgstr:["Gast-Identifikation"]},{msgid:"Home",msgstr:["Home"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Ungültiger Ordnername."]},{msgid:"Invalid name.",msgstr:["Ungültiger Name."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Es existieren bereits Elemente mit demselben Namen in {dirname}, wählen Sie aus, welche behalten werden sollen."]},{msgid:"Keep both",msgstr:["Beides behalten"]},{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},{msgid:"Modified",msgstr:["Geändert"]},{msgid:"Move",msgstr:["Verschieben"]},{msgid:"Move to {target}",msgstr:["Nach {target} verschieben"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen dürfen maximal 64 Zeichen lang sein."]},{msgid:"Names must not be empty.",msgstr:["Namen dürfen nicht leer sein."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen dürfen nicht mit "{extension}" enden.']},{msgid:"Names must not start with a dot.",msgstr:["Namen dürfen nicht mit einem Punkt beginnen."]},{msgid:"New",msgstr:["Neu"]},{msgid:"New files",msgstr:["Neue Dateien"]},{msgid:"New folder",msgstr:["Neuer Ordner"]},{msgid:"New folder name",msgstr:["Neuer Ordnername"]},{msgid:"New version",msgstr:["Neue Version"]},{msgid:"No files in here",msgstr:["Hier sind keine Dateien"]},{msgid:"No files matching your filter were found.",msgstr:["Es wurden keine Dateien gefunden, die Ihrem Filter entsprechen."]},{msgid:"No matching files",msgstr:["Keine passenden Dateien"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Bitte einen Namen mit mindestens zwei Zeichen eingeben."]},{msgid:"Recent",msgstr:["Neueste"]},{msgid:"Replace",msgstr:["Ersetzen"]},{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},{msgid:"Select all entries",msgstr:["Alle Einträge auswählen"]},{msgid:"Select entry",msgstr:["Eintrag auswählen"]},{msgid:"Select file to keep",msgstr:["Zu behaltende Datei auswählen"]},{msgid:"Select files to keep",msgstr:["Zu behaltende Dateien auswählen"]},{msgid:"Select the row for {nodename}",msgstr:["Die Zeile für {nodename} auswählen."]},{msgid:"Size",msgstr:["Größe"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n Datei überspringen","%n Dateien überspringen"]},{msgid:"Submit name",msgstr:["Namen senden"]},{msgid:"Success: {message}",msgstr:["Erfolg: {message}"]},{msgid:"Undo",msgstr:["Rückgängig machen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Laden Sie Inhalte hoch oder synchronisieren Sie diese mit Ihren Geräten!"]},{msgid:"Warning: {message}",msgstr:["Warnung: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, werden alle darin enthaltenen, in Konflikt stehenden Dateien ebenfalls überschrieben."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, werden alle darin enthaltenen Dateien ebenfalls überschrieben."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, wird der Inhalt in den bestehenden Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sie sind derzeit als {nickname} identifiziert."]},{msgid:"You are currently not identified.",msgstr:["Sie sind momentan nicht identifiziert."]},{msgid:"You cannot leave the name empty.",msgstr:["Sie können den Namen nicht leer lassen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Es muss mindestens eine Konfliktlösung gewählt werden"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren."]}]},{language:"el",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["Το «{char}» δεν επιτρέπεται μέσα σε όνομα φακέλου."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" δεν επιτρέπεται μέσα σε ένα όνομα.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" δεν είναι επιτρεπτό όνομα.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["Το «{segment}» είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται για ονόματα φακέλων."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n σύγκρουση αρχείου","%n σύγκρουση αρχείων"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n σύγκρουση αρχείου στο {dirname}","%n σύγκρουση αρχείων στο {dirname}"]},{msgid:"All files",msgstr:["Όλα τα αρχεία"]},{msgid:"Cancel",msgstr:["Ακύρωση"]},{msgid:"Cancel the entire operation",msgstr:["Ακύρωση όλης της διαδικασίας"]},{msgid:"Choose",msgstr:["Επιλογή"]},{msgid:"Choose {file}",msgstr:["Επιλέξτε {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Επιλέξτε %n αρχείο","Επιλέξτε %n αρχεία"]},{msgid:"Confirm",msgstr:["Επιβεβαίωση"]},{msgid:"Continue",msgstr:["Συνέχεια"]},{msgid:"Copy",msgstr:["Αντιγραφή"]},{msgid:"Copy to {target}",msgstr:["Αντιγραφή στο {target}"]},{msgid:"Could not create the new folder",msgstr:["Αδυναμία δημιουργίας νέου φακέλου"]},{msgid:"Could not load files settings",msgstr:["Αδυναμία φόρτωσης ρυθμίσεων αρχείων"]},{msgid:"Could not load files views",msgstr:["Αδυναμία φόρτωσης προβολών αρχείων"]},{msgid:"Create directory",msgstr:["Δημιουργία καταλόγου"]},{msgid:"Current view selector",msgstr:["Επιλογέας τρέχουσας προβολής"]},{msgid:"Enter your name",msgstr:["Εισάγετε το όνομά σας"]},{msgid:"Existing version",msgstr:["Υφιστάμενη έκδοση"]},{msgid:"Failed to set nickname.",msgstr:["Αποτυχία στην ρύθμιση του ψευδώνυμου."]},{msgid:"Favorites",msgstr:["Αγαπημένα"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Τα αρχεία και οι φάκελοι που επισημάνετε ως αγαπημένα θα εμφανίζονται εδώ."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Τα αρχεία και οι φάκελοι που τροποποιήσατε πρόσφατα θα εμφανίζονται εδώ."]},{msgid:"Filter file list",msgstr:["Φιλτράρισμα λίστας αρχείων"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Τα ονόματα των φακέλων δεν πρέπει να τελειώνουν με «{extension}»."]},{msgid:"Guest identification",msgstr:["Ταυτοποίηση επισκέπτη"]},{msgid:"Home",msgstr:["Αρχική"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Εάν επιλέξετε και τις δύο εκδόσεις, στο όνομα του εισερχόμενου αρχείου θα προστεθεί ένας αριθμός."]},{msgid:"Invalid folder name.",msgstr:["Μη έγκυρο όνομα φακέλου."]},{msgid:"Invalid name.",msgstr:["Μη έγκυρο όνομα."]},{msgid:"Last modified date unknown",msgstr:["Άγνωστη ημερομηνία τελευταίας τροποποίησης"]},{msgid:"Modified",msgstr:["Τροποποιήθηκε"]},{msgid:"Move",msgstr:["Μετακίνηση"]},{msgid:"Move to {target}",msgstr:["Μετακίνηση στο {target}"]},{msgid:"Name",msgstr:["Όνομα"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Τα ονόματα μπορούν να έχουν μέγιστο μήκος 64 χαρακτήρες."]},{msgid:"Names must not be empty.",msgstr:["Τα ονόματα δεν πρέπει να είναι κενά."]},{msgid:'Names must not end with "{extension}".',msgstr:['Τα ονόματα δεν πρέπει να τελειώνουν με "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Τα ονόματα δεν πρέπει να ξεκινούν με τελεία."]},{msgid:"New",msgstr:["Νέο"]},{msgid:"New folder",msgstr:["Νέος φάκελος"]},{msgid:"New folder name",msgstr:["Όνομα νέου φακέλου"]},{msgid:"New version",msgstr:["Νέα έκδοση"]},{msgid:"No files in here",msgstr:["Δεν υπάρχουν αρχεία εδώ"]},{msgid:"No files matching your filter were found.",msgstr:["Δεν βρέθηκαν αρχεία που να ταιριάζουν με το φίλτρο σας."]},{msgid:"No matching files",msgstr:["Κανένα αρχείο δεν ταιριάζει"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Παρακαλώ εισάγετε ένα όνομα με τουλάχιστον 2 χαρακτήρες."]},{msgid:"Recent",msgstr:["Πρόσφατα"]},{msgid:"Select all checkboxes",msgstr:["Επιλέξτε όλα τα πλαίσια ελέγχου"]},{msgid:"Select all entries",msgstr:["Επιλογή όλων των καταχωρήσεων"]},{msgid:"Select all existing files",msgstr:["Επιλογή όλων των υπάρχοντων αρχείων"]},{msgid:"Select all new files",msgstr:["Επιλογή όλων των νέων αρχείων"]},{msgid:"Select entry",msgstr:["Επιλογή εγγραφής"]},{msgid:"Select the row for {nodename}",msgstr:["Επιλέξτε τη γραμμή για το {nodename}"]},{msgid:"Size",msgstr:["Μέγεθος"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Παράλειψη ενός αρχείου","Παράλειψη %n αρχείων"]},{msgid:"Skip this file",msgstr:["Παράλειψη αυτού το αρχείου"]},{msgid:"Submit name",msgstr:["Υποβολή ονόματος"]},{msgid:"Undo",msgstr:["Αναίρεση"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ανεβάστε κάποιο περιεχόμενο ή συγχρονίστε με τις συσκευές σας!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Όταν επιλέγεται ένας φάκελος εισερχομένων, όλα τα αρχεία που βρίσκονται σε σύγκρουση μέσα σε αυτόν θα αντικατασταθούν επίσης."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Όταν επιλεγεί ένας φάκελος εισερχομένων, θα αντικατασταθούν επίσης όλα τα αρχεία που περιέχει."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Όταν επιλέγεται ένας φάκελος εισερχομένων, το περιεχόμενο εγγράφεται στον υπάρχοντα φάκελο και εκτελείται μια αναδρομική επίλυση σύγκρουσης."]},{msgid:"Which files do you want to keep?",msgstr:["Ποια αρχεία θέλετε να διατηρήσετε;"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Αυτή τη στιγμή έχετε αναγνωριστεί ως {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Δεν έχετε ταυτοποιηθεί."]},{msgid:"You cannot leave the name empty.",msgstr:["Δεν μπορείτε να αφήσετε το όνομα κενό."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία λύση σύγκρουσης"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία έκδοση από κάθε αρχείο για να συνεχίσετε."]}]},{language:"en_GB",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" is not allowed inside a folder name.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" is not allowed inside a name.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" is not an allowed name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" is a reserved name and cannot be used for folder names.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" is a reserved name and not allowed.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n file conflict","%n files conflict"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n file conflict in {dirname}","%n file conflicts in {dirname}"]},{msgid:"All files",msgstr:["All files"]},{msgid:"Cancel",msgstr:["Cancel"]},{msgid:"Cancel the entire operation",msgstr:["Cancel the entire operation"]},{msgid:"Choose",msgstr:["Choose"]},{msgid:"Choose {file}",msgstr:["Choose {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Choose %n file","Choose %n files"]},{msgid:"Confirm",msgstr:["Confirm"]},{msgid:"Continue",msgstr:["Continue"]},{msgid:"Copy",msgstr:["Copy"]},{msgid:"Copy to {target}",msgstr:["Copy to {target}"]},{msgid:"Could not create the new folder",msgstr:["Could not create the new folder"]},{msgid:"Could not load files settings",msgstr:["Could not load files settings"]},{msgid:"Could not load files views",msgstr:["Could not load files views"]},{msgid:"Create directory",msgstr:["Create directory"]},{msgid:"Current view selector",msgstr:["Current view selector"]},{msgid:"Enter your name",msgstr:["Enter your name"]},{msgid:"Existing version",msgstr:["Existing version"]},{msgid:"Failed to set nickname.",msgstr:["Failed to set nickname."]},{msgid:"Favorites",msgstr:["Favourites"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Files and folders you mark as favourite will show up here."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Files and folders you recently modified will show up here."]},{msgid:"Filter file list",msgstr:["Filter file list"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Folder names must not end with "{extension}".']},{msgid:"Guest identification",msgstr:["Guest identification"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["If you select both versions, the incoming file will have a number added to its name."]},{msgid:"Invalid folder name.",msgstr:["Invalid folder name."]},{msgid:"Invalid name.",msgstr:["Invalid name."]},{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},{msgid:"Modified",msgstr:["Modified"]},{msgid:"Move",msgstr:["Move"]},{msgid:"Move to {target}",msgstr:["Move to {target}"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Names may be at most 64 characters long."]},{msgid:"Names must not be empty.",msgstr:["Names must not be empty."]},{msgid:'Names must not end with "{extension}".',msgstr:['Names must not end with "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Names must not start with a dot."]},{msgid:"New",msgstr:["New"]},{msgid:"New folder",msgstr:["New folder"]},{msgid:"New folder name",msgstr:["New folder name"]},{msgid:"New version",msgstr:["New version"]},{msgid:"No files in here",msgstr:["No files in here"]},{msgid:"No files matching your filter were found.",msgstr:["No files matching your filter were found."]},{msgid:"No matching files",msgstr:["No matching files"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Please enter a name with at least 2 characters."]},{msgid:"Recent",msgstr:["Recent"]},{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},{msgid:"Select all entries",msgstr:["Select all entries"]},{msgid:"Select all existing files",msgstr:["Select all existing files"]},{msgid:"Select all new files",msgstr:["Select all new files"]},{msgid:"Select entry",msgstr:["Select entry"]},{msgid:"Select the row for {nodename}",msgstr:["Select the row for {nodename}"]},{msgid:"Size",msgstr:["Size"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Skip %n file","Skip %n files"]},{msgid:"Skip this file",msgstr:["Skip this file"]},{msgid:"Submit name",msgstr:["Submit name"]},{msgid:"Undo",msgstr:["Undo"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload some content or sync with your devices!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any conflicting files within it will also be overwritten."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any files within it will also be overwritten."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."]},{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["You are currently identified as {nickname}."]},{msgid:"You are currently not identified.",msgstr:["You are currently not identified."]},{msgid:"You cannot leave the name empty.",msgstr:["You cannot leave the name empty."]},{msgid:"You need to choose at least one conflict solution",msgstr:["You need to choose at least one conflict solution"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}]},{language:"es",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" no está permitido dentro de un nombre.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no es un nombre permitido.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" es un nombre de carpeta no válido.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no es un nombre de carpeta permitido']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" es un nombre reservado y no está permitido.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" no está permitido dentro del nombre de una carpeta.']},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Choose",msgstr:["Seleccionar"]},{msgid:"Choose {file}",msgstr:["Seleccionar {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Elige %n archivo","Elige %n archivos","Seleccione %n archivos"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudieron cargar los ajustes de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Ingrese su nombre"]},{msgid:"Failed to set nickname.",msgstr:["Fallo al establecer apodo."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:"Folder name cannot be empty.",msgstr:["El nombre de la carpeta no puede estar vacío."]},{msgid:"Guest identification",msgstr:["Identificación de invitado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"Invalid name.",msgstr:["Nombre inválido."]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"Names must not be empty.",msgstr:["Los nombres no deben estar vacíos."]},{msgid:'Names must not end with "{extension}".',msgstr:['Los nombres no deben terminar con "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Los nombres no deben iniciar con un punto."]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:[" Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nuevo nombre de carpeta"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidiesen con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Por favor, ingrese un nombre con al menos 2 caracteres."]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Submit name",msgstr:["Enviar nombre"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Cargue algún contenido o sincronice con sus dispositivos!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Ud. se encuentra identificado actualmente como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Ud. no se encuentra identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["No puede dejar el nombre vacío."]}]},{language:"es_AR",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" es un nombre de carpeta inválido.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no es un nombre de carpeta permitido']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" no está permitido en el nombre de una carpeta.']},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Choose",msgstr:["Elegir"]},{msgid:"Choose {file}",msgstr:["Elija {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Elija %n archivo","Elija %n archivos","Elija %n archivos"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudo cargar la configuración de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:"Folder name cannot be empty.",msgstr:["El nombre de la carpeta no puede estar vacío."]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:["Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nombre de nueva carpeta"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidan con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Cargue algún contenido o sincronice con sus dispositivos!"]}]},{language:"es_MX",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" no está permitido dentro de un nombre de carpeta']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" no está permitido dentro de un nombre']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no es un nombre permitido']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" es un nombre reservado y no está permitido para nombres de carpetas']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" es un nombre reservado y no está permitido']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n conflicto de archivo","%n conflicto de archivos","%n conflicto de archivos"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n conflicto de archivo en {dirname}","%n conflictos de archivo en {dirname}","%n conflictos de archivo en {dirname}"]},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar la operación completa"]},{msgid:"Choose",msgstr:["Seleccionar"]},{msgid:"Choose {file}",msgstr:["Seleccionar {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Seleccionar %n archivo","Seleccionar %n archivos","Seleccionar %n archivos"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudo cargar la configuración de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear carpeta"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Ingresa tu nombre"]},{msgid:"Existing version",msgstr:["Versión existente"]},{msgid:"Failed to set nickname.",msgstr:["No se pudo establecer el nickname"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Los nombres para carpeta no deben terminar con "{extension}"']},{msgid:"Guest identification",msgstr:["Identificación de invitado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si seleccionas ambas versiones, se le agregará al archivo que se está descargando, un número a su nombre."]},{msgid:"Invalid folder name.",msgstr:["Nombre de carpeta no válido"]},{msgid:"Invalid name.",msgstr:["Nombre no válido"]},{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Los nombres pueden tener como máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Los nombres no deben estar vacíos."]},{msgid:'Names must not end with "{extension}".',msgstr:['Los nombres no deben terminar con "{extension}"']},{msgid:"Names must not start with a dot.",msgstr:["Los nombres no deben comenzar con un punto."]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:["Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nombre de nueva carpeta"]},{msgid:"New version",msgstr:["Versión nueva"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidan con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Por favor ingrese un nombre con al menos 2 caracteres."]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all checkboxes",msgstr:["Seleccione todas las casillas de verificación"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select all existing files",msgstr:["Seleccione todos los archivos que aparecen"]},{msgid:"Select all new files",msgstr:["Seleccione todos los archivos nuevos"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omitir %n archivo","Omitir %n archivos","Omitir %n archivos"]},{msgid:"Skip this file",msgstr:["Omitir este archivo"]},{msgid:"Submit name",msgstr:["Enviar nombre"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Suba algún contenido o sincronice con sus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando se selecciona una carpeta en descarga, cualquier archivo conflictivo que contenga también se sobrescribirá."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando se selecciona una carpeta en descarga, el contenido se escribe en la carpeta existente y se realiza una resolución de conflicto recursiva."]},{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos deseas conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Actualmente estás identificado como {nickname}"]},{msgid:"You are currently not identified.",msgstr:["No estás identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["No puedes dejar el nombre vacío."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Necesitas elegir al menos una solución al conflicto."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Necesitas seleccionar al menos una versión de cada archivo para continuar."]}]},{language:"et_EE",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["„{char}“ pole kausta nimes lubatud."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ pole nimes lubatud."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ pole lubatud nimi."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ on reserveeritud nimi ja pole kausta nimes lubatud."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ on reserveeritud nimi ja pole kasutamiseks lubatud."]},{msgid:"All files",msgstr:["Kõik failid"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["„{dirname}“ kaustas juba on olemas sama nimega objekt."]},{msgid:"Cancel",msgstr:["Katkesta"]},{msgid:"Cancel the entire operation",msgstr:["Katkesta kogu tegevus"]},{msgid:"Choose",msgstr:["Tee valik"]},{msgid:"Choose {file}",msgstr:["Vali {file} fail"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vali %n fail","Vali %n faili"]},{msgid:"Close",msgstr:["Sulge"]},{msgid:"Confirm",msgstr:["Kinnita"]},{msgid:"Continue",msgstr:["Jätka"]},{msgid:"Copy",msgstr:["Kopeeri"]},{msgid:"Copy to {target}",msgstr:["Kopeeri sihtkohta „{target}“"]},{msgid:"Could not create the new folder",msgstr:["Uue kausta loomine ei õnnestunud"]},{msgid:"Could not load files settings",msgstr:["Failide seadistusi ei õnnestunud laadida"]},{msgid:"Could not load files views",msgstr:["Failide vaatamiskordi ei õnnestunud laadida"]},{msgid:"Create directory",msgstr:["Loo kaust"]},{msgid:"Current view selector",msgstr:["Praeguse vaate valija"]},{msgid:"Enter your name",msgstr:["Sisesta oma nimi"]},{msgid:"Error: {message}",msgstr:["Viga: {message}"]},{msgid:"Existing files",msgstr:["Olemasolevad failid"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Kui nad just pole valitud, siis olemasolevad failid ja kaustad kustutatakse. Kui mõlemad on valitud, siis nende nimed muutuvad."]},{msgid:"Existing version",msgstr:["Olemasolev versioon"]},{msgid:"Failed to set nickname.",msgstr:["Hüüdnime sisestamine ei õnnestunud."]},{msgid:"Favorites",msgstr:["Lemmikud"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Failid ja kaustad, mida märgid lemmikuks, kuvatakse siin."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Siin kuvatakse hiljuti muudetud failid ja kaustad."]},{msgid:"Filter file list",msgstr:["Filtreeri faililoendit"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Kausta nime lõpus ei tohi olla „{extension}“."]},{msgid:"Guest identification",msgstr:["Külalise tuvastamine"]},{msgid:"Home",msgstr:["Avaleht"]},{msgid:"Info: {message}",msgstr:["Teave: {message}"]},{msgid:"Invalid folder name.",msgstr:["Vigane kausta nimi."]},{msgid:"Invalid name.",msgstr:["Vigane nimi."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["„{dirname}“ kaustas juba on olemas sama nimega objekte, vali mida tahad neist säilitada."]},{msgid:"Keep both",msgstr:["Säilita mõlemad"]},{msgid:"Last modified date unknown",msgstr:["Viimase muutmise kuupäev pole teada"]},{msgid:"Modified",msgstr:["Muudetud"]},{msgid:"Move",msgstr:["Teisalda"]},{msgid:"Move to {target}",msgstr:["Teisalda kausta „{target}“"]},{msgid:"Name",msgstr:["Nimi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nimed võivad olla vaid kuni 64 tähemärki pikad."]},{msgid:"Names must not be empty.",msgstr:["Nimi ei saa olla tühi."]},{msgid:'Names must not end with "{extension}".',msgstr:["Nime lõpus ei tohi olla „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Nime alguses ei tohi olla punkti."]},{msgid:"New",msgstr:["Uus"]},{msgid:"New files",msgstr:["Uued failid"]},{msgid:"New folder",msgstr:["Uus kaust"]},{msgid:"New folder name",msgstr:["Uue kausta nimi"]},{msgid:"New version",msgstr:["Uus versioon"]},{msgid:"No files in here",msgstr:["Siin pole faile"]},{msgid:"No files matching your filter were found.",msgstr:["Sinu filtrile vastavaid faile ei leidunud."]},{msgid:"No matching files",msgstr:["Puuduvad sobivad failid"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Palun sisesta vähemalt 2 tähemärki pikk nimi."]},{msgid:"Recent",msgstr:["Hiljutine"]},{msgid:"Replace",msgstr:["Asenda"]},{msgid:"Select all checkboxes",msgstr:["Vali kõik märkeruudud"]},{msgid:"Select all entries",msgstr:["Vali kõik kirjed"]},{msgid:"Select entry",msgstr:["Vali kirje"]},{msgid:"Select file to keep",msgstr:["Vali säilitatav fail"]},{msgid:"Select files to keep",msgstr:["Vali säilitatavad failid"]},{msgid:"Select the row for {nodename}",msgstr:["Vali rida „{nodename}“ jaoks"]},{msgid:"Size",msgstr:["Suurus"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Jäta %n fail vahele","Jäta %n faili vahele"]},{msgid:"Submit name",msgstr:["Lisa nimi"]},{msgid:"Success: {message}",msgstr:["Õnnestumine: {message}"]},{msgid:"Undo",msgstr:["Tühista"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lisa mingit sisu või sünkrooni see oma seadmetest!"]},{msgid:"Warning: {message}",msgstr:["Hoiatus: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kui uus kaust on valitud, siis seal asuvad vastuoluliste nimedega failid kirjutatakse samuti üle."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Kui uus kaust on valitud, siis kõik seal leiduvad vastuolus failid saavad üle kirjutatud."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kui uus kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja korraldatakse rekursiivne failikonfliktide lahendamine."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sa oled hetkel tuvastatav kui {nickname}.."]},{msgid:"You are currently not identified.",msgstr:["Sa oled hetkel tuvastamata."]},{msgid:"You cannot leave the name empty.",msgstr:["Sa ei saa jätta nime tühjaks."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Sa pead valima vähemalt ühe failikonflikti lahenduse."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Jätkamaks pead valima igast failist vähemalt ühe versiooni."]}]},{language:"fa",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} نام پوشه معتبر نیست"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} نام پوشه مجاز نیست"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" نمی‌تواند در نام پوشه استفاده شود.']},{msgid:"All files",msgstr:["همه فایل‌ها"]},{msgid:"Cancel",msgstr:["لغو"]},{msgid:"Choose",msgstr:["انتخاب"]},{msgid:"Choose {file}",msgstr:["انتخاب {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["انتخاب %n فایل","انتخاب %n فایل"]},{msgid:"Copy",msgstr:["رونوشت"]},{msgid:"Copy to {target}",msgstr:["رونوشت از {target}"]},{msgid:"Could not create the new folder",msgstr:["پوشه جدید ایجاد نشد"]},{msgid:"Could not load files settings",msgstr:["تنظیمات فایل باز نشد"]},{msgid:"Could not load files views",msgstr:["نمای فایل‌ها بارگیری نشد"]},{msgid:"Create directory",msgstr:["ایجاد فهرست"]},{msgid:"Current view selector",msgstr:["انتخابگر نماگر فعلی"]},{msgid:"Enter your name",msgstr:["نام خود را وارد کنید"]},{msgid:"Failed to set nickname.",msgstr:["تنظیم نام مستعار ناموفق بود."]},{msgid:"Favorites",msgstr:["علایق"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["فایل‌ها و پوشه‌هایی که به‌عنوان مورد علاقه علامت‌گذاری می‌کنید در اینجا نشان داده می‌شوند."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["فایل‌ها و پوشه‌هایی که اخیراً تغییر داده‌اید در اینجا نمایش داده می‌شوند."]},{msgid:"Filter file list",msgstr:["فیلتر لیست فایل"]},{msgid:"Folder name cannot be empty.",msgstr:["نام پوشه نمی تواند خالی باشد."]},{msgid:"Guest identification",msgstr:["شناسایی مهمان"]},{msgid:"Home",msgstr:["خانه"]},{msgid:"Modified",msgstr:["اصلاح شده"]},{msgid:"Move",msgstr:["انتقال"]},{msgid:"Move to {target}",msgstr:["انتقال به {target}"]},{msgid:"Name",msgstr:["نام"]},{msgid:"New",msgstr:["جدید"]},{msgid:"New folder",msgstr:["پوشه جدید"]},{msgid:"New folder name",msgstr:["نام پوشه جدید"]},{msgid:"No files in here",msgstr:["فایلی اینجا نیست"]},{msgid:"No files matching your filter were found.",msgstr:["هیچ فایلی مطابق با فیلتر شما یافت نشد."]},{msgid:"No matching files",msgstr:["فایل منطبقی وجود ندارد"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["لطفاً نامی با حداقل ۲ کاراکتر وارد کنید."]},{msgid:"Recent",msgstr:["اخیر"]},{msgid:"Select all entries",msgstr:["انتخاب همه ورودی ها"]},{msgid:"Select entry",msgstr:["انتخاب ورودی"]},{msgid:"Select the row for {nodename}",msgstr:["انتخاب ردیف برای {nodename}"]},{msgid:"Size",msgstr:["اندازه"]},{msgid:"Submit name",msgstr:["ارسال نام"]},{msgid:"Undo",msgstr:["بازگردانی"]},{msgid:"Upload some content or sync with your devices!",msgstr:["مقداری محتوا آپلود کنید یا با دستگاه های خود همگام سازی کنید!"]},{msgid:"You are currently not identified.",msgstr:["شما در حال حاضر شناسایی نشده‌اید."]},{msgid:"You cannot leave the name empty.",msgstr:["نمی‌توانید نام را خالی بگذارید."]}]},{language:"fi_FI",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ei ole sallittu nimessä.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ei ole sallittu nimi.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" on virheellinen kansion nimi.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" ei ole sallittu kansion nimi']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" on varattu nimi eikä se ole sallittu.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ei ole sallittu kansion nimessä.']},{msgid:"All files",msgstr:["Kaikki tiedostot"]},{msgid:"Cancel",msgstr:["Peruuta"]},{msgid:"Choose",msgstr:["Valitse"]},{msgid:"Choose {file}",msgstr:["Valitse {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Valitse %n tiedosto","Valitse %n tiedostoa"]},{msgid:"Copy",msgstr:["Kopioi"]},{msgid:"Copy to {target}",msgstr:["Kopioi sijaintiin {target}"]},{msgid:"Could not create the new folder",msgstr:["Uutta kansiota ei voitu luoda"]},{msgid:"Could not load files settings",msgstr:["Tiedoston asetuksia ei saa ladattua"]},{msgid:"Could not load files views",msgstr:["Tiedoston näkymiä ei saa ladattua"]},{msgid:"Create directory",msgstr:["Luo kansio"]},{msgid:"Current view selector",msgstr:["Nykyisen näkymän valinta"]},{msgid:"Enter your name",msgstr:["Kirjoita nimesi"]},{msgid:"Failed to set nickname.",msgstr:["Kutsumanimen asettaminen epäonnistui."]},{msgid:"Favorites",msgstr:["Suosikit"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tiedostot ja kansiot, jotka merkitset suosikkeihisi, näkyvät täällä."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Tiedostot ja kansiot, joita muokkasit äskettäin, näkyvät täällä."]},{msgid:"Filter file list",msgstr:["Suodata tiedostolistaa"]},{msgid:"Folder name cannot be empty.",msgstr:["Kansion nimi ei voi olla tyhjä."]},{msgid:"Guest identification",msgstr:["Vieraan tunnistaminen"]},{msgid:"Home",msgstr:["Koti"]},{msgid:"Invalid name.",msgstr:["Virheellinen nimi."]},{msgid:"Modified",msgstr:["Muokattu"]},{msgid:"Move",msgstr:["Siirrä"]},{msgid:"Move to {target}",msgstr:["Siirrä sijaintiin {target}"]},{msgid:"Name",msgstr:["Nimi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nimissä voi olla enintään 64 merkkiä."]},{msgid:"Names must not be empty.",msgstr:["Nimet eivät saa olla tyhjiä."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nimet eivät saa päättyä sanaan "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nimet eivät saa alkaa pisteellä."]},{msgid:"New",msgstr:["Uusi"]},{msgid:"New folder",msgstr:["Uusi kansio"]},{msgid:"New folder name",msgstr:["Uuden kansion nimi"]},{msgid:"No files in here",msgstr:["Täällä ei ole tiedostoja"]},{msgid:"No files matching your filter were found.",msgstr:["Suodatinta vastaavia tiedostoja ei löytynyt."]},{msgid:"No matching files",msgstr:["Ei vastaavia tiedostoja"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Kirjoita vähintään kaksi merkkiä sisältävä nimi."]},{msgid:"Recent",msgstr:["Viimeisimmät"]},{msgid:"Select all entries",msgstr:["Valitse kaikki tietueet"]},{msgid:"Select entry",msgstr:["Valitse tietue"]},{msgid:"Select the row for {nodename}",msgstr:["Valitse rivi {nodename}:lle"]},{msgid:"Size",msgstr:["Koko"]},{msgid:"Submit name",msgstr:["Lähetä nimi"]},{msgid:"Undo",msgstr:["Kumoa"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lähetä jotain sisältöä tai synkronoi laitteidesi kanssa!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sinut tunnetaan tällä hetkellä nimellä {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Sinua ei ole tunnistettu."]},{msgid:"You cannot leave the name empty.",msgstr:["Nimeä ei voi jättää tyhjäksi."]}]},{language:"fr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" n'est pas autorisé dans un nom de dossier.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`"{char}" n'est pas autorisé dans un nom.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:[`"{extension}" n'est pas un nom autorisé.`]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`"{segment}" est un nom réservé et n'est pas autorisé pour un nom de dossier.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:[`"{segment}" est un nom réservé et n'est pas autorisé.`]},{msgid:"All files",msgstr:["Tous les fichiers"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Un élément portant le même nom existe déjà dans {dirname}."]},{msgid:"Cancel",msgstr:["Annuler"]},{msgid:"Cancel the entire operation",msgstr:["Tout annuler "]},{msgid:"Choose",msgstr:["Choisir"]},{msgid:"Choose {file}",msgstr:["Choisir {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Choisir %n fichier","Choisir %n fichiers","Choisir %n fichiers "]},{msgid:"Close",msgstr:["Fermer"]},{msgid:"Confirm",msgstr:["Confirmer"]},{msgid:"Continue",msgstr:["Continuer"]},{msgid:"Copy",msgstr:["Copier"]},{msgid:"Copy to {target}",msgstr:["Copier vers {target}"]},{msgid:"Could not create the new folder",msgstr:["Impossible de créer le nouveau dossier"]},{msgid:"Could not load files settings",msgstr:["Les paramètres des fichiers n'ont pas pu être chargés"]},{msgid:"Could not load files views",msgstr:["Impossible de charger les vues des fichiers"]},{msgid:"Create directory",msgstr:["Créer un répertoire"]},{msgid:"Current view selector",msgstr:["Sélecteur d'affichage actuel"]},{msgid:"Enter your name",msgstr:["Entrez votre nom"]},{msgid:"Error: {message}",msgstr:["Erreur: {message}"]},{msgid:"Existing files",msgstr:["Fichiers existants"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Les fichiers et dossiers existants seront supprimés s'ils ne sont pas sélectionnés. Si les deux sont choisis, ils seront renommés."]},{msgid:"Existing version",msgstr:["Version actuelle "]},{msgid:"Failed to set nickname.",msgstr:["Échec de définition du surnom."]},{msgid:"Favorites",msgstr:["Favoris"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Les fichiers et répertoires marqués en favoris apparaîtront ici."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Les fichiers et répertoires modifiés récemment apparaîtront ici."]},{msgid:"Filter file list",msgstr:["Filtrer la liste des fichiers"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Les noms de dossiers ne doivent pas se terminer par "{extension}".']},{msgid:"Guest identification",msgstr:["Identification d'invité"]},{msgid:"Home",msgstr:["Accueil"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Nom de dossier invalide."]},{msgid:"Invalid name.",msgstr:["Nom invalide."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Des éléments portant des noms identiques existent déjà dans {dirname}, sélectionnez ceux à garder."]},{msgid:"Keep both",msgstr:["Garder les deux"]},{msgid:"Last modified date unknown",msgstr:["Date de modification inconnue"]},{msgid:"Modified",msgstr:["Modifié"]},{msgid:"Move",msgstr:["Déplacer"]},{msgid:"Move to {target}",msgstr:["Déplacer vers {target}"]},{msgid:"Name",msgstr:["Nom"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Les noms peuvent comporter au maximum 64 caractères."]},{msgid:"Names must not be empty.",msgstr:["Les noms ne peuvent pas être vides."]},{msgid:'Names must not end with "{extension}".',msgstr:['Les noms ne doivent pas se terminer par "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Les noms ne peuvent pas commencer par un point."]},{msgid:"New",msgstr:["Nouveau"]},{msgid:"New files",msgstr:["Nouveaux fichiers"]},{msgid:"New folder",msgstr:["Nouveau dossier"]},{msgid:"New folder name",msgstr:["Nom du nouveau dossier"]},{msgid:"New version",msgstr:["Nouvelle version"]},{msgid:"No files in here",msgstr:["Aucun fichier ici"]},{msgid:"No files matching your filter were found.",msgstr:["Aucun fichier trouvé correspondant à votre filtre."]},{msgid:"No matching files",msgstr:["Aucun fichier correspondant"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Veuillez entrer un nom avec au moins 2 caractères."]},{msgid:"Recent",msgstr:["Récents"]},{msgid:"Replace",msgstr:["Remplacer"]},{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},{msgid:"Select all entries",msgstr:["Tout sélectionner"]},{msgid:"Select entry",msgstr:["Sélectionner une entrée"]},{msgid:"Select file to keep",msgstr:["Sélectionner le fichier à garder"]},{msgid:"Select files to keep",msgstr:["Sélectionner les fichiers à garder"]},{msgid:"Select the row for {nodename}",msgstr:["Sélectionner la ligne correspondant à {nodename}"]},{msgid:"Size",msgstr:["Taille"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorer %n fichier","Ignorer %n fichiers ","Ignorer %n fichiers "]},{msgid:"Submit name",msgstr:["Envoyer le nom"]},{msgid:"Success: {message}",msgstr:["Succès: {message}"]},{msgid:"Undo",msgstr:["Annuler"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Chargez du contenu ou synchronisez avec vos équipements !"]},{msgid:"Warning: {message}",msgstr:["Avertissement: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quand un nouveau dossier est sélectionné, tout fichier en conflit déjà présent dans celui-ci sera alors écrasé."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Quand un nouveau dossier est sélectionné, tout fichier déjà présent dans celui-ci sera alors écrasé."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quand un nouveau dossier est sélectionné, le contenu est écrit dans le dossier existant et une résolution récursive des conflits est effectuée."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Vous êtes actuellement identifié comme {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Vous n'êtes pas identifié actuellement."]},{msgid:"You cannot leave the name empty.",msgstr:["Vous ne pouvez pas laisser le nom vide."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Vous devez choisir au moins une option pour résoudre le conflit"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sélectionnez au moins une version de chaque fichier pour continuer."]}]},{language:"ga",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`Ní cheadaítear "{char}" laistigh d'ainm fillteáin.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`Ní cheadaítear "{char}" laistigh d'ainm.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['Ní ainm ceadaithe é "{extension}".']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`Is ainm curtha in áirithe é "{segment}" agus ní cheadaítear é d'ainmneacha fillteán.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['Is ainm curtha in áirithe é "{segment}" agus ní cheadaítear é.']},{msgid:"All files",msgstr:["Gach comhad"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Tá mír leis an ainm céanna ann cheana féin i {dirname}."]},{msgid:"Cancel",msgstr:["Cealaigh"]},{msgid:"Cancel the entire operation",msgstr:["Cealaigh an oibríocht ar fad"]},{msgid:"Choose",msgstr:["Roghnaigh"]},{msgid:"Choose {file}",msgstr:["Roghnaigh {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Roghnaigh %n comhad","Roghnaigh %n comhaid","Roghnaigh %n comhaid","Roghnaigh %n comhaid","Roghnaigh %n comhaid"]},{msgid:"Close",msgstr:["Dún"]},{msgid:"Confirm",msgstr:["Deimhnigh"]},{msgid:"Continue",msgstr:["Lean ar aghaidh"]},{msgid:"Copy",msgstr:["Cóip"]},{msgid:"Copy to {target}",msgstr:["Cóipeáil chuig {target}"]},{msgid:"Could not create the new folder",msgstr:["Níorbh fhéidir an fillteán nua a chruthú"]},{msgid:"Could not load files settings",msgstr:["Níorbh fhéidir socruithe comhaid a lódáil"]},{msgid:"Could not load files views",msgstr:["Níorbh fhéidir radhairc comhad a lódáil"]},{msgid:"Create directory",msgstr:["Cruthaigh eolaire"]},{msgid:"Current view selector",msgstr:["Roghnóir amhairc reatha"]},{msgid:"Enter your name",msgstr:["Cuir isteach d'ainm"]},{msgid:"Error: {message}",msgstr:["Earráid: {message}"]},{msgid:"Existing files",msgstr:["Comhaid atá ann cheana"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Scriosfar comhaid agus fillteáin atá ann cheana mura roghnaítear iad. Má roghnaítear an dá cheann, athainmneofar iad."]},{msgid:"Existing version",msgstr:["Leagan atá ann cheana féin"]},{msgid:"Failed to set nickname.",msgstr:["Theip ar leasainm a shocrú."]},{msgid:"Favorites",msgstr:["Ceanáin"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Taispeánfar comhaid agus fillteáin a d'athraigh tú le déanaí anseo."]},{msgid:"Filter file list",msgstr:["Scag liosta comhad"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ní féidir ainmneacha fillteán a chríochnú le "{extension}".']},{msgid:"Guest identification",msgstr:["Aitheantas aoi"]},{msgid:"Home",msgstr:["Baile"]},{msgid:"Info: {message}",msgstr:["Eolas: {message}"]},{msgid:"Invalid folder name.",msgstr:["Ainm fillteáin neamhbhailí."]},{msgid:"Invalid name.",msgstr:["Ainm neamhbhailí."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Tá míreanna leis an ainm céanna ann cheana féin i {dirname}, roghnaigh cé acu is mian leat a choinneáil."]},{msgid:"Keep both",msgstr:["Coinnigh an dá cheann"]},{msgid:"Last modified date unknown",msgstr:["Dáta an athraithe dheireanaigh anaithnid"]},{msgid:"Modified",msgstr:["Athraithe"]},{msgid:"Move",msgstr:["Bog"]},{msgid:"Move to {target}",msgstr:["Bog go{target}"]},{msgid:"Name",msgstr:["Ainm"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Ní fhéadfaidh ainmneacha a bheith níos mó ná 64 carachtar ar fhad."]},{msgid:"Names must not be empty.",msgstr:["Ní féidir ainmneacha a bheith folamh."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ní féidir ainmneacha a chríochnú le "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Ní mór ainmneacha a bheith ag tosú le ponc."]},{msgid:"New",msgstr:["Nua"]},{msgid:"New files",msgstr:["Comhaid nua"]},{msgid:"New folder",msgstr:["Fillteán nua"]},{msgid:"New folder name",msgstr:["Ainm fillteáin nua"]},{msgid:"New version",msgstr:["Leagan nua"]},{msgid:"No files in here",msgstr:["Níl aon chomhaid istigh anseo"]},{msgid:"No files matching your filter were found.",msgstr:["Níor aimsíodh aon chomhad a tháinig le do scagaire."]},{msgid:"No matching files",msgstr:["Gan comhaid meaitseála"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Cuir isteach ainm ina bhfuil 2 charachtar ar a laghad."]},{msgid:"Recent",msgstr:["le déanaí"]},{msgid:"Replace",msgstr:["Athsholáthair"]},{msgid:"Select all checkboxes",msgstr:["Roghnaigh na boscaí seiceála go léir"]},{msgid:"Select all entries",msgstr:["Roghnaigh gach iontráil"]},{msgid:"Select entry",msgstr:["Roghnaigh iontráil"]},{msgid:"Select file to keep",msgstr:["Roghnaigh comhad le coinneáil"]},{msgid:"Select files to keep",msgstr:["Roghnaigh comhaid le coinneáil"]},{msgid:"Select the row for {nodename}",msgstr:["Roghnaigh an ró do {nodename}"]},{msgid:"Size",msgstr:["Méid"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Léim %n comhad","Léim %n comhaid","Léim %n comhaid","Léim %n comhaid","Léim %n comhaid"]},{msgid:"Submit name",msgstr:["Cuir isteach ainm"]},{msgid:"Success: {message}",msgstr:["Rath: {message}"]},{msgid:"Undo",msgstr:["Cealaigh"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Uaslódáil roinnt ábhair nó sioncronaigh le do ghléasanna!"]},{msgid:"Warning: {message}",msgstr:["Rabhadh: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán nua, déanfar aon chomhaid contrártha ann a athscríobh freisin."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán nua, déanfar aon chomhaid laistigh de a athscríobh freisin."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Nuair a roghnaítear fillteán nua, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana féin agus déantar réiteach coinbhleachta athchúrsach."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Is é {nickname} an ainm atá ort faoi láthair."]},{msgid:"You are currently not identified.",msgstr:["Níl aitheantas tugtha duit faoi láthair."]},{msgid:"You cannot leave the name empty.",msgstr:["Ní féidir leat an t-ainm a fhágáil folamh."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Ní mór duit réiteach coinbhleachta amháin ar a laghad a roghnú"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú le leanúint ar aghaidh."]}]},{language:"gl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["«{char}» non está permitido no nome dun cartafol."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["«{char}» non está permitido dentro dun nome."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["«{extension}» non é un nome permitido."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["«{segment}» é un nome reservado e non está permitido para nomes de cartafoles."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["«{segment}» é un nome reservado e non está permitido."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ficheiro en conflito","%n ficheiros en conflito"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ficheiro en conflito en {dirname}","%n ficheiros en conflito en {dirname}"]},{msgid:"All files",msgstr:["Todos os ficheiros"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operación"]},{msgid:"Choose",msgstr:["Escoller"]},{msgid:"Choose {file}",msgstr:["Escoller {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escoller %n ficheiro","Escoller %n ficheiros"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar en {target}"]},{msgid:"Could not create the new folder",msgstr:["Non foi posíbel crear o novo cartafol"]},{msgid:"Could not load files settings",msgstr:["Non foi posíbel cargar os axustes dos ficheiros"]},{msgid:"Could not load files views",msgstr:["Non foi posíbel cargar as vistas dos ficheiros"]},{msgid:"Create directory",msgstr:["Crear un directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Introduza o seu nome"]},{msgid:"Existing version",msgstr:["Versión existente"]},{msgid:"Failed to set nickname.",msgstr:["Produciuse un fallo ao definir o alcume."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os ficheiros e cartafoles que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Os ficheiros e cartafoles que modificou recentemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar a lista de ficheiros"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Os nomes de cartafol non deben rematar en «{extension}»."]},{msgid:"Guest identification",msgstr:["Identificación do convidado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome."]},{msgid:"Invalid folder name.",msgstr:["O nome de cartafol non é válido."]},{msgid:"Invalid name.",msgstr:["Nome incorrecto"]},{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover cara a {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes poden ter unha lonxitude máxima de 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Os nomes non deben estar baleiros."]},{msgid:'Names must not end with "{extension}".',msgstr:["Os nomes non deben rematar en «{extension}»."]},{msgid:"Names must not start with a dot.",msgstr:["Os nomes non deben comezar cun punto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Novo cartafol"]},{msgid:"New folder name",msgstr:["Novo nome do cartafol"]},{msgid:"New version",msgstr:["Nova versión"]},{msgid:"No files in here",msgstr:["Aquí non hai ficheiros"]},{msgid:"No files matching your filter were found.",msgstr:["Non se atopou ningún ficheiro que coincida co filtro."]},{msgid:"No matching files",msgstr:["Non hai ficheiros coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Introduza un nome con polo menos 2 caracteres."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Seleccionar todas as caixas"]},{msgid:"Select all entries",msgstr:["Seleccionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},{msgid:"Select entry",msgstr:["Seleccionar a entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccionar a fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omitir %n ficheiro","Omitir %n ficheiros"]},{msgid:"Skip this file",msgstr:["Omitir este ficheiro"]},{msgid:"Submit name",msgstr:["Enviar o nome"]},{msgid:"Undo",msgstr:["Desfacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Enviar algún contido ou sincronizalo cos seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cando se selecciona un cartafol entrante, todos os ficheiros conflitivos dentro dela tamén serán sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e realízase unha resolución recursiva de conflitos."]},{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Vde. está identificado actualmente como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Vde. non está identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["Vde. non pode deixar o nome baleiro."]},{msgid:"You need to choose at least one conflict solution",msgstr:["É necesario escoller polo menos unha solución de conflito"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["É necesario seleccionar polo menos unha versión de cada ficheiro para continuar."]}]},{language:"hr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["Znak „{char}” nije dopušten u nazivu mape."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["Znak „{char}” nije dopušten u nazivu."]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nije dopušten u nazivu.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" je rezervirana riječ i nije dopušten u nazivu mape.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" je rezervirana riječ i nije dopušten.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["Sukobljava se %n datoteka","Sukobljava se %n datoteke","Sukobljava se %n datoteke"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n sukob datoteka u {dirname}","%n sukoba datoteka u {dirname}","%n sukoba datoteka u {dirname}"]},{msgid:"All files",msgstr:["Sve datoteke"]},{msgid:"Cancel",msgstr:["Odustani"]},{msgid:"Cancel the entire operation",msgstr:["Odustani od cijele operacije"]},{msgid:"Choose",msgstr:["Odaberi"]},{msgid:"Choose {file}",msgstr:["Odaberi {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Odaberi %n datoteku","Odaberi %n datoteka","Odaberi %n datoteke"]},{msgid:"Confirm",msgstr:["Potvrdi"]},{msgid:"Continue",msgstr:["Nastavi"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj u {target}"]},{msgid:"Could not create the new folder",msgstr:["Nije moguće stvoriti novu mapu"]},{msgid:"Could not load files settings",msgstr:["Nije moguće učitati postavke datoteka"]},{msgid:"Could not load files views",msgstr:["Nije moguće učitati prikaze datoteka"]},{msgid:"Create directory",msgstr:["Stvori mapu"]},{msgid:"Current view selector",msgstr:["Odabir trenutačnog prikaza"]},{msgid:"Enter your name",msgstr:["Unesite vaše ime"]},{msgid:"Existing version",msgstr:["Postojeća verzija"]},{msgid:"Failed to set nickname.",msgstr:["Neuspjelo postavljanje nadimka."]},{msgid:"Favorites",msgstr:["Favoriti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Ovdje se prikazuju datoteke i mape koje ste označili kao favoriti."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Ovdje se prikazuju datoteke i mape koje ste nedavno ažurirali."]},{msgid:"Filter file list",msgstr:["Filtriranje liste datoteka"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nazivi mapa ne smiju završiti sa "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikacija gosta"]},{msgid:"Home",msgstr:["Naslovna"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ako odaberete obje verzije, dolaznoj datoteci bit će dodan broj u nazivu."]},{msgid:"Invalid folder name.",msgstr:["Neispavan naziv mape."]},{msgid:"Invalid name.",msgstr:["Neispravan naziv."]},{msgid:"Last modified date unknown",msgstr:["Nepoznat datum zadnjeg ažuriranja"]},{msgid:"Modified",msgstr:["Ažurirano"]},{msgid:"Move",msgstr:["Premjesti"]},{msgid:"Move to {target}",msgstr:["Premjesti u {target}"]},{msgid:"Name",msgstr:["Naziv"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nazivi mogu imati najviše 64 znaka."]},{msgid:"Names must not be empty.",msgstr:["Nazivi ne smiju biti prazni."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nazivi ne smiju završiti sa "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nazivi ne smiju započinjati točkom."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova mapa"]},{msgid:"New folder name",msgstr:["Novi naziv mape"]},{msgid:"New version",msgstr:["Nova verzija"]},{msgid:"No files in here",msgstr:["Ovdje nema datoteka"]},{msgid:"No files matching your filter were found.",msgstr:["Nisu pronađene datoteke koje odgovaraju vašem filtru."]},{msgid:"No matching files",msgstr:["Nema odgovarajućih datoteka."]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Unesite naziv s najmanje 2 znaka."]},{msgid:"Recent",msgstr:["Nedavno"]},{msgid:"Select all checkboxes",msgstr:["Označi sve potvrdne okvire"]},{msgid:"Select all entries",msgstr:["Označi sve stavke"]},{msgid:"Select all existing files",msgstr:["Označi sve postojeće datoteke"]},{msgid:"Select all new files",msgstr:["Označi sve nove datoteke"]},{msgid:"Select entry",msgstr:["Označi stavku"]},{msgid:"Select the row for {nodename}",msgstr:["Označi red za{nodename}"]},{msgid:"Size",msgstr:["Veličina"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Preskoči %n datoteku","Preskoči %n datoteke","Preskoči %n datoteke"]},{msgid:"Skip this file",msgstr:["Preskoči ovu datoteku"]},{msgid:"Submit name",msgstr:["Pošalji naziv"]},{msgid:"Undo",msgstr:["Poništi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Prenesite neki sadržaj ili sinkronizirajte sa svojim uređajima!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kada je odabrana dolazna mapa, sve datoteke unutar nje koje su u sukobu također će biti prepisane."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kada je odabrana dolazna mapa, sadržaj se upisuje u postojeću mapu i provodi se rekurzivno rješavanje sukoba."]},{msgid:"Which files do you want to keep?",msgstr:["Koje datoteke želite zadržati?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Trenutno ste identificirani kao {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Trenutno niste identificirani."]},{msgid:"You cannot leave the name empty.",msgstr:["Ne možete ostaviti naziv prazan."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Morate odabrati barem jedno rješenje sukoba"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Morate odabrati barem jednu verziju svake datoteke kako biste nastavili."]}]},{language:"hu_HU",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["A(z) „{char}” nem engedélyezett egy mappanévben."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["A(z) „{char}” nem engedélyezett egy névben."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["A(z) „{extension}” nem engedélyezett név."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["A(z) „{segment}” foglalt név, és nem engedélyezett a mappanevekben."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["A(z) „{segment}” foglalt név, és nem engedélyezett."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ütköző fájl","%n ütköző fájl"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ütköző fájl ebben: {dirname}","%n ütköző fájl ebben: {dirname}"]},{msgid:"All files",msgstr:["Összes fájl"]},{msgid:"Cancel",msgstr:["Mégse"]},{msgid:"Cancel the entire operation",msgstr:["Egész művelet megszakítása"]},{msgid:"Choose",msgstr:["Kiválasztás"]},{msgid:"Choose {file}",msgstr:["{file} kiválasztása"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n fájl kiválasztása","%n fájl kiválasztása"]},{msgid:"Confirm",msgstr:["Megerősítés"]},{msgid:"Continue",msgstr:["Folytatás"]},{msgid:"Copy",msgstr:["Másolás"]},{msgid:"Copy to {target}",msgstr:["Másolás ide: {target}"]},{msgid:"Could not create the new folder",msgstr:["Nem lehet létrehozni az új mappát"]},{msgid:"Could not load files settings",msgstr:["Nem lehet betölteni a fájlok beállításait"]},{msgid:"Could not load files views",msgstr:["Nem lehet betölteni a fájlok nézeteit"]},{msgid:"Create directory",msgstr:["Mappa létrehozása"]},{msgid:"Current view selector",msgstr:["Jelenlegi nézet választója"]},{msgid:"Enter your name",msgstr:["Adja meg a nevét"]},{msgid:"Existing version",msgstr:["Meglévő verzió"]},{msgid:"Failed to set nickname.",msgstr:["Nem sikerült a becenév beállítása."]},{msgid:"Favorites",msgstr:["Kedvencek"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["A kedvencként megjelölt fájlok és mappák itt jelennek meg."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["A nemrég módosított fájlok és mappák itt jelennek meg."]},{msgid:"Filter file list",msgstr:["Fájllista szűrése"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["A mappanevek nem végződhetnek ezzel: „{extension}”."]},{msgid:"Guest identification",msgstr:["Vendégazonosítás"]},{msgid:"Home",msgstr:["Kezdőlap"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ha mindkét verziót választja, akkor a bejövő fájl nevéhez egy szám lesz hozzáfűzve."]},{msgid:"Invalid folder name.",msgstr:["Érvénytelen mappanév."]},{msgid:"Invalid name.",msgstr:["Érvénytelen név."]},{msgid:"Last modified date unknown",msgstr:["Legutóbbi módosítás ideje ismeretlen"]},{msgid:"Modified",msgstr:["Módosítva"]},{msgid:"Move",msgstr:["Áthelyezés"]},{msgid:"Move to {target}",msgstr:["Áthelyezés ide: {target}"]},{msgid:"Name",msgstr:["Név"]},{msgid:"Names may be at most 64 characters long.",msgstr:["A nevek legfeljebb 64 karakter hosszúak lehetnek."]},{msgid:"Names must not be empty.",msgstr:["A nevek nem lehetnek üresek."]},{msgid:'Names must not end with "{extension}".',msgstr:["A nevek nem végződhetnek ezzel: „{extension}”."]},{msgid:"Names must not start with a dot.",msgstr:["A nevek nem kezdődhetnek ponttal."]},{msgid:"New",msgstr:["Új"]},{msgid:"New folder",msgstr:["Új mappa"]},{msgid:"New folder name",msgstr:["Új mappa neve"]},{msgid:"New version",msgstr:["Új verzió"]},{msgid:"No files in here",msgstr:["Itt nincsenek fájlok"]},{msgid:"No files matching your filter were found.",msgstr:["Nincs a szűrési feltételeknek megfelelő fájl."]},{msgid:"No matching files",msgstr:["Nincs ilyen fájl"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Legalább 2 karakteres nevet adjon meg."]},{msgid:"Recent",msgstr:["Legutóbbi"]},{msgid:"Select all checkboxes",msgstr:["Összes jelölőmező bepipálása"]},{msgid:"Select all entries",msgstr:["Összes bejegyzés kijelölése"]},{msgid:"Select all existing files",msgstr:["Összes meglévő fájl kijelölése"]},{msgid:"Select all new files",msgstr:["Összes új fájl kijelölése"]},{msgid:"Select entry",msgstr:["Bejegyzés kijelölése"]},{msgid:"Select the row for {nodename}",msgstr:["Válasszon sort a következőnek: {nodename}"]},{msgid:"Size",msgstr:["Méret"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n fájl kihagyása","%n fájl kihagyása"]},{msgid:"Skip this file",msgstr:["Fájl kihagyása"]},{msgid:"Submit name",msgstr:["Név beküldése"]},{msgid:"Undo",msgstr:["Visszavonás"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Töltsön fel tartalmat, vagy szinkronizáljon az eszközeivel!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ha egy bejövő mappa van kijelölve, akkor a benne lévő ütköző fájlok is felül lesznek írva."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Amikor egy bejövő mappát kiválaszt, a benne lévő fájlok is felülíródnak."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ha egy bejövő mappa van kijelölve, akkor a tartalom a meglévő mappába lesz írva, és rekurzív ütközéskezelés lesz végezve."]},{msgid:"Which files do you want to keep?",msgstr:["Mely fájlokat akarja megtartani?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Jelenleg ekként van azonosítva: {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Jelenleg nincs azonosítva."]},{msgid:"You cannot leave the name empty.",msgstr:["A nevet nem hagyhatja üresen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Legalább egy ütközéskezelési megoldást kell választania"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["A folytatáshoz az összes fájlnak legalább egy verzióját ki kell választania."]}]},{language:"hy",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} սխալ թղթապանակի անվանում է"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} համարվում է անթույլատրելի թղթապանակի անվանում"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["/ չի թույլատրվում օգտագործել անվանման մեջ"]},{msgid:"All files",msgstr:["Բոլոր ֆայլերը"]},{msgid:"Choose",msgstr:["Ընտրել"]},{msgid:"Choose {file}",msgstr:["Ընտրել {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Ընտրել %n ֆայլ","Ընտրել %n ֆայլեր"]},{msgid:"Copy",msgstr:["Պատճենել"]},{msgid:"Copy to {target}",msgstr:["Պատճենել {target}"]},{msgid:"Could not create the new folder",msgstr:["Չստացվեց ստեղծել նոր թղթապանակը"]},{msgid:"Could not load files settings",msgstr:["Չստացվեց բեռնել ֆայլի կարգավորումները"]},{msgid:"Could not load files views",msgstr:["Չստացվեց բեռնել ֆայլերի դիտումները"]},{msgid:"Create directory",msgstr:["Ստեղծել դիրեկտորիա"]},{msgid:"Current view selector",msgstr:["Ընթացիկ դիտման ընտրիչ"]},{msgid:"Favorites",msgstr:["Նախընտրելիներ"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք դուք նշել եք որպես նախընտրելիներ:"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք վերջերս փոխել եք:"]},{msgid:"Filter file list",msgstr:["Ֆիլտրել ֆայլերի ցուցակը"]},{msgid:"Folder name cannot be empty.",msgstr:["Թղթապանակի անունը չի կարող դատարկ լինել:"]},{msgid:"Home",msgstr:["Սկիզբ"]},{msgid:"Modified",msgstr:["Փոփոխված"]},{msgid:"Move",msgstr:["Տեղափոխել"]},{msgid:"Move to {target}",msgstr:["Տեղափոխել {target}"]},{msgid:"Name",msgstr:["Անուն"]},{msgid:"New",msgstr:["Նոր"]},{msgid:"New folder",msgstr:["Նոր թղթապանակ"]},{msgid:"New folder name",msgstr:["Նոր թղթապանակի անվանում"]},{msgid:"No files in here",msgstr:["Այստեղ չկան ֆայլեր"]},{msgid:"No files matching your filter were found.",msgstr:["Ձեր ֆիլտրին համապատասխանող ֆայլերը չեն գտնվել:"]},{msgid:"No matching files",msgstr:["Չկան համապատասխան ֆայլեր"]},{msgid:"Recent",msgstr:["Վերջին"]},{msgid:"Select all entries",msgstr:["Ընտրել բոլոր գրառումները"]},{msgid:"Select entry",msgstr:["Ընտրել բոլոր գրառումը"]},{msgid:"Select the row for {nodename}",msgstr:["Ընտրեք տողը {nodename}-ի համար "]},{msgid:"Size",msgstr:["Չափ"]},{msgid:"Undo",msgstr:["Ետարկել"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ներբեռնեք որոշ բովանդակություն կամ համաժամացրեք այն ձեր սարքերի հետ:"]}]},{language:"id",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" tidak diizinkan di dalam nama folder.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" tidak diizinkan di dalam nama.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" bukan nama yang diizinkan.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" adalah nama yang dicadangkan dan tidak diizinkan untuk nama folder.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" adalah nama yang dicadangkan dan tidak diizinkan.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n konflik file"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konflik file di {dirname}"]},{msgid:"All files",msgstr:["Semua berkas"]},{msgid:"Cancel",msgstr:["Batal"]},{msgid:"Cancel the entire operation",msgstr:["Batalkan seluruh operasi"]},{msgid:"Choose",msgstr:["Pilih"]},{msgid:"Choose {file}",msgstr:["Pilih {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pilih %n file"]},{msgid:"Confirm",msgstr:["Konfirmasi"]},{msgid:"Continue",msgstr:["Lanjutkan"]},{msgid:"Copy",msgstr:["Salin"]},{msgid:"Copy to {target}",msgstr:["Salin ke {target}"]},{msgid:"Could not create the new folder",msgstr:["Tidak dapat membuat folder baru"]},{msgid:"Could not load files settings",msgstr:["Tidak dapat memuat pengaturan file"]},{msgid:"Could not load files views",msgstr:["Tidak dapat memuat tampilan file"]},{msgid:"Create directory",msgstr:["Buat direktori"]},{msgid:"Current view selector",msgstr:["Pemilih tampilan saat ini"]},{msgid:"Enter your name",msgstr:["Masukkan nama Anda"]},{msgid:"Existing version",msgstr:["Versi yang ada"]},{msgid:"Failed to set nickname.",msgstr:["Gagal menetapkan nama panggilan."]},{msgid:"Favorites",msgstr:["Favorit"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Berkas dan folder yang Anda tandai sebagai favorit akan muncul di sini."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Berkas dan folder yang Anda ubah baru-baru ini akan muncul di sini."]},{msgid:"Filter file list",msgstr:["Saring daftar berkas"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nama folder tidak boleh diakhiri dengan "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikasi tamu"]},{msgid:"Home",msgstr:["Beranda"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, file yang masuk akan ditambahkan angka pada namanya."]},{msgid:"Invalid folder name.",msgstr:["Nama folder tidak valid."]},{msgid:"Invalid name.",msgstr:["Nama tidak valid."]},{msgid:"Last modified date unknown",msgstr:["Tanggal modifikasi terakhir tidak diketahui"]},{msgid:"Modified",msgstr:["Diubah"]},{msgid:"Move",msgstr:["Pindahkan"]},{msgid:"Move to {target}",msgstr:["Pindahkan ke {target}"]},{msgid:"Name",msgstr:["Nama"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Panjang nama maksimal 64 karakter."]},{msgid:"Names must not be empty.",msgstr:["Nama tidak boleh kosong."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nama tidak boleh diakhiri dengan "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nama tidak boleh diawali dengan titik."]},{msgid:"New",msgstr:["Baru"]},{msgid:"New folder",msgstr:["Folder baru"]},{msgid:"New folder name",msgstr:["Nama folder baru"]},{msgid:"New version",msgstr:["Versi baru"]},{msgid:"No files in here",msgstr:["Tidak ada berkas di sini"]},{msgid:"No files matching your filter were found.",msgstr:["Tidak ada berkas yang cocok dengan penyaringan Anda."]},{msgid:"No matching files",msgstr:["Tidak ada berkas yang cocok"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Silakan masukkan nama dengan minimal 2 karakter."]},{msgid:"Recent",msgstr:["Terkini"]},{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},{msgid:"Select all entries",msgstr:["Pilih semua entri"]},{msgid:"Select all existing files",msgstr:["Pilih semua file yang ada"]},{msgid:"Select all new files",msgstr:["Pilih semua file baru"]},{msgid:"Select entry",msgstr:["Pilih entri"]},{msgid:"Select the row for {nodename}",msgstr:["Pilih baris untuk {nodename}"]},{msgid:"Size",msgstr:["Ukuran"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Lewati %n file"]},{msgid:"Skip this file",msgstr:["Lewati file ini"]},{msgid:"Submit name",msgstr:["Kirim nama"]},{msgid:"Undo",msgstr:["Tidak jadi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Unggah beberapa konten atau sinkronkan dengan perangkat Anda!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Saat folder yang masuk dipilih, semua file yang konflik di dalamnya juga akan ditimpa."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Saat folder yang masuk dipilih, konten ditulis ke dalam folder yang ada dan penyelesaian konflik rekursif dilakukan."]},{msgid:"Which files do you want to keep?",msgstr:["File mana yang ingin Anda pertahankan?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Saat ini Anda teridentifikasi sebagai {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Saat ini Anda tidak teridentifikasi."]},{msgid:"You cannot leave the name empty.",msgstr:["Anda tidak dapat membiarkan nama kosong."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Anda perlu memilih setidaknya satu solusi konflik"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda perlu memilih setidaknya satu versi dari setiap file untuk melanjutkan."]}]},{language:"is",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" er ógilt möppuheiti.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" er ekki leyfilegt möppuheiti']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er er ekki leyfilegt innan í skráarheiti.']},{msgid:"All files",msgstr:["Allar skrár"]},{msgid:"Choose",msgstr:["Veldu"]},{msgid:"Choose {file}",msgstr:["Veldu {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Veldu %n skrá","Veldu %n skrár"]},{msgid:"Copy",msgstr:["Afrita"]},{msgid:"Copy to {target}",msgstr:["Afrita í {target}"]},{msgid:"Could not create the new folder",msgstr:["Get ekki búið til nýju möppuna"]},{msgid:"Could not load files settings",msgstr:["Tókst ekki að hlaða inn stillingum skráa"]},{msgid:"Could not load files views",msgstr:["Tókst ekki að hlaða inn sýnum skráa"]},{msgid:"Create directory",msgstr:["Búa til möppu"]},{msgid:"Current view selector",msgstr:["Núverandi val sýnar"]},{msgid:"Favorites",msgstr:["Eftirlæti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Skrár og möppur sem þú merkir sem eftirlæti birtast hér."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Skrár og möppur sem þú breyttir nýlega birtast hér."]},{msgid:"Filter file list",msgstr:["Sía skráalista"]},{msgid:"Folder name cannot be empty.",msgstr:["Möppuheiti má ekki vera tómt."]},{msgid:"Home",msgstr:["Heim"]},{msgid:"Modified",msgstr:["Breytt"]},{msgid:"Move",msgstr:["Færa"]},{msgid:"Move to {target}",msgstr:["Færa í {target}"]},{msgid:"Name",msgstr:["Heiti"]},{msgid:"New",msgstr:["Nýtt"]},{msgid:"New folder",msgstr:["Ný mappa"]},{msgid:"New folder name",msgstr:["Heiti nýrrar möppu"]},{msgid:"No files in here",msgstr:["Engar skrár hér"]},{msgid:"No files matching your filter were found.",msgstr:["Engar skrár fundust sem passa við síuna."]},{msgid:"No matching files",msgstr:["Engar samsvarandi skrár"]},{msgid:"Recent",msgstr:["Nýlegt"]},{msgid:"Select all entries",msgstr:["Velja allar færslur"]},{msgid:"Select entry",msgstr:["Velja færslu"]},{msgid:"Select the row for {nodename}",msgstr:["Veldu röðina fyrir {nodename}"]},{msgid:"Size",msgstr:["Stærð"]},{msgid:"Undo",msgstr:["Afturkalla"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Sendu inn eitthvað efni eða samstilltu við tækin þín!"]}]},{language:"it",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" non è consentito all'interno di un nome di cartella.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`"{char}" non è consentito all'interno di un nome.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" non è un nome consentito']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" è un nome riservato e non consentito per i nomi delle cartelle.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" è un nome riservato e non consentito.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n file in conflitto","%n file in conflitto","%n file in conflitto"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n file in conflitto in {dirname}","%n file in conflitto in {dirname}","%n file in conflitto in {dirname}"]},{msgid:"All files",msgstr:["Tutti i file"]},{msgid:"Cancel",msgstr:["Annulla"]},{msgid:"Cancel the entire operation",msgstr:["Annulla l'intera operazione"]},{msgid:"Choose",msgstr:["Scegli"]},{msgid:"Choose {file}",msgstr:["Scegli {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Scegli %n file","Scegli %n file","Scegli %n file"]},{msgid:"Confirm",msgstr:["Conferma"]},{msgid:"Continue",msgstr:["Continua"]},{msgid:"Copy",msgstr:["Copia"]},{msgid:"Copy to {target}",msgstr:["Copia in {target}"]},{msgid:"Could not create the new folder",msgstr:["Impossibile creare la nuova cartella"]},{msgid:"Could not load files settings",msgstr:["Impossibile caricare le impostazioni dei file"]},{msgid:"Could not load files views",msgstr:["Impossibile caricare le visualizzazioni dei file"]},{msgid:"Create directory",msgstr:["Crea cartella"]},{msgid:"Current view selector",msgstr:["Selettore della vista attuale"]},{msgid:"Enter your name",msgstr:["Inserisci il tuo nome"]},{msgid:"Existing version",msgstr:["Versione esistente"]},{msgid:"Failed to set nickname.",msgstr:["Impossibile impostare lo pseudonimo."]},{msgid:"Favorites",msgstr:["Preferiti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["I file e le cartelle contrassegnate come preferite saranno mostrate qui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["I file e le cartelle che hai modificato di recente saranno mostrate qui."]},{msgid:"Filter file list",msgstr:["Filtra l'elenco dei file"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['I nomi delle cartelle devono finire con "{extension}".']},{msgid:"Guest identification",msgstr:["Identificazione ospiti"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, al nome del file in arrivo verrà aggiunto un numero."]},{msgid:"Invalid folder name.",msgstr:["Nome cartella non valido."]},{msgid:"Invalid name.",msgstr:["Nome non valido."]},{msgid:"Last modified date unknown",msgstr:["Data di ultima modifica sconosciuta"]},{msgid:"Modified",msgstr:["Modificato"]},{msgid:"Move",msgstr:["Sposta"]},{msgid:"Move to {target}",msgstr:["Sposta in {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["I nomi dovrebbero avere una lunghezza massima di 64 caratteri."]},{msgid:"Names must not be empty.",msgstr:["I nomi non devono essere vuoti."]},{msgid:'Names must not end with "{extension}".',msgstr:['I nomi devono finire con "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["I nomi non possono iniziare con un punto."]},{msgid:"New",msgstr:["Nuovo"]},{msgid:"New folder",msgstr:["Nuova cartella"]},{msgid:"New folder name",msgstr:["Nome della nuova cartella"]},{msgid:"New version",msgstr:["Nuova versione"]},{msgid:"No files in here",msgstr:["Nessun file qui"]},{msgid:"No files matching your filter were found.",msgstr:["Nessun file che corrisponde al tuo filtro è stato trovato."]},{msgid:"No matching files",msgstr:["Nessun file corrispondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Digita un nome con almeno 2 caratteri."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},{msgid:"Select all entries",msgstr:["Scegli tutte le voci"]},{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},{msgid:"Select entry",msgstr:["Seleziona la voce"]},{msgid:"Select the row for {nodename}",msgstr:["Seleziona la riga per {nodename}"]},{msgid:"Size",msgstr:["Dimensioni"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Salta %n file","Salta %n file","Salta %n file"]},{msgid:"Skip this file",msgstr:["Salta questo file"]},{msgid:"Submit name",msgstr:["Invia nome"]},{msgid:"Undo",msgstr:["Annulla"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Carica qualche contenuto o sincronizza con i tuoi dispositivi!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno saranno sovrascritti."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche i documenti all'interno verranno sovrascritti."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti."]},{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi conservare?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sei attualmente identificato come {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Attualmente non sei identificato."]},{msgid:"You cannot leave the name empty.",msgstr:["Non puoi lasciare il nome vuoto."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Devi scegliere almeno una soluzione al conflitto"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Per continuare, è necessario selezionare almeno una versione di ciascun file."]}]},{language:"ja_JP",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['フォルダー名に "{char}" を使用することはできません。']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['名前に "{char}" を使用することはできません。']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" は許可された名前ではありません。']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" は予約名のため、使用できません。']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" は予約名のため、使用できません。']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%nファイルが競合しています"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%nディレクトリ{dirname}内のファイル競合"]},{msgid:"All files",msgstr:["すべてのファイル"]},{msgid:"Cancel",msgstr:["キャンセル"]},{msgid:"Cancel the entire operation",msgstr:["すべての操作をキャンセル"]},{msgid:"Choose",msgstr:["選択"]},{msgid:"Choose {file}",msgstr:["{file} を選択"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n 個のファイルを選択"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Continue",msgstr:["続行"]},{msgid:"Copy",msgstr:["コピー"]},{msgid:"Copy to {target}",msgstr:["{target} にコピー"]},{msgid:"Could not create the new folder",msgstr:["新しいフォルダーを作成できませんでした"]},{msgid:"Could not load files settings",msgstr:["ファイル設定を読み込めませんでした"]},{msgid:"Could not load files views",msgstr:["ファイルビューを読み込めませんでした"]},{msgid:"Create directory",msgstr:["ディレクトリを作成"]},{msgid:"Current view selector",msgstr:["現在のビュー選択"]},{msgid:"Enter your name",msgstr:["名前を入力してください"]},{msgid:"Existing version",msgstr:["現行バージョン"]},{msgid:"Failed to set nickname.",msgstr:["ニックネームの設定に失敗しました。"]},{msgid:"Favorites",msgstr:["お気に入り"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["お気に入りとしてマークしたファイルとフォルダーがここに表示されます。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["最近変更したファイルとフォルダーがここに表示されます。"]},{msgid:"Filter file list",msgstr:["ファイルのリストをフィルター"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['フォルダー名の末尾に "{extension}" を使用できません。']},{msgid:"Guest identification",msgstr:["ゲスト識別"]},{msgid:"Home",msgstr:["ホーム"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["両方のバージョンを選択した場合、受信ファイル名には番号が追加されます。"]},{msgid:"Invalid folder name.",msgstr:["フォルダー名が無効です。"]},{msgid:"Invalid name.",msgstr:["無効な名前です。"]},{msgid:"Last modified date unknown",msgstr:["最終更新日不明"]},{msgid:"Modified",msgstr:["変更済み"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["{target} に移動"]},{msgid:"Name",msgstr:["名前"]},{msgid:"Names may be at most 64 characters long.",msgstr:["名前は最大64文字です。"]},{msgid:"Names must not be empty.",msgstr:["名前は空にできません。"]},{msgid:'Names must not end with "{extension}".',msgstr:['名前の末尾に "{extension}" を使用できません。']},{msgid:"Names must not start with a dot.",msgstr:["ドットで始まる名前は使用できません。"]},{msgid:"New",msgstr:["新規作成"]},{msgid:"New folder",msgstr:["新しいフォルダー"]},{msgid:"New folder name",msgstr:["新しいフォルダーの名前"]},{msgid:"New version",msgstr:["新バージョン"]},{msgid:"No files in here",msgstr:["ファイルがありません"]},{msgid:"No files matching your filter were found.",msgstr:["フィルターに一致するファイルは見つかりませんでした。"]},{msgid:"No matching files",msgstr:["一致するファイルはありません"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["名前は2文字以上を入力してください。"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all checkboxes",msgstr:["すべてのチェックボックスを選択"]},{msgid:"Select all entries",msgstr:["すべてのエントリを選択"]},{msgid:"Select all existing files",msgstr:["既存のファイルをすべて選択"]},{msgid:"Select all new files",msgstr:["すべての新規ファイルを選択"]},{msgid:"Select entry",msgstr:["エントリを選択"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} の行を選択"]},{msgid:"Size",msgstr:["サイズ"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n 個のファイルをスキップ"]},{msgid:"Skip this file",msgstr:["このファイルをスキップ"]},{msgid:"Submit name",msgstr:["名前を送信する"]},{msgid:"Undo",msgstr:["元に戻す"]},{msgid:"Upload some content or sync with your devices!",msgstr:["コンテンツをアップロードするか、デバイスと同期してください!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["受信フォルダーを選択すると、そのフォルダー内の競合ファイルも上書きされます。"]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["受信フォルダを選択すると、その中のファイルも上書きされます。"]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["受信フォルダーを選択すると、内容は既存のフォルダーに書き込まれ、再帰的な競合解決が実行されます。"]},{msgid:"Which files do you want to keep?",msgstr:["どのファイルを残しますか?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["現在、{nickname}として識別されています。"]},{msgid:"You are currently not identified.",msgstr:["現在あなたは識別されていません。"]},{msgid:"You cannot leave the name empty.",msgstr:["名前を空にすることはできません。"]},{msgid:"You need to choose at least one conflict solution",msgstr:["少なくとも1つの競合ソリューションを選択する必要があります"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["続行するには、各ファイルのバージョンを少なくとも1つ選択する必要があります。"]}]},{language:"ko",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["문자 '{char}'은(는) 폴더 이름에 사용할 수 없습니다."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["문자 '{char}'은(는) 이름에 사용할 수 없습니다."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["'{extension}'은(는) 사용 불가능한 이름입니다."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["'{segment}'은(는) 예약된 이름이므로 폴더 이름으로 사용할 수 없습니다."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["'{segment}'은(는) 예약된 이름이므로 사용할 수 없습니다."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n개의 파일이 충돌함"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname}에서 %n개의 파일이 충돌함"]},{msgid:"All files",msgstr:["모든 파일"]},{msgid:"Cancel",msgstr:["취소"]},{msgid:"Cancel the entire operation",msgstr:["전체 작업 취소"]},{msgid:"Choose",msgstr:["선택"]},{msgid:"Choose {file}",msgstr:["{file} 선택"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["파일 %n개 선택"]},{msgid:"Confirm",msgstr:["확인"]},{msgid:"Continue",msgstr:["계속"]},{msgid:"Copy",msgstr:["복사"]},{msgid:"Copy to {target}",msgstr:["{target}(으)로 복사"]},{msgid:"Could not create the new folder",msgstr:["새 폴더를 만들 수 없음"]},{msgid:"Could not load files settings",msgstr:["파일 설정을 불러오지 못함"]},{msgid:"Could not load files views",msgstr:["파일 보기를 불러오지 못함"]},{msgid:"Create directory",msgstr:["디렉토리 만들기"]},{msgid:"Current view selector",msgstr:["현재 보기 방식"]},{msgid:"Enter your name",msgstr:["이름을 입력하세요"]},{msgid:"Existing version",msgstr:["기존 버전"]},{msgid:"Failed to set nickname.",msgstr:[`닉네임을 설정하지 못했습니다. - `]},{msgid:"Favorites",msgstr:["즐겨찾기"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["즐겨찾기 한 파일 및 폴더가 이곳에 표시됩니다."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["최근 수정된 파일 및 폴더가 이곳에 표시됩니다."]},{msgid:"Filter file list",msgstr:["파일 목록 필터링"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["폴더 이름은 '{extension}'(으)로 끝날 수 없습니다."]},{msgid:"Guest identification",msgstr:["게스트 확인"]},{msgid:"Home",msgstr:["홈"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["두 버전을 모두 선택할 경우 새로 추가되는 파일의 이름에 숫자가 붙게 됩니다."]},{msgid:"Invalid folder name.",msgstr:["잘못된 폴더 이름입니다."]},{msgid:"Invalid name.",msgstr:["잘못된 이름입니다. "]},{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},{msgid:"Modified",msgstr:["수정됨"]},{msgid:"Move",msgstr:["이동"]},{msgid:"Move to {target}",msgstr:["{target}(으)로 이동"]},{msgid:"Name",msgstr:["이름"]},{msgid:"Names may be at most 64 characters long.",msgstr:["이름은 최대 64글자까지 지정할 수 있습니다."]},{msgid:"Names must not be empty.",msgstr:["이름은 비어 있을 수 없습니다."]},{msgid:'Names must not end with "{extension}".',msgstr:["이름은 '{extension}'(으)로 끝날 수 없습니다."]},{msgid:"Names must not start with a dot.",msgstr:["이름은 마침표로 시작될 수 없습니다."]},{msgid:"New",msgstr:["새로 만들기"]},{msgid:"New folder",msgstr:["새 폴더"]},{msgid:"New folder name",msgstr:["새 폴더명"]},{msgid:"New version",msgstr:["새로운 버전"]},{msgid:"No files in here",msgstr:["파일이 없습니다"]},{msgid:"No files matching your filter were found.",msgstr:["선택된 필터에 해당하는 파일이 없습니다."]},{msgid:"No matching files",msgstr:["해당하는 파일 없음"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["최소 두 글자 이상의 이름을 입력해주세요."]},{msgid:"Recent",msgstr:["최근"]},{msgid:"Select all checkboxes",msgstr:["체크박스 모두 선택"]},{msgid:"Select all entries",msgstr:["모두 선택"]},{msgid:"Select all existing files",msgstr:["기존 파일 모두 선택"]},{msgid:"Select all new files",msgstr:["새 파일 모두 선택"]},{msgid:"Select entry",msgstr:["항목 선택"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename}의 행 선택"]},{msgid:"Size",msgstr:["크기"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n개 파일 건너뛰기"]},{msgid:"Skip this file",msgstr:["이 파일 건너뛰기"]},{msgid:"Submit name",msgstr:["이름 제출"]},{msgid:"Undo",msgstr:["되돌리기"]},{msgid:"Upload some content or sync with your devices!",msgstr:["기기에서 파일을 업로드 또는 동기화하세요!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["새 폴더를 선택할 경우, 해당 폴더 내의 충돌 파일들도 덮어쓰기 됩니다."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["새 폴더를 선택할 경우 내용물이 기존 폴더에 기록되며 재귀적 충돌 해결이 수행됩니다."]},{msgid:"Which files do you want to keep?",msgstr:["어떤 파일들을 유지하시겠습니까?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["{nickname}(으)로 인증된 상태 입니다."]},{msgid:"You are currently not identified.",msgstr:["현재 인증 정보가 없습니다."]},{msgid:"You cannot leave the name empty.",msgstr:["이름은 비워 둘 수 없습니다. "]},{msgid:"You need to choose at least one conflict solution",msgstr:["최소한 하나의 충돌 해결 방안을 선택해야 합니다."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}]},{language:"lb",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} ass en ongëlteg Dossier"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} ass net en erlaabten Dossiernumm"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ass net an engem Dossier Numm erlaabt']},{msgid:"All files",msgstr:["All Dateien"]},{msgid:"Choose",msgstr:["Wielt"]},{msgid:"Choose {file}",msgstr:["Wielt {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Wielt %n Fichieren","Wielt %n Fichier"]},{msgid:"Copy",msgstr:["Kopie"]},{msgid:"Copy to {target}",msgstr:["Kopie op {target}"]},{msgid:"Could not create the new folder",msgstr:["Konnt den neien Dossier net erstellen"]},{msgid:"Could not load files settings",msgstr:["Konnt d'Dateienastellungen net lueden"]},{msgid:"Could not load files views",msgstr:["Konnt d'Dateien net lueden"]},{msgid:"Create directory",msgstr:["Erstellt Verzeechnes"]},{msgid:"Current view selector",msgstr:["Aktuell Vue selector"]},{msgid:"Favorites",msgstr:["Favoritten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien an Ordner, déi Dir als Favorit markéiert, ginn hei gewisen"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien an Ordner déi Dir viru kuerzem geännert hutt ginn hei op"]},{msgid:"Filter file list",msgstr:["Filter Datei Lëscht"]},{msgid:"Folder name cannot be empty.",msgstr:["Dossier Numm kann net eidel sinn"]},{msgid:"Home",msgstr:["Wëllkomm"]},{msgid:"Modified",msgstr:["Geännert"]},{msgid:"Move",msgstr:["Plënne"]},{msgid:"Move to {target}",msgstr:["Plënneren {target}"]},{msgid:"Name",msgstr:["Numm"]},{msgid:"New",msgstr:["Nei"]},{msgid:"New folder",msgstr:["Neien dossier"]},{msgid:"New folder name",msgstr:["Neien dossier numm"]},{msgid:"No files in here",msgstr:["Kee fichier hei"]},{msgid:"No files matching your filter were found.",msgstr:["Kee fichier deen äre filter passt gouf fonnt"]},{msgid:"No matching files",msgstr:["Keng passende dateien"]},{msgid:"Recent",msgstr:["Rezent"]},{msgid:"Select all entries",msgstr:["Wielt all entréen"]},{msgid:"Select entry",msgstr:["Wielt entrée"]},{msgid:"Select the row for {nodename}",msgstr:["Wielt d'zeil fir {nodename}"]},{msgid:"Size",msgstr:["Gréisst"]},{msgid:"Undo",msgstr:["Undoen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Luet en inhalt erop oder synchroniséiert mat ären apparater"]}]},{language:"lo",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ບໍ່ອະນຸຍາດໃຫ້ມີຢູ່ໃນຊື່ໂຟນເດີ.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['ບໍ່ອະນຸຍາດໃຫ້ມີ "{char}" ພາຍໃນຊື່.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ບໍ່ແມ່ນຊື່ທີ່ໄດ້ຮັບອະນຸຍາດ.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ເປັນຊື່ໂຟນເດີ.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ໄດ້ຮັບອະນຸຍາດ.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["ໄຟລ໌ຂັດກັນ %n ລາຍການ"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["ໄຟລ໌ຂັດກັນ %n ລາຍການໃນ {dirname}"]},{msgid:"All files",msgstr:["ໄຟລ໌ທັງໝົດ"]},{msgid:"Cancel",msgstr:["ຍົກເລີກ"]},{msgid:"Cancel the entire operation",msgstr:["ຍົກເລີກການດຳເນີນການທັງໝົດ"]},{msgid:"Choose",msgstr:["ເລືອກ"]},{msgid:"Choose {file}",msgstr:["ເລືອກ {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["ເລືອກ %n ໄຟລ໌"]},{msgid:"Confirm",msgstr:["ຢືນຢັນ"]},{msgid:"Continue",msgstr:["ດຳເນີນການຕໍ່"]},{msgid:"Copy",msgstr:["ຄັດລອກ"]},{msgid:"Copy to {target}",msgstr:["ຄັດລອກໄປທີ່ {target}"]},{msgid:"Could not create the new folder",msgstr:["ບໍ່ສາມາດສ້າງໂຟນເດີໃໝ່ໄດ້"]},{msgid:"Could not load files settings",msgstr:["ບໍ່ສາມາດໂຫຼດການຕັ້ງຄ່າໄຟລ໌ໄດ້"]},{msgid:"Could not load files views",msgstr:["ບໍ່ສາມາດໂຫຼດມຸມມອງໄຟລ໌ໄດ້"]},{msgid:"Create directory",msgstr:["ສ້າງໄດເຣັກທໍຣີ"]},{msgid:"Current view selector",msgstr:["ຕົວເລືອກມຸມມອງປັດຈຸບັນ"]},{msgid:"Enter your name",msgstr:["ປ້ອນຊື່ຂອງທ່ານ"]},{msgid:"Existing version",msgstr:["ເວີຊັນທີ່ມີຢູ່"]},{msgid:"Failed to set nickname.",msgstr:["ຕັ້ງຊື່ຫຼິ້ນບໍ່ສຳເລັດ."]},{msgid:"Favorites",msgstr:["ລາຍການທີ່ມັກ"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານໝາຍວ່າເປັນລາຍການທີ່ມັກຈະສະແດງຢູ່ບ່ອນນີ້."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານແກ້ໄຂລ່າສຸດຈະສະແດງຢູ່ບ່ອນນີ້."]},{msgid:"Filter file list",msgstr:["ກັ່ນຕອງລາຍການໄຟລ໌"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['ຊື່ໂຟນເດີຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ "{extension}".']},{msgid:"Guest identification",msgstr:["ການລະບຸຕົວຕົນຂອງແຂກ"]},{msgid:"Home",msgstr:["ໜ້າຫຼັກ"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["ຖ້າທ່ານເລືອກທັງສອງເວີຊັນ, ໄຟລ໌ທີ່ເຂົ້າມາຈະມີຕົວເລກເພີ່ມໃສ່ຊື່ຂອງມັນ."]},{msgid:"Invalid folder name.",msgstr:["ຊື່ໂຟນເດີບໍ່ຖືກຕ້ອງ."]},{msgid:"Invalid name.",msgstr:["ຊື່ບໍ່ຖືກຕ້ອງ."]},{msgid:"Last modified date unknown",msgstr:["ບໍ່ຮູ້ວັນທີແກ້ໄຂລ່າສຸດ"]},{msgid:"Modified",msgstr:["ແກ້ໄຂເມື່ອ"]},{msgid:"Move",msgstr:["ຍ້າຍ"]},{msgid:"Move to {target}",msgstr:["ຍ້າຍໄປທີ່ {target}"]},{msgid:"Name",msgstr:["ຊື່"]},{msgid:"Names may be at most 64 characters long.",msgstr:["ຊື່ອາດມີຄວາມຍາວສູງສຸດ 64 ຕົວອັກສອນ."]},{msgid:"Names must not be empty.",msgstr:["ຊື່ຕ້ອງບໍ່ຫວ່າງເປົ່າ."]},{msgid:'Names must not end with "{extension}".',msgstr:['ຊື່ຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["ຊື່ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຈຸດ."]},{msgid:"New",msgstr:["ໃໝ່"]},{msgid:"New folder",msgstr:["ໂຟນເດີໃໝ່"]},{msgid:"New folder name",msgstr:["ຊື່ໂຟນເດີໃໝ່"]},{msgid:"New version",msgstr:["ເວີຊັນໃໝ່"]},{msgid:"No files in here",msgstr:["ບໍ່ມີໄຟລ໌ຢູ່ບ່ອນນີ້"]},{msgid:"No files matching your filter were found.",msgstr:["ບໍ່ພົບໄຟລ໌ທີ່ກົງກັບການກັ່ນຕອງຂອງທ່ານ."]},{msgid:"No matching files",msgstr:["ບໍ່ມີໄຟລ໌ທີ່ກົງກັນ"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["ກະລຸນາປ້ອນຊື່ທີ່ມີຢ່າງໜ້ອຍ 2 ຕົວອັກສອນ."]},{msgid:"Recent",msgstr:["ລ່າສຸດ"]},{msgid:"Select all checkboxes",msgstr:["ເລືອກກ່ອງໝາຍທັງໝົດ"]},{msgid:"Select all entries",msgstr:["ເລືອກທຸກລາຍການ"]},{msgid:"Select all existing files",msgstr:["ເລືອກໄຟລ໌ທີ່ມີຢູ່ທັງໝົດ"]},{msgid:"Select all new files",msgstr:["ເລືອກໄຟລ໌ໃໝ່ທັງໝົດ"]},{msgid:"Select entry",msgstr:["ເລືອກລາຍການ"]},{msgid:"Select the row for {nodename}",msgstr:["ເລືອກແຖວສຳລັບ {nodename}"]},{msgid:"Size",msgstr:["ຂະໜາດ"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["ຂ້າມ %n ໄຟລ໌"]},{msgid:"Skip this file",msgstr:["ຂ້າມໄຟລ໌ນີ້"]},{msgid:"Submit name",msgstr:["ສົ່ງຊື່"]},{msgid:"Undo",msgstr:["ເອົາຄືນ"]},{msgid:"Upload some content or sync with your devices!",msgstr:["ອັບໂຫຼດເນື້ອຫາ ຫຼື ຊິງຄ໌ກັບອຸປະກອນຂອງທ່ານ!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ໄຟລ໌ໃດໆທີ່ຂັດກັນພາຍໃນໂຟນເດີນັ້ນກໍຈະຖືກຂຽນທັບເຊັ່ນກັນ."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ເນື້ອຫາຈະຖືກຂຽນລົງໃນໂຟນເດີທີ່ມີຢູ່ ແລະ ຈະມີການແກ້ໄຂຂໍ້ຂັດແຍ່ງແບບຕໍ່ເນື່ອງ."]},{msgid:"Which files do you want to keep?",msgstr:["ທ່ານຕ້ອງການເກັບໄຟລ໌ໃດໄວ້?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["ຕອນນີ້ທ່ານຖືກລະບຸວ່າເປັນ {nickname}."]},{msgid:"You are currently not identified.",msgstr:["ຕອນນີ້ທ່ານຍັງບໍ່ໄດ້ຖືກລະບຸຕົວຕົນ."]},{msgid:"You cannot leave the name empty.",msgstr:["ທ່ານບໍ່ສາມາດປະຊື່ໃຫ້ຫວ່າງເປົ່າໄດ້."]},{msgid:"You need to choose at least one conflict solution",msgstr:["ທ່ານຈຳເປັນຕ້ອງເລືອກວິທີແກ້ໄຂຂໍ້ຂັດແຍ່ງຢ່າງໜ້ອຍໜຶ່ງຢ່າງ"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["ທ່ານຈຳເປັນຕ້ອງເລືອກຢ່າງໜ້ອຍໜຶ່ງເວີຊັນຂອງແຕ່ລະໄຟລ໌ເພື່ອດຳເນີນການຕໍ່."]}]},{language:"lt_LT",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["„{char}“ negalima naudoti aplanko pavadinime."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ negalima naudoti vardo sudėtyje."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ nėra leidžiamas vardas."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ yra rezervuotas vardas, kurio negalima naudoti aplankų pavadinimuose."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ yra rezervuotas vardas, todėl jo naudoti negalima."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n failo konfliktas","%n failų konfliktas","%n failų konfliktas","%n failų konfliktas"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n failo konfliktas {dirname}","%n failų konfliktas {dirname}","%n failų konfliktas {dirname}","%n failų konfliktas {dirname}"]},{msgid:"All files",msgstr:["Visi failai"]},{msgid:"Cancel",msgstr:["Atsisakyti"]},{msgid:"Cancel the entire operation",msgstr:["Atsisakyti visos operacijos"]},{msgid:"Choose",msgstr:["Pasirinkti"]},{msgid:"Choose {file}",msgstr:["Pasirinkti {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pasirinkti %n failą","Pasirinkti %n failus","Pasirinkti %n failų","Pasirinkti %n failą"]},{msgid:"Confirm",msgstr:["Patvirtinti"]},{msgid:"Continue",msgstr:["Tęsti"]},{msgid:"Copy",msgstr:["Kopijuoti"]},{msgid:"Copy to {target}",msgstr:["Kopijuoti į {target}"]},{msgid:"Could not create the new folder",msgstr:["Nepavyko sukurti naujo aplanko"]},{msgid:"Could not load files settings",msgstr:["Nepavyko įkelti failų nustatymų"]},{msgid:"Could not load files views",msgstr:["Nepavyko įkelti failų peržiūrų"]},{msgid:"Create directory",msgstr:["Sukurti katalogą"]},{msgid:"Current view selector",msgstr:["Dabartinis peržiūros pasirinkimas"]},{msgid:"Enter your name",msgstr:["Įrašykite savo vardą"]},{msgid:"Existing version",msgstr:["Esama versija"]},{msgid:"Failed to set nickname.",msgstr:["Nepavyko nustatyti slapyvardžio"]},{msgid:"Favorites",msgstr:["Populiariausi"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Failai ir aplankai, kuriuos pažymėsite kaip mėgstamiausius, bus rodomi čia."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Čia bus rodomi failai ir aplankai, kuriuos neseniai pakeitėte."]},{msgid:"Filter file list",msgstr:["Filtruoti failų sąrašą"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Aplankų pavadinimai neturi baigtis simboliu „{extension}“."]},{msgid:"Guest identification",msgstr:["Svečio identifikacija"]},{msgid:"Home",msgstr:["Pradžia"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jei pasirinksite abi versijas, prie gaunamo failo pavadinimo bus pridėtas numeris."]},{msgid:"Invalid folder name.",msgstr:["Netinkamas aplanko pavadinimas."]},{msgid:"Invalid name.",msgstr:["Netinkamas pavadinimas."]},{msgid:"Last modified date unknown",msgstr:["Paskutinio atnaujinimo data nežinoma"]},{msgid:"Modified",msgstr:["Pakeista"]},{msgid:"Move",msgstr:["Perkelti"]},{msgid:"Move to {target}",msgstr:["Perkelti į {target}"]},{msgid:"Name",msgstr:["Vardas"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Vardų ilgis negali viršyti 64 simbolių."]},{msgid:"Names must not be empty.",msgstr:["Pavadinimai negali būti tušti."]},{msgid:'Names must not end with "{extension}".',msgstr:["Vardai neturi baigtis simboliu „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Vardai negali prasidėti tašku."]},{msgid:"New",msgstr:["Naujas"]},{msgid:"New folder",msgstr:["Naujas aplankas"]},{msgid:"New folder name",msgstr:["Naujas aplanko pavadinimas"]},{msgid:"New version",msgstr:["Nauja versija"]},{msgid:"No files in here",msgstr:["Čia failų nėra"]},{msgid:"No files matching your filter were found.",msgstr:["Nepavyko rasti failų pagal filtro nustatymus"]},{msgid:"No matching files",msgstr:["Nėra atitinkančių failų"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Įrašykite vardą iš mažiausiai dviejų ženklų."]},{msgid:"Recent",msgstr:["Nauji"]},{msgid:"Select all checkboxes",msgstr:["Pažymėti visus langelius"]},{msgid:"Select all entries",msgstr:["Žymėti visus įrašus"]},{msgid:"Select all existing files",msgstr:["Pažymėti visus esamus failus"]},{msgid:"Select all new files",msgstr:["Pažymėti visus naujus failus"]},{msgid:"Select entry",msgstr:["Žymėti įrašą"]},{msgid:"Select the row for {nodename}",msgstr:["Pasirinkite eilutę {nodename}"]},{msgid:"Size",msgstr:["Dydis"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Praleisti %n failą","Praleisti %n failus","Praleisti %n failų","Praleisti %n failą"]},{msgid:"Skip this file",msgstr:["Praleisti šį failą"]},{msgid:"Submit name",msgstr:["Pateikti pavadinimą"]},{msgid:"Undo",msgstr:["Atšaukti"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Įkelkite turinio arba sinchronizuokite su savo įrenginiais!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Pasirinkus įeinančių failų aplanką, jame esantys failai, su kuriais kyla konfliktas, taip pat bus perrašyti."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Pasirinkus gaunamų laiškų aplanką, visi jame esantys failai taip pat bus perrašyti."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Pasirinkus įeinančių failų aplanką, jo turinys įrašomas į esamą aplanką ir atliekamas rekursyvus konfliktų sprendimas."]},{msgid:"Which files do you want to keep?",msgstr:["Kokius failus norite išsaugoti?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Šiuo metu esate identifikuotas kaip {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Šiuo metu nesate identifikuotas."]},{msgid:"You cannot leave the name empty.",msgstr:["Negalite palikti tuščio vardo lauko."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Turite pasirinkti bent vieną konflikto sprendimo būdą"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Norėdami tęsti, turite pasirinkti bent vieną kiekvieno failo versiją."]}]},{language:"lv",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" nav derīgs mapes nosaukums.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nav atļauts mapes nosaukums']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" nav atļauts mapes nosaukuma izmantošanā.']},{msgid:"All files",msgstr:["Visas datnes"]},{msgid:"Choose",msgstr:["Izvēlieties"]},{msgid:"Choose {file}",msgstr:["Izvēlieties {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izvēlēties %n datņu","Izvēlēties %n datni","Izvēlēties %n datnes"]},{msgid:"Copy",msgstr:["Kopēt"]},{msgid:"Copy to {target}",msgstr:["Kopēt uz {target}"]},{msgid:"Could not create the new folder",msgstr:["Nevarēja izveidot jaunu mapi"]},{msgid:"Could not load files settings",msgstr:["Nevarēja ielādēt datņu iestatījumus"]},{msgid:"Could not load files views",msgstr:["Nevarēja ielādēt datņu apskatījumus"]},{msgid:"Create directory",msgstr:["Izveidot direktoriju"]},{msgid:"Current view selector",msgstr:["Pašreizēja skata atlasītājs"]},{msgid:"Favorites",msgstr:["Favorīti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Šeit parādīsies datnes un mapes, kas tiks atzīmētas kā iecienītas."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Šeit parādīsies datnes un mapes, kuras nesen tika izmainītas."]},{msgid:"Filter file list",msgstr:["Atlasīt datņu sarakstu"]},{msgid:"Folder name cannot be empty.",msgstr:["Mapes nosaukums nevar būt tukšs."]},{msgid:"Home",msgstr:["Sākums"]},{msgid:"Modified",msgstr:["Izmaninīta"]},{msgid:"Move",msgstr:["Pārvietot"]},{msgid:"Move to {target}",msgstr:["Pārvietot uz {target}"]},{msgid:"Name",msgstr:["Nosaukums"]},{msgid:"New",msgstr:["Jauns"]},{msgid:"New folder",msgstr:["Jauna mape"]},{msgid:"New folder name",msgstr:["Jaunas mapes nosaukums"]},{msgid:"No files in here",msgstr:["Šeit nav datņu"]},{msgid:"No files matching your filter were found.",msgstr:["Netika atrasta neviena datne, kas atbilst atlasei."]},{msgid:"No matching files",msgstr:["Nav atbilstošu datņu"]},{msgid:"Recent",msgstr:["Nesenās"]},{msgid:"Select all entries",msgstr:["Atlasīt visus ierakstus"]},{msgid:"Select entry",msgstr:["Atlasīt ierakstu"]},{msgid:"Select the row for {nodename}",msgstr:["Atlasīt rindu {nodename}"]},{msgid:"Size",msgstr:["Izmērs"]},{msgid:"Undo",msgstr:["Atsaukt"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Augšupielādē kādu saturu vai sinhronizē savās iekārtās!"]}]},{language:"mk",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" не е дозволен во име на папка.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не е дозволено во име.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" не е дозволено име.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" е резервирано име и не е дозволено за име на папка.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" е резервирано име и не е дозволено.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфликт со датотекa","%n конфликти со датотеки"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфликт со датотека во {dirname}","%n конфликти со датотеки vo {dirname}"]},{msgid:"All files",msgstr:["Сите датотеки"]},{msgid:"Cancel",msgstr:["Откажи"]},{msgid:"Cancel the entire operation",msgstr:["Прекини ја целата операција"]},{msgid:"Choose",msgstr:["Избери"]},{msgid:"Choose {file}",msgstr:["Избери {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Избери %n датотека","Избери %n датотеки"]},{msgid:"Confirm",msgstr:["Потврди"]},{msgid:"Continue",msgstr:["Продолжи"]},{msgid:"Copy",msgstr:["Копирај"]},{msgid:"Copy to {target}",msgstr:["Копирај во {target}"]},{msgid:"Could not create the new folder",msgstr:["Неможе да се креира нова папка"]},{msgid:"Could not load files settings",msgstr:["Неможе да се вчиаат параметрите за датотеките"]},{msgid:"Could not load files views",msgstr:["Неможе да се вчитаат погледите за датотеките"]},{msgid:"Create directory",msgstr:["Креирај папка"]},{msgid:"Current view selector",msgstr:["Избирач на тековен приказ"]},{msgid:"Enter your name",msgstr:["Внесете го вашето име"]},{msgid:"Existing version",msgstr:["Моментална верзија"]},{msgid:"Failed to set nickname.",msgstr:["Неуспешно поставување прекар."]},{msgid:"Favorites",msgstr:["Фаворити"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Датотеките и папките кој ќе ги означите за омилени ќе се појават овде."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Датотеките и папките кој неодамна сте ги измениле ќе се појават овде."]},{msgid:"Filter file list",msgstr:["Филтрирај листа на датотеки"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Имињата на папките неможе да завршуваат со "{extension}".']},{msgid:"Guest identification",msgstr:["Гостинска идентификација"]},{msgid:"Home",msgstr:["Почетна"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ако ги избереш двете верзии, влезната датотека ќе добие број додаден на нејзиното име."]},{msgid:"Invalid folder name.",msgstr:["Невалидно име на папка."]},{msgid:"Invalid name.",msgstr:["Невалидно име."]},{msgid:"Last modified date unknown",msgstr:["Датумот на последна измена е непознат"]},{msgid:"Modified",msgstr:["Променето"]},{msgid:"Move",msgstr:["Премести"]},{msgid:"Move to {target}",msgstr:["Премести во {target}"]},{msgid:"Name",msgstr:["Име"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Имињата можат да бидат најмногу со 64 карактери."]},{msgid:"Names must not be empty.",msgstr:["Имињата неможе да бидат празни."]},{msgid:'Names must not end with "{extension}".',msgstr:['Имињата неможе да завршуваат со "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Имињата неможе да започнуваат со точка."]},{msgid:"New",msgstr:["Нова"]},{msgid:"New folder",msgstr:["Нова папка"]},{msgid:"New folder name",msgstr:["Ново име на папка"]},{msgid:"New version",msgstr:["Нова верзија"]},{msgid:"No files in here",msgstr:["Овде нема датотеки"]},{msgid:"No files matching your filter were found.",msgstr:["Не се пронајдени датотеки што одговараат на вашиот филтер."]},{msgid:"No matching files",msgstr:["Нема датотеки што се совпаѓаат"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Внесете име со најмалку 2 карактери."]},{msgid:"Recent",msgstr:["Неодамнешни"]},{msgid:"Select all checkboxes",msgstr:["Избери ги сите полиња за избор"]},{msgid:"Select all entries",msgstr:["Изберете ги сите записи"]},{msgid:"Select all existing files",msgstr:["Изберете ги сите постоечки датотеки"]},{msgid:"Select all new files",msgstr:["Изберете ги сите нови датотеки"]},{msgid:"Select entry",msgstr:["Избери запис"]},{msgid:"Select the row for {nodename}",msgstr:["Избери ред за {nodename}"]},{msgid:"Size",msgstr:["Големина"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Прескокни %n датотека","Прескокни %n датотеки"]},{msgid:"Skip this file",msgstr:["Прескокни ја оваа датотека"]},{msgid:"Submit name",msgstr:["Испрати име"]},{msgid:"Undo",msgstr:["Врати"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Прикачи содржина или синхронизирај со ваши уреди!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Кога е избрана влезна папка, сите конфликтни датотеки во неа исто така ќе бидат препишани."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Кога е избрана влезна папка, содржината се запишува во постоечката папка и се извршува рекурсивно решавање на конфликти."]},{msgid:"Which files do you want to keep?",msgstr:["Кој датотеки сакаш да ги зачуваш?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Моментално сте идентификувани како {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Моментално не сте идентификувани."]},{msgid:"You cannot leave the name empty.",msgstr:["Не можете да го оставите името празно."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Треба да избереш најмалку едно решение за конфликт"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Треба да избереш најмалку една верзија за секоја датотека за да продолжи."]}]},{language:"ms_MY",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" adalah nama folder yang tidak sesuai ']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nama folder yang tidak dibenarkan']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" tidak dibenarkan dalam nama folder']},{msgid:"All files",msgstr:["Semua fail"]},{msgid:"Choose",msgstr:["Pilih"]},{msgid:"Choose {file}",msgstr:["Pilih {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pilih fail %n"]},{msgid:"Copy",msgstr:["menyalin"]},{msgid:"Copy to {target}",msgstr:["menyalin ke {target}"]},{msgid:"Could not create the new folder",msgstr:["Tidak dapat mewujudkan folder baharu"]},{msgid:"Could not load files settings",msgstr:["Tidak dapat memuatkan tetapan fail"]},{msgid:"Could not load files views",msgstr:["Tidak dapat memuatkan paparan fail"]},{msgid:"Create directory",msgstr:["mewujudkan direktori"]},{msgid:"Current view selector",msgstr:["pemilih pandangan semasa"]},{msgid:"Favorites",msgstr:["Pilihan"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Fail dan folder yang anda tanda sebagai pilihan akan dipaparkan di sini."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Fail dan folder yang anda telah ubah suai baru-baru ini dipaparkan di sini."]},{msgid:"Filter file list",msgstr:["Menapis senarai fail"]},{msgid:"Folder name cannot be empty.",msgstr:["Nama folder tidak boleh kosong."]},{msgid:"Home",msgstr:["Utama"]},{msgid:"Modified",msgstr:["Ubah suai"]},{msgid:"Move",msgstr:["pindah"]},{msgid:"Move to {target}",msgstr:["pindah ke {target}"]},{msgid:"Name",msgstr:["Nama"]},{msgid:"New",msgstr:["Baru"]},{msgid:"New folder",msgstr:["Folder Baharu"]},{msgid:"New folder name",msgstr:["Nama folder baharu"]},{msgid:"No files in here",msgstr:["Tiada fail di sini"]},{msgid:"No files matching your filter were found.",msgstr:["Tiada fail yang sepadan dengan tapisan anda."]},{msgid:"No matching files",msgstr:["Tiada fail yang sepadan"]},{msgid:"Recent",msgstr:["baru-baru ini"]},{msgid:"Select all entries",msgstr:["Pilih semua entri"]},{msgid:"Select entry",msgstr:["Pilih entri"]},{msgid:"Select the row for {nodename}",msgstr:["memilih baris {nodename}"]},{msgid:"Size",msgstr:["Saiz"]},{msgid:"Undo",msgstr:["buat asal"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Muat naik beberapa kandungan atau selaras dengan peranti anda!"]}]},{language:"nb_NO",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" er ikke tillatt i et mappenavn.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" er ikke tillatt i et navn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" er ikke et tillatt navn.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" er et reservert navn og er ikke tillatt for mappenavn.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" er et reservert navn og er ikke tillatt.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n files conflict"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n fil konflikter i {dirname}","%n fil konflikter i {dirname}"]},{msgid:"All files",msgstr:["Alle filer"]},{msgid:"Cancel",msgstr:["Avbryt"]},{msgid:"Cancel the entire operation",msgstr:["Avbryt hele operasjonen"]},{msgid:"Choose",msgstr:["Velg"]},{msgid:"Choose {file}",msgstr:["Velg {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Velg %n fil","Velg %n filer"]},{msgid:"Confirm",msgstr:["Bekreft"]},{msgid:"Continue",msgstr:["Fortsett"]},{msgid:"Copy",msgstr:["Kopier"]},{msgid:"Copy to {target}",msgstr:["Kopier til {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunne ikke opprette den nye mappen"]},{msgid:"Could not load files settings",msgstr:["Kunne ikke laste filinnstillinger"]},{msgid:"Could not load files views",msgstr:["Kunne ikke laste filvisninger"]},{msgid:"Create directory",msgstr:["Opprett mappe"]},{msgid:"Current view selector",msgstr:["Nåværende visningsvelger"]},{msgid:"Enter your name",msgstr:["Skriv inn navnet ditt"]},{msgid:"Existing version",msgstr:["Eksisterende versjon"]},{msgid:"Failed to set nickname.",msgstr:["Kunne ikke lagre kallenavnet."]},{msgid:"Favorites",msgstr:["Favoritter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer og mapper du markerer som favoritter vil vises her."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer og mapper du nylig har endret, vil vises her."]},{msgid:"Filter file list",msgstr:["Filtrer filliste"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mappenavn må ikke slutte med "{extension}".']},{msgid:"Guest identification",msgstr:["Gjesteidentifikasjon"]},{msgid:"Home",msgstr:["Hjem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du velger begge versjonene, vil den innkommende filen få et nummer lagt til navnet sitt."]},{msgid:"Invalid folder name.",msgstr:["Ugyldig mappenavn."]},{msgid:"Invalid name.",msgstr:["Ugyldig navn."]},{msgid:"Last modified date unknown",msgstr:["Sist endret dato ukjent"]},{msgid:"Modified",msgstr:["Modifisert"]},{msgid:"Move",msgstr:["Flytt"]},{msgid:"Move to {target}",msgstr:["Flytt til {target}"]},{msgid:"Name",msgstr:["Navn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Navn kan maksimalt være 64 tegn lange."]},{msgid:"Names must not be empty.",msgstr:["Navn kan ikke være tomme."]},{msgid:'Names must not end with "{extension}".',msgstr:['Navn kan ikke ende med "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Navn kan ikke starte med et punktum."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mappe"]},{msgid:"New folder name",msgstr:["Nytt mappenavn"]},{msgid:"New version",msgstr:["Ny versjon"]},{msgid:"No files in here",msgstr:["Ingen filer her"]},{msgid:"No files matching your filter were found.",msgstr:["Ingen filer funnet med ditt filter."]},{msgid:"No matching files",msgstr:["Ingen filer samsvarer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Vennligst angi et navn som har minst 2 tegn."]},{msgid:"Recent",msgstr:["Nylige"]},{msgid:"Select all checkboxes",msgstr:["Merk av i alle avmerkingsboksene"]},{msgid:"Select all entries",msgstr:["Velg alle oppføringer"]},{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},{msgid:"Select entry",msgstr:["Velg oppføring"]},{msgid:"Select the row for {nodename}",msgstr:["Velg raden for {nodename}"]},{msgid:"Size",msgstr:["Størrelse"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Hopp over %n fil","Hopp over %nfiler"]},{msgid:"Skip this file",msgstr:["Hopp over denne filen"]},{msgid:"Submit name",msgstr:["Bekreft navn"]},{msgid:"Undo",msgstr:["Angre"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Last opp innhold eller synkroniser med enhetene dine!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, vil eventuelle motstridende filer i den også bli overskrevet."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, vil eventuelle filer i den også bli overskrevet."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres."]},{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du er akkurat nå identifisert som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du er akkurat nå ikke identifisert."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan ikke la navnet være blankt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du må velge minst én konfliktløsning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst én versjon av hver fil for å fortsette."]}]},{language:"nl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" is niet toegestaan in een mapnaam.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" kan niet gebruikt worden in de benaming.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" is geen toegestane naam.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" is een gereserveerde naam en niet toegestaan voor mapnamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" is een gereserveerde naam en niet toegestaan.']},{msgid:"All files",msgstr:["Alle bestanden"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Er bestaat al een item met dezelfde naam in {dirname}."]},{msgid:"Cancel",msgstr:["Annuleren"]},{msgid:"Cancel the entire operation",msgstr:["Annuleer de hele bewerking"]},{msgid:"Choose",msgstr:["Kiezen"]},{msgid:"Choose {file}",msgstr:["Kies {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Kies %n bestand","Kies %n bestanden"]},{msgid:"Close",msgstr:["Sluiten"]},{msgid:"Confirm",msgstr:["Bevestigen"]},{msgid:"Continue",msgstr:["Doorgaan"]},{msgid:"Copy",msgstr:["Kopiëren"]},{msgid:"Copy to {target}",msgstr:["Kopiëren naar {target}"]},{msgid:"Could not create the new folder",msgstr:["Kon de nieuwe map niet aanmaken"]},{msgid:"Could not load files settings",msgstr:["Instellingen voor bestanden konden niet worden geladen"]},{msgid:"Could not load files views",msgstr:["Weergaven voor bestanden konden niet worden geladen"]},{msgid:"Create directory",msgstr:["Map aanmaken"]},{msgid:"Current view selector",msgstr:["Huidige weergave keuze"]},{msgid:"Enter your name",msgstr:["Voer je naam in"]},{msgid:"Error: {message}",msgstr:["Fout: {message}"]},{msgid:"Existing files",msgstr:["Bestaande bestanden"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Bestaande bestanden en mappen worden verwijderd als ze niet worden geselecteerd. Als beide worden geselecteerd, krijgen ze een nieuwe naam."]},{msgid:"Existing version",msgstr:["Bestaande versie"]},{msgid:"Failed to set nickname.",msgstr:["Instellen bijnaam is mislukt."]},{msgid:"Favorites",msgstr:["Favorieten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Bestanden en mappen die je als favoriet markeert, worden hier weergegeven."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Bestanden en mappen die je onlangs hebt gewijzigd, worden hier weergegeven."]},{msgid:"Filter file list",msgstr:["Bestandslijst filteren"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mapnamen mogen niet eindigen op "{extension}".']},{msgid:"Guest identification",msgstr:["Gastenidentificatie"]},{msgid:"Home",msgstr:["Thuis"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Ongeldige mapnaam."]},{msgid:"Invalid name.",msgstr:["Ongeldige naam."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Er bestaan al items met dezelfde naam in {dirname}, kies welke je wilt behouden."]},{msgid:"Keep both",msgstr:["Beide behouden"]},{msgid:"Last modified date unknown",msgstr:["Datum laatste aanpassing onbekend"]},{msgid:"Modified",msgstr:["Aangepast"]},{msgid:"Move",msgstr:["Verplaatsen"]},{msgid:"Move to {target}",msgstr:["Verplaatsen naar {target}"]},{msgid:"Name",msgstr:["Naam"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen mogen maximaal 64 tekens lang zijn."]},{msgid:"Names must not be empty.",msgstr:["Namen mogen niet leeg zijn."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen mogen niet eindigen met "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Namen mogen niet beginnen met een punt."]},{msgid:"New",msgstr:["Nieuw"]},{msgid:"New files",msgstr:["Nieuwe bestanden"]},{msgid:"New folder",msgstr:["Nieuwe map"]},{msgid:"New folder name",msgstr:["Nieuwe mapnaam"]},{msgid:"New version",msgstr:["Nieuwe versie"]},{msgid:"No files in here",msgstr:["Hier staan geen bestanden"]},{msgid:"No files matching your filter were found.",msgstr:["Geen bestanden gevonden die voldoen aan je filter."]},{msgid:"No matching files",msgstr:["Geen overeenkomende bestanden"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Voer een naam in met minimaal 2 tekens."]},{msgid:"Recent",msgstr:["Recent"]},{msgid:"Replace",msgstr:["Vervangen"]},{msgid:"Select all checkboxes",msgstr:["Selecteer alle aanvinkopties"]},{msgid:"Select all entries",msgstr:["Alle vermeldingen selecteren"]},{msgid:"Select entry",msgstr:["Vermelding selecteren"]},{msgid:"Select file to keep",msgstr:["Selecteer bestand om te behouden"]},{msgid:"Select files to keep",msgstr:["Selecteer bestanden om te behouden"]},{msgid:"Select the row for {nodename}",msgstr:["Selecteer de rij voor {nodename}"]},{msgid:"Size",msgstr:["Grootte"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Sla %n bestand over","Sla %n bestanden over"]},{msgid:"Submit name",msgstr:["Naam indienen"]},{msgid:"Success: {message}",msgstr:["Succesvol: {message}"]},{msgid:"Undo",msgstr:["Ongedaan maken"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload inhoud of synchroniseer met je apparaten!"]},{msgid:"Warning: {message}",msgstr:["Waarschuwing: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wanneer een nieuwe map wordt geselecteerd, worden eventuele conflicterende bestanden daarin ook overschreven."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Wanneer een nieuwe map wordt geselecteerd, worden alle bestanden daarin ook overschreven."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Wanneer een nieuwe map wordt geselecteerd, wordt de inhoud naar de bestaande map gekopieerd en wordt er een recursieve conflictoplossing uitgevoerd."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Je wordt momenteel geïdentificeerd als {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Je bent momenteel niet geïdentificeerd."]},{msgid:"You cannot leave the name empty.",msgstr:["Je kunt de naam niet leeg laten."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Je moet ten minste één manier kiezen om het conflict op te lossen"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Je moet ten minste één versie van elk bestand selecteren om door te gaan."]}]},{language:"pl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['Znak "{char}" nie jest dozwolony w nazwie folderu.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" nie jest dozwolone w nazwie.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nie jest dozwoloną nazwą.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" jest nazwą zastrzeżoną i nie jest dozwolona jako nazwa folderu.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" jest zastrzeżoną nazwą i nie jest dozwolone.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["Konflikt pliku","Konflikt %n plików","Konflikt %n plików","Konflikt %n plików"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konfliktów pliku w {dirname}","%n konfliktów plików w {dirname}","%n konfliktów plików w {dirname}","%n konfliktów plików w {dirname}"]},{msgid:"All files",msgstr:["Wszystkie pliki"]},{msgid:"Cancel",msgstr:["Anuluj"]},{msgid:"Cancel the entire operation",msgstr:["Anuluj całą operację"]},{msgid:"Choose",msgstr:["Wybierz"]},{msgid:"Choose {file}",msgstr:["Wybierz {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Wybierz %n plik","Wybierz %n pliki","Wybierz %n plików","Wybierz %n plików"]},{msgid:"Confirm",msgstr:["Potwierdź"]},{msgid:"Continue",msgstr:["Kontynuuj"]},{msgid:"Copy",msgstr:["Kopiuj"]},{msgid:"Copy to {target}",msgstr:["Skopiuj do {target}"]},{msgid:"Could not create the new folder",msgstr:["Nie można utworzyć nowego folderu"]},{msgid:"Could not load files settings",msgstr:["Nie można wczytać ustawień plików"]},{msgid:"Could not load files views",msgstr:["Nie można wczytać widoków plików"]},{msgid:"Create directory",msgstr:["Utwórz katalog"]},{msgid:"Current view selector",msgstr:["Bieżący selektor widoku"]},{msgid:"Enter your name",msgstr:["Wprowadź nazwę"]},{msgid:"Existing version",msgstr:["Istniejąca wersja"]},{msgid:"Failed to set nickname.",msgstr:["Nie udało się utworzyć pseudonimu."]},{msgid:"Favorites",msgstr:["Ulubione"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Pliki i foldery które oznaczysz jako ulubione będą wyświetlały się tutaj"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Pliki i foldery które ostatnio modyfikowałeś będą wyświetlały się tutaj"]},{msgid:"Filter file list",msgstr:["Filtruj listę plików"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nazwy folderów nie mogą kończyć się na "{extension}".']},{msgid:"Guest identification",msgstr:["Identyfikacja gościa"]},{msgid:"Home",msgstr:["Strona główna"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jeśli wybierzesz obie wersje, do nazwy przychodzącego pliku zostanie dodany numer."]},{msgid:"Invalid folder name.",msgstr:["Nieprawidłowa nazwa folderu."]},{msgid:"Invalid name.",msgstr:["Nieprawidłowa nazwa."]},{msgid:"Last modified date unknown",msgstr:["Data ostatniej modyfikacji nieznana"]},{msgid:"Modified",msgstr:["Zmodyfikowano"]},{msgid:"Move",msgstr:["Przenieś"]},{msgid:"Move to {target}",msgstr:["Przejdź do {target}"]},{msgid:"Name",msgstr:["Nazwa"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nazwy mogą mieć maksymalnie 64 znaki."]},{msgid:"Names must not be empty.",msgstr:["Nazwy nie mogą być puste."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nazwy nie mogą kończyć się na "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nazwy nie mogą zaczynać się od kropki."]},{msgid:"New",msgstr:["Nowy"]},{msgid:"New folder",msgstr:["Nowy folder"]},{msgid:"New folder name",msgstr:["Nowa nazwa folderu"]},{msgid:"New version",msgstr:["Nowa wersja"]},{msgid:"No files in here",msgstr:["Brak plików"]},{msgid:"No files matching your filter were found.",msgstr:["Nie znaleziono plików spełniających warunki filtru"]},{msgid:"No matching files",msgstr:["Brak pasujących plików"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Wprowadź nazwę zawierającą minimum 2 znaki."]},{msgid:"Recent",msgstr:["Ostatni"]},{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie pola wyboru"]},{msgid:"Select all entries",msgstr:["Wybierz wszystkie wpisy"]},{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},{msgid:"Select entry",msgstr:["Wybierz wpis"]},{msgid:"Select the row for {nodename}",msgstr:["Wybierz wiersz dla {nodename}"]},{msgid:"Size",msgstr:["Rozmiar"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Pomiń %n plik","Pomiń %n plików","Pomiń %n plików","Pomiń %n plików"]},{msgid:"Skip this file",msgstr:["Pomiń ten plik"]},{msgid:"Submit name",msgstr:["Zatwierdź nazwę"]},{msgid:"Undo",msgstr:["Cofnij"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Wyślij zawartość lub zsynchronizuj ze swoimi urządzeniami!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po wybraniu przychodzącego folderu wszystkie konfliktujące pliki w jego obrębie również zostaną nadpisane."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po wybraniu przychodzącego folderu jego zawartość zostanie zapisana w istniejącym folderze i zostanie przeprowadzone rekursywne rozwiązywanie konfliktów."]},{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Obecnie jesteś zidentyfikowany jako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Użytkownik nie został uwierzytelniony."]},{msgid:"You cannot leave the name empty.",msgstr:["Nazwa nie może być pusta."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Musisz wybrać co najmniej jedno rozwiązanie konfliktu"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}]},{language:"pt_BR",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" não é permitido dentro de um nome de pasta.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" não é permitido dentro de um nome.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" não é um nome permitido.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" é um nome reservado e não permitido para nomes de pasta.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" é um nome reservado e não permitido.']},{msgid:"All files",msgstr:["Todos os arquivos"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Já existe um item com o mesmo nome em {dirname}."]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operação"]},{msgid:"Choose",msgstr:["Escolher"]},{msgid:"Choose {file}",msgstr:["Escolher {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escolher %n arquivo","Escolher %n arquivos","Escolher %n arquivos"]},{msgid:"Close",msgstr:["Fechar"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar para {target}"]},{msgid:"Could not create the new folder",msgstr:["Não foi possível criar a nova pasta"]},{msgid:"Could not load files settings",msgstr:["Não foi possível carregar configurações de arquivos"]},{msgid:"Could not load files views",msgstr:["Não foi possível carregar visualições de arquivos"]},{msgid:"Create directory",msgstr:["Criar diretório"]},{msgid:"Current view selector",msgstr:["Seletor de visualização atual"]},{msgid:"Enter your name",msgstr:["Digite seu nome"]},{msgid:"Error: {message}",msgstr:["Erro: {message}"]},{msgid:"Existing files",msgstr:["Arquivos existentes"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Os arquivos e pastas existentes serão excluídos se não forem selecionados. Se ambos forem selecionados, serão renomeados."]},{msgid:"Existing version",msgstr:["Versão existente"]},{msgid:"Failed to set nickname.",msgstr:["Falha ao definir apelido."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os arquivos e pastas que você marca como favoritos aparecerão aqui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Arquivos e pastas que você modificou recentemente aparecerão aqui."]},{msgid:"Filter file list",msgstr:["Filtrar lista de arquivos"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nomes de pasta não podem terminar com "{extension}".']},{msgid:"Guest identification",msgstr:["Identificação de convidados"]},{msgid:"Home",msgstr:["Início"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Nome de pasta inválido."]},{msgid:"Invalid name.",msgstr:["Nome inválido."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Já existem itens com o mesmo nome em {dirname}; selecione qual deles deseja manter."]},{msgid:"Keep both",msgstr:["Manter ambos"]},{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover para {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes podem ter no máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Nomes não podem estar vazios."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nomes não podem terminar com "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nomes não podem começar com um ponto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New files",msgstr:["Novos arquivos"]},{msgid:"New folder",msgstr:["Nova pasta"]},{msgid:"New folder name",msgstr:["Novo nome de pasta"]},{msgid:"New version",msgstr:["Nova versão"]},{msgid:"No files in here",msgstr:["Nenhum arquivo aqui"]},{msgid:"No files matching your filter were found.",msgstr:["Nenhum arquivo correspondente ao seu filtro foi encontrado."]},{msgid:"No matching files",msgstr:["Nenhum arquivo correspondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Digite um nome com pelo menos 2 caracteres."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Replace",msgstr:["Substituir"]},{msgid:"Select all checkboxes",msgstr:["Selecione todas as caixas de seleção"]},{msgid:"Select all entries",msgstr:["Selecionar todas as entradas"]},{msgid:"Select entry",msgstr:["Selecionar entrada"]},{msgid:"Select file to keep",msgstr:["Selecione o arquivo a ser mantido"]},{msgid:"Select files to keep",msgstr:["Selecione os arquivos a serem mantidos"]},{msgid:"Select the row for {nodename}",msgstr:["Selecionar a linha para {nodename}"]},{msgid:"Size",msgstr:["Tamanho"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorar %n arquivo","Ignorar %n de arquivos","Ignorar %n arquivos"]},{msgid:"Submit name",msgstr:["Enviar nome"]},{msgid:"Success: {message}",msgstr:["Sucesso: {message}"]},{msgid:"Undo",msgstr:["Desfazer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Faça upload de algum conteúdo ou sincronize com seus dispositivos!"]},{msgid:"Warning: {message}",msgstr:["Aviso: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando uma nova pasta for selecionada, quaisquer arquivos conflitantes contidos nela também serão sobrescritos."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Quando uma nova pasta for selecionada, todos os arquivos contidos nela também serão sobrescritos."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma nova pasta for selecionada, o conteúdo é gravado na pasta existente e é realizada uma resolução recursiva de conflitos."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Você está atualmente identificado como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["No momento, você não está identificado."]},{msgid:"You cannot leave the name empty.",msgstr:["Você não pode deixar o nome vazio."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Você precisa escolher pelo menos uma solução para o conflito"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}]},{language:"pt_PT",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" não é permitido dentro de um nome de pasta.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" não é permitido dentro de um nome.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" não é um nome permitido.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" é um nome reservado e não é permitido para nomes de pasta.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" é um nome reservado e não é permitido.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ficheiro em conflito","%n ficheiros em conflito","%n ficheiros em conflito"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ficheiro em conflito em {dirname}","%n ficheiros em conflito em {dirname}","%n ficheiros em conflito em {dirname}"]},{msgid:"All files",msgstr:["Todos os ficheiros"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operação"]},{msgid:"Choose",msgstr:["Escolher"]},{msgid:"Choose {file}",msgstr:["Escolher {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escolha %n ficheiro","Escolha %n ficheiros","Escolha %n ficheiros"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar para {target}"]},{msgid:"Could not create the new folder",msgstr:["Não foi possível criar a nova pasta "]},{msgid:"Could not load files settings",msgstr:["Não foi possível carregar as definições dos ficheiros"]},{msgid:"Could not load files views",msgstr:["Não foi possível carregar as visualizações dos ficheiros"]},{msgid:"Create directory",msgstr:["Criar pasta"]},{msgid:"Current view selector",msgstr:["Seletor de visualização atual"]},{msgid:"Enter your name",msgstr:["Introduza o seu nome"]},{msgid:"Existing version",msgstr:["Versão existente"]},{msgid:"Failed to set nickname.",msgstr:["Falha ao definir o nome alternativo."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os ficheiros e as pastas que marcar como favoritos aparecerão aqui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Os ficheiros e as pastas que modificou recentemente aparecerão aqui."]},{msgid:"Filter file list",msgstr:["Filtrar lista de ficheiros"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nomes de pasta não podem terminar em "{extension}".']},{msgid:"Guest identification",msgstr:["Identificação de convidado"]},{msgid:"Home",msgstr:["Início"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, um número será adicionado ao nome do ficheiro recebido."]},{msgid:"Invalid folder name.",msgstr:["Nome de pasta inválido."]},{msgid:"Invalid name.",msgstr:["Nome inválido."]},{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover para {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes podem ter no máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["O nome não pode ficar em branco."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nomes não podem terminar em "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Os nomes não podem começar por um ponto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova pasta"]},{msgid:"New folder name",msgstr:["Novo nome da pasta"]},{msgid:"New version",msgstr:["Nova versão"]},{msgid:"No files in here",msgstr:["Sem ficheiros aqui"]},{msgid:"No files matching your filter were found.",msgstr:["Não foi encontrado nenhum ficheiro correspondente ao seu filtro."]},{msgid:"No matching files",msgstr:["Nenhum ficheiro correspondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Introduza um nome com, pelo menos, 2 caracteres."]},{msgid:"Recent",msgstr:["Recentes"]},{msgid:"Select all checkboxes",msgstr:["Selecione todas as caixas de seleção"]},{msgid:"Select all entries",msgstr:["Selecionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Selecione todos os ficheiros existentes"]},{msgid:"Select all new files",msgstr:["Selecione todos os novos ficheiros"]},{msgid:"Select entry",msgstr:["Selecionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Selecione a linha para {nodename}"]},{msgid:"Size",msgstr:["Tamanho"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorar %n ficheiro","Ignorar %n ficheiros","Ignorar %n ficheiros"]},{msgid:"Skip this file",msgstr:["Ignorar este ficheiro"]},{msgid:"Submit name",msgstr:["Submeter nome"]},{msgid:"Undo",msgstr:["Anular"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Envie algum conteúdo ou sincronize com os seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, quaisquer ficheiros conflituantes dentro da mesma serão também sobrescritos."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, todos os ficheiros nela contidos serão também sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e é realizada uma resolução recursiva de conflitos."]},{msgid:"Which files do you want to keep?",msgstr:["Quais os ficheiros que deseja manter?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Atualmente está identificado como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Atualmente, não está identificado."]},{msgid:"You cannot leave the name empty.",msgstr:["Não pode deixar o nome em branco."]},{msgid:"You need to choose at least one conflict solution",msgstr:["É preciso escolher pelo menos uma solução para o conflito."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["É necessário selecionar pelo menos uma versão de cada ficheiro para continuar."]}]},{language:"ro",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" este un nume de director invalid.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nu este un nume de director permis']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" nu este permis în numele unui director.']},{msgid:"All files",msgstr:["Toate fișierele"]},{msgid:"Choose",msgstr:["Alege"]},{msgid:"Choose {file}",msgstr:["Alege {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Alege %n fișier","Alege %n fișiere","Alege %n fișiere"]},{msgid:"Copy",msgstr:["Copiază"]},{msgid:"Copy to {target}",msgstr:["Copiază în {target}"]},{msgid:"Could not create the new folder",msgstr:["Nu s-a putut crea noul director"]},{msgid:"Could not load files settings",msgstr:["Nu s-au putut încărca setările fișierelor"]},{msgid:"Could not load files views",msgstr:["Nu s-au putut încărca vizualizările fișierelor"]},{msgid:"Create directory",msgstr:["Creează director"]},{msgid:"Current view selector",msgstr:["Selectorul curent al vizualizării"]},{msgid:"Favorites",msgstr:["Favorite"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Fișiere și directoare pe care le marcați ca favorite vor apărea aici."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Fișiere și directoare pe care le-ați modificat recent vor apărea aici."]},{msgid:"Filter file list",msgstr:["Filtrează lista de fișiere"]},{msgid:"Folder name cannot be empty.",msgstr:["Numele de director nu poate fi necompletat."]},{msgid:"Home",msgstr:["Acasă"]},{msgid:"Modified",msgstr:["Modificat"]},{msgid:"Move",msgstr:["Mută"]},{msgid:"Move to {target}",msgstr:["Mută către {target}"]},{msgid:"Name",msgstr:["Nume"]},{msgid:"New",msgstr:["Nou"]},{msgid:"New folder",msgstr:["Director nou"]},{msgid:"New folder name",msgstr:["Numele noului director"]},{msgid:"No files in here",msgstr:["Nu există fișiere"]},{msgid:"No files matching your filter were found.",msgstr:["Nu există fișiere potrivite pentru filtrul selectat"]},{msgid:"No matching files",msgstr:["Nu există fișiere potrivite"]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all entries",msgstr:["Selectează toate înregistrările"]},{msgid:"Select entry",msgstr:["Selectează înregistrarea"]},{msgid:"Select the row for {nodename}",msgstr:["Selectează rândul pentru {nodename}"]},{msgid:"Size",msgstr:["Mărime"]},{msgid:"Undo",msgstr:["Anulează"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Încărcați conținut sau sincronizați cu dispozitivele dumneavoastră!"]}]},{language:"ru",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" не допускается в названии папки.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не допускается внутри имени.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" — недопустимое имя.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" — зарезервированное имя, недопустимое для имени папки.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" — зарезервированное и недопустимое имя.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфликт файла","%n конфликта файлов","%n конфликтов файлов","%n конфликтов файлов"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфликт файлов в {dirname}","%n конфликта файлов в {dirname}","%n конфликтов файлов в {dirname}","%n конфликтов файлов в {dirname}"]},{msgid:"All files",msgstr:["Все файлы"]},{msgid:"Cancel",msgstr:["Отмена"]},{msgid:"Cancel the entire operation",msgstr:["Отменить всю операцию"]},{msgid:"Choose",msgstr:["Выбрать"]},{msgid:"Choose {file}",msgstr:["Выбрать «{file}»"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Выбрать %n файл","Выбрать %n файла","Выбрать %n файлов","Выбрать %n файлов"]},{msgid:"Confirm",msgstr:["Подтвердить"]},{msgid:"Continue",msgstr:["Продолжить"]},{msgid:"Copy",msgstr:["Копировать"]},{msgid:"Copy to {target}",msgstr:["Копировать в «{target}»"]},{msgid:"Could not create the new folder",msgstr:["Не удалось создать новую папку"]},{msgid:"Could not load files settings",msgstr:["Не удалось загрузить настройки файлов"]},{msgid:"Could not load files views",msgstr:["Не удалось загрузить конфигурацию просмотра файлов"]},{msgid:"Create directory",msgstr:["Создать папку"]},{msgid:"Current view selector",msgstr:["Переключатель текущего вида"]},{msgid:"Enter your name",msgstr:["Введите ваше имя"]},{msgid:"Existing version",msgstr:["Текущая версия"]},{msgid:"Failed to set nickname.",msgstr:["Не удалось задать никнейм."]},{msgid:"Favorites",msgstr:["Избранное"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Здесь будут отображаться файлы и папки, которые вы пометили как избранные."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Здесь будут отображаться файлы и папки, которые вы недавно изменили."]},{msgid:"Filter file list",msgstr:["Фильтровать список файлов"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Имена папок не могут оканчиваться на "{extension}".']},{msgid:"Guest identification",msgstr:["Гостевая идентификация"]},{msgid:"Home",msgstr:["Домой"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени входящего файла будет добавлен номер."]},{msgid:"Invalid folder name.",msgstr:["Недопустимое имя папки."]},{msgid:"Invalid name.",msgstr:["Недопустимое имя."]},{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},{msgid:"Modified",msgstr:["Изменен"]},{msgid:"Move",msgstr:["Переместить"]},{msgid:"Move to {target}",msgstr:["Переместить в «{target}»"]},{msgid:"Name",msgstr:["Имя"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Имена не могут быть длиннее 64 символов."]},{msgid:"Names must not be empty.",msgstr:["Имена не могут быть пустыми."]},{msgid:'Names must not end with "{extension}".',msgstr:['Имена не могут оканчиваться на "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Имена не должны начинаться с точки."]},{msgid:"New",msgstr:["Новый"]},{msgid:"New folder",msgstr:["Новая папка"]},{msgid:"New folder name",msgstr:["Имя новой папки"]},{msgid:"New version",msgstr:["Новая версия"]},{msgid:"No files in here",msgstr:["Здесь нет файлов"]},{msgid:"No files matching your filter were found.",msgstr:["Файлы, соответствующие вашему фильтру, не найдены."]},{msgid:"No matching files",msgstr:["Нет подходящих файлов"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Введите имя длиной не менее 2 символов."]},{msgid:"Recent",msgstr:["Недавний"]},{msgid:"Select all checkboxes",msgstr:["Выбрать все флажки"]},{msgid:"Select all entries",msgstr:["Выбрать все записи"]},{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},{msgid:"Select entry",msgstr:["Выбрать запись"]},{msgid:"Select the row for {nodename}",msgstr:["Выбрать строку для «{nodename}»"]},{msgid:"Size",msgstr:["Размер"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Пропустить %n файл","Пропустить %n файла","Пропустить %n файлов","Пропустить %n файлов"]},{msgid:"Skip this file",msgstr:["Пропустить файл"]},{msgid:"Submit name",msgstr:["Отправить имя"]},{msgid:"Undo",msgstr:["Отменить"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Загрузите контент или синхронизируйте его со своими устройствами!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все файлы в ней также будут перезаписаны."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов."]},{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Вы идентифицированы как {nickname}."]},{msgid:"You are currently not identified.",msgstr:["В данный момент вы не идентифицированы."]},{msgid:"You cannot leave the name empty.",msgstr:["Вы не можете оставить имя пустым."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Вам нужно выбрать хотя бы одно решение конфликта"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать хотя бы одну версию каждого файла."]}]},{language:"sk_SK",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" nie je povolené v názve priečinka.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" nie je povolené v rámci mena.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nie je povolený názov.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ je rezervované meno a nie je povolené na názvy priečinkov."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" je rezervované meno a nie je povolené.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n konflikt súborov","%n konflikty súborov","%n konfliktov súborov","%n konflikty súborov"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konflikt súborov v {dirname}","%n konflikty súborov v {dirname}","%n konfliktov súborov v {dirname}","%n konfliktov súborov v {dirname}"]},{msgid:"All files",msgstr:["Všetky súbory"]},{msgid:"Cancel",msgstr:["Zrušiť"]},{msgid:"Cancel the entire operation",msgstr:["Zrušiť celú operáciu"]},{msgid:"Choose",msgstr:["Vybrať"]},{msgid:"Choose {file}",msgstr:["Vybrať {súbor}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vybraný %n súbor","Vybrané %n súbory","Vybraných %n súborov","Vybraných %n súborov"]},{msgid:"Confirm",msgstr:["Potvrdiť"]},{msgid:"Continue",msgstr:["Pokračovať"]},{msgid:"Copy",msgstr:["Kopírovať"]},{msgid:"Copy to {target}",msgstr:["Kopírovať do {umiestnenia}"]},{msgid:"Could not create the new folder",msgstr:["Nepodarilo sa vytvoriť nový priečinok"]},{msgid:"Could not load files settings",msgstr:["Nepodarilo sa načítať nastavenia súborov"]},{msgid:"Could not load files views",msgstr:["Nepodarilo sa načítať pohľady súborov"]},{msgid:"Create directory",msgstr:["Vytvoriť adresár"]},{msgid:"Current view selector",msgstr:["Výber aktuálneho zobrazenia"]},{msgid:"Enter your name",msgstr:["Zadajte svoje meno"]},{msgid:"Existing version",msgstr:["Existujúca verzia"]},{msgid:"Failed to set nickname.",msgstr:["Nepodarilo sa nastaviť prezývku."]},{msgid:"Favorites",msgstr:["Obľúbené"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tu sa zobrazia súbory a priečinky, ktoré označíte ako obľúbené."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Tu sa zobrazia súbory a priečinky, ktoré ste nedávno upravili."]},{msgid:"Filter file list",msgstr:["Filtrovať zoznam súborov"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Názvy priečinkov nesmú končiť na "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikácia hosťa"]},{msgid:"Home",msgstr:["Domov"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ak vyberiete obe verzie, prichádzajúci súbor bude mať k svojmu názvu pridané číslo."]},{msgid:"Invalid folder name.",msgstr:["Neplatný názov priečinka."]},{msgid:"Invalid name.",msgstr:["Neplatné meno."]},{msgid:"Last modified date unknown",msgstr:["Posledná zmena dátumu neznáma"]},{msgid:"Modified",msgstr:["Upravené"]},{msgid:"Move",msgstr:["Prejsť"]},{msgid:"Move to {target}",msgstr:["Prejsť na {umiestnenie}"]},{msgid:"Name",msgstr:["Názov"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Mená môžu mať maximálne 64 znakov."]},{msgid:"Names must not be empty.",msgstr:["Mená nesmú byť prázdne."]},{msgid:'Names must not end with "{extension}".',msgstr:['Mená nesmú končiť "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Mená nesmú začínať bodkou."]},{msgid:"New",msgstr:["Pridať"]},{msgid:"New folder",msgstr:["Pridať priečinok"]},{msgid:"New folder name",msgstr:["Pridať názov priečinka"]},{msgid:"New version",msgstr:["Nová verzia"]},{msgid:"No files in here",msgstr:["Nie sú tu žiadne súbory"]},{msgid:"No files matching your filter were found.",msgstr:["Nenašli sa žiadne súbory zodpovedajúce vášmu filtru."]},{msgid:"No matching files",msgstr:["Žiadne zodpovedajúce súbory"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Zadajte meno s aspoň 2 znakmi."]},{msgid:"Recent",msgstr:["Nedávne"]},{msgid:"Select all checkboxes",msgstr:["Vyberte všetky zaškrtávacie políčka"]},{msgid:"Select all entries",msgstr:["Vybrať všetky položky"]},{msgid:"Select all existing files",msgstr:["Vybrať všetky existujúce súbory"]},{msgid:"Select all new files",msgstr:["Vybrať všetky nové súbory"]},{msgid:"Select entry",msgstr:["Vybrať položku"]},{msgid:"Select the row for {nodename}",msgstr:["Vyberte riadok pre {názov uzla}"]},{msgid:"Size",msgstr:["Veľkosť"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Preskočiť %n súbor","Preskočiť %n súbory","Preskočiť %n súborov","Preskočiť %n súbory"]},{msgid:"Skip this file",msgstr:["Preskočiť tento súbor"]},{msgid:"Submit name",msgstr:["Zadať meno"]},{msgid:"Undo",msgstr:["Späť"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Nahrajte nejaký obsah alebo synchronizujte so svojimi zariadeniami!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Keď je vybraná prichádzajúca složka, všetky konfliktné súbory v nej budú taktiež prepísané."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Keď je vybraná prichádzajúca zložka, obsah sa zapíše do existujúcej zložky a vykoná sa rekurzívne riešenie konfliktov."]},{msgid:"Which files do you want to keep?",msgstr:["Ktoré súbory chcete zachovať?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Momentálne ste identifikovaný ako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Momentálne nie ste identifikovaný."]},{msgid:"You cannot leave the name empty.",msgstr:["Nemôžete nechať meno prázdne."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Musíte si vybrať aspoň jedno riešenie konfliktu."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Musíte vybrať aspoň jednu verziu každého súboru, aby ste mohli pokračovať."]}]},{language:"sl",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} je neveljavno ime mape."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} ni dovoljeno ime mape"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ni dovoljen v imenu mape.']},{msgid:"All files",msgstr:["Vse datoteke"]},{msgid:"Choose",msgstr:["Izberi"]},{msgid:"Choose {file}",msgstr:["Izberi {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izberi %n datoteko","Izberi %n datoteki","Izberi %n datotek","Izberi %n datotek"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj v {target}"]},{msgid:"Could not create the new folder",msgstr:["Nisem mogel ustvariti nove mape"]},{msgid:"Could not load files settings",msgstr:["NIsem mogel naložiti nastavitev datotek"]},{msgid:"Could not load files views",msgstr:["Nisem mogel naložiti pogledov datotek"]},{msgid:"Create directory",msgstr:["Ustvari mapo"]},{msgid:"Current view selector",msgstr:["Izbirnik trenutnega pogleda"]},{msgid:"Favorites",msgstr:["Priljubljene"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Datoteke in mape ki jih označite kot priljubljene se bodo prikazale tukaj."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Daoteke in mape ki ste jih pred kratkim spremenili se bodo prikazale tukaj."]},{msgid:"Filter file list",msgstr:["Filtriraj seznam datotek"]},{msgid:"Folder name cannot be empty.",msgstr:["Ime mape ne more biti prazno"]},{msgid:"Home",msgstr:["Domov"]},{msgid:"Modified",msgstr:["Spremenjeno"]},{msgid:"Move",msgstr:["Premakni"]},{msgid:"Move to {target}",msgstr:["Premakni v {target}"]},{msgid:"Name",msgstr:["Ime"]},{msgid:"New",msgstr:["Nov"]},{msgid:"New folder",msgstr:["Nova mapa"]},{msgid:"New folder name",msgstr:["Novo ime mape"]},{msgid:"No files in here",msgstr:["Tukaj ni datotek"]},{msgid:"No files matching your filter were found.",msgstr:["Ni bilo najdenih ujemajočih datotek glede na vaš filter."]},{msgid:"No matching files",msgstr:["Ni ujemajočih datotek"]},{msgid:"Recent",msgstr:["Nedavne"]},{msgid:"Select all entries",msgstr:["Izberi vse vnose"]},{msgid:"Select entry",msgstr:["Izberi vnos"]},{msgid:"Select the row for {nodename}",msgstr:["Izberi vrstico za {nodename}"]},{msgid:"Size",msgstr:["Velikost"]},{msgid:"Undo",msgstr:["Razveljavi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Naloži nekaj vsebine ali sinhroniziraj s svojimi napravami!"]}]},{language:"sr",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}” није дозвољено унутар имена."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}” није дозвољено име."]},{msgid:'"{name}" is an invalid folder name.',msgstr:["„{name}” није исправно име фолдера."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["„{name}” није дозвољено име за фолдер."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}” је резервисано име и није дозвољено."]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["„/” није дозвољено унутар имена фолдера."]},{msgid:"All files",msgstr:["Сви фајлови"]},{msgid:"Cancel",msgstr:["Откажи"]},{msgid:"Choose",msgstr:["Изаберите"]},{msgid:"Choose {file}",msgstr:["Изаберите {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Изаберите %n фајл","Изаберите %n фајла","Изаберите %n фајлова"]},{msgid:"Copy",msgstr:["Копирај"]},{msgid:"Copy to {target}",msgstr:["Копирај у {target}"]},{msgid:"Could not create the new folder",msgstr:["Није могао да се креира нови фолдер"]},{msgid:"Could not load files settings",msgstr:["Не могу да се учитају подешавања фајлова"]},{msgid:"Could not load files views",msgstr:["Не могу да се учитају прикази фајлова"]},{msgid:"Create directory",msgstr:["Креирај директоријум"]},{msgid:"Current view selector",msgstr:["Бирач тренутног приказа"]},{msgid:"Enter your name",msgstr:["Унесите своје име"]},{msgid:"Failed to set nickname.",msgstr:["Није успело постављање надимка."]},{msgid:"Favorites",msgstr:["Омиљено"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Овде ће се појавити фајлови и фолдери које сте означили као омиљене."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Овде ће се појавити фајлови и фолдери који се се недавно изменили."]},{msgid:"Filter file list",msgstr:["Фитрирање листе фајлова"]},{msgid:"Folder name cannot be empty.",msgstr:["Име фолдера не може бити празно."]},{msgid:"Guest identification",msgstr:["Идентификација госта"]},{msgid:"Home",msgstr:["Почетак"]},{msgid:"Invalid name.",msgstr:["Неисправно име."]},{msgid:"Modified",msgstr:["Измењено"]},{msgid:"Move",msgstr:["Премести"]},{msgid:"Move to {target}",msgstr:["Премести у {target}"]},{msgid:"Name",msgstr:["Име"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Највећа дужина имена може бити 64 карактера."]},{msgid:"Names must not be empty.",msgstr:["Имена не смеју да буду празна."]},{msgid:'Names must not end with "{extension}".',msgstr:["Имена не смеју да се завршавају на „{extension}”."]},{msgid:"Names must not start with a dot.",msgstr:["Имена не смеју да почињу тачком."]},{msgid:"New",msgstr:["Ново"]},{msgid:"New folder",msgstr:["Нови фолдер"]},{msgid:"New folder name",msgstr:["Име новог фолдера"]},{msgid:"No files in here",msgstr:["Овде нема фајлова"]},{msgid:"No files matching your filter were found.",msgstr:["Није пронађен ниједан фајл који задовољава ваш филтер."]},{msgid:"No matching files",msgstr:["Нема таквих фајлова"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Молимо вас да унесете име од барем два карактера."]},{msgid:"Recent",msgstr:["Скорашње"]},{msgid:"Select all entries",msgstr:["Изаберите све ставке"]},{msgid:"Select entry",msgstr:["Изаберите ставку"]},{msgid:"Select the row for {nodename}",msgstr:["Изаберите ред за {nodename}"]},{msgid:"Size",msgstr:["Величина"]},{msgid:"Submit name",msgstr:["Предај име"]},{msgid:"Undo",msgstr:["Поништи"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Отпремите нешто или синхронизујте са својим уређајима!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Тренутно се идентификујете као {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Тренутно немате идентификацију."]},{msgid:"You cannot leave the name empty.",msgstr:["Име не можете да оставите празно."]}]},{language:"sr@latin",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["„{name}” je neispravan naziv foldera."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["„{name}” je nedozvoljen naziv foldera."]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["„/” se ne može koristiti unutar naziva foldera."]},{msgid:"All files",msgstr:["Svi fajlovi"]},{msgid:"Choose",msgstr:["Izaberite"]},{msgid:"Choose {file}",msgstr:["Izaberite {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izaberite %n fajl","Izaberite %n fajla","Izaberite %n fajlova"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj u {target}"]},{msgid:"Could not create the new folder",msgstr:["Neuspešno kreiranje novog foldera"]},{msgid:"Could not load files settings",msgstr:["Neuspešno učitavanje podešavanja fajlova"]},{msgid:"Could not load files views",msgstr:["Neuspešno učitavanje prikaza fajlova"]},{msgid:"Create directory",msgstr:["Kreiraj direktorijum"]},{msgid:"Current view selector",msgstr:["Birač trenutnog prikaza"]},{msgid:"Favorites",msgstr:["Omiljeno"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Lista omiljenih fajlova i foldera."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Lista fajlova i foldera sa skorašnjim izmenama."]},{msgid:"Filter file list",msgstr:["Fitriranje liste fajlova"]},{msgid:"Folder name cannot be empty.",msgstr:["Naziv foldera ne može biti prazan."]},{msgid:"Home",msgstr:["Početak"]},{msgid:"Modified",msgstr:["Izmenjeno"]},{msgid:"Move",msgstr:["Premesti"]},{msgid:"Move to {target}",msgstr:["Premesti u {target}"]},{msgid:"Name",msgstr:["Naziv"]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Novi folder"]},{msgid:"New folder name",msgstr:["Naziv novog foldera"]},{msgid:"No files in here",msgstr:["Bez fajlova"]},{msgid:"No files matching your filter were found.",msgstr:["Nema fajlova koji zadovoljavaju uslove filtera."]},{msgid:"No matching files",msgstr:["Nema takvih fajlova"]},{msgid:"Recent",msgstr:["Skorašnje"]},{msgid:"Select all entries",msgstr:["Izaberite sve stavke"]},{msgid:"Select entry",msgstr:["Izaberite stavku"]},{msgid:"Select the row for {nodename}",msgstr:["Izaberite red za {nodename}"]},{msgid:"Size",msgstr:["Veličina"]},{msgid:"Undo",msgstr:["Vrati"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Otpremite sadržaj ili sinhronizujte sa svojim uređajima!"]}]},{language:"sv",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" får inte ingå i ett mappnamn.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" får inte ingå i ett namn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" får inte användas som namn.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" är ett reserverat namn och får inte användas som mappnamn.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" är ett reserverat namn och får inte användas.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n filkonflikter"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n filkonflikt i {dirname}","%n filkonflikter i {dirname}"]},{msgid:"All files",msgstr:["Alla filer"]},{msgid:"Cancel",msgstr:["Avbryt"]},{msgid:"Cancel the entire operation",msgstr:["Avbryt hela åtgärden"]},{msgid:"Choose",msgstr:["Välj"]},{msgid:"Choose {file}",msgstr:["Välj {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Välj %n fil","Välj %n filer"]},{msgid:"Confirm",msgstr:["Bekräfta"]},{msgid:"Continue",msgstr:["Fortsätt"]},{msgid:"Copy",msgstr:["Kopiera"]},{msgid:"Copy to {target}",msgstr:["Kopiera till {target}"]},{msgid:"Could not create the new folder",msgstr:["Det gick inte att skapa den nya mappen"]},{msgid:"Could not load files settings",msgstr:["Det gick inte att läsa in filinställningarna"]},{msgid:"Could not load files views",msgstr:["Det gick inte att läsa in filvyerna"]},{msgid:"Create directory",msgstr:["Skapa mapp"]},{msgid:"Current view selector",msgstr:["Väljare för aktuell vy"]},{msgid:"Enter your name",msgstr:["Ange ditt namn"]},{msgid:"Existing version",msgstr:["Befintlig version"]},{msgid:"Failed to set nickname.",msgstr:["Det gick inte att ange smeknamnet."]},{msgid:"Favorites",msgstr:["Favoriter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer och mappar som du markerar som favoriter visas här."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer och mappar som du nyligen har ändrat visas här."]},{msgid:"Filter file list",msgstr:["Filtrera fillistan"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mappnamn får inte sluta med "{extension}".']},{msgid:"Guest identification",msgstr:["Gästidentifiering"]},{msgid:"Home",msgstr:["Hem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Om du väljer båda versionerna läggs ett nummer till i namnet på den inkommande filen."]},{msgid:"Invalid folder name.",msgstr:["Ogiltigt mappnamn."]},{msgid:"Invalid name.",msgstr:["Ogiltigt namn."]},{msgid:"Last modified date unknown",msgstr:["Datumet för senaste ändringen är okänt"]},{msgid:"Modified",msgstr:["Ändrad"]},{msgid:"Move",msgstr:["Flytta"]},{msgid:"Move to {target}",msgstr:["Flytta till {target}"]},{msgid:"Name",msgstr:["Namn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namn får vara högst 64 tecken långa."]},{msgid:"Names must not be empty.",msgstr:["Namn får inte vara tomma."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namn får inte sluta med "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Namn får inte börja med en punkt."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mapp"]},{msgid:"New folder name",msgstr:["Nytt mappnamn"]},{msgid:"New version",msgstr:["Ny version"]},{msgid:"No files in here",msgstr:["Det finns inga filer här"]},{msgid:"No files matching your filter were found.",msgstr:["Inga filer som matchar ditt filter hittades."]},{msgid:"No matching files",msgstr:["Inga matchande filer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Ange ett namn med minst 2 tecken."]},{msgid:"Recent",msgstr:["Senaste"]},{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},{msgid:"Select all entries",msgstr:["Markera alla poster"]},{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},{msgid:"Select entry",msgstr:["Markera post"]},{msgid:"Select the row for {nodename}",msgstr:["Markera raden för {nodename}"]},{msgid:"Size",msgstr:["Storlek"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Hoppa över %n fil","Hoppa över %n filer"]},{msgid:"Skip this file",msgstr:["Hoppa över den här filen"]},{msgid:"Submit name",msgstr:["Bekräfta namnet"]},{msgid:"Undo",msgstr:["Ångra"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ladda upp innehåll eller synkronisera med dina enheter!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs kommer även alla filer i den som har konflikter att skrivas över."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs kommer även alla filer i den att skrivas över."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och konflikterna löses rekursivt."]},{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du är identifierad som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du är inte identifierad."]},{msgid:"You cannot leave the name empty.",msgstr:["Namnet får inte lämnas tomt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du måste välja minst en lösning på konflikten"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att kunna fortsätta."]}]},{language:"tr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" karakteri bir klasör adında kullanılamaz.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['Bir ad içinde "{char}" karakteri kullanılamaz.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" adına izin verilmiyor.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" adı sistem için ayrılmış olduğundan klasör adlarında kullanılamaz.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" adı sistem için ayrılmış olduğundan kullanılamaz.']},{msgid:"All files",msgstr:["Tüm dosyalar"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["{dirname} içinde aynı adlı bir öge zaten var."]},{msgid:"Cancel",msgstr:["İptal"]},{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},{msgid:"Choose",msgstr:["Seçin"]},{msgid:"Choose {file}",msgstr:["{file} seçin"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n dosya seçin","%n dosya seçin"]},{msgid:"Close",msgstr:["Kapat"]},{msgid:"Confirm",msgstr:["Onayla"]},{msgid:"Continue",msgstr:["İlerle"]},{msgid:"Copy",msgstr:["Kopyala"]},{msgid:"Copy to {target}",msgstr:["{target} üzerine kopyala"]},{msgid:"Could not create the new folder",msgstr:["Yeni klasör oluşturulamadı"]},{msgid:"Could not load files settings",msgstr:["Dosyalar uygulamasının ayarları yüklenemedi"]},{msgid:"Could not load files views",msgstr:["Dosyalar uygulamasının görünümleri yüklenemedi"]},{msgid:"Create directory",msgstr:["Klasör oluştur"]},{msgid:"Current view selector",msgstr:["Geçerli görünüm seçici"]},{msgid:"Enter your name",msgstr:["Adınızı yazın"]},{msgid:"Error: {message}",msgstr:["Hata: {message}"]},{msgid:"Existing files",msgstr:["Var olan dosyalar"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["İşaretlenmediğinde var olan dosyalar ve klasörler silinir. İkisi de seçilirse, bu ögeler yeniden adlandırılır."]},{msgid:"Existing version",msgstr:["Var olan sürüm"]},{msgid:"Failed to set nickname.",msgstr:["Takma ad ayarlanamadı."]},{msgid:"Favorites",msgstr:["Sık kullanılanlar"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Sık kullanılan olarak seçtiğiniz dosyalar burada görüntülenir."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Son zamanlarda değiştirdiğiniz dosya ve klasörler burada görüntülenir."]},{msgid:"Filter file list",msgstr:["Dosya listesini süz"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Klasör adları "{extension}" ile bitemez.']},{msgid:"Guest identification",msgstr:["Konuk kimliği"]},{msgid:"Home",msgstr:["Giriş"]},{msgid:"Info: {message}",msgstr:["Bilgi: {message}"]},{msgid:"Invalid folder name.",msgstr:["Klasör adı geçersiz."]},{msgid:"Invalid name.",msgstr:["Ad geçersiz."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["{dirname} içinde aynı adlı ögeler var, hangilerinin tutulacağını seçin."]},{msgid:"Keep both",msgstr:["İkisi de tutulsun"]},{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor."]},{msgid:"Modified",msgstr:["Değiştirilme"]},{msgid:"Move",msgstr:["Taşı"]},{msgid:"Move to {target}",msgstr:["{target} üzerine taşı"]},{msgid:"Name",msgstr:["Ad"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Adlar en fazla 64 karakter uzunluğunda olabilir."]},{msgid:"Names must not be empty.",msgstr:["Ad boş olamaz."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ad "{extension}" ile bitemez.']},{msgid:"Names must not start with a dot.",msgstr:["Ad nokta karakteri ile başlayamaz."]},{msgid:"New",msgstr:["Yeni"]},{msgid:"New files",msgstr:["Yeni dosyalar"]},{msgid:"New folder",msgstr:["Yeni klasör"]},{msgid:"New folder name",msgstr:["Yeni klasör adı"]},{msgid:"New version",msgstr:["Yeni sürüm"]},{msgid:"No files in here",msgstr:["Burada herhangi bir dosya yok"]},{msgid:"No files matching your filter were found.",msgstr:["Süzgece uyan bir dosya bulunamadı."]},{msgid:"No matching files",msgstr:["Eşleşen bir dosya yok"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Ad en az 2 karakter uzunluğunda olmalıdır."]},{msgid:"Recent",msgstr:["Son kullanılanlar"]},{msgid:"Replace",msgstr:["Değiştir"]},{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},{msgid:"Select all entries",msgstr:["Tüm kayıtları seç"]},{msgid:"Select entry",msgstr:["Kaydı seç"]},{msgid:"Select file to keep",msgstr:["Tutulacak dosyayı seçin"]},{msgid:"Select files to keep",msgstr:["Tutulacak dosyaları seçin"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} satırını seçin"]},{msgid:"Size",msgstr:["Boyut"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n dosyayı atla","%n dosyayı atla"]},{msgid:"Submit name",msgstr:["Adı gönder"]},{msgid:"Success: {message}",msgstr:["Başarı: {message}"]},{msgid:"Undo",msgstr:["Geri al"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Bazı içerikler yükleyin ya da aygıtlarınızla eşitleyin!"]},{msgid:"Warning: {message}",msgstr:["Uyarı: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir yeni klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Bir yeni klasör seçildiğinde, içindeki dosyaların da üzerine yazılır."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bir yeni klasör seçildiğinde, içerik var olan klasöre yazılır ve alt klasörlere çakışma çözümü uygulanır."]},{msgid:"You are currently identified as {nickname}.",msgstr:["{nickname} olarak tanınıyorsunuz."]},{msgid:"You are currently not identified.",msgstr:["Henüz kendinizi tanıtmadınız."]},{msgid:"You cannot leave the name empty.",msgstr:["Ad boş bırakılamaz."]},{msgid:"You need to choose at least one conflict solution",msgstr:["En az bir çakışma çözümü seçmelisiniz"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosaynın en az bir sürümünü seçmelisiniz."]}]},{language:"uk",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["{char} не дозволено всередині назви каталогу."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не дозволено всередині імени.']},{msgid:'"{extension}" is not an allowed name.',msgstr:[`"{extension}" недозволене ім'я.`]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["{segment} є зарезервованим ім'ям і не дозволено для назви каталогу."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:[`"{segment}" зарезервоване ім'я і не дозволено для використання.`]},{msgid:"All files",msgstr:["Всі файли"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Об'єкт з таким ім'ям присутній у {dirname}."]},{msgid:"Cancel",msgstr:["Скасувати"]},{msgid:"Cancel the entire operation",msgstr:["Скасувати всю операцію"]},{msgid:"Choose",msgstr:["Вибрати"]},{msgid:"Choose {file}",msgstr:["Вибрати {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Вибрати %n файл","Вибрати %n файли","Вибрати %n файлів","Вибрати %n файлів"]},{msgid:"Close",msgstr:["Закрити"]},{msgid:"Confirm",msgstr:["Підтвердити"]},{msgid:"Continue",msgstr:["Продовжити"]},{msgid:"Copy",msgstr:["Копіювати"]},{msgid:"Copy to {target}",msgstr:["Копіювати до {target}"]},{msgid:"Could not create the new folder",msgstr:["Не вдалося створити новий каталог"]},{msgid:"Could not load files settings",msgstr:["Не вдалося завантажити налаштування файлів"]},{msgid:"Could not load files views",msgstr:["Не вдалося завантажити подання файлів"]},{msgid:"Create directory",msgstr:["Створити каталог"]},{msgid:"Current view selector",msgstr:["Вибір подання"]},{msgid:"Enter your name",msgstr:["Зазначте ваше ім'я"]},{msgid:"Error: {message}",msgstr:["Помилка: {message}"]},{msgid:"Existing files",msgstr:["Присутні файли"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Присутні файли та каталоги буде вилучено, якщо їх не вибрано. Якщо вибрано обидві версії, то буде перейменовано."]},{msgid:"Existing version",msgstr:["Наявна версія"]},{msgid:"Failed to set nickname.",msgstr:["Не вдалося встановити псевдо."]},{msgid:"Favorites",msgstr:["Із зірочкою"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Тут показуватимуться файли та каталоги, які ви позначите зірочкою."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Тут показуватимуться файли та каталоги, які було нещодавно змінено."]},{msgid:"Filter file list",msgstr:["Фільтрувати список файлів"]},{msgid:'Folder names must not end with "{extension}".',msgstr:[`Ім'я каталогу не може закінчуватися на "{extension}".`]},{msgid:"Guest identification",msgstr:["Ім'я для гостя"]},{msgid:"Home",msgstr:["Домівка"]},{msgid:"Info: {message}",msgstr:["Інформація: {message}"]},{msgid:"Invalid folder name.",msgstr:["Недійсне ім'я каталогу."]},{msgid:"Invalid name.",msgstr:["Недійсне ім'я."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Присутні об'єкти з тотожніми імеами у {dirname}, виберіть, які зберегти."]},{msgid:"Keep both",msgstr:["Зберегти обидва"]},{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},{msgid:"Modified",msgstr:["Змінено"]},{msgid:"Move",msgstr:["Перемістити"]},{msgid:"Move to {target}",msgstr:["Перемістити до {target}"]},{msgid:"Name",msgstr:["Ім'я"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Імена мають мати довжину не більше 64 символів."]},{msgid:"Names must not be empty.",msgstr:["Ім'я не може бути порожнє."]},{msgid:'Names must not end with "{extension}".',msgstr:[`Ім'я не може закінчуватися на "{extension}".`]},{msgid:"Names must not start with a dot.",msgstr:["Ім'я не може починатися з крапки."]},{msgid:"New",msgstr:["Новий"]},{msgid:"New files",msgstr:["Нові файли"]},{msgid:"New folder",msgstr:["Новий каталог"]},{msgid:"New folder name",msgstr:["Ім'я нового каталогу"]},{msgid:"New version",msgstr:["Нова версія"]},{msgid:"No files in here",msgstr:["Тут відсутні файли"]},{msgid:"No files matching your filter were found.",msgstr:["Відсутні збіги за фільтром."]},{msgid:"No matching files",msgstr:["Відсутні збіги файлів."]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Зазначте ім'я довжиною не менше 2 символів"]},{msgid:"Recent",msgstr:["Останні"]},{msgid:"Replace",msgstr:["Замінити"]},{msgid:"Select all checkboxes",msgstr:["Вибрати всі прапорці"]},{msgid:"Select all entries",msgstr:["Вибрати всі записи"]},{msgid:"Select entry",msgstr:["Вибрати запис"]},{msgid:"Select file to keep",msgstr:["Виберіть файл, який потрібно зберегти"]},{msgid:"Select files to keep",msgstr:["Виберіть файли, які потрібно зберегти"]},{msgid:"Select the row for {nodename}",msgstr:["Вибрати рядок для {nodename}"]},{msgid:"Size",msgstr:["Розмір"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Пропустити %n файл","Пропустити %n файли","Пропустити %n файлів","Пропустити %n файлів"]},{msgid:"Submit name",msgstr:["Встановити ім'я"]},{msgid:"Success: {message}",msgstr:["Успішно: {message}"]},{msgid:"Undo",msgstr:["Повернути"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Завантажте вміст або синхронізуйте з вашим пристроєм!"]},{msgid:"Warning: {message}",msgstr:["Увага: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Якщо вибрано новий каталог, то файли з конфліктами буде також перезаписано"]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Якщо вибрано новий каталог, то всі файли в ньому буде перезаписано"]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Якщо вибрано новий каталог, то до нього буде записано всі об'єкти, застосовано рекурсивне розв'язання конфліктів."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Вас визначено як {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Вас не ідентифіковано."]},{msgid:"You cannot leave the name empty.",msgstr:["Потрібно зазначити ім'я."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Треб вибрати щонайменше одне розв'язання конфлікту"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Треба вибрати щонайменше одну версію кожного файлу, щоби продовжити."]}]},{language:"uz",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['Papka nomi ichida "{char}" ga ruxsat berilmaydi.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['Nom ichida "{char}" ga ruxsat berilmagan.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ruxsat etilgan nom emas.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`"{segment}" ajratilgan nom bo'lib, papka nomlari uchun ruxsat berilmagan.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" - zaxiralangan nom va ruxsat berilmaydi.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n fayl ziddiyatli"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} da %n fayl ziddiyati"]},{msgid:"All files",msgstr:["Barcha fayllar"]},{msgid:"Cancel",msgstr:["Bekor qilish"]},{msgid:"Cancel the entire operation",msgstr:["Butun operatsiyani bekor qiling"]},{msgid:"Choose",msgstr:["Tanlang"]},{msgid:"Choose {file}",msgstr:["Tanlang {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Tanlang %n faylni"]},{msgid:"Confirm",msgstr:["Tasdiqlang"]},{msgid:"Continue",msgstr:["Davom eting"]},{msgid:"Copy",msgstr:["Nusxa"]},{msgid:"Copy to {target}",msgstr:[" {target} ga nusxa"]},{msgid:"Could not create the new folder",msgstr:["Yangi jild yaratib bo‘lmadi"]},{msgid:"Could not load files settings",msgstr:["Fayl sozlamalari yuklanmadi"]},{msgid:"Could not load files views",msgstr:["Fayllarni koʻrishni yuklab boʻlmadi"]},{msgid:"Create directory",msgstr:["Katalog yaratish"]},{msgid:"Current view selector",msgstr:["Joriy ko'rinish selektori"]},{msgid:"Enter your name",msgstr:["Ismingizni kiriting"]},{msgid:"Existing version",msgstr:["Mavjud versiya"]},{msgid:"Failed to set nickname.",msgstr:["Taxallusni o‘rnatib bo‘lmadi."]},{msgid:"Favorites",msgstr:["Tanlanganlar"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tanlangan deb belgilagan fayl va papkalar shu yerda koʻrinadi."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Siz yaqinda oʻzgartirgan fayl va papkalar shu yerda koʻrinadi."]},{msgid:"Filter file list",msgstr:["Fayl ro'yxatini filtrlash"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Papka nomlari "{extension}" bilan tugamasligi kerak.']},{msgid:"Guest identification",msgstr:["Foydalanuvchini identifikatsiyalash"]},{msgid:"Home",msgstr:["Uy"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi."]},{msgid:"Invalid folder name.",msgstr:["Jild nomi noto'g'ri."]},{msgid:"Invalid name.",msgstr:["Nomi noto‘g‘ri."]},{msgid:"Last modified date unknown",msgstr:["Oxirgi tahrirlangan sana noma'lum"]},{msgid:"Modified",msgstr:["Modifikatsiyalangan"]},{msgid:"Move",msgstr:["Ko'chirish"]},{msgid:"Move to {target}",msgstr:[" {target} ga ko'chirish"]},{msgid:"Name",msgstr:["Nomi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Ismlar ko'pi bilan 64 ta belgidan iborat bo'lishi mumkin."]},{msgid:"Names must not be empty.",msgstr:["Ismlar bo'sh bo'lmasligi kerak."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ismlar "{extension}" bilan tugamasligi kerak.']},{msgid:"Names must not start with a dot.",msgstr:["Ismlar nuqta bilan boshlanmasligi kerak."]},{msgid:"New",msgstr:["Yangi"]},{msgid:"New folder",msgstr:["Yangi jild"]},{msgid:"New folder name",msgstr:["Yangi jild nomi"]},{msgid:"New version",msgstr:["Yangi versiya"]},{msgid:"No files in here",msgstr:["Fayl mavjud emas"]},{msgid:"No files matching your filter were found.",msgstr:["Filtringizga mos keladigan fayl topilmadi."]},{msgid:"No matching files",msgstr:["Mos fayllar yo'q"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Kamida 2 ta belgidan iborat nom kiriting."]},{msgid:"Recent",msgstr:["Yaqinda"]},{msgid:"Select all checkboxes",msgstr:["Barcha katakchalarni belgilang"]},{msgid:"Select all entries",msgstr:["Barcha yozuvlarni tanlang"]},{msgid:"Select all existing files",msgstr:["Barcha mavjud fayllarni tanlang"]},{msgid:"Select all new files",msgstr:["Barcha yangi fayllarni tanlang"]},{msgid:"Select entry",msgstr:["Yozuvni tanlang"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} uchun qatorni tanlang"]},{msgid:"Size",msgstr:["O`lcham"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n faylni oʻtkazib yuborish"]},{msgid:"Skip this file",msgstr:["Ushbu faylni o'tkazib yuboring"]},{msgid:"Submit name",msgstr:["Ismni tasdiqlang"]},{msgid:"Undo",msgstr:["Bekor qilish"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Qurilmangizga ba'zi kontentni yuklang yoki sinxronlang!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kiruvchi papka tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kiruvchi papka tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi."]},{msgid:"Which files do you want to keep?",msgstr:["Qaysi fayllarni saqlamoqchisiz?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Siz hozirda {nickname} sifatida aniqlangansiz."]},{msgid:"You are currently not identified.",msgstr:["Siz hozirda identifikatsiyadan o'tmagansiz"]},{msgid:"You cannot leave the name empty.",msgstr:["Ism katagini bo'sh qoldirib bo'lmaydi."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Siz kamida bitta mojaro yechimini tanlashingiz kerak"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak."]}]},{language:"vi",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" là tên thư mục không hợp lệ.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"1{name}"không phải là tên thư mục được cho phép']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/"không được phép đặt trong tên thư mục.']},{msgid:"All files",msgstr:["Tất cả tệp"]},{msgid:"Choose",msgstr:["Chọn"]},{msgid:"Choose {file}",msgstr:["Chọn {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Chọn %n tệp"]},{msgid:"Copy",msgstr:["Sao chép"]},{msgid:"Copy to {target}",msgstr:["Sao chép đến {target}"]},{msgid:"Could not create the new folder",msgstr:["Không thể tạo thư mục mới"]},{msgid:"Could not load files settings",msgstr:["Không thể tải tập tin cài đặt"]},{msgid:"Could not load files views",msgstr:["Không thể tải xuống tệp xem"]},{msgid:"Create directory",msgstr:["Tạo thư mục"]},{msgid:"Current view selector",msgstr:["Hiện tại chế độ xem của bộ chọn"]},{msgid:"Favorites",msgstr:["Yêu cầu thích"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Các tập tin và thư mục bạn đánh dấu yêu thích sẽ hiển thị ở đây."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Các tập tin và thư mục bạn sửa đổi gần đây sẽ hiển thị ở đây."]},{msgid:"Filter file list",msgstr:["Filter list file"]},{msgid:"Folder name cannot be empty.",msgstr:["Thư mục tên không được để trống."]},{msgid:"Home",msgstr:["Trang chủ"]},{msgid:"Modified",msgstr:["Đã sửa đổi"]},{msgid:"Move",msgstr:["Di chuyển"]},{msgid:"Move to {target}",msgstr:["Di chuyển đến{target}"]},{msgid:"Name",msgstr:["Tên"]},{msgid:"New",msgstr:["Mới"]},{msgid:"New folder",msgstr:["New thư mục"]},{msgid:"New folder name",msgstr:["New thư mục tên"]},{msgid:"No files in here",msgstr:["No file at here"]},{msgid:"No files matching your filter were found.",msgstr:["Không tìm thấy tệp nào phù hợp với bộ lọc của bạn."]},{msgid:"No matching files",msgstr:["No file phù hợp"]},{msgid:"Recent",msgstr:["Gần đây"]},{msgid:"Select all entries",msgstr:["Choose all items"]},{msgid:"Select entry",msgstr:["Chọn mục nhập"]},{msgid:"Select the row for {nodename}",msgstr:["Choose hang cho{nodename}"]},{msgid:"Size",msgstr:["Kích cỡ"]},{msgid:"Undo",msgstr:["Hoàn tác"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Tải lên một số nội dung hoặc đồng bộ hóa với thiết bị của bạn!"]}]},{language:"zh_CN",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["“{name}” 是无效的文件夹名称。"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["“{name}” 不是允许的文件夹名称"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["文件夹名称中不允许包含 “/”。"]},{msgid:"All files",msgstr:["所有文件"]},{msgid:"Choose",msgstr:["选择"]},{msgid:"Choose {file}",msgstr:["选择 {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["选择 %n 个文件"]},{msgid:"Copy",msgstr:["复制"]},{msgid:"Copy to {target}",msgstr:["复制到 {target}"]},{msgid:"Could not create the new folder",msgstr:["无法创建新文件夹"]},{msgid:"Could not load files settings",msgstr:["无法加载文件设置"]},{msgid:"Could not load files views",msgstr:["无法加载文件视图"]},{msgid:"Create directory",msgstr:["创建目录"]},{msgid:"Current view selector",msgstr:["当前视图选择器"]},{msgid:"Favorites",msgstr:["最爱"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您标记为最爱的文件与文件夹会显示在这里"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的文件与文件夹会显示在这里"]},{msgid:"Filter file list",msgstr:["过滤文件列表"]},{msgid:"Folder name cannot be empty.",msgstr:["文件夹名称不能为空。"]},{msgid:"Home",msgstr:["主目录"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移动"]},{msgid:"Move to {target}",msgstr:["移动至 {target}"]},{msgid:"Name",msgstr:["名称"]},{msgid:"New",msgstr:["新建"]},{msgid:"New folder",msgstr:["新文件夹"]},{msgid:"New folder name",msgstr:["新文件夹名称"]},{msgid:"No files in here",msgstr:["此处无文件"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您过滤条件的文件"]},{msgid:"No matching files",msgstr:["无符合的文件"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all entries",msgstr:["选择所有条目"]},{msgid:"Select entry",msgstr:["选择条目"]},{msgid:"Select the row for {nodename}",msgstr:["选择 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Undo",msgstr:[" 撤消"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上传一些项目或与您的设备同步!"]}]},{language:"zh_HK",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["資料夾名稱中不允許使用「{char}」。"]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['名稱中不能使用 "{char}"。']},{msgid:'"{extension}" is not an allowed name.',msgstr:["「{extension}」並非允許的名稱。"]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["「{segment}」為保留名稱,不能用作資料夾名稱。"]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["「{segment}」是一個保留名稱,不能使用。"]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n 檔案衝突"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} 中有 %n 個檔案衝突"]},{msgid:"All files",msgstr:["所有檔案"]},{msgid:"Cancel",msgstr:["取消"]},{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},{msgid:"Choose",msgstr:["選擇"]},{msgid:"Choose {file}",msgstr:["選擇 {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["選擇 %n 個檔案"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Continue",msgstr:["繼續"]},{msgid:"Copy",msgstr:["複製"]},{msgid:"Copy to {target}",msgstr:["複製到 {target}"]},{msgid:"Could not create the new folder",msgstr:["無法建立新資料夾"]},{msgid:"Could not load files settings",msgstr:["無法載入檔案設定"]},{msgid:"Could not load files views",msgstr:["無法載入檔案視圖"]},{msgid:"Create directory",msgstr:["建立目錄"]},{msgid:"Current view selector",msgstr:["目前視圖選擇器"]},{msgid:"Enter your name",msgstr:["輸入您的名字"]},{msgid:"Existing version",msgstr:["現有的版本"]},{msgid:"Failed to set nickname.",msgstr:["無法設置暱稱。"]},{msgid:"Favorites",msgstr:["最愛"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您標記為最愛的檔案與資料夾將會顯示在此處。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的檔案與資料夾將會顯示在此處。"]},{msgid:"Filter file list",msgstr:["過濾檔案清單"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["資料夾名稱不得以「{extension}」結尾。"]},{msgid:"Guest identification",msgstr:["訪客身份識別"]},{msgid:"Home",msgstr:["首頁"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["如果您選擇兩個版本,傳入的檔案名稱將會附加一個數字。"]},{msgid:"Invalid folder name.",msgstr:["無效的資料夾名稱。"]},{msgid:"Invalid name.",msgstr:["無效的名字。"]},{msgid:"Last modified date unknown",msgstr:["最後的修改日期不詳"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["移動至 {target}"]},{msgid:"Name",msgstr:["名稱"]},{msgid:"Names may be at most 64 characters long.",msgstr:["名稱長度最多為 64 個字元。"]},{msgid:"Names must not be empty.",msgstr:["名稱不能為空。"]},{msgid:'Names must not end with "{extension}".',msgstr:["名稱不得以「{extension}」結尾。"]},{msgid:"Names must not start with a dot.",msgstr:["名稱不得以點開頭。"]},{msgid:"New",msgstr:["新"]},{msgid:"New folder",msgstr:["新資料夾"]},{msgid:"New folder name",msgstr:["新資料夾名稱"]},{msgid:"New version",msgstr:["新版本"]},{msgid:"No files in here",msgstr:["此處無檔案"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您過濾條件的檔案。"]},{msgid:"No matching files",msgstr:["沒有匹配的檔案"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["請輸入至少 2 個字符的名稱。"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all checkboxes",msgstr:["選擇所有復選框"]},{msgid:"Select all entries",msgstr:["選擇所有項目"]},{msgid:"Select all existing files",msgstr:["選擇所有現有的檔案"]},{msgid:"Select all new files",msgstr:["選擇所有新檔案"]},{msgid:"Select entry",msgstr:["選擇項目"]},{msgid:"Select the row for {nodename}",msgstr:["選擇 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["跳過 %n 個檔案"]},{msgid:"Skip this file",msgstr:["跳過此檔案"]},{msgid:"Submit name",msgstr:["遞交名字"]},{msgid:"Undo",msgstr:["還原"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上傳一些內容或與您的裝置同步!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾時,其中任何衝突的檔案也將被覆蓋。"]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["當選取傳入資料夾時,內容將寫入現有資料夾,並執行遞歸衝突解決。"]},{msgid:"Which files do you want to keep?",msgstr:["你想保留哪些檔案?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["您目前被識別為 {nickname}。"]},{msgid:"You are currently not identified.",msgstr:["您目前尚未被識別。"]},{msgid:"You cannot leave the name empty.",msgstr:["名稱不能留空。"]},{msgid:"You need to choose at least one conflict solution",msgstr:["你需要選擇至少一種衝突解決方案。"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須選擇每個文件的至少一個版本才能繼續。"]}]},{language:"zh_TW",translations:[{msgid:'"{name}" is an invalid file name.',msgstr:["「{name}」是無效的檔案名稱。"]},{msgid:'"{name}" is not an allowed filetype',msgstr:["「{name}」並非允許的檔案類型"]},{msgid:'"/" is not allowed inside a file name.',msgstr:["檔案名稱中不允許使用「/」。"]},{msgid:"All files",msgstr:["所有檔案"]},{msgid:"Choose",msgstr:["選擇"]},{msgid:"Choose {file}",msgstr:["選擇 {file}"]},{msgid:"Copy",msgstr:["複製"]},{msgid:"Copy to {target}",msgstr:["複製到 {target}"]},{msgid:"Could not create the new folder",msgstr:["無法建立新資料夾"]},{msgid:"Create directory",msgstr:["建立目錄"]},{msgid:"Current view selector",msgstr:["目前檢視選取器"]},{msgid:"Favorites",msgstr:["最愛"]},{msgid:"File name cannot be empty.",msgstr:["檔案名稱不能為空。"]},{msgid:"Filepicker sections",msgstr:["檔案挑選器選取"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您標記為最愛的檔案與資料夾將會顯示在此處。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的檔案與資料夾將會顯示在此處。"]},{msgid:"Filter file list",msgstr:["過濾檔案清單"]},{msgid:"Home",msgstr:["家"]},{msgid:"Mime type {mime}",msgstr:["Mime type {mime}"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["移動至 {target}"]},{msgid:"Name",msgstr:["名稱"]},{msgid:"New",msgstr:["新"]},{msgid:"New folder",msgstr:["新資料夾"]},{msgid:"New folder name",msgstr:["新資料夾名稱"]},{msgid:"No files in here",msgstr:["此處無檔案"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您過濾條件的檔案。"]},{msgid:"No matching files",msgstr:["無符合的檔案"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all entries",msgstr:["選取所有條目"]},{msgid:"Select entry",msgstr:["選取條目"]},{msgid:"Select the row for {nodename}",msgstr:["選取 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Undo",msgstr:["復原"]},{msgid:"unknown",msgstr:["未知"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上傳一些內容或與您的裝置同步"]}]}]){const{language:t,translations:n}=e,u={headers:{},translations:{"":Object.fromEntries(n.map(s=>[s.msgid,s]))}};Qp.addTranslation(t,u)}const Xo=Qp.build();Xo.ngettext.bind(Xo);const Zs=Xo.gettext.bind(Xo);Rc().setApp("@nextcloud/dialogs").detectLogLevel().build();const L4=7e3,cb=Me({__name:"ToastContainer",setup(e,{expose:t}){let n=null;const u=An("politeRef"),s=An("assertiveRef"),i=An("containerRef"),r=_e(!1);function o({open:l}){r.value=l}function a(l,d){if(d==="assertive"){const f=s.value;if(!f)return;n!==null&&(clearTimeout(n),n=null),f.textContent="",setTimeout(()=>{f&&(f.textContent=l,n=setTimeout(()=>{f.textContent="",n=null},L4))},50)}else{const f=u.value;if(!f)return;const g=document.createElement("li");g.textContent=l,f.appendChild(g),setTimeout(()=>g.remove(),L4)}}function c(){return i.value}return un(()=>{const l=document.querySelector(".app-navigation");l&&(r.value=!l.classList.contains("app-navigation--close")),Oc("navigation-toggled",o)}),Sn(()=>{Op("navigation-toggled",o)}),t({announce:a,getContainerEl:c}),(l,d)=>(_(),W(et,null,[Z("ul",{ref_key:"politeRef",ref:u,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions",class:"hidden-visually"},null,512),Z("div",{ref_key:"assertiveRef",ref:s,"aria-live":"assertive","aria-atomic":"true",class:"hidden-visually"},null,512),Z("div",{ref_key:"containerRef",ref:i,class:ze([l.$style.toastContainer,{[l.$style.toastContainer_navOpen]:r.value}])},null,2)],64))}}),db="_toastContainer_1biev_1",mb="_toastContainer_navOpen_1biev_15",gb={toastContainer:db,toastContainer_navOpen:mb},eh=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n},fb={$style:gb},O4=eh(cb,[["__cssModules",fb]]),pb=["role"],hb=["innerHTML"],vb=Me({__name:"ToastNotification",props:{message:{},isHTML:{type:Boolean,default:!1},type:{default:void 0},timeout:{},noClose:{type:Boolean,default:!1},role:{},onClick:{type:Function,default:void 0},onUndo:{type:Function,default:void 0}},emits:["dismiss"],setup(e,{expose:t,emit:n}){const u=e,s=n,i=_e(null);let r=null;const o=NC(),a=ne(()=>u.type?o[`toast_${u.type.replace(/^toast-/,"")}`]:null),c=ne(()=>typeof u.message=="string"),l=ne(()=>u.type===Y0.LOADING),d=ne(()=>u.type===Y0.UNDO);function f(){r!==null&&(clearTimeout(r),r=null),s("dismiss")}function g(h){h.stopPropagation(),u.onUndo?.(h),f()}return un(()=>{u.message instanceof Node&&i.value&&i.value.appendChild(u.message),u.timeout>0&&(r=setTimeout(f,u.timeout))}),Sn(()=>{r!==null&&(clearTimeout(r),r=null)}),t({hide:f}),(h,E)=>(_(),W("div",{class:ze([h.$style.toast,a.value,{[h.$style.toast_clickable]:e.onClick}]),role:e.role,onClick:E[0]||(E[0]=b=>e.onClick?.())},[l.value?(_(),W(et,{key:0},[Z("span",{class:ze(h.$style.toastMessage)},re(e.message),3),Z("span",{class:ze(h.$style.toastLoader),"aria-hidden":"true"},[Ee(I(Nc),{size:20})],2)],64)):d.value?(_(),W(et,{key:1},[Z("span",{class:ze(h.$style.toastMessage)},re(e.message),3),Ee(I(Ct),{class:ze(h.$style.toastUndoButton),variant:"tertiary",onClick:gn(g,["stop"])},{default:he(()=>[We(re(I(Zs)("Undo")),1)]),_:1},8,["class"])],64)):(_(),W(et,{key:2},[e.isHTML&&c.value?(_(),W("span",{key:0,class:ze(h.$style.toastMessage),innerHTML:e.message},null,10,hb)):c.value?(_(),W("span",{key:1,class:ze(h.$style.toastMessage)},re(e.message),3)):(_(),W("span",{key:2,ref_key:"nodeRef",ref:i,class:ze(h.$style.toastMessage)},null,2))],64)),e.noClose?ye("",!0):(_(),we(I(Ct),{key:3,class:ze(h.$style.toastClose),variant:"tertiary","aria-label":I(Zs)("Close"),onClick:gn(f,["stop"])},{icon:he(()=>[Ee(I(It),{path:I(lb),size:20},null,8,["path"])]),_:1},8,["class","aria-label"]))],10,pb))}}),Eb="_toast_v43ag_11",Cb="_toast_clickable_v43ag_25",yb="_toast_error_v43ag_29",xb="_toast_info_v43ag_33",wb="_toast_warning_v43ag_37",bb="_toast_success_v43ag_41",Bb="_toast_undo_v43ag_45",kb="_toast_loading_v43ag_49",Ab="_toastMessage_v43ag_53",Db="_toastLoader_v43ag_58",Fb="_toastClose_v43ag_59",Sb="_toastUndoButton_v43ag_60",_b={toast:Eb,"toast-in":"_toast-in_v43ag_1",toast_clickable:Cb,toast_error:yb,toast_info:xb,toast_warning:wb,toast_success:bb,toast_undo:Bb,toast_loading:kb,toastMessage:Ab,toastLoader:Db,toastClose:Fb,toastUndoButton:Sb},Nb={$style:_b},Tb=eh(vb,[["__cssModules",Nb]]);var Y0=(e=>(e.ERROR="toast-error",e.WARNING="toast-warning",e.INFO="toast-info",e.SUCCESS="toast-success",e.UNDO="toast-undo",e.LOADING="toast-loading",e))(Y0||{});const zb="off",Pb="polite",Ib="assertive";var Ks=(e=>(e[e.OFF=zb]="OFF",e[e.POLITE=Pb]="POLITE",e[e.ASSERTIVE=Ib]="ASSERTIVE",e))(Ks||{});const Lb=7e3,Ob=-1;function Rb(e){return e===Ob||e>0}function jb(){try{const e=ab()?.theming?.toastTimeout;if(typeof e=="number"&&Rb(e))return e}catch{}return Lb}const R4="__nc_toast_container__";function th(e){if(e){const i=document.querySelector(e);if(i){const r=document.createElement("div");return i.appendChild(r),Io(O4).mount(r)}}const t=window,n=t[R4];if(n&&document.body.contains(n.el))return n.api;const u=document.createElement("div");document.body.appendChild(u);const s=Io(O4).mount(u);return t[R4]={api:s,el:u},s}function Mb(e){const t=th(e.selector).getContainerEl()??document.body,n=document.createElement("div");n.style.cssText="display:contents",t.appendChild(n);const u=Io(Tb,{message:e.message,isHTML:e.isHTML,type:e.type,timeout:e.timeout,noClose:!e.close,role:e.role,onClick:e.onClick,onUndo:e.onUndo,onDismiss:()=>{e.onRemove?.(),u.unmount(),n.remove()}}),s=u.mount(n);return{hideToast:()=>s.hide()}}function Z0(e){return e instanceof Element&&e.getAttribute("aria-hidden")==="true"?"":e.nodeType===Node.TEXT_NODE?e.textContent??"":Array.from(e.childNodes).map(Z0).join("")}function $b(e,t){return typeof e=="string"?t?Z0(new DOMParser().parseFromString(e,"text/html").body):e:Z0(e)}function nh(e,t){const n={timeout:jb(),isHTML:!1,type:void 0,selector:void 0,onRemove:void 0,onClick:void 0,close:!0,ariaLive:void 0,...t};typeof e=="string"&&!n.isHTML&&(e=new DOMParser().parseFromString(e,"text/html").body.innerText);let u=Ks.POLITE;if(n.ariaLive?u=n.ariaLive:(n.type==="toast-error"||n.type==="toast-undo")&&(u=Ks.ASSERTIVE),u!==Ks.OFF){const s=$b(e,n.isHTML),i={"toast-error":Zs("Error: {message}",{message:s}),"toast-warning":Zs("Warning: {message}",{message:s}),"toast-info":Zs("Info: {message}",{message:s}),"toast-success":Zs("Success: {message}",{message:s})},r=(n.type&&i[n.type])??s;th(n.selector).announce(r,u===Ks.ASSERTIVE?"assertive":"polite")}return Mb({message:e,isHTML:n.isHTML,type:n.type,timeout:n.timeout,close:n.close,role:u===Ks.ASSERTIVE?"alert":"status",selector:n.selector,onRemove:n.onRemove,onClick:n.onClick,onUndo:void 0})}function yu(e,t){return nh(e,{...t,type:"toast-error"})}function Qo(e,t){return nh(e,{...t,type:"toast-success"})}const Vb={name:"TrayArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ub=["aria-hidden","aria-label"],Hb=["fill","width","height"],Wb={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z"},qb={key:0};function Kb(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon tray-arrow-down-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",Wb,[n.title?(_(),W("title",qb,re(n.title),1)):ye("",!0)])],8,Hb))],16,Ub)}const Gb=gt(Vb,[["render",Kb]]),Yb={name:"TrayArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Zb=["aria-hidden","aria-label"],Jb=["fill","width","height"],Xb={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"},Qb={key:0};function eB(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon tray-arrow-up-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",Xb,[n.title?(_(),W("title",Qb,re(n.title),1)):ye("",!0)])],8,Jb))],16,Zb)}const tB=gt(Yb,[["render",eB]]);function uh(e,t){return function(){return e.apply(t,arguments)}}const{toString:nB}=Object.prototype,{getPrototypeOf:ai}=Object,{iterator:Nr,toStringTag:sh}=Symbol,ea=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),yr=(e,t)=>{let n=e;const u=[];for(;n!=null&&n!==Object.prototype;){if(u.indexOf(n)!==-1)return!1;if(u.push(n),ea(n,t))return!0;n=ai(n)}return!1},uB=(e,t)=>e!=null&&yr(e,t)?e[t]:void 0,$c=(e=>t=>{const n=nB.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),On=e=>(e=e.toLowerCase(),t=>$c(t)===e),Oa=e=>t=>typeof t===e,{isArray:ks}=Array,li=Oa("undefined");function gi(e){return e!==null&&!li(e)&&e.constructor!==null&&!li(e.constructor)&&tn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const ih=On("ArrayBuffer");function sB(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&ih(e.buffer),t}const iB=Oa("string"),tn=Oa("function"),rh=Oa("number"),fi=e=>e!==null&&typeof e=="object",rB=e=>e===!0||e===!1,go=e=>{if(!fi(e))return!1;const t=ai(e);return(t===null||t===Object.prototype||ai(t)===null)&&!yr(e,sh)&&!yr(e,Nr)},oB=e=>{if(!fi(e)||gi(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},aB=On("Date"),lB=On("File"),cB=e=>!!(e&&typeof e.uri<"u"),dB=e=>e&&typeof e.getParts<"u",mB=On("Blob"),gB=On("FileList"),fB=e=>fi(e)&&tn(e.pipe);function pB(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof nr<"u"?nr:{}}const j4=pB(),M4=typeof j4.FormData<"u"?j4.FormData:void 0,hB=e=>{if(!e)return!1;if(M4&&e instanceof M4)return!0;const t=ai(e);if(!t||t===Object.prototype||!tn(e.append))return!1;const n=$c(e);return n==="formdata"||n==="object"&&tn(e.toString)&&e.toString()==="[object FormData]"},vB=On("URLSearchParams"),[EB,CB,yB,xB]=["ReadableStream","Request","Response","Headers"].map(On),wB=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Tr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let u,s;if(typeof e!="object"&&(e=[e]),ks(e))for(u=0,s=e.length;u0;)if(s=n[u],t===s.toLowerCase())return s;return null}const ps=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:nr,ah=e=>!li(e)&&e!==ps;function J0(...e){const{caseless:t,skipUndefined:n}=ah(this)&&this||{},u={},s=(i,r)=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;const o=t&&typeof r=="string"&&oh(u,r)||r,a=ea(u,o)?u[o]:void 0;go(a)&&go(i)?u[o]=J0(a,i):go(i)?u[o]=J0({},i):ks(i)?u[o]=i.slice():(!n||!li(i))&&(u[o]=i)};for(let i=0,r=e.length;i(Tr(t,(s,i)=>{n&&tn(s)?Object.defineProperty(e,i,{__proto__:null,value:uh(s,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,i,{__proto__:null,value:s,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:u}),e),BB=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kB=(e,t,n,u)=>{e.prototype=Object.create(t.prototype,u),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},AB=(e,t,n,u)=>{let s,i,r;const o={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)r=s[i],(!u||u(r,e,t))&&!o[r]&&(t[r]=e[r],o[r]=!0);e=n!==!1&&ai(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},DB=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const u=e.indexOf(t,n);return u!==-1&&u===n},FB=e=>{if(!e)return null;if(ks(e))return e;let t=e.length;if(!rh(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},SB=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&ai(Uint8Array)),_B=(e,t)=>{const n=(e&&e[Nr]).call(e);let u;for(;(u=n.next())&&!u.done;){const s=u.value;t.call(e,s[0],s[1])}},NB=(e,t)=>{let n;const u=[];for(;(n=e.exec(t))!==null;)u.push(n);return u},TB=On("HTMLFormElement"),zB=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,n,u){return n.toUpperCase()+u}),{propertyIsEnumerable:PB}=Object.prototype,IB=On("RegExp"),lh=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),u={};Tr(n,(s,i)=>{let r;(r=t(s,i,e))!==!1&&(u[i]=r||s)}),Object.defineProperties(e,u)},LB=e=>{lh(e,(t,n)=>{if(tn(e)&&["arguments","caller","callee"].includes(n))return!1;const u=e[n];if(tn(u)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},OB=(e,t)=>{const n={},u=s=>{s.forEach(i=>{n[i]=!0})};return ks(e)?u(e):u(String(e).split(t)),n},RB=()=>{},jB=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function MB(e){return!!(e&&tn(e.append)&&e[sh]==="FormData"&&e[Nr])}const $B=e=>{const t=new WeakSet,n=u=>{if(fi(u)){if(t.has(u))return;if(gi(u))return u;if(!("toJSON"in u)){t.add(u);const s=ks(u)?[]:{};return Tr(u,(i,r)=>{const o=n(i);!li(o)&&(s[r]=o)}),t.delete(u),s}}return u};return n(e)},VB=On("AsyncFunction"),UB=e=>e&&(fi(e)||tn(e))&&tn(e.then)&&tn(e.catch),ch=((e,t)=>e?setImmediate:t?((n,u)=>(ps.addEventListener("message",({source:s,data:i})=>{s===ps&&i===n&&u.length&&u.shift()()},!1),s=>{u.push(s),ps.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",tn(ps.postMessage)),HB=typeof queueMicrotask<"u"?queueMicrotask.bind(ps):typeof K0<"u"&&K0.nextTick||ch,dh=e=>e!=null&&tn(e[Nr]),WB=e=>e!=null&&yr(e,Nr)&&dh(e),P={isArray:ks,isArrayBuffer:ih,isBuffer:gi,isFormData:hB,isArrayBufferView:sB,isString:iB,isNumber:rh,isBoolean:rB,isObject:fi,isPlainObject:go,isEmptyObject:oB,isReadableStream:EB,isRequest:CB,isResponse:yB,isHeaders:xB,isUndefined:li,isDate:aB,isFile:lB,isReactNativeBlob:cB,isReactNative:dB,isBlob:mB,isRegExp:IB,isFunction:tn,isStream:fB,isURLSearchParams:vB,isTypedArray:SB,isFileList:gB,forEach:Tr,merge:J0,extend:bB,trim:wB,stripBOM:BB,inherits:kB,toFlatObject:AB,kindOf:$c,kindOfTest:On,endsWith:DB,toArray:FB,forEachEntry:_B,matchAll:NB,isHTMLForm:TB,hasOwnProperty:ea,hasOwnProp:ea,hasOwnInPrototypeChain:yr,getSafeProp:uB,reduceDescriptors:lh,freezeMethods:LB,toObjectSet:OB,toCamelCase:zB,noop:RB,toFiniteNumber:jB,findKey:oh,global:ps,isContextDefined:ah,isSpecCompliantForm:MB,toJSONObject:$B,isAsyncFn:VB,isThenable:UB,setImmediate:ch,asap:HB,isIterable:dh,isSafeIterable:WB},qB=P.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"]),KB=e=>{const t={};let n,u,s;return e&&e.split(` -`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),u=i.substring(s+1).trim(),!(!n||t[n]&&qB[n])&&(n==="set-cookie"?t[n]?t[n].push(u):t[n]=[u]:t[n]=t[n]?t[n]+", "+u:u)}),t};function GB(e){let t=0,n=e.length;for(;tt;){const u=e.charCodeAt(n-1);if(u!==9&&u!==32)break;n-=1}return t===0&&n===e.length?e:e.slice(t,n)}const YB=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),ZB=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function Vc(e,t){return P.isArray(e)?e.map(n=>Vc(n,t)):GB(String(e).replace(t,""))}const JB=e=>Vc(e,YB),XB=e=>Vc(e,ZB);function mh(e){const t=Object.create(null);return P.forEach(e.toJSON(),(n,u)=>{t[u]=XB(n)}),t}const $4=Symbol("internals");function _i(e){return e&&String(e).trim().toLowerCase()}function fo(e){return e===!1||e==null?e:P.isArray(e)?e.map(fo):JB(String(e))}function QB(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let u;for(;u=n.exec(e);)t[u[1]]=u[2];return t}const ek=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Wl(e,t,n,u,s){if(P.isFunction(u))return u.call(this,t,n);if(s&&(t=n),!!P.isString(t)){if(P.isString(u))return t.indexOf(u)!==-1;if(P.isRegExp(u))return u.test(t)}}function tk(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,u)=>n.toUpperCase()+u)}function nk(e,t){const n=P.toCamelCase(" "+t);["get","set","has"].forEach(u=>{Object.defineProperty(e,u+n,{__proto__:null,value:function(s,i,r){return this[u].call(this,t,s,i,r)},configurable:!0})})}let Kt=class{constructor(e){e&&this.set(e)}set(e,t,n){const u=this;function s(r,o,a){const c=_i(o);if(!c)return;const l=P.findKey(u,c);(!l||u[l]===void 0||a===!0||a===void 0&&u[l]!==!1)&&(u[l||o]=fo(r))}const i=(r,o)=>P.forEach(r,(a,c)=>s(a,c,o));if(P.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(P.isString(e)&&(e=e.trim())&&!ek(e))i(KB(e),t);else if(P.isObject(e)&&P.isSafeIterable(e)){let r=Object.create(null),o,a;for(const c of e){if(!P.isArray(c))throw new TypeError("Object iterator must return a key-value pair");a=c[0],P.hasOwnProp(r,a)?(o=r[a],r[a]=P.isArray(o)?[...o,c[1]]:[o,c[1]]):r[a]=c[1]}i(r,t)}else e!=null&&s(t,e,n);return this}get(e,t){if(e=_i(e),e){const n=P.findKey(this,e);if(n){const u=this[n];if(!t)return u;if(t===!0)return QB(u);if(P.isFunction(t))return t.call(this,u,n);if(P.isRegExp(t))return t.exec(u);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=_i(e),e){const n=P.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||Wl(this,this[n],n,t)))}return!1}delete(e,t){const n=this;let u=!1;function s(i){if(i=_i(i),i){const r=P.findKey(n,i);r&&(!t||Wl(n,n[r],r,t))&&(delete n[r],u=!0)}}return P.isArray(e)?e.forEach(s):s(e),u}clear(e){const t=Object.keys(this);let n=t.length,u=!1;for(;n--;){const s=t[n];(!e||Wl(this,this[s],s,e,!0))&&(delete this[s],u=!0)}return u}normalize(e){const t=this,n={};return P.forEach(this,(u,s)=>{const i=P.findKey(n,s);if(i){t[i]=fo(u),delete t[s];return}const r=e?tk(s):String(s).trim();r!==s&&delete t[s],t[r]=fo(u),n[r]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return P.forEach(this,(n,u)=>{n!=null&&n!==!1&&(t[u]=e&&P.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(u=>n.set(u)),n}static accessor(e){const t=(this[$4]=this[$4]={accessors:{}}).accessors,n=this.prototype;function u(s){const i=_i(s);t[i]||(nk(n,s),t[i]=!0)}return P.isArray(e)?e.forEach(u):u(e),this}};Kt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),P.reduceDescriptors(Kt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(u){this[n]=u}}}),P.freezeMethods(Kt);const uk="[REDACTED ****]";function sk(e){if(P.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(P.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}function ik(e,t){const n=new Set(t.map(i=>String(i).toLowerCase())),u=[],s=i=>{if(i===null||typeof i!="object"||P.isBuffer(i))return i;if(u.indexOf(i)!==-1)return;i instanceof Kt&&(i=i.toJSON()),u.push(i);let r;if(P.isArray(i))r=[],i.forEach((o,a)=>{const c=s(o);P.isUndefined(c)||(r[a]=c)});else{if(!P.isPlainObject(i)&&sk(i))return u.pop(),i;r=Object.create(null);for(const[o,a]of Object.entries(i)){const c=n.has(o.toLowerCase())?uk:s(a);P.isUndefined(c)||(r[o]=c)}}return u.pop(),r};return s(e)}let xe=class gh extends Error{static from(t,n,u,s,i,r){const o=new gh(t.message,n||t.code,u,s,i);return Object.defineProperty(o,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),o.name=t.name,t.status!=null&&o.status==null&&(o.status=t.status),r&&Object.assign(o,r),o}constructor(t,n,u,s,i){super(t),Object.defineProperty(this,"message",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),u&&(this.config=u),s&&(this.request=s),i&&(this.response=i,this.status=i.status)}toJSON(){const t=this.config,n=t&&P.hasOwnProp(t,"redact")?t.redact:void 0,u=P.isArray(n)&&n.length>0?ik(t,n):P.toJSONObject(t);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:u,code:this.code,status:this.status}}};xe.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",xe.ERR_BAD_OPTION="ERR_BAD_OPTION",xe.ECONNABORTED="ECONNABORTED",xe.ETIMEDOUT="ETIMEDOUT",xe.ECONNREFUSED="ECONNREFUSED",xe.ERR_NETWORK="ERR_NETWORK",xe.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",xe.ERR_DEPRECATED="ERR_DEPRECATED",xe.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",xe.ERR_BAD_REQUEST="ERR_BAD_REQUEST",xe.ERR_CANCELED="ERR_CANCELED",xe.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",xe.ERR_INVALID_URL="ERR_INVALID_URL",xe.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const rk=null,fh=100;function X0(e){return P.isPlainObject(e)||P.isArray(e)}function ph(e){return P.endsWith(e,"[]")?e.slice(0,-2):e}function ql(e,t,n){return e?e.concat(t).map(function(u,s){return u=ph(u),!n&&s?"["+u+"]":u}).join(n?".":""):t}function ok(e){return P.isArray(e)&&!e.some(X0)}const ak=P.toFlatObject(P,{},null,function(e){return/^is[A-Z]/.test(e)});function Ra(e,t,n){if(!P.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=P.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(C,x){return!P.isUndefined(x[C])});const u=n.metaTokens,s=n.visitor||h,i=n.dots,r=n.indexes,o=n.Blob||typeof Blob<"u"&&Blob,a=n.maxDepth===void 0?fh:n.maxDepth,c=o&&P.isSpecCompliantForm(t),l=[];if(!P.isFunction(s))throw new TypeError("visitor must be a function");function d(C){if(C===null)return"";if(P.isDate(C))return C.toISOString();if(P.isBoolean(C))return C.toString();if(!c&&P.isBlob(C))throw new xe("Blob is not supported. Use a Buffer instead.");if(P.isArrayBuffer(C)||P.isTypedArray(C)){if(c&&typeof o=="function")return new o([C]);if(typeof xm<"u")return xm.from(C);throw new xe("Blob is not supported. Use a Buffer instead.",xe.ERR_NOT_SUPPORT)}return C}function f(C){if(C>a)throw new xe("Object is too deeply nested ("+C+" levels). Max depth: "+a,xe.ERR_FORM_DATA_DEPTH_EXCEEDED)}function g(C,x){if(a===1/0)return JSON.stringify(C);const k=[];return JSON.stringify(C,function(S,H){if(!P.isObject(H))return H;for(;k.length&&k[k.length-1]!==this;)k.pop();return k.push(H),f(x+k.length-1),H})}function h(C,x,k){let S=C;if(P.isReactNative(t)&&P.isReactNativeBlob(C))return t.append(ql(k,x,i),d(C)),!1;if(C&&!k&&typeof C=="object"){if(P.endsWith(x,"{}"))x=u?x:x.slice(0,-2),C=g(C,1);else if(P.isArray(C)&&ok(C)||(P.isFileList(C)||P.endsWith(x,"[]"))&&(S=P.toArray(C)))return x=ph(x),S.forEach(function(H,T){!(P.isUndefined(H)||H===null)&&t.append(r===!0?ql([x],T,i):r===null?x:x+"[]",d(H))}),!1}return X0(C)?!0:(t.append(ql(k,x,i),d(C)),!1)}const E=Object.assign(ak,{defaultVisitor:h,convertValue:d,isVisitable:X0});function b(C,x,k=0){if(!P.isUndefined(C)){if(f(k),l.indexOf(C)!==-1)throw new Error("Circular reference detected in "+x.join("."));l.push(C),P.forEach(C,function(S,H){(!(P.isUndefined(S)||S===null)&&s.call(t,S,P.isString(H)?H.trim():H,x,E))===!0&&b(S,x?x.concat(H):[H],k+1)}),l.pop()}}if(!P.isObject(e))throw new TypeError("data must be an object");return b(e),t}function V4(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(n){return t[n]})}function Uc(e,t){this._pairs=[],e&&Ra(e,this,t)}const U4=Uc.prototype;U4.append=function(e,t){this._pairs.push([e,t])},U4.toString=function(e){const t=e?n=>e.call(this,n,V4):V4;return this._pairs.map(function(n){return t(n[0])+"="+t(n[1])},"").join("&")};function lk(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function hh(e,t,n){if(!t)return e;e=e||"";const u=P.isFunction(n)?{serialize:n}:n,s=P.getSafeProp(u,"encode")||lk,i=P.getSafeProp(u,"serialize");let r;if(i?r=i(t,u):r=P.isURLSearchParams(t)?t.toString():new Uc(t,u).toString(s),r){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+r}return e}class H4{constructor(){this.handlers=[]}use(t,n,u){return this.handlers.push({fulfilled:t,rejected:n,synchronous:u?u.synchronous:!1,runWhen:u?u.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){P.forEach(this.handlers,function(n){n!==null&&t(n)})}}const Hc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},ck=typeof URLSearchParams<"u"?URLSearchParams:Uc,dk=typeof FormData<"u"?FormData:null,mk=typeof Blob<"u"?Blob:null,gk={isBrowser:!0,classes:{URLSearchParams:ck,FormData:dk,Blob:mk},protocols:["http","https","file","blob","url","data"]},Wc=typeof window<"u"&&typeof document<"u",Q0=typeof navigator=="object"&&navigator||void 0,fk=Wc&&(!Q0||["ReactNative","NativeScript","NS"].indexOf(Q0.product)<0),pk=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",hk=Wc&&window.location.href||"http://localhost",vk=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Wc,hasStandardBrowserEnv:fk,hasStandardBrowserWebWorkerEnv:pk,navigator:Q0,origin:hk},Symbol.toStringTag,{value:"Module"})),Lt={...vk,...gk};function Ek(e,t){return Ra(e,new Lt.classes.URLSearchParams,{visitor:function(n,u,s,i){return Lt.isNode&&P.isBuffer(n)?(this.append(u,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}const W4=fh;function vh(e){if(e>W4)throw new xe("FormData field is too deeply nested ("+e+" levels). Max depth: "+W4,xe.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Ck(e){const t=[],n=/\w+|\[(\w*)]/g;let u;for(;(u=n.exec(e))!==null;)vh(t.length),t.push(u[0]==="[]"?"":u[1]||u[0]);return t}function yk(e){const t={},n=Object.keys(e);let u;const s=n.length;let i;for(u=0;u=n.length;return r=!r&&P.isArray(s)?s.length:r,a?(P.hasOwnProp(s,r)?s[r]=P.isArray(s[r])?s[r].concat(u):[s[r],u]:s[r]=u,!o):((!P.hasOwnProp(s,r)||!P.isObject(s[r]))&&(s[r]=[]),t(n,u,s[r],i)&&P.isArray(s[r])&&(s[r]=yk(s[r])),!o)}if(P.isFormData(e)&&P.isFunction(e.entries)){const n={};return P.forEachEntry(e,(u,s)=>{t(Ck(u),s,n,0)}),n}return null}const Ms=(e,t)=>e!=null&&P.hasOwnProp(e,t)?e[t]:void 0;function xk(e,t,n){if(P.isString(e))try{return(t||JSON.parse)(e),P.trim(e)}catch(u){if(u.name!=="SyntaxError")throw u}return(n||JSON.stringify)(e)}const zr={transitional:Hc,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",u=n.indexOf("application/json")>-1,s=P.isObject(e);if(s&&P.isHTMLForm(e)&&(e=new FormData(e)),P.isFormData(e))return u?JSON.stringify(Eh(e)):e;if(P.isArrayBuffer(e)||P.isBuffer(e)||P.isStream(e)||P.isFile(e)||P.isBlob(e)||P.isReadableStream(e))return e;if(P.isArrayBufferView(e))return e.buffer;if(P.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(s){const r=Ms(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return Ek(e,r).toString();if((i=P.isFileList(e))||n.indexOf("multipart/form-data")>-1){const o=Ms(this,"env"),a=o&&o.FormData;return Ra(i?{"files[]":e}:e,a&&new a,r)}}return s||u?(t.setContentType("application/json",!1),xk(e)):e}],transformResponse:[function(e){const t=Ms(this,"transitional")||zr.transitional,n=t&&t.forcedJSONParsing,u=Ms(this,"responseType"),s=u==="json";if(P.isResponse(e)||P.isReadableStream(e))return e;if(e&&P.isString(e)&&(n&&!u||s)){const i=!(t&&t.silentJSONParsing)&&s;try{return JSON.parse(e,Ms(this,"parseReviver"))}catch(r){if(i)throw r.name==="SyntaxError"?xe.from(r,xe.ERR_BAD_RESPONSE,this,null,Ms(this,"response")):r}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Lt.classes.FormData,Blob:Lt.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};P.forEach(["delete","get","head","post","put","patch","query"],e=>{zr.headers[e]={}});function Kl(e,t){const n=this||zr,u=t||n,s=Kt.from(u.headers);let i=u.data;return P.forEach(e,function(r){i=r.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function Ch(e){return!!(e&&e.__CANCEL__)}let Pr=class extends xe{constructor(e,t,n){super(e??"canceled",xe.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function yh(e,t,n){const u=n.config.validateStatus;!n.status||!u||u(n.status)?e(n):t(new xe("Request failed with status code "+n.status,n.status>=400&&n.status<500?xe.ERR_BAD_REQUEST:xe.ERR_BAD_RESPONSE,n.config,n.request,n))}function wk(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}function bk(e,t){e=e||10;const n=new Array(e),u=new Array(e);let s=0,i=0,r;return t=t!==void 0?t:1e3,function(o){const a=Date.now(),c=u[i];r||(r=a),n[s]=o,u[s]=a;let l=i,d=0;for(;l!==s;)d+=n[l++],l=l%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),a-r{n=a,s=null,i&&(clearTimeout(i),i=null),e(...o)};return[(...o)=>{const a=Date.now(),c=a-n;c>=u?r(o,a):(s=o,i||(i=setTimeout(()=>{i=null,r(s)},u-c)))},()=>s&&r(s)]}const ta=(e,t,n=3)=>{let u=0;const s=bk(50,250);return Bk(i=>{if(!i||typeof i.loaded!="number")return;const r=i.loaded,o=i.lengthComputable?i.total:void 0,a=o!=null?Math.min(r,o):r,c=Math.max(0,a-u),l=s(c);u=Math.max(u,a);const d={loaded:a,total:o,progress:o?a/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-a)/l:void 0,event:i,lengthComputable:o!=null,[t?"download":"upload"]:!0};e(d)},n)},q4=(e,t)=>{const n=e!=null;return[u=>t[0]({lengthComputable:n,total:e,loaded:u}),t[1]]},K4=e=>(...t)=>P.asap(()=>e(...t)),kk=Lt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Lt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Lt.origin),Lt.navigator&&/(msie|trident)/i.test(Lt.navigator.userAgent)):()=>!0,Ak=Lt.hasStandardBrowserEnv?{write(e,t,n,u,s,i,r){if(typeof document>"u")return;const o=[`${e}=${encodeURIComponent(t)}`];P.isNumber(n)&&o.push(`expires=${new Date(n).toUTCString()}`),P.isString(u)&&o.push(`path=${u}`),P.isString(s)&&o.push(`domain=${s}`),i===!0&&o.push("secure"),P.isString(r)&&o.push(`SameSite=${r}`),document.cookie=o.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.split(";");for(let n=0;ne instanceof Kt?{...e}:e;function As(e,t){e=e||{},t=t||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function u(l,d,f,g){return P.isPlainObject(l)&&P.isPlainObject(d)?P.merge.call({caseless:g},l,d):P.isPlainObject(d)?P.merge({},d):P.isArray(d)?d.slice():d}function s(l,d,f,g){if(P.isUndefined(d)){if(!P.isUndefined(l))return u(void 0,l,f,g)}else return u(l,d,f,g)}function i(l,d){if(!P.isUndefined(d))return u(void 0,d)}function r(l,d){if(P.isUndefined(d)){if(!P.isUndefined(l))return u(void 0,l)}else return u(void 0,d)}function o(l){const d=P.hasOwnProp(t,"transitional")?t.transitional:void 0;if(!P.isUndefined(d))if(P.isPlainObject(d)){if(P.hasOwnProp(d,l))return d[l]}else return;const f=P.hasOwnProp(e,"transitional")?e.transitional:void 0;if(P.isPlainObject(f)&&P.hasOwnProp(f,l))return f[l]}function a(l,d,f){if(P.hasOwnProp(t,f))return u(l,d);if(P.hasOwnProp(e,f))return u(void 0,l)}const c={url:i,method:i,data:i,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,allowedSocketPaths:r,responseEncoding:r,validateStatus:a,headers:(l,d,f)=>s(Y4(l),Y4(d),f,!0)};return P.forEach(Object.keys({...e,...t}),function(l){if(l==="__proto__"||l==="constructor"||l==="prototype")return;const d=P.hasOwnProp(c,l)?c[l]:s,f=P.hasOwnProp(e,l)?e[l]:void 0,g=P.hasOwnProp(t,l)?t[l]:void 0,h=d(f,g,l);P.isUndefined(h)&&d!==a||(n[l]=h)}),P.hasOwnProp(t,"validateStatus")&&P.isUndefined(t.validateStatus)&&o("validateStatusUndefinedResolves")===!1&&(P.hasOwnProp(e,"validateStatus")?n.validateStatus=u(void 0,e.validateStatus):delete n.validateStatus),n}const zk=["content-type","content-length"];function Pk(e,t,n){if(n!=="content-only"){e.set(t);return}Object.entries(t||{}).forEach(([u,s])=>{zk.includes(u.toLowerCase())&&e.set(u,s)})}const Ik=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16)));function wh(e){const t=As({},e),n=f=>P.hasOwnProp(t,f)?t[f]:void 0,u=n("data");let s=n("withXSRFToken");const i=n("xsrfHeaderName"),r=n("xsrfCookieName");let o=n("headers");const a=n("auth"),c=n("baseURL"),l=n("allowAbsoluteUrls"),d=n("url");if(t.headers=o=Kt.from(o),t.url=hh(xh(c,d,l,t),n("params"),n("paramsSerializer")),a){const f=P.getSafeProp(a,"username")||"",g=P.getSafeProp(a,"password")||"";try{o.set("Authorization","Basic "+btoa(f+":"+(g?Ik(g):"")))}catch(h){throw xe.from(h,xe.ERR_BAD_OPTION_VALUE,e)}}if(P.isFormData(u)&&(Lt.hasStandardBrowserEnv||Lt.hasStandardBrowserWebWorkerEnv||P.isReactNative(u)?o.setContentType(void 0):P.isFunction(u.getHeaders)&&Pk(o,u.getHeaders(),n("formDataHeaderPolicy"))),Lt.hasStandardBrowserEnv&&(P.isFunction(s)&&(s=s(t)),s===!0||s==null&&kk(t.url))){const f=i&&r&&Ak.read(r);f&&o.set(i,f)}return t}const Lk=typeof XMLHttpRequest<"u",Ok=Lk&&function(e){return new Promise(function(t,n){const u=wh(e);let s=u.data;const i=Kt.from(u.headers).normalize();let{responseType:r,onUploadProgress:o,onDownloadProgress:a}=u,c,l,d,f,g;function h(){f&&f(),g&&g(),u.cancelToken&&u.cancelToken.unsubscribe(c),u.signal&&u.signal.removeEventListener("abort",c)}let E=new XMLHttpRequest;E.open(u.method.toUpperCase(),u.url,!0),E.timeout=u.timeout;function b(){if(!E)return;const x=Kt.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),k={data:!r||r==="text"||r==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:x,config:e,request:E};yh(function(S){t(S),h()},function(S){n(S),h()},k),E=null}"onloadend"in E?E.onloadend=b:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.startsWith("file:"))||setTimeout(b)},E.onabort=function(){E&&(n(new xe("Request aborted",xe.ECONNABORTED,e,E)),h(),E=null)},E.onerror=function(x){const k=x&&x.message?x.message:"Network Error",S=new xe(k,xe.ERR_NETWORK,e,E);S.event=x||null,n(S),h(),E=null},E.ontimeout=function(){let x=u.timeout?"timeout of "+u.timeout+"ms exceeded":"timeout exceeded";const k=u.transitional||Hc;u.timeoutErrorMessage&&(x=u.timeoutErrorMessage),n(new xe(x,k.clarifyTimeoutError?xe.ETIMEDOUT:xe.ECONNABORTED,e,E)),h(),E=null},s===void 0&&i.setContentType(null),"setRequestHeader"in E&&P.forEach(mh(i),function(x,k){E.setRequestHeader(k,x)}),P.isUndefined(u.withCredentials)||(E.withCredentials=!!u.withCredentials),r&&r!=="json"&&(E.responseType=u.responseType),a&&([d,g]=ta(a,!0),E.addEventListener("progress",d)),o&&E.upload&&([l,f]=ta(o),E.upload.addEventListener("progress",l),E.upload.addEventListener("loadend",f)),(u.cancelToken||u.signal)&&(c=x=>{E&&(n(!x||x.type?new Pr(null,e,E):x),E.abort(),h(),E=null)},u.cancelToken&&u.cancelToken.subscribe(c),u.signal&&(u.signal.aborted?c():u.signal.addEventListener("abort",c)));const C=wk(u.url);if(C&&!Lt.protocols.includes(C)){n(new xe("Unsupported protocol "+C+":",xe.ERR_BAD_REQUEST,e)),h();return}E.send(s||null)})},Rk=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const n=new AbortController;let u=!1;const s=function(a){if(!u){u=!0,r();const c=a instanceof Error?a:this.reason;n.abort(c instanceof xe?c:new Pr(c instanceof Error?c.message:c))}};let i=t&&setTimeout(()=>{i=null,s(new xe(`timeout of ${t}ms exceeded`,xe.ETIMEDOUT))},t);const r=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(a=>{a.unsubscribe?a.unsubscribe(s):a.removeEventListener("abort",s)}),e=null)};e.forEach(a=>a.addEventListener("abort",s,{once:!0}));const{signal:o}=n;return o.unsubscribe=()=>P.asap(r),o},jk=function*(e,t){let n=e.byteLength;if(n{const s=Mk(e,t);let i=0,r,o=a=>{r||(r=!0,u&&u(a))};return new ReadableStream({async pull(a){try{const{done:c,value:l}=await s.next();if(c){o(),a.close();return}let d=l.byteLength;if(n){let f=i+=d;n(f)}a.enqueue(new Uint8Array(l))}catch(c){throw o(c),c}},cancel(a){return o(a),s.return()}},{highWaterMark:2})},na=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Vk=(e,t,n)=>t+2d>=2&&u.charCodeAt(d-2)===37&&u.charCodeAt(d-1)===51&&(u.charCodeAt(d)===68||u.charCodeAt(d)===100);a>=0&&(u.charCodeAt(a)===61?(o++,a--):c(a)&&(o++,a-=3)),o===1&&a>=0&&(u.charCodeAt(a)===61||c(a))&&o++;const l=Math.floor(i/4)*3-(o||0);return l>0?l:0}let s=0;for(let i=0,r=u.length;i=55296&&o<=56319&&i+1=56320&&a<=57343?(s+=4,i++):s+=3}else s+=3}return s}const qc="1.18.1",J4=64*1024,{isFunction:Xr}=P,Hk=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16))),X4=e=>{if(!P.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},Q4=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Wk=e=>{const t=e.indexOf("://");let n=e;return t!==-1&&(n=n.slice(t+3)),n.includes("@")||n.includes(":")},qk=e=>{const t=P.global!==void 0&&P.global!==null?P.global:globalThis,{ReadableStream:n,TextEncoder:u}=t;e=P.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:s,Request:i,Response:r}=e,o=s?Xr(s):typeof fetch=="function",a=Xr(i),c=Xr(r);if(!o)return!1;const l=o&&Xr(n),d=o&&(typeof u=="function"?(C=>x=>C.encode(x))(new u):async C=>new Uint8Array(await new i(C).arrayBuffer())),f=a&&l&&Q4(()=>{let C=!1;const x=new i(Lt.origin,{body:new n,method:"POST",get duplex(){return C=!0,"half"}}),k=x.headers.has("Content-Type");return x.body!=null&&x.body.cancel(),C&&!k}),g=c&&l&&Q4(()=>P.isReadableStream(new r("").body)),h={stream:g&&(C=>C.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(C=>{!h[C]&&(h[C]=(x,k)=>{let S=x&&x[C];if(S)return S.call(x);throw new xe(`Response type '${C}' is not supported`,xe.ERR_NOT_SUPPORT,k)})});const E=async C=>{if(C==null)return 0;if(P.isBlob(C))return C.size;if(P.isSpecCompliantForm(C))return(await new i(Lt.origin,{method:"POST",body:C}).arrayBuffer()).byteLength;if(P.isArrayBufferView(C)||P.isArrayBuffer(C))return C.byteLength;if(P.isURLSearchParams(C)&&(C=C+""),P.isString(C))return(await d(C)).byteLength},b=async(C,x)=>P.toFiniteNumber(C.getContentLength())??E(x);return async C=>{let{url:x,method:k,data:S,signal:H,cancelToken:T,timeout:U,onDownloadProgress:X,onUploadProgress:K,responseType:D,headers:O,withCredentials:B="same-origin",fetchOptions:R,maxContentLength:M,maxBodyLength:$}=wh(C);const Q=P.isNumber(M)&&M>-1,oe=P.isNumber($)&&$>-1,fe=me=>P.hasOwnProp(C,me)?C[me]:void 0;let be=s||fetch;D=D?(D+"").toLowerCase():"text";let w=Rk([H,T&&T.toAbortSignal()],U),De=null;const Ie=w&&w.unsubscribe&&(()=>{w.unsubscribe()});let F,Oe=null;const Be=()=>new xe("Request body larger than maxBodyLength limit",xe.ERR_BAD_REQUEST,C,De);try{let me;const qe=fe("auth");if(qe){const j=P.getSafeProp(qe,"username")||"",ce=P.getSafeProp(qe,"password")||"";me={username:j,password:ce}}if(Wk(x)){const j=new URL(x,Lt.origin);if(!me&&(j.username||j.password)){const ce=X4(j.username),ue=X4(j.password);me={username:ce,password:ue}}(j.username||j.password)&&(j.username="",j.password="",x=j.href)}if(me&&(O.delete("authorization"),O.set("Authorization","Basic "+btoa(Hk((me.username||"")+":"+(me.password||""))))),Q&&typeof x=="string"&&x.startsWith("data:")&&Uk(x)>M)throw new xe("maxContentLength size of "+M+" exceeded",xe.ERR_BAD_RESPONSE,C,De);if(oe&&k!=="get"&&k!=="head"){const j=await E(S);if(typeof j=="number"&&isFinite(j)&&(F=j,j>$))throw Be()}const at=oe&&(P.isReadableStream(S)||P.isStream(S)),_t=(j,ce,ue)=>Z4(j,J4,de=>{if(oe&&de>$)throw Oe=Be();ce&&ce(de)},ue);if(f&&k!=="get"&&k!=="head"&&(K||at)){if(F=F??await b(O,S),F!==0||at){let j=new i(x,{method:"POST",body:S,duplex:"half"}),ce;if(P.isFormData(S)&&(ce=j.headers.get("content-type"))&&O.setContentType(ce),j.body){const[ue,de]=K&&q4(F,ta(K4(K)))||[];S=_t(j.body,ue,de)}}}else if(at&&!a&&l&&k!=="get"&&k!=="head")S=_t(S);else if(at&&a&&!f&&k!=="get"&&k!=="head")throw new xe("Stream request bodies are not supported by the current fetch implementation",xe.ERR_NOT_SUPPORT,C,De);P.isString(B)||(B=B?"include":"omit");const Dt=a&&"credentials"in i.prototype;if(P.isFormData(S)){const j=O.getContentType();j&&/^multipart\/form-data/i.test(j)&&!/boundary=/i.test(j)&&O.delete("content-type")}O.set("User-Agent","axios/"+qc,!1);const A={...R,signal:w,method:k.toUpperCase(),headers:mh(O.normalize()),body:S,duplex:"half",credentials:Dt?B:void 0};De=a&&new i(x,A);let z=await(a?be(De,R):be(x,A));const Y=Kt.from(z.headers);if(Q){const j=P.toFiniteNumber(Y.getContentLength());if(j!=null&&j>M)throw new xe("maxContentLength size of "+M+" exceeded",xe.ERR_BAD_RESPONSE,C,De)}const le=g&&(D==="stream"||D==="response");if(g&&z.body&&(X||Q||le&&Ie)){const j={};["status","statusText","headers"].forEach(Ce=>{j[Ce]=z[Ce]});const ce=P.toFiniteNumber(Y.getContentLength()),[ue,de]=X&&q4(ce,ta(K4(X),!0))||[];let ee=0;const ke=Ce=>{if(Q&&(ee=Ce,ee>M))throw new xe("maxContentLength size of "+M+" exceeded",xe.ERR_BAD_RESPONSE,C,De);ue&&ue(Ce)};z=new r(Z4(z.body,J4,ke,()=>{de&&de(),Ie&&Ie()}),j)}D=D||"text";let te=await h[P.findKey(h,D)||"text"](z,C);if(Q&&!g&&!le){let j;if(te!=null&&(typeof te.byteLength=="number"?j=te.byteLength:typeof te.size=="number"?j=te.size:typeof te=="string"&&(j=typeof u=="function"?new u().encode(te).byteLength:te.length)),typeof j=="number"&&j>M)throw new xe("maxContentLength size of "+M+" exceeded",xe.ERR_BAD_RESPONSE,C,De)}return!le&&Ie&&Ie(),await new Promise((j,ce)=>{yh(j,ce,{data:te,headers:Kt.from(z.headers),status:z.status,statusText:z.statusText,config:C,request:De})})}catch(me){if(Ie&&Ie(),w&&w.aborted&&w.reason instanceof xe){const qe=w.reason;throw qe.config=C,De&&(qe.request=De),me!==qe&&Object.defineProperty(qe,"cause",{__proto__:null,value:me,writable:!0,enumerable:!1,configurable:!0}),qe}if(Oe)throw De&&!Oe.request&&(Oe.request=De),Oe;if(me instanceof xe)throw De&&!me.request&&(me.request=De),me;if(me&&me.name==="TypeError"&&/Load failed|fetch/i.test(me.message)){const qe=new xe("Network Error",xe.ERR_NETWORK,C,De,me&&me.response);throw Object.defineProperty(qe,"cause",{__proto__:null,value:me.cause||me,writable:!0,enumerable:!1,configurable:!0}),qe}throw xe.from(me,me&&me.code,C,De,me&&me.response)}}},Kk=new Map,bh=e=>{let t=e&&e.env||{};const{fetch:n,Request:u,Response:s}=t,i=[u,s,n];let r=i.length,o=r,a,c,l=Kk;for(;o--;)a=i[o],c=l.get(a),c===void 0&&l.set(a,c=o?new Map:qk(t)),l=c;return c};bh();const Kc={http:rk,xhr:Ok,fetch:{get:bh}};P.forEach(Kc,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const eg=e=>`- ${e}`,Gk=e=>P.isFunction(e)||e===null||e===!1;function Yk(e,t){e=P.isArray(e)?e:[e];const{length:n}=e;let u,s;const i={};for(let r=0;r`adapter ${a} `+(c===!1?"is not supported by the environment":"is not available in the build"));let o=n?r.length>1?`since : -`+r.map(eg).join(` -`):" "+eg(r[0]):"as no adapter specified";throw new xe("There is no suitable adapter to dispatch the request "+o,xe.ERR_NOT_SUPPORT)}return s}const Bh={getAdapter:Yk,adapters:Kc};function Gl(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Pr(null,e)}function tg(e){return Gl(e),e.headers=Kt.from(e.headers),e.data=Kl.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Bh.getAdapter(e.adapter||zr.adapter,e)(e).then(function(t){Gl(e),e.response=t;try{t.data=Kl.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=Kt.from(t.headers),t},function(t){if(!Ch(t)&&(Gl(e),t&&t.response)){e.response=t.response;try{t.response.data=Kl.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=Kt.from(t.response.headers)}return Promise.reject(t)})}const ua={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ua[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const ng={};ua.transitional=function(e,t,n){function u(s,i){return"[Axios v"+qc+"] Transitional option '"+s+"'"+i+(n?". "+n:"")}return(s,i,r)=>{if(e===!1)throw new xe(u(i," has been removed"+(t?" in "+t:"")),xe.ERR_DEPRECATED);return t&&!ng[i]&&(ng[i]=!0,console.warn(u(i," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(s,i,r):!0}},ua.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Zk(e,t,n){if(typeof e!="object"||e===null)throw new xe("options must be an object",xe.ERR_BAD_OPTION_VALUE);const u=Object.keys(e);let s=u.length;for(;s-- >0;){const i=u[s],r=Object.prototype.hasOwnProperty.call(t,i)?t[i]:void 0;if(r){const o=e[i],a=o===void 0||r(o,i,e);if(a!==!0)throw new xe("option "+i+" must be "+a,xe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new xe("Unknown option "+i,xe.ERR_BAD_OPTION)}}const po={assertOptions:Zk,validators:ua},$t=po.validators;let Cs=class{constructor(e){this.defaults=e||{},this.interceptors={request:new H4,response:new H4}}async request(e,t){try{return await this._request(e,t)}catch(n){if(n instanceof Error){let u={};Error.captureStackTrace?Error.captureStackTrace(u):u=new Error;const s=(()=>{if(!u.stack)return"";const i=u.stack.indexOf(` -`);return i===-1?"":u.stack.slice(i+1)})();try{if(!n.stack)n.stack=s;else if(s){const i=s.indexOf(` -`),r=i===-1?-1:s.indexOf(` -`,i+1),o=r===-1?"":s.slice(r+1);String(n.stack).endsWith(o)||(n.stack+=` -`+s)}}catch{}}throw n}}_request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=As(this.defaults,t);const{transitional:n,paramsSerializer:u,headers:s}=t;n!==void 0&&po.assertOptions(n,{silentJSONParsing:$t.transitional($t.boolean),forcedJSONParsing:$t.transitional($t.boolean),clarifyTimeoutError:$t.transitional($t.boolean),legacyInterceptorReqResOrdering:$t.transitional($t.boolean),advertiseZstdAcceptEncoding:$t.transitional($t.boolean),validateStatusUndefinedResolves:$t.transitional($t.boolean)},!1),u!=null&&(P.isFunction(u)?t.paramsSerializer={serialize:u}:po.assertOptions(u,{encode:$t.function,serialize:$t.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),po.assertOptions(t,{baseUrl:$t.spelling("baseURL"),withXsrfToken:$t.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=s&&P.merge(s.common,s[t.method]);s&&P.forEach(["delete","get","head","post","put","patch","query","common"],g=>{delete s[g]}),t.headers=Kt.concat(i,s);const r=[];let o=!0;this.interceptors.request.forEach(function(g){if(typeof g.runWhen=="function"&&g.runWhen(t)===!1)return;o=o&&g.synchronous;const h=t.transitional||Hc;h&&h.legacyInterceptorReqResOrdering?r.unshift(g.fulfilled,g.rejected):r.push(g.fulfilled,g.rejected)});const a=[];this.interceptors.response.forEach(function(g){a.push(g.fulfilled,g.rejected)});let c,l=0,d;if(!o){const g=[tg.bind(this),void 0];for(g.unshift(...r),g.push(...a),d=g.length,c=Promise.resolve(t);l{if(!u._listeners)return;let i=u._listeners.length;for(;i-- >0;)u._listeners[i](s);u._listeners=null}),this.promise.then=s=>{let i;const r=new Promise(o=>{u.subscribe(o),i=o}).then(s);return r.cancel=function(){u.unsubscribe(i)},r},t(function(s,i,r){u.reason||(u.reason=new Pr(s,i,r),n(u.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=u=>{t.abort(u)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new kh(function(n){t=n}),cancel:t}}};function Xk(e){return function(t){return e.apply(null,t)}}function Qk(e){return P.isObject(e)&&e.isAxiosError===!0}const ec={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(ec).forEach(([e,t])=>{ec[t]=e});function Ah(e){const t=new Cs(e),n=uh(Cs.prototype.request,t);return P.extend(n,Cs.prototype,t,{allOwnKeys:!0}),P.extend(n,t,null,{allOwnKeys:!0}),n.create=function(u){return Ah(As(e,u))},n}const vt=Ah(zr);vt.Axios=Cs,vt.CanceledError=Pr,vt.CancelToken=Jk,vt.isCancel=Ch,vt.VERSION=qc,vt.toFormData=Ra,vt.AxiosError=xe,vt.Cancel=vt.CanceledError,vt.all=function(e){return Promise.all(e)},vt.spread=Xk,vt.isAxiosError=Qk,vt.mergeConfig=As,vt.AxiosHeaders=Kt,vt.formToJSON=e=>Eh(P.isHTMLForm(e)?new FormData(e):e),vt.getAdapter=Bh.getAdapter,vt.HttpStatusCode=ec,vt.default=vt;const{Axios:XP,AxiosError:QP,CanceledError:eI,isCancel:tI,CancelToken:nI,VERSION:uI,all:sI,Cancel:iI,isAxiosError:Gc,spread:rI,toFormData:oI,AxiosHeaders:aI,HttpStatusCode:lI,formToJSON:cI,getAdapter:dI,mergeConfig:mI,create:gI}=vt;function eA(){const e=vt.create({headers:{requesttoken:px()??"","X-Requested-With":"XMLHttpRequest"}});return vx(t=>{e.defaults.headers.requesttoken=t}),Object.assign(e,{CancelToken:vt.CancelToken,isCancel:vt.isCancel})}const ug="_nextcloudCsrfTokenReloaded";function tA(e){return async t=>{if(!Gc(t))throw t;const{config:n,response:u,request:s}=t,i=s?.responseURL;if(n&&!(ug in n)&&u?.status===412&&u?.data?.message==="CSRF check failed"){console.warn(`Request to ${i} failed because of a CSRF mismatch. Fetching a new token.`);const r=await hx();return e.defaults.headers.requesttoken=r,e({...n,[ug]:!0,headers:{...n.headers,requesttoken:r}})}throw t}}const sg="_nextcloudMaintenanceModeRetryDelay";function nA(e){return async t=>{if(!Gc(t))throw t;const{config:n,response:u,request:s}=t,i=s?.responseURL,r=u?.status,o=u?.headers;let a=n?.[sg]??1;if(r===503&&o?.["x-nextcloud-maintenance-mode"]==="1"&&n?.retryIfMaintenanceMode){if(a*=2,a>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:i}),t;return console.warn(`Request to ${i} failed because of maintenance mode. Retrying in ${a}s`),await new Promise(c=>{setTimeout(c,a*1e3)}),e({...n,[sg]:a})}throw t}}async function uA(e){if(Gc(e)){const{config:t,response:n,request:u}=e,s=u?.responseURL;n?.status===401&&n?.data?.message==="Current user is not logged in"&&t?.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 e}const ln=eA();ln.interceptors.response.use(e=>e,tA(ln)),ln.interceptors.response.use(e=>e,nA(ln)),ln.interceptors.response.use(e=>e,uA);const ig=(e,t={})=>ln.get(mi("apps/logreader/api/log"),{...t,params:e}),rg=(e,t={})=>ln.get(mi("apps/logreader/api/poll"),{...t,params:e}),sA=(e,t={})=>ln.put(mi("apps/logreader/api/settings"),e,t),iA=(e,t={})=>ln.get(mi("apps/logreader/api/settings"),{...t,params:e}),ci=[ve("logreader","Debug"),ve("logreader","Info"),ve("logreader","Warning"),ve("logreader","Error"),ve("logreader","Fatal")],Dh=["debug","info","warning","error","fatal"],og=1e4;function rA(e){if(typeof e=="object")return e;if(oA(e))return ag(e);if(aA(e)){const t=ag(e.slice(10)),n=t.Trace?.split(` -`);return t.Trace=n?.map(lA),t}}function oA(e){return typeof e=="string"&&e[0]==="{"}function aA(e){return typeof e=="string"&&e.slice(0,12)==="Exception: {"}function ag(e){try{return JSON.parse(e)}catch{return e=e.replace(/\n/g,"\\n"),e=e.replace(/([^\\])\\([A-Z{])/g,"$1\\\\$2"),JSON.parse(e)}}function lA(e){let t=e.split(" ");const n=t.shift(),u=t.join(" ");if(t=u.split(":"),t.length>1){let s,i;const r=t.shift(),o=t.join(" ");if(r[0]==="[")s=r;else{const a=r.split("(",2);s=a[0];const c=a[1]?.slice(0,a[1].length-1);i=c?parseInt(c):void 0}return{function:o,number:n,file:s,line:i}}else return{function:u,number:n,file:!1}}const Tn=Rc().setApp(f3).build();function cA(e){let t=0,n=0,u=null;const s=[];for(let r=0;r{const e=oi("logreader","settings",{enabled:!1,liveLog:!1,dateTimeFormat:"raw",shownLevels:[],logLevel:2}),t=_e(e.enabled),n=ne(()=>t.value&&a.value===void 0),u=_e(e.liveLog),s=_e(e.shownLevels),i=_e(e.logLevel),r=_e(e.dateTimeFormat),o=ne({get:()=>a.value!==void 0?"raw":r.value,set:f=>{r.value=f}}),a=_e(),c=ne(()=>a.value?.name||"");async function l(f,g){await sA({settingsKey:f,settingsValue:g}),this[f]=g}async function d(){const f=await iA();return Object.keys(f.data).forEach(g=>{this[g]=f.data[g]}),f.data}return{shownLevels:s,logLevel:i,dateTimeFormat:o,enabled:t,isEnabled:n,liveLog:u,localFile:a,localFileName:c,setSetting:l,getSettings:d}}),ja=Uf("logreader-logs",()=>{const e=uu(),t=_e([]),n=_e(""),u=ne(()=>{if(n.value){const g=n.value.toLowerCase();return t.value.filter(h=>JSON.stringify(h).toLowerCase().includes(g))}return t.value}),s=_e(!0),i=_e(!1),r=_e(!1);async function o(g=!0){if(e.isEnabled&&(r.value=!r.value))try{if(g||!t.value.length){const{data:h}=await ig({offset:t.value.length,query:n.value});t.value.push(...h.data.map(ji)),s.value=h.remain}else{const{data:h}=await rg({lastReqId:t.value[0].reqId});t.value.splice(0,0,...h.map(ji))}}catch(h){Tn.debug(h),yu(ve("logreader","Could not load log entries"))}finally{r.value=!1}}async function a(){if(!e.localFile){Tn.debug("Can not read file, no file was uploaded");return}t.value=await dA(e.localFile),s.value=!1}async function c(g){if(g!=="")try{t.value=await Fh(g),e.localFile=new File([],ve("logreader","Clipboard")),s.value=!1}catch(h){yu(ve("logreader","Could not parse clipboard content")),Tn.error(h)}}function l(){i.value=!1}function d(){if(i.value)return;const g=async()=>{try{if(e.isEnabled&&n.value===""&&t.value.length){const{data:h}=await rg({lastReqId:t.value[0].reqId});t.value.splice(0,0,...h.map(ji))}}catch(h){Tn.warn("Unexpected error while polling for new log entries",{error:h}),(h.status||0)>=500?yu(ve("logreader","Could not fetch new log entries (server unavailable)")):yu(ve("logreader","Could not fetch new entries"))}finally{i.value&&window.setTimeout(g,og)}};i.value=!0,window.setTimeout(g,og)}async function f(g=""){const h=n.value;if(n.value=g,g!==h&&e.isEnabled){r.value=!0;try{const{data:E}=await ig({offset:0,query:g});t.value=[...E.data.map(ji)],s.value=E.remain}finally{r.value=!1}}}return{allEntries:t,entries:u,hasRemainingEntries:s,query:n,loadMore:o,loadText:c,loadFile:a,startPolling:d,stopPolling:l,searchLogs:f}}),mA=["innerHTML"],gA={class:"hidden-visually"},fA=Me({__name:"SettingsActions",setup(e){const t=uu(),n=ja(),u=`${ve("logreader","Ctrl")} + v`,s=mi("/settings/admin/log/download"),i=_e();async function r(){const o=i.value?.files?.item?.(0);if(o)try{t.localFile=o,await n.loadFile()}catch(a){t.localFile=void 0,yu(ve("logreader","Could not parse local log file")),Tn.debug(a)}}return(o,a)=>(_(),W("div",null,[Ee(I(Ro),{type:"info",class:"info-note"},{default:he(()=>[Z("p",{innerHTML:I(ve)("logreader","You can also show log entries copied from your clipboard by pasting them on the log view using: {keyboardShortcut}",{keyboardShortcut:u},void 0,{escape:!1})},null,8,mA)]),_:1}),Ee(I(Ct),{href:I(t).enabled?I(s):null,disabled:!I(t).enabled,download:"nextcloud.log"},{icon:he(()=>[Ee(Gb,{size:20})]),default:he(()=>[We(" "+re(I(ve)("logreader","Download logs")),1)]),_:1},8,["href","disabled"]),Ee(I(Ct),{onClick:a[0]||(a[0]=c=>i.value?.click())},{icon:he(()=>[Ee(tB,{size:20})]),default:he(()=>[We(" "+re(I(ve)("logreader","Show local log file")),1)]),_:1}),Z("label",gA,[We(re(I(ve)("logreader","Upload local log file to be displayed"))+" ",1),Z("input",{ref_key:"fileinput",ref:i,type:"file",name:"logfile",accept:".log,.json,.txt,application/json,text/plain",onChange:gn(r,["stop"])},null,544)])]))}}),pA=gt(fA,[["__scopeId","data-v-a8dbd136"]]),hA=`{document.readyState==="complete"||document.readyState==="interactive"?(t.context.level=window._oc_config?.loglevel??ht.Warn,window._oc_debug&&(t.context.level=ht.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function Lc(){return new E2(v2)}const ku=Lc().detectUser().setApp("@nextcloud/vue").build(),Ko=Ty(),C2=Te({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),y2="_ncPopover_HD5BC",x2={"material-design-icon":"_material-design-icon_sCkSO",ncPopover:y2},jp="nc-popover-9";E4.themes[jp]=structuredClone(E4.themes.dropdown);const b2={name:"NcPopover",components:{Dropdown:K6,NcPopoverTriggerProvider:C2},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:e=>["menu","listbox","tree","grid","dialog","true"].includes(e)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:jp}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?Ko?"right":"left":this.placement==="end"?Ko?"left":"right":this.placement}},watch:{shown(e){this.internalShown=e},internalShown(e){this.$emit("update:shown",e)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const e=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const t of e)t.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const e=this.getPopoverContentElement();e.tabIndex=-1,e&&(this.$focusTrap=gp(e,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:dr(),fallBackFocus:e}),this.$focusTrap.activate())},clearFocusTrap(e={}){try{this.$focusTrap?.deactivate(e),this.$focusTrap=null}catch(t){ku.warn("[NcPopover] Failed to clear focus trap",{error:t})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(e){e.type==="keydown"&&e.key==="Escape"&&e.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function w2(e,t,n,u,s,i){const r=mn("NcPopoverTriggerProvider"),o=mn("Dropdown");return D(),pe(o,{ref:"popover",shown:s.internalShown,"onUpdate:shown":[t[0]||(t[0]=a=>s.internalShown=a),t[1]||(t[1]=a=>s.internalShown=a)],autoHide:!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:4,handleResize:"",noAutoFocus:!0,placement:i.internalPlacement,popperClass:[e.$style.ncPopover,n.popoverBaseClass],popperTriggers:i.popperTriggers,popperHideTriggers:i.popperHideTriggers,popperShowTriggers:i.popperShowTriggers,theme:u.theme,triggers:i.internalTriggers,hideTriggers:i.hideTriggers,showTriggers:i.showTriggers,onApplyShow:i.afterShow,onApplyHide:i.afterHide},{popper:re(a=>[De(e.$slots,"default",vn(un(a)))]),default:re(()=>[le(r,{shown:s.internalShown,popupRole:n.popupRole},{default:re(a=>[De(e.$slots,"trigger",vn(un(a)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const k2={$style:x2},_4=Ze(b2,[["render",w2],["__cssModules",k2]]),Mp=Symbol.for("NcActions:isSemanticMenu"),$p=Symbol.for("NcActions:closeMenu"),B2={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},A2=["aria-hidden","aria-label"],D2=["fill","width","height"],F2={d:"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"},S2={key:0};function _2(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",F2,[n.title?(D(),R("title",S2,te(n.title),1)):me("",!0)])],8,D2))],16,A2)}const N2=Ze(B2,[["render",_2]]);yt(Q5);function Vp(e){return Array.isArray(e)&&e.some(t=>{if(t===null)return!1;if(typeof t=="object"){const n=t;if(n.type===Ft||n.type===qe&&!Vp(n.children)||n.type===kr&&!n.children.trim())return!1}return!0})}const T2=".focusable",z2={name:"NcActions",components:{NcButton:dt,NcPopover:_4},provide(){return{[Mp]:Z(()=>this.actionsMenuSemanticType==="menu"),[$p]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:$e("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(e){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(e)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(e){return["small","normal","large"].includes(e)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:cn()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(e){e!==this.opened&&(this.opened=e)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){Xx(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(e){return e?.type?.name},isValidSingleAction(e){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(e))},isAction(e){return this.getActionName(e)?.startsWith?.("NcAction")},isIconUrl(e){try{return!!new URL(e,e.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(e){e?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(e=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:e}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,e&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(T2)},onKeydown(e){if(e.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}e.preventDefault();const t=this.getFocusableMenuItemElements(),n=[...t].indexOf(document.activeElement);if(n===-1)return;const u=e.shiftKey?n-1:n+1;(u<0||u===t.length)&&this.closeMenu(!0),this.focusIndex=u,this.focusAction();return}this.config.withArrowNavigation&&(e.key==="ArrowUp"&&this.focusPreviousAction(e),e.key==="ArrowDown"&&this.focusNextAction(e),e.key==="PageUp"&&this.focusFirstAction(e),e.key==="PageDown"&&this.focusLastAction(e)),this.handleEscapePressed(e)},onTriggerKeydown(e){e.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(e){e.key==="Escape"&&(this.closeMenu(),e.preventDefault())},removeCurrentActive(){const e=this.$refs.menu.querySelector("li.active");e&&e.classList.remove("active")},focusAction(){const e=this.getFocusableMenuItemElements()[this.focusIndex];if(e){this.removeCurrentActive();const t=e.closest("li.action");e.focus(),t&&t.classList.add("active")}},focusPreviousAction(e){this.opened&&(this.focusIndex===0?this.focusLastAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(e){if(this.opened){const t=this.getFocusableMenuItemElements().length-1;this.focusIndex===t?this.focusFirstAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(e){if(this.opened){this.preventIfEvent(e);const t=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=t>-1?t:0,this.focusAction()}},focusLastAction(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(e){e&&(e.preventDefault(),e.stopPropagation())},onFocus(e){this.$emit("focus",e)},onBlur(e){this.$emit("blur",e),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(e){this.$emit("click",e)}},render(){const e=[],t=(m,f)=>{m.forEach(p=>{if(this.isAction(p)){f.push(p);return}p.type===qe&&t(p.children,f)})};if(t(this.$slots.default?.(),e),e.length===0)return;let n=e.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const u=n.slice(0,this.inline),s=e.filter(m=>!u.includes(m)),i=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],r=["NcActionInput","NcActionTextEditable"],o=["NcActionLink","NcActionRouter"],a=s.some(m=>r.includes(this.getActionName(m))),l=s.some(m=>i.includes(this.getActionName(m))),c=s.some(m=>o.includes(this.getActionName(m)));a?this.actionsMenuSemanticType="dialog":l?this.actionsMenuSemanticType="menu":c?this.actionsMenuSemanticType="navigation":e.filter(m=>this.getActionName(m).startsWith("NcAction")).length===e.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const d=m=>{const f=m?.props?.icon,p=m?.children?.icon?.()?.[0]??(this.isIconUrl(f)?je("img",{class:"action-item__menutoggle__icon",src:f,alt:""}):je("span",{class:["icon",f]})),E=m?.children?.default?.()?.[0]?.children?.trim(),v=this.forceName?E:"";let C=m?.props?.title;this.forceName||C||(C=E);const y={...m?.props??{}},k=["submit","reset"].includes(y.type)?y.modelValue:"button";return delete y.modelValue,delete y.type,je(dt,Ve(y,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":m?.props?.["aria-label"]||E,title:C,disabled:this.disabled||m?.props?.disabled,pressed:m?.props?.modelValue,size:this.size,type:k,wide:this.wide,variant:this.variant||(v?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":m?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>v,icon:()=>p})},g=m=>{const f=Vp(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?je("span",{class:["icon",this.defaultIcon]}):je(N2,{size:20}),p=`${this.randomId}-trigger`;return je(_4,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterHide:this.onClosed},{trigger:()=>je(dt,{id:p,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>f,default:()=>this.menuName}),default:()=>je("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[je("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":p,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[m])])})};return e.length===1&&n.length===1&&!this.forceMenu?d(e[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),u.length>0&&this.inline>0?je("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...u.map(d),s.length>0?je("div",{class:["action-item",{"action-item--open":this.opened}]},[g(s)]):null]):je("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[g(e)]))}},Up=Ze(z2,[["__scopeId","data-v-7206c1f1"]]);yt(J5);const O2={long:$e("a few seconds ago"),short:$e("seconds ago"),narrow:$e("sec. ago")};function L2(e=Date.now(),t={}){let n;const u=Z(()=>new Date(Nt(e))),s=Z(()=>{const{language:o,relativeTime:a,ignoreSeconds:l}=Nt(t);return{...o&&{language:o},...a&&{relativeTime:a},ignoreSeconds:l?O2[a||"long"]:!1}}),i=be("");Ca(r);function r(){const o=u.value.getTime();if(Number.isNaN(o)){i.value=$e("Invalid date");return}else i.value=Ly(u.value,s.value);if(Nt(t).update!==!1){const a=Math.abs(Date.now()-o),l=a>12e4||s.value.ignoreSeconds?Math.min(a/60,18e5):1e3;n=window.setTimeout(r,l)}}return Bn(()=>n&&window.clearTimeout(n)),tr(i)}function I2(e,t){const n=Z(()=>({locale:Xf(),format:{dateStyle:"short",timeStyle:"medium"},...Nt(t)})),u=Z(()=>new Intl.DateTimeFormat(n.value.locale,n.value.format));return Z(()=>u.value.format(Nt(e)))}const Hp=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),P2=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),R2=/^[a-zA-Z0-9]$/,j2=/^[^\x20-\x7F]$/;function M2(e,t){return!(e.target instanceof HTMLElement)||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement||e.target.isContentEditable?!0:t.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function N4(e,t){return n=>{if((Hp?n.metaKey:n.ctrlKey)===!!t.ctrl){if(n.altKey!==!!t.alt||t.shift!==void 0&&n.shiftKey!==!!t.shift||M2(n,t))return;t.prevent&&n.preventDefault(),t.stop&&n.stopPropagation(),e(n)}}}function q0(e,t=()=>{},n={}){if(P2)return()=>{};const u=(o,a)=>{if(o.key===a)return!0;if(n.caseSensitive){const l=a===a.toLowerCase(),c=o.key===o.key.toLowerCase();if(l!==c)return!1}return R2.test(a)&&j2.test(o.key)?o.code.replace(/^(?:Key|Digit|Numpad)/,"")===a.toUpperCase():o.key.toLowerCase()===a.toLowerCase()},s=o=>typeof e=="function"?e(o):typeof e=="string"?u(o,e):Array.isArray(e)?e.some(a=>u(o,a)):!0,i=qm(s,N4(t,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),r=n.push?qm(s,N4(t,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{i(),r()}}function $2(e=document.body){const t=window.getComputedStyle(e).getPropertyValue("--background-invert-if-dark");return t!==void 0?t==="invert(100%)":!1}$2();const V2=be(Wp());window.addEventListener("resize",()=>{V2.value=Wp()});function Wp(){return window.outerHeight===window.screen.height}const Ic=1024,qp=Ic/2,Yo=e=>document.documentElement.clientWidth{Kp.value=Yo(Ic),U2.value=Yo(qp)},{passive:!0});function H2(){return tr(Kp)}function T4(e){return!e.parent||"vapor"in e||"vapor"in e.parent||e.parent.subTree!==e.vnode?null:e.parent}function W2(e){const t=[e];let n=T4(e);for(;n;)t.push(n),n=T4(n);return t}function q2(){const e=zn();if(!e)throw new Error("useScopeId must be called within a setup context");const t=W2(e).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(t.map(n=>[n,""]))}yt(sp,cx);const K2=["aria-labelledby","aria-describedby"],Y2=["data-theme-light","data-theme-dark"],G2=["id"],Z2={class:"icons-menu"},X2=["title"],J2=["id"],Q2={class:"modal-container__content"},eb=Te({inheritAttrs:!1,__name:"NcModal",props:$u({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{},slideshowRunning:{type:Boolean,default:!1},slideshowRunningModifiers:{}}),emits:$u(["next","previous","close","update:show"],["update:show","update:slideshowRunning"]),setup(e,{emit:t}){Aa(T=>({v46e58dab:v.value,v58d005d2:f.value}));const n=ni(e,"show"),u=ni(e,"slideshowRunning"),s=e,i=t,r=q2(),o=cn(),a=bn("mask");let l;Bn(()=>B()),$t(()=>s.additionalTrapElements,T=>{l&&l.updateContainerElements([a.value,...T])});const{isActive:c,pause:d,resume:g}=V5(y,Eo(()=>s.slideshowDelay),{immediate:!1}),m=be(0);Ca(()=>{u.value&&!s.slideshowPaused?g():c.value&&d()});const f=Z(()=>`${s.slideshowDelay}ms`),{stop:p}=Y5(a,{onSwipeEnd:j});Bn(p),q0("Escape",()=>{dr().at(-1)===l&&P()},{allowInModal:!0}),q0(["ArrowLeft","ArrowRight"],T=>{document.activeElement&&!a.value.contains(document.activeElement)||(T.key==="ArrowLeft"!==Ko?k():y())},{allowInModal:!0});const E=bc(),v=Z(()=>{let T=0;return s.hasNext&&s.enableSlideshow&&T++,!s.noClose&&s.closeButtonOutside&&T++,E.actions&&T++,T}),C=Z(()=>s.name.trim()!==""||v.value>0);Qt(()=>{!s.name&&s.labelId});function y(T){if(!s.hasNext){u.value=!1;return}T&&c.value&&F(),i("next",T)}function k(T){s.hasPrevious&&(T&&c.value&&F(),i("previous",T))}function j(T,x){if(!s.disableSwipe){if(x!=="left"&&x!=="right")return;x==="left"!==Ko?y(T):k(T)}}function F(){d(),g(),m.value++}function P(T){s.noClose||(n.value=!1,setTimeout(()=>{i("close",T)},300))}function K(T){s.closeOnClickOutside&&P(T)}async function $(){if(l)return;await yu();const T={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:dr(),escapeDeactivates:!1,setReturnFocus:s.setReturnFocus};l=gp([a.value,...s.additionalTrapElements],T),l.activate()}function B(){l&&(l?.deactivate(),l=void 0)}return(T,x)=>(D(),pe(fE,{disabled:e.container===null,to:e.container},[le(Ms,{name:"fade",appear:"",onAfterEnter:$,onBeforeLeave:B},{default:re(()=>[Lu(H("div",Ve({...T.$attrs,...N(r)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":e.dark||e.closeButtonOutside||e.hasPrevious||e.hasNext,"modal-mask--light":e.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":e.labelId||`modal-name-${N(o)}`,"aria-describedby":"modal-description-"+N(o),tabindex:"-1"}),[le(Ms,{name:"fade-visibility",appear:""},{default:re(()=>[C.value?(D(),R("div",{key:0,class:"modal-header","data-theme-light":e.lightBackdrop,"data-theme-dark":!e.lightBackdrop},[e.name.trim()!==""?(D(),R("h2",{key:0,id:"modal-name-"+N(o),class:"modal-header__name"},te(e.name),9,G2)):me("",!0),H("div",Z2,[e.hasNext&&e.enableSlideshow?(D(),R("button",{key:0,class:Ae(["play-pause-icons",{"play-pause-icons--paused":e.slideshowPaused}]),title:N(c)?N($e)("Pause slideshow"):N($e)("Start slideshow"),type:"button",onClick:x[0]||(x[0]=z=>u.value=!u.value)},[le(St,{class:"play-pause-icons__icon",inline:"",name:N(c)?N($e)("Pause slideshow"):N($e)("Start slideshow"),path:N(c)?N(c5):N(d5)},null,8,["name","path"]),N(c)?(D(),R("svg",{key:`${N(o)}-animation-${m.value}`,class:"progress-ring"},[...x[1]||(x[1]=[H("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",cx:"50%",cy:"50%"},null,-1)])])):me("",!0)],10,X2)):me("",!0),le(Up,{class:"header-actions",inline:e.inlineActions},{default:re(()=>[De(T.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!e.noClose&&e.closeButtonOutside?(D(),pe(dt,{key:1,"aria-label":N($e)("Close"),class:"header-close",variant:"tertiary",onClick:P},{icon:re(()=>[le(St,{path:N(T0)},null,8,["path"])]),_:1},8,["aria-label"])):me("",!0)])],8,Y2)):me("",!0)]),_:3}),le(Ms,{name:`modal-${e.outTransition?"out":"in"}`,appear:""},{default:re(()=>[Lu(H("div",{class:Ae(["modal-wrapper",[`modal-wrapper--${e.size}`,{"modal-wrapper--spread-navigation":e.spreadNavigation,"modal-wrapper--no-header":!C.value}]]),onMousedown:ln(K,["self"])},[le(Ms,{name:"fade-visibility",appear:""},{default:re(()=>[Lu(le(dt,{"aria-label":N($e)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:k},{icon:re(()=>[le(St,{directional:"",path:N(o5),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[ls,e.hasPrevious]])]),_:1}),H("div",{id:"modal-description-"+N(o),class:"modal-container"},[H("div",Q2,[De(T.$slots,"default",{},void 0,!0)]),!e.noClose&&!e.closeButtonOutside?(D(),pe(dt,{key:0,"aria-label":N($e)("Close"),class:"modal-container__close",variant:"tertiary",onClick:P},{icon:re(()=>[le(St,{path:N(T0)},null,8,["path"])]),_:1},8,["aria-label"])):me("",!0)],8,J2),le(Ms,{name:"fade-visibility",appear:""},{default:re(()=>[Lu(le(dt,{"aria-label":N($e)("Next"),class:"next",variant:"tertiary-no-background",onClick:y},{icon:re(()=>[le(St,{directional:"",path:N(tp),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[ls,e.hasNext]])]),_:1})],34),[[ls,n.value]])]),_:3},8,["name"])],16,K2),[[ls,n.value]])]),_:3})],8,["disabled","to"]))}}),Yp=Ze(eb,[["__scopeId","data-v-c6039372"]]),tb=["id","textContent"],nb=["aria-label","aria-labelledby"],ub={class:"dialog__text"},sb={class:"dialog__actions"},ib=Te({__name:"NcDialog",props:$u({name:{},message:{default:""},additionalTrapElements:{default:()=>[]},container:{default:"body"},size:{default:"small"},buttons:{default:()=>[]},isForm:{type:Boolean},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},outTransition:{type:Boolean},navigationAriaLabel:{default:""},navigationAriaLabelledby:{default:""},contentClasses:{default:""},dialogClasses:{default:""},navigationClasses:{default:""}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:$u(["closing","reset","submit"],["update:open"]),setup(e,{emit:t}){const n=ni(e,"open"),u=e,s=t,i=bc(),r=bn("wrapper"),{width:o}=O0(r,{width:900,height:0}),a=Z(()=>o.value<876),l=Z(()=>i?.navigation!==void 0),c=cn(),d=Z(()=>u.navigationAriaLabel||void 0),g=Z(()=>{if(!u.navigationAriaLabel)return u.navigationAriaLabelledby||c}),m=bn("dialogElement"),f=Z(()=>u.isForm&&!l.value?"form":"div"),p=Z(()=>f.value!=="form"?{}:{submit(j){j.preventDefault(),s("submit",j)},reset(j){j.preventDefault(),s("reset",j)}}),E=be(!0);function v(j,F){j.type==="submit"&&f.value==="form"&&"reportValidity"in m.value&&!m.value.reportValidity()||(C(F),window.setTimeout(()=>y(),300))}function C(j){E.value=!1,s("closing",j)}function y(){E.value=!0,n.value=!1}const k=Z(()=>({noClose:u.noClose,container:u.container===void 0?"body":u.container,labelId:c,size:u.size,show:n.value&&E.value,outTransition:u.outTransition,closeOnClickOutside:u.closeOnClickOutside,additionalTrapElements:u.additionalTrapElements}));return(j,F)=>n.value?(D(),pe(N(Yp),Ve({key:0,class:"dialog__modal",disableSwipe:""},k.value,{onClose:y,"onUpdate:show":F[0]||(F[0]=P=>C())}),{default:re(()=>[H("h2",{id:N(c),class:"dialog__name",textContent:te(e.name)},null,8,tb),(D(),pe(hu(f.value),Ve({ref:"dialogElement",class:["dialog",e.dialogClasses]},ko(p.value)),{default:re(()=>[H("div",{ref:"wrapper",class:Ae(["dialog__wrapper",[{"dialog__wrapper--collapsed":a.value}]])},[l.value?(D(),R("nav",{key:0,class:Ae(["dialog__navigation",e.navigationClasses]),"aria-label":d.value,"aria-labelledby":g.value},[De(j.$slots,"navigation",{isCollapsed:a.value},void 0,!0)],10,nb)):me("",!0),H("div",{class:Ae(["dialog__content",e.contentClasses])},[De(j.$slots,"default",{},()=>[H("p",ub,te(e.message),1)],!0)],2)],2),H("div",sb,[De(j.$slots,"actions",{},()=>[(D(!0),R(qe,null,Zn(e.buttons,(P,K)=>(D(),pe(N(xx),Ve({key:K},{ref_for:!0},P,{onClick:($,B)=>v(P,B)}),null,16,["onClick"]))),128))],!0)])]),_:3},16,["class"]))]),_:3},16)):me("",!0)}}),rb=Ze(ib,[["__scopeId","data-v-adda232f"]]),ob=Te({name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(){return this.vnodes||this.$slots?.default?.({})}});function ui(e,t,n){const u=`#initial-state-${e}-${t}`;if(window._nc_initial_state?.has(u))return window._nc_initial_state.get(u);window._nc_initial_state||(window._nc_initial_state=new Map);const s=document.querySelector(u);if(s===null){if(n!==void 0)return n;throw new Error(`Could not find initial state ${t} of ${e}`)}try{const i=JSON.parse(atob(s.value));return window._nc_initial_state.set(u,i),i}catch(i){if(console.error("[@nextcloud/initial-state] Could not parse initial state",{key:t,app:e,error:i}),n!==void 0)return n;throw new Error(`Could not parse initial state ${t} of ${e}`,{cause:i})}}function ab(e){let t=!1,n;return(...u)=>(t||(t=!0,n=e(...u)),n)}let Gp="missing-app-name";try{Gp=p3}catch{ku.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.")}const lb=Gp;let Zp="";try{Zp=o1}catch{ku.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.")}const cb=Zp;function db(){return Tt("appName",lb)}const mb=ab(()=>{const e=ui("core","apps",[]),t=db();return e.find(({id:n})=>n===t)?.name??t}),Xp=Symbol.for("NcAppSettingsDialog:registration"),Pc=Symbol.for("NcAppSettingsDialog:legacy");function gb(){return Tt(Xp)}const fb=Te({__name:"NcAppSettingsDialogVersion",setup(e){const t=Tt(Pc),n=mb();return(u,s)=>(D(),R("div",{class:Ae([u.$style.appSettingsDialogVersion,{[u.$style.appSettingsDialogVersion__legacy]:N(t)}])},te(N(n))+" "+te(N(cb)),3))}}),pb="_appSettingsDialogVersion_zdiMg",hb="_appSettingsDialogVersion__legacy_S2z5e",vb={"material-design-icon":"_material-design-icon_hQ2c6",appSettingsDialogVersion:pb,appSettingsDialogVersion__legacy:hb},Eb={$style:vb},Cb=Ze(fb,[["__cssModules",Eb]]);yt(gx);const yb={key:0,class:"app-settings__title"},xb={key:1,class:"navigation-list"},bb=["aria-current","href","onClick","onKeydown"],wb={key:0,class:"navigation-list__link-icon"},kb={class:"navigation-list__link-text"},Bb=Te({__name:"NcAppSettingsDialog",props:$u({showNavigation:{type:Boolean},container:{default:"body"},name:{default:""},additionalTrapElements:{default:()=>[]},legacy:{type:Boolean,default:!1},noVersion:{type:Boolean,default:!1}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:["update:open"],setup(e){const t=ni(e,"open"),n=e;p0(Xp,{registerSection:p,unregisterSection:E}),p0(Pc,Eo(()=>n.legacy));const u=bn("settingsScroller"),s=H2(),i=be(""),r=be(!1),o=be([]),a=Z(()=>!s.value&&n.showNavigation),l=Z(()=>o.value.some(({icon:v})=>!!v)),c=I5(()=>{i.value="",document.activeElement?.className.includes("navigation-list__link")&&document.activeElement.blur()},300),d=new Map;ii(()=>{d.clear()});function g(v){r.value=!0,document.getElementById("settings-section_"+v).scrollIntoView({behavior:"smooth",inline:"nearest"}),i.value=v,setTimeout(()=>{r.value=!1},1e3)}function m(v){v||(t.value=!1,u.value.scrollTop=0)}function f(){t.value&&!r.value&&c()}function p(v,C,y,k){if(o.value.some(({id:j})=>v===j))throw new Error(`Duplicate section id found: ${v}. Settings navigation sections must have unique section ids.`);o.value.some(({name:j})=>C===j),y!==void 0?d.set(v,y):d.has(v)?y=d.get(v):(y=Math.max(0,...d.values())+1,d.set(v,y)),o.value=[...o.value,{id:v,name:C,order:y,icon:k}].sort(({order:j},{order:F})=>j-F),o.value.length===1&&(i.value=v)}function E(v){o.value=o.value.filter(({id:C})=>v!==C),i.value===v&&(i.value=o.value[0]?.id??"")}return(v,C)=>t.value?(D(),pe(rb,{key:0,class:Ae(["app-settings",{"app-settings--legacy":N(N0)}]),contentClasses:"app-settings__content",navigationClasses:"app-settings__navigation",additionalTrapElements:e.additionalTrapElements,container:e.container,closeOnClickOutside:"","navigation-aria-label":N($e)("Settings navigation"),size:"large",name:e.name,"onUpdate:open":m},xc({default:re(()=>[H("div",{ref:"settingsScroller",onScroll:f},[De(v.$slots,"default",{},void 0,!0),e.noVersion?me("",!0):(D(),pe(Cb,{key:0}))],544)]),_:2},[a.value?{name:"navigation",fn:re(({isCollapsed:y})=>[N(N0)?me("",!0):(D(),R("div",yb,te(e.name),1)),y?me("",!0):(D(),R("ul",xb,[(D(!0),R(qe,null,Zn(o.value,k=>(D(),R("li",{key:k.id},[H("a",{"aria-current":`${k.id===i.value}`,class:Ae(["navigation-list__link",{"navigation-list__link--active":k.id===i.value,"navigation-list__link--icon":l.value}]),href:`#settings-section_${k.id}`,tabindex:"0",onClick:ln(j=>g(k.id),["prevent"]),onKeydown:lr(j=>g(k.id),["enter"])},[l.value?(D(),R("div",wb,[k.icon?(D(),pe(ob,{key:0,vnodes:k.icon},null,8,["vnodes"])):me("",!0)])):me("",!0),H("span",kb,te(k.name),1)],42,bb)]))),128))]))]),key:"0"}:void 0]),1032,["class","additionalTrapElements","container","navigation-aria-label","name"])):me("",!0)}}),Ab=Ze(Bb,[["__scopeId","data-v-71803906"]]),Db=["id","aria-labelledby"],Fb=["id"],Sb={class:"app-settings-section__description"},_b={class:"app-settings-section__content"},Nb=Te({__name:"NcAppSettingsSection",props:{name:{},description:{},id:{},order:{}},setup(e){const t=e,n=bc(),{registerSection:u,unregisterSection:s}=gb(),i=Tt(Pc),r=Z(()=>"settings-section_"+t.id);return $t(()=>t.id,()=>{/^[a-z0-9\-_]+$/.test(t.id)||ku.warn(`Invalid id prop: ${t.id}. Only alphanumeric, dash and underscore are allowed.`)},{immediate:!0}),$t([()=>t.id,()=>t.name,()=>t.order],([o,a,l],[c,,])=>{s(c),u(o,a,l,n?.icon?.())}),Qt(()=>{u(t.id,t.name,t.order,n?.icon?.())}),ii(()=>{s(t.id)}),(o,a)=>(D(),R("section",{id:r.value,"aria-labelledby":`${r.value}--label`,class:Ae(["app-settings-section",{"app-settings-section__legacy":N(i)}])},[H("h3",{id:`${r.value}--label`,class:"app-settings-section__name"},te(e.name),9,Fb),H("div",Sb,te(e.description),1),H("div",_b,[De(o.$slots,"default",{},void 0,!0)])],10,Db))}}),Vs=Ze(Nb,[["__scopeId","data-v-9f146f2d"]]);yt(ip);const Tb=Te({__name:"NcAppSettingsShortcutsSection",setup(e){return(t,n)=>(D(),pe(Vs,{id:"keyboard-shortcuts",name:N($e)("Keyboard shortcuts")},{default:re(()=>[H("div",{class:Ae(t.$style.appSettingsSectionShortcuts)},[De(t.$slots,"default")],2)]),_:3},8,["name"]))}}),zb="_appSettingsSectionShortcuts_r6ONT",Ob={appSettingsSectionShortcuts:zb},Lb={$style:Ob},Ib=Ze(Tb,[["__cssModules",Lb]]);yt(ex);const Pb=Te({__name:"NcKbd",props:{symbol:{default:()=>{}},mac:{type:Boolean,default:()=>Hp}},setup(e){const t=Z(()=>({ArrowUp:"↑",ArrowDown:"↓",ArrowLeft:"←",ArrowRight:"→",Control:e.mac?"⌘":$e("Ctrl"),Alt:e.mac?"⌥":$e("Alt"),Shift:e.mac?"⇧":$e("Shift"),Enter:e.mac?"⏎":$e("Enter"),Tab:e.mac?"⇥":$e("Tab"),Delete:e.mac?"⌫":$e("Delete"),Escape:e.mac?"⎋":$e("Escape"),Space:$e("Space")})),n=Z(()=>e.symbol&&t.value[e.symbol]||e.symbol);return(u,s)=>(D(),R("kbd",{class:Ae(u.$style.kbd)},[De(u.$slots,"default",{},()=>[Re(te(n.value),1)])],2))}}),Rb="_kbd_ouG-F",jb={"material-design-icon":"_material-design-icon_TcOah",kbd:Rb},Mb={$style:jb},$b=Ze(Pb,[["__cssModules",Mb]]),Vb="⚠️ NcHotKey must have a label or slot content",Ub=Te({__name:"NcHotkey",props:{label:{default:()=>{}},hotkey:{default:()=>{}}},setup(e){const t=Z(()=>e.hotkey?.split(/\s+/).map(n=>n.trim()));return(n,u)=>(D(),R("li",{class:Ae(n.$style.hotkey)},[H("span",{role:"term",class:Ae(n.$style.hotkey__keys)},[De(n.$slots,"hotkey",{},()=>[(D(!0),R(qe,null,Zn(t.value,(s,i)=>(D(),pe($b,{key:i,symbol:s},null,8,["symbol"]))),128))])],2),H("span",{role:"definition",class:Ae(n.$style.hotkey__label)},[De(n.$slots,"default",{},()=>[Re(te(e.label||Vb),1)])],2)],2))}}),Hb="_hotkey_W5WOO",Wb="_hotkey__label_UJqDg",qb="_hotkey__keys_DhshL",Kb={"material-design-icon":"_material-design-icon_b8Jeb",hotkey:Hb,hotkey__label:Wb,hotkey__keys:qb},Yb={$style:Kb},Gb=Ze(Ub,[["__cssModules",Yb]]);yt(ip);const Zb=Te({__name:"NcHotkeyList",props:{label:{default:()=>{}}},setup(e){const t=`NcHotkeyList_${cn()}`;return(n,u)=>(D(),R("div",{class:Ae(n.$style.hotkeyList)},[H("div",{id:t,class:Ae([n.$style.hotkeyList__heading,{"hidden-visually":!e.label}])},te(e.label||N($e)("Keyboard shortcuts")),3),H("ul",{"aria-labelledby":t},[De(n.$slots,"default")])],2))}}),Xb="_hotkeyList_l6iQ2",Jb="_hotkeyList__heading_N5hMl",Qb={hotkeyList:Xb,hotkeyList__heading:Jb},ew={$style:Qb},tw=Ze(Zb,[["__cssModules",ew]]),nw="modulepreload",uw=function(e,t){return new URL(e,t).href},z4={},sw=function(e,t,n){let u=Promise.resolve();if(t&&t.length>0){let i=function(l){return Promise.all(l.map(c=>Promise.resolve(c).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const r=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),a=o?.nonce||o?.getAttribute("nonce");u=i(t.map(l=>{if(l=uw(l,n),l in z4)return;z4[l]=!0;const c=l.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(n)for(let m=r.length-1;m>=0;m--){const f=r[m];if(f.href===l&&(!c||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${d}`))return;const g=document.createElement("link");if(g.rel=c?"stylesheet":nw,c||(g.as="script"),g.crossOrigin="",g.href=l,a&&g.setAttribute("nonce",a),document.head.appendChild(g),c)return new Promise((m,f)=>{g.addEventListener("load",m),g.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(i){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=i,window.dispatchEvent(r),!r.defaultPrevented)throw i}return u.then(i=>{for(const r of i||[])r.status==="rejected"&&s(r.reason);return e().catch(s)})};function iw(){try{return ui("core","capabilities")}catch{return console.debug("Could not find capabilities initial state fall back to _oc_capabilities"),"_oc_capabilities"in window?window._oc_capabilities:{}}}var rw="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";const Jp=up().detectLanguage();for(const e of[{language:"ar",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" لا يصلح كاسم مجلد.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" غير مسموح به كاسم مجلد']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" غير مسموح به داخل اسم مجلد.']},{msgid:"All files",msgstr:["كل الملفات"]},{msgid:"Choose",msgstr:["إختَر"]},{msgid:"Choose {file}",msgstr:["إختر {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["إختَر %n ملف","إختَر %n ملف","إختَر %n ملف","إختَر %n ملفات","إختَر %n ملف","إختر %n ملف"]},{msgid:"Copy",msgstr:["نسخ"]},{msgid:"Copy to {target}",msgstr:["نسخ إلى {target}"]},{msgid:"Could not create the new folder",msgstr:["تعذّر إنشاء المجلد الجديد"]},{msgid:"Could not load files settings",msgstr:["يتعذّر تحميل إعدادات الملفات"]},{msgid:"Could not load files views",msgstr:["تعذر تحميل عرض الملفات"]},{msgid:"Create directory",msgstr:["إنشاء مجلد"]},{msgid:"Current view selector",msgstr:["محدد العرض الحالي"]},{msgid:"Favorites",msgstr:["المفضلة"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["الملفات والمجلدات التي تحددها كمفضلة ستظهر هنا."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["الملفات و المجلدات التي قمت مؤخراً بتعديلها سوف تظهر هنا."]},{msgid:"Filter file list",msgstr:["تصفية قائمة الملفات"]},{msgid:"Folder name cannot be empty.",msgstr:["اسم المجلد لا يمكن أن يكون فارغاً."]},{msgid:"Home",msgstr:["البداية"]},{msgid:"Modified",msgstr:["التعديل"]},{msgid:"Move",msgstr:["نقل"]},{msgid:"Move to {target}",msgstr:["نقل إلى {target}"]},{msgid:"Name",msgstr:["الاسم"]},{msgid:"New",msgstr:["جديد"]},{msgid:"New folder",msgstr:["مجلد جديد"]},{msgid:"New folder name",msgstr:["اسم المجلد الجديد"]},{msgid:"No files in here",msgstr:["لا توجد ملفات هنا"]},{msgid:"No files matching your filter were found.",msgstr:["لا توجد ملفات تتطابق مع عامل التصفية الذي وضعته"]},{msgid:"No matching files",msgstr:["لا توجد ملفات مطابقة"]},{msgid:"Recent",msgstr:["الحالي"]},{msgid:"Select all entries",msgstr:["حدد جميع الإدخالات"]},{msgid:"Select entry",msgstr:["إختَر المدخل"]},{msgid:"Select the row for {nodename}",msgstr:["إختر سطر الـ {nodename}"]},{msgid:"Size",msgstr:["الحجم"]},{msgid:"Undo",msgstr:["تراجع"]},{msgid:"Upload some content or sync with your devices!",msgstr:["قم برفع بعض المحتوى أو المزامنة مع أجهزتك!"]}]},{language:"ast",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["«{name}» ye un nome de carpeta inválidu."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["«{name}» ye un nome de carpeta inválidu"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["Nun se permite'l caráuter «/» dientro'l nome de les carpetes."]},{msgid:"All files",msgstr:["Tolos ficheros"]},{msgid:"Choose",msgstr:["Escoyer"]},{msgid:"Choose {file}",msgstr:["Escoyer «{ficheru}»"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escoyer %n ficheru","Escoyer %n ficheros"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar en: {target}"]},{msgid:"Could not create the new folder",msgstr:["Nun se pudo crear la carpeta"]},{msgid:"Could not load files settings",msgstr:["Nun se pudo cargar la configuración de los ficheros"]},{msgid:"Could not load files views",msgstr:["Nun se pudieron cargar les vistes de los ficheros"]},{msgid:"Create directory",msgstr:["Crear un direutoriu"]},{msgid:"Current view selector",msgstr:["Selector de la vista actual"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Equí apaecen los ficheros y les carpetes que metas en Favoritos."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Equí apaecen los fichero y les carpetes que modificares apocayá."]},{msgid:"Filter file list",msgstr:["Peñerar la llista de ficheros"]},{msgid:"Folder name cannot be empty.",msgstr:["El nome de la carpeta nun pue tar baleru."]},{msgid:"Home",msgstr:["Aniciu"]},{msgid:"Modified",msgstr:["Modificóse"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"New",msgstr:["Nuevu"]},{msgid:"New folder",msgstr:["Carpeta nueva"]},{msgid:"New folder name",msgstr:["Nome de carpeta nuevu"]},{msgid:"No files in here",msgstr:["Equí nun hai nengún ficheru"]},{msgid:"No files matching your filter were found.",msgstr:["Nun s'atopó nengún ficheru que concasare cola peñera."]},{msgid:"No matching files",msgstr:["Nun hai nengún ficheru que concase"]},{msgid:"Recent",msgstr:["De recién"]},{msgid:"Select all entries",msgstr:["Seleicionar toles entraes"]},{msgid:"Select entry",msgstr:["Seleicionar la entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleicionar la filera de: {nodename}"]},{msgid:"Size",msgstr:["Tamañu"]},{msgid:"Undo",msgstr:["Desfacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Xubi dalgún elementu o sincroniza colos tos preseos!"]}]},{language:"ca",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" no està permès en el nom d'una carpeta.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`No és permès d'usar el caràcter "{char}" en un nom.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no és un nom permès.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" és un mot reservat i no està permès en el nom de les carpetes.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" és un mot reservat i no està permès com a nom.']},{msgid:"All files",msgstr:["Tots els fitxers"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Un element amb el mateix nom ja existeix a {dirname}"]},{msgid:"Cancel",msgstr:["Cancel·lar"]},{msgid:"Cancel the entire operation",msgstr:["Cancel·lar tota l'operació"]},{msgid:"Choose",msgstr:["Tria"]},{msgid:"Choose {file}",msgstr:["Tria {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Tria %n fitxer","Tria %n fitxers"]},{msgid:"Close",msgstr:["Tanca"]},{msgid:"Confirm",msgstr:["Confirma"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copia"]},{msgid:"Copy to {target}",msgstr:["Copia a {target}"]},{msgid:"Could not create the new folder",msgstr:["No s'ha pogut crear la carpeta nova"]},{msgid:"Could not load files settings",msgstr:["No es poden carregar fitxers de configuració"]},{msgid:"Could not load files views",msgstr:["No es poden carregar fitxers de vistes"]},{msgid:"Create directory",msgstr:["Crea un directori"]},{msgid:"Current view selector",msgstr:["Selector de visualització actual"]},{msgid:"Enter your name",msgstr:["Escriviu el vostre nom"]},{msgid:"Error: {message}",msgstr:["Error: {message}"]},{msgid:"Existing files",msgstr:["Fitxers existents"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Els fitxers i carpetes existents s'eliminaran si no se seleccionen. Si tots dos són escollits, seran reanomenats."]},{msgid:"Existing version",msgstr:["Versió existent"]},{msgid:"Failed to set nickname.",msgstr:["No s'ha pogut desar el sobrenom."]},{msgid:"Favorites",msgstr:["Preferits"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Els fitxers i les carpetes que marqueu com a favorits es mostraran aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Els fitxers i les carpetes recentment modificats es mostraran aquí."]},{msgid:"Filter file list",msgstr:["Filtrar llistat de fitxers"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Els noms de les carpetes no poden acabar amb "{extension}".']},{msgid:"Guest identification",msgstr:["Identificació com a convidat"]},{msgid:"Home",msgstr:["Inici"]},{msgid:"Info: {message}",msgstr:["Informació: {message}"]},{msgid:"Invalid folder name.",msgstr:["El nom de carpeta no és vàlid."]},{msgid:"Invalid name.",msgstr:["Nom no vàlid."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Hi ha elements amb el mateix nom que ja existeixen a {dirname}, selecciona quins conservar."]},{msgid:"Keep both",msgstr:["Queda't amb tots dos"]},{msgid:"Last modified date unknown",msgstr:["Data de l'última modificació desconeguda"]},{msgid:"Modified",msgstr:["Data de modificació"]},{msgid:"Move",msgstr:["Desplaça"]},{msgid:"Move to {target}",msgstr:["Desplaça a {target}"]},{msgid:"Name",msgstr:["Nom"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Els noms poden tenir com a màxim 64 caràcters."]},{msgid:"Names must not be empty.",msgstr:["Els noms no poden ser buits."]},{msgid:'Names must not end with "{extension}".',msgstr:[`Els noms no poden acabar amb l'extensió "{extension}".`]},{msgid:"Names must not start with a dot.",msgstr:["Els noms no poden començar amb un punt."]},{msgid:"New",msgstr:["Crea"]},{msgid:"New files",msgstr:["Fitxers nous"]},{msgid:"New folder",msgstr:["Carpeta nova"]},{msgid:"New folder name",msgstr:["Nom de la carpeta nova"]},{msgid:"New version",msgstr:["Nova versió"]},{msgid:"No files in here",msgstr:["No hi ha cap fitxer"]},{msgid:"No files matching your filter were found.",msgstr:["No s'ha trobat cap fitxer que coincideixi amb el filtre."]},{msgid:"No matching files",msgstr:["No hi ha cap fitxer que coincideixi"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Si us plau, escriu un nom amb 2 caràcters com a mínim."]},{msgid:"Recent",msgstr:["Recents"]},{msgid:"Replace",msgstr:["Substituir"]},{msgid:"Select all checkboxes",msgstr:["Selecciona totes les caselles de selecció"]},{msgid:"Select all entries",msgstr:["Selecciona totes les entrades"]},{msgid:"Select entry",msgstr:["Selecciona l'entrada"]},{msgid:"Select file to keep",msgstr:["Selecciona el fitxer a conservar"]},{msgid:"Select files to keep",msgstr:["Selecciona els fitxers per conservar"]},{msgid:"Select the row for {nodename}",msgstr:["Selecciona la fila per a {nodename}"]},{msgid:"Size",msgstr:["Mida"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omet %n fitxer","Omet %n fitxers"]},{msgid:"Submit name",msgstr:["Entreu el nom"]},{msgid:"Success: {message}",msgstr:["Èxit: {message}"]},{msgid:"Undo",msgstr:["Desfés"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Pugeu contingut o sincronitzeu-lo amb els vostres dispositius!"]},{msgid:"Warning: {message}",msgstr:["Avís: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quan se selecciona una nova carpeta, qualsevol fitxer en conflicte dins d'ella també s'escriurà."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Quan se selecciona una nova carpeta, qualsevol fitxer que hi hagi dins d'ella també serà sobreescrit."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quan se selecciona una nova carpeta, el contingut s'escriu a la carpeta existent i es realitza una resolució recursiva de conflictes."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Actualment se us mostra com a {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Actualment no esteu identificat."]},{msgid:"You cannot leave the name empty.",msgstr:["No podeu deixar el nom buit."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Heu de triar com a mínim una solució de conflicte"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Heu de seleccionar com a mínim una versió de cada fitxer per continuar."]}]},{language:"cs_CZ",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["znak „{char}“ není možné použít uvnitř názvu složky."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ není možné použít uvnitř názvu."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ není možné použít jako název."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ je vyhrazeným názvem a není možné ho používat pro názvy složek."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ je vyhrazeným názvem a není možné ho použít."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n kolize souboru","%n kolize souborů","%n kolizí souborů","%n kolize souborů"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n kolize souborů v {dirname}","%n kolize souborů v {dirname}","%n kolizí souborů v {dirname}","%n kolize souborů v {dirname}"]},{msgid:"All files",msgstr:["Veškeré soubory"]},{msgid:"Cancel",msgstr:["Storno"]},{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},{msgid:"Choose",msgstr:["Zvolit"]},{msgid:"Choose {file}",msgstr:["Zvolit {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Zvolte %n soubor","Zvolte %n soubory","Zvolte %n souborů","Zvolte %n soubory"]},{msgid:"Confirm",msgstr:["Potvrdit"]},{msgid:"Continue",msgstr:["Pokračovat"]},{msgid:"Copy",msgstr:["Zkopírovat"]},{msgid:"Copy to {target}",msgstr:["Zkopírovat do {target}"]},{msgid:"Could not create the new folder",msgstr:["Novou složku se nepodařilo vytvořit"]},{msgid:"Could not load files settings",msgstr:["Nepodařilo se načíst nastavení pro soubory"]},{msgid:"Could not load files views",msgstr:["Nepodařilo se načíst pohledy souborů"]},{msgid:"Create directory",msgstr:["Vytvořit složku"]},{msgid:"Current view selector",msgstr:["Výběr stávajícího zobrazení"]},{msgid:"Enter your name",msgstr:["Zadejte své jméno"]},{msgid:"Existing version",msgstr:["Existující verze"]},{msgid:"Failed to set nickname.",msgstr:["Nepodařilo se nastavit přezdívku."]},{msgid:"Favorites",msgstr:["Oblíbené"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Zde se zobrazí soubory a složky, které označíte jako oblíbené."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Zde se zobrazí soubory a složky, které jste nedávno pozměnili."]},{msgid:"Filter file list",msgstr:["Filtrovat seznam souborů"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Názvy složek nemohou končit na „{extension}“."]},{msgid:"Guest identification",msgstr:["Identifikace hosta"]},{msgid:"Home",msgstr:["Domů"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, pak k názvu příchozího souboru bude přidáno číslo."]},{msgid:"Invalid folder name.",msgstr:["Neplatný název složky."]},{msgid:"Invalid name.",msgstr:["Neplatný název."]},{msgid:"Last modified date unknown",msgstr:["Datum poslední změny neznámé"]},{msgid:"Modified",msgstr:["Změněno"]},{msgid:"Move",msgstr:["Přesounout"]},{msgid:"Move to {target}",msgstr:["Přesunout do {target}"]},{msgid:"Name",msgstr:["Název"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Je třeba, aby délka jmen nepřesahovala 64 znaků."]},{msgid:"Names must not be empty.",msgstr:["Názvy je třeba vyplnit."]},{msgid:'Names must not end with "{extension}".',msgstr:["Názvy nemohou končit na „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Názvy nemohou začínat tečkou."]},{msgid:"New",msgstr:["Nové"]},{msgid:"New folder",msgstr:["Nová složka"]},{msgid:"New folder name",msgstr:["Název pro novou složku"]},{msgid:"New version",msgstr:["Nová verze"]},{msgid:"No files in here",msgstr:["Nejsou zde žádné soubory"]},{msgid:"No files matching your filter were found.",msgstr:["Nenalezeny žádné soubory odpovídající vašemu filtru"]},{msgid:"No matching files",msgstr:["Žádné odpovídající soubory"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Zadejte jméno dlouhé alespoň 2 znaky."]},{msgid:"Recent",msgstr:["Nedávné"]},{msgid:"Select all checkboxes",msgstr:["Vybrat všechny zaškrtávací kolonky"]},{msgid:"Select all entries",msgstr:["Vybrat všechny položky"]},{msgid:"Select all existing files",msgstr:["Vybrat všechny existující soubory"]},{msgid:"Select all new files",msgstr:["Vybrat všechny nové soubory"]},{msgid:"Select entry",msgstr:["Vybrat položku"]},{msgid:"Select the row for {nodename}",msgstr:["Vybrat řádek pro {nodename}"]},{msgid:"Size",msgstr:["Velikost"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Přeskočit %n soubor","Přeskočit %n soubory","Přeskočit %n souborů","Přeskočit %n soubory"]},{msgid:"Skip this file",msgstr:["Přeskočit tento soubor"]},{msgid:"Submit name",msgstr:["Odeslat jméno"]},{msgid:"Undo",msgstr:["Zpět"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Nahrajte sem nějaký obsah nebo proveďte synchronizaci se svými zařízeními!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Pokud je vybrána příchozí složka, budou v ní také přepsány jakékoli kolidující soubory."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Když je vybrána příchozí složka, jakékoli soubory v ní budou také přepsány."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Pokud je vybrána příchozí složka, je obsah zapsán do existující složky a je provedeno rekurzivní vyřešení kolizí."]},{msgid:"Which files do you want to keep?",msgstr:["Které soubory chcete ponechat?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["V tuto chvíli jste identifikováni jako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["V tuto chvíli nejste identifikovaní."]},{msgid:"You cannot leave the name empty.",msgstr:["Jméno nelze ponechat nevyplněné."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Je třeba zvolit alespoň jedno z řešení kolize"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}]},{language:"da",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" er ikke tilladt i et navn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" er ikke tilladt i et navn.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" er et ugyldigt mappenavn.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" er ikke et tilladt mappenavn']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" er et reserveret navn og er derfor ikke tilladt.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er ikke tilladt i et mappenavn.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n filer konflikter"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n filkonflikt i {dirname}","%n filkonflikter i {dirname}"]},{msgid:"All files",msgstr:["Alle filer"]},{msgid:"Cancel",msgstr:["Fortryd"]},{msgid:"Cancel the entire operation",msgstr:["Annullér hele operationen"]},{msgid:"Choose",msgstr:["Vælg"]},{msgid:"Choose {file}",msgstr:["Vælg {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vælg %n fil","Vælg %n filer"]},{msgid:"Confirm",msgstr:["Bekræft"]},{msgid:"Continue",msgstr:["Fortsæt"]},{msgid:"Copy",msgstr:["Kopier"]},{msgid:"Copy to {target}",msgstr:["Kopier til {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunne ikke oprette den nye mappe"]},{msgid:"Could not load files settings",msgstr:["Filindstillingerne kunne ikke indlæses"]},{msgid:"Could not load files views",msgstr:["Kunne ikke indlæse filvisninger"]},{msgid:"Create directory",msgstr:["Opret mappe"]},{msgid:"Current view selector",msgstr:["Aktuel visningsvælger"]},{msgid:"Enter your name",msgstr:["Indtast dit navn"]},{msgid:"Existing version",msgstr:["Eksisterende version"]},{msgid:"Failed to set nickname.",msgstr:["Forsøg på at gemme kaldenavn mislykkedes."]},{msgid:"Favorites",msgstr:["Favoritter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer og mapper, du markerer som foretrukne, vises her."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer og mapper, du for nylig har ændret, vises her."]},{msgid:"Filter file list",msgstr:["Filtrer fil liste"]},{msgid:"Folder name cannot be empty.",msgstr:["Mappenavnet må ikke være tomt."]},{msgid:"Guest identification",msgstr:["Gæsteidentifikation"]},{msgid:"Home",msgstr:["Hjem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn."]},{msgid:"Invalid name.",msgstr:["Ugyldigt navn."]},{msgid:"Last modified date unknown",msgstr:["Senest ændret dato ukendt"]},{msgid:"Modified",msgstr:["Ændret"]},{msgid:"Move",msgstr:["Flyt"]},{msgid:"Move to {target}",msgstr:["Flyt til {target}"]},{msgid:"Name",msgstr:["Navn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Navne kan højst være 64 tegn lange."]},{msgid:"Names must not be empty.",msgstr:["Navne kan ikke være tomt."]},{msgid:'Names must not end with "{extension}".',msgstr:['Navne må ikke ende på "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Navne skal starte med et punktum."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mappe"]},{msgid:"New folder name",msgstr:["Ny mappe navn"]},{msgid:"New version",msgstr:["Ny version"]},{msgid:"No files in here",msgstr:["Ingen filer here"]},{msgid:"No files matching your filter were found.",msgstr:["Der blev ikke fundet nogen filer, der matcher dit filter."]},{msgid:"No matching files",msgstr:["Ingen matchende filer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Indtast et navn med mindst 2 tegn."]},{msgid:"Recent",msgstr:["Seneste"]},{msgid:"Select all checkboxes",msgstr:["Markér alle afkrydsningsfelter"]},{msgid:"Select all entries",msgstr:["Vælg alle poster"]},{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},{msgid:"Select entry",msgstr:["Vælg post"]},{msgid:"Select the row for {nodename}",msgstr:["Vælg rækken for {nodenavn}"]},{msgid:"Size",msgstr:["Størelse"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Spring %n fil over","Spring %n filer over"]},{msgid:"Skip this file",msgstr:["Spring denne fil over"]},{msgid:"Submit name",msgstr:["Indsend navn"]},{msgid:"Undo",msgstr:["Fortryd"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload noget indhold eller synkroniser med dine enheder!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indkommende mappe er valgt, vil eventuelle modstridende filer i det også blive overskrevet."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en indkommende mappe er valgt, er indholdet skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres."]},{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du have?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du er i øjeblikket identificeret som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du er ikke identificeret."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan ikke efterlade navnet tomt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du skal vælge mindst én konfliktløsning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}]},{language:"de",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ist innerhalb eines Ordnernamens nicht zulässig.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ist innerhalb eines Namens nicht zulässig.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ist kein zulässiger Name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig für Ordnernamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig.']},{msgid:"All files",msgstr:["Alle Dateien"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Ein Element mit demselben Namen existiert bereits in {dirname}."]},{msgid:"Cancel",msgstr:["Abbrechen"]},{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},{msgid:"Choose",msgstr:["Auswählen"]},{msgid:"Choose {file}",msgstr:["{file} auswählen"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n Datei auswählen","%n Dateien auswählen"]},{msgid:"Close",msgstr:["Schließen"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Continue",msgstr:["Fortsetzen"]},{msgid:"Copy",msgstr:["Kopieren"]},{msgid:"Copy to {target}",msgstr:["Nach {target} kopieren"]},{msgid:"Could not create the new folder",msgstr:["Der neue Ordner konnte nicht erstellt werden"]},{msgid:"Could not load files settings",msgstr:["Dateieinstellungen konnten nicht geladen werden"]},{msgid:"Could not load files views",msgstr:["Dateiansichten konnten nicht geladen werden"]},{msgid:"Create directory",msgstr:["Verzeichnis erstellen"]},{msgid:"Current view selector",msgstr:["Aktuelle Ansichtsauswahl"]},{msgid:"Enter your name",msgstr:["Gib deinen Namen ein"]},{msgid:"Error: {message}",msgstr:["Fehler: {message}"]},{msgid:"Existing files",msgstr:["Vorhandene Dateien"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Vorhandene Dateien und Ordner werden gelöscht, wenn sie nicht ausgewählt werden. Wenn beides ausgewählt wird, werden sie umbenannt."]},{msgid:"Existing version",msgstr:["Vorhandene Version"]},{msgid:"Failed to set nickname.",msgstr:["Spitzname konnte nicht gespeichert werden."]},{msgid:"Favorites",msgstr:["Favoriten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien und Ordner, die du als Favorit markierst, werden hier angezeigt."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien und Ordner, die du kürzlich geändert hast, werden hier angezeigt."]},{msgid:"Filter file list",msgstr:["Dateiliste filtern"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ordnernamen dürfen nicht mit "{extension}" enden.']},{msgid:"Guest identification",msgstr:["Gast-Identifikation"]},{msgid:"Home",msgstr:["Home"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Ungültiger Ordnername."]},{msgid:"Invalid name.",msgstr:["Ungültiger Name."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Es existieren bereits Elemente mit demselben Namen in {dirname}, auswählen, welche behalten werden sollen."]},{msgid:"Keep both",msgstr:["Beides behalten"]},{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},{msgid:"Modified",msgstr:["Geändert"]},{msgid:"Move",msgstr:["Verschieben"]},{msgid:"Move to {target}",msgstr:["Nach {target} verschieben"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen dürfen maximal 64 Zeichen lang sein."]},{msgid:"Names must not be empty.",msgstr:["Namen dürfen nicht leer sein."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen dürfen nicht mit "{extension}" enden.']},{msgid:"Names must not start with a dot.",msgstr:["Namen dürfen nicht mit einem Punkt beginnen."]},{msgid:"New",msgstr:["Neu"]},{msgid:"New files",msgstr:["Neue Dateien"]},{msgid:"New folder",msgstr:["Neuer Ordner"]},{msgid:"New folder name",msgstr:["Neuer Ordnername"]},{msgid:"New version",msgstr:["Neue Version"]},{msgid:"No files in here",msgstr:["Hier sind keine Dateien"]},{msgid:"No files matching your filter were found.",msgstr:["Es wurden keine Dateien gefunden, die deinem Filter entsprechen."]},{msgid:"No matching files",msgstr:["Keine passenden Dateien"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Bitte einen Namen mit mindestens zwei Zeichen eingeben."]},{msgid:"Recent",msgstr:["Neueste"]},{msgid:"Replace",msgstr:["Ersetzen"]},{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},{msgid:"Select all entries",msgstr:["Alle Einträge auswählen"]},{msgid:"Select entry",msgstr:["Eintrag auswählen"]},{msgid:"Select file to keep",msgstr:["Zu behaltende Datei auswählen"]},{msgid:"Select files to keep",msgstr:["Zu behaltende Dateien auswählen"]},{msgid:"Select the row for {nodename}",msgstr:["Die Zeile für {nodename} auswählen."]},{msgid:"Size",msgstr:["Größe"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n Datei überspringen","%n Dateien überspringen"]},{msgid:"Submit name",msgstr:["Namen senden"]},{msgid:"Success: {message}",msgstr:["Erfolg: {message}"]},{msgid:"Undo",msgstr:["Rückgängig machen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lade Inhalte hoch oder synchronisiere diese mit deinen Geräten!"]},{msgid:"Warning: {message}",msgstr:["Warnung: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, werden alle darin enthaltenen, in Konflikt stehenden Dateien ebenfalls überschrieben."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, werden alle darin enthaltenen Dateien ebenfalls überschrieben."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, wird der Inhalt in den bestehenden Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du bist derzeit als {nickname} identifiziert."]},{msgid:"You are currently not identified.",msgstr:["Du bist momentan nicht identifiziert."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kannst den Namen nicht leer lassen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Es muss mindestens eine Konfliktlösung gewählt werden"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren."]}]},{language:"de_DE",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ist innerhalb eines Ordnernamens nicht zulässig.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ist innerhalb eines Namens nicht zulässig.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ist kein zulässiger Name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig für Ordnernamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig.']},{msgid:"All files",msgstr:["Alle Dateien"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Ein Element mit demselben Namen existiert bereits in {dirname}."]},{msgid:"Cancel",msgstr:["Abbrechen"]},{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},{msgid:"Choose",msgstr:["Auswählen"]},{msgid:"Choose {file}",msgstr:["{file} auswählen"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n Datei auswählen","%n Dateien auswählen"]},{msgid:"Close",msgstr:["Schließen"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Continue",msgstr:["Fortsetzen"]},{msgid:"Copy",msgstr:["Kopieren"]},{msgid:"Copy to {target}",msgstr:["Nach {target} kopieren"]},{msgid:"Could not create the new folder",msgstr:["Der neue Ordner konnte nicht erstellt werden"]},{msgid:"Could not load files settings",msgstr:["Dateieinstellungen konnten nicht geladen werden"]},{msgid:"Could not load files views",msgstr:["Dateiansichten konnten nicht geladen werden"]},{msgid:"Create directory",msgstr:["Verzeichnis erstellen"]},{msgid:"Current view selector",msgstr:["Aktuelle Ansichtsauswahl"]},{msgid:"Enter your name",msgstr:["Geben Sie Ihren Namen ein"]},{msgid:"Error: {message}",msgstr:["Fehler: {message}"]},{msgid:"Existing files",msgstr:["Vorhandene Dateien"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Vorhandene Dateien und Ordner werden gelöscht, wenn sie nicht ausgewählt werden. Wenn beides ausgewählt wird, werden sie umbenannt."]},{msgid:"Existing version",msgstr:["Vorhandene Version"]},{msgid:"Failed to set nickname.",msgstr:["Spitzname konnte nicht gespeichert werden."]},{msgid:"Favorites",msgstr:["Favoriten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien und Ordner, die Sie als Favorit markieren, werden hier angezeigt."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien und Ordner, die Sie kürzlich geändert haben, werden hier angezeigt."]},{msgid:"Filter file list",msgstr:["Dateiliste filtern"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ordnernamen dürfen nicht mit "{extension}" enden.']},{msgid:"Guest identification",msgstr:["Gast-Identifikation"]},{msgid:"Home",msgstr:["Home"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Ungültiger Ordnername."]},{msgid:"Invalid name.",msgstr:["Ungültiger Name."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Es existieren bereits Elemente mit demselben Namen in {dirname}, wählen Sie aus, welche behalten werden sollen."]},{msgid:"Keep both",msgstr:["Beides behalten"]},{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},{msgid:"Modified",msgstr:["Geändert"]},{msgid:"Move",msgstr:["Verschieben"]},{msgid:"Move to {target}",msgstr:["Nach {target} verschieben"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen dürfen maximal 64 Zeichen lang sein."]},{msgid:"Names must not be empty.",msgstr:["Namen dürfen nicht leer sein."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen dürfen nicht mit "{extension}" enden.']},{msgid:"Names must not start with a dot.",msgstr:["Namen dürfen nicht mit einem Punkt beginnen."]},{msgid:"New",msgstr:["Neu"]},{msgid:"New files",msgstr:["Neue Dateien"]},{msgid:"New folder",msgstr:["Neuer Ordner"]},{msgid:"New folder name",msgstr:["Neuer Ordnername"]},{msgid:"New version",msgstr:["Neue Version"]},{msgid:"No files in here",msgstr:["Hier sind keine Dateien"]},{msgid:"No files matching your filter were found.",msgstr:["Es wurden keine Dateien gefunden, die Ihrem Filter entsprechen."]},{msgid:"No matching files",msgstr:["Keine passenden Dateien"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Bitte einen Namen mit mindestens zwei Zeichen eingeben."]},{msgid:"Recent",msgstr:["Neueste"]},{msgid:"Replace",msgstr:["Ersetzen"]},{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},{msgid:"Select all entries",msgstr:["Alle Einträge auswählen"]},{msgid:"Select entry",msgstr:["Eintrag auswählen"]},{msgid:"Select file to keep",msgstr:["Zu behaltende Datei auswählen"]},{msgid:"Select files to keep",msgstr:["Zu behaltende Dateien auswählen"]},{msgid:"Select the row for {nodename}",msgstr:["Die Zeile für {nodename} auswählen."]},{msgid:"Size",msgstr:["Größe"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n Datei überspringen","%n Dateien überspringen"]},{msgid:"Submit name",msgstr:["Namen senden"]},{msgid:"Success: {message}",msgstr:["Erfolg: {message}"]},{msgid:"Undo",msgstr:["Rückgängig machen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Laden Sie Inhalte hoch oder synchronisieren Sie diese mit Ihren Geräten!"]},{msgid:"Warning: {message}",msgstr:["Warnung: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, werden alle darin enthaltenen, in Konflikt stehenden Dateien ebenfalls überschrieben."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, werden alle darin enthaltenen Dateien ebenfalls überschrieben."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Wenn ein neuer Ordner ausgewählt wird, wird der Inhalt in den bestehenden Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sie sind derzeit als {nickname} identifiziert."]},{msgid:"You are currently not identified.",msgstr:["Sie sind momentan nicht identifiziert."]},{msgid:"You cannot leave the name empty.",msgstr:["Sie können den Namen nicht leer lassen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Es muss mindestens eine Konfliktlösung gewählt werden"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren."]}]},{language:"el",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["Το «{char}» δεν επιτρέπεται μέσα σε όνομα φακέλου."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" δεν επιτρέπεται μέσα σε ένα όνομα.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" δεν είναι επιτρεπτό όνομα.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["Το «{segment}» είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται για ονόματα φακέλων."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n σύγκρουση αρχείου","%n σύγκρουση αρχείων"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n σύγκρουση αρχείου στο {dirname}","%n σύγκρουση αρχείων στο {dirname}"]},{msgid:"All files",msgstr:["Όλα τα αρχεία"]},{msgid:"Cancel",msgstr:["Ακύρωση"]},{msgid:"Cancel the entire operation",msgstr:["Ακύρωση όλης της διαδικασίας"]},{msgid:"Choose",msgstr:["Επιλογή"]},{msgid:"Choose {file}",msgstr:["Επιλέξτε {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Επιλέξτε %n αρχείο","Επιλέξτε %n αρχεία"]},{msgid:"Confirm",msgstr:["Επιβεβαίωση"]},{msgid:"Continue",msgstr:["Συνέχεια"]},{msgid:"Copy",msgstr:["Αντιγραφή"]},{msgid:"Copy to {target}",msgstr:["Αντιγραφή στο {target}"]},{msgid:"Could not create the new folder",msgstr:["Αδυναμία δημιουργίας νέου φακέλου"]},{msgid:"Could not load files settings",msgstr:["Αδυναμία φόρτωσης ρυθμίσεων αρχείων"]},{msgid:"Could not load files views",msgstr:["Αδυναμία φόρτωσης προβολών αρχείων"]},{msgid:"Create directory",msgstr:["Δημιουργία καταλόγου"]},{msgid:"Current view selector",msgstr:["Επιλογέας τρέχουσας προβολής"]},{msgid:"Enter your name",msgstr:["Εισάγετε το όνομά σας"]},{msgid:"Existing version",msgstr:["Υφιστάμενη έκδοση"]},{msgid:"Failed to set nickname.",msgstr:["Αποτυχία στην ρύθμιση του ψευδώνυμου."]},{msgid:"Favorites",msgstr:["Αγαπημένα"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Τα αρχεία και οι φάκελοι που επισημάνετε ως αγαπημένα θα εμφανίζονται εδώ."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Τα αρχεία και οι φάκελοι που τροποποιήσατε πρόσφατα θα εμφανίζονται εδώ."]},{msgid:"Filter file list",msgstr:["Φιλτράρισμα λίστας αρχείων"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Τα ονόματα των φακέλων δεν πρέπει να τελειώνουν με «{extension}»."]},{msgid:"Guest identification",msgstr:["Ταυτοποίηση επισκέπτη"]},{msgid:"Home",msgstr:["Αρχική"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Εάν επιλέξετε και τις δύο εκδόσεις, στο όνομα του εισερχόμενου αρχείου θα προστεθεί ένας αριθμός."]},{msgid:"Invalid folder name.",msgstr:["Μη έγκυρο όνομα φακέλου."]},{msgid:"Invalid name.",msgstr:["Μη έγκυρο όνομα."]},{msgid:"Last modified date unknown",msgstr:["Άγνωστη ημερομηνία τελευταίας τροποποίησης"]},{msgid:"Modified",msgstr:["Τροποποιήθηκε"]},{msgid:"Move",msgstr:["Μετακίνηση"]},{msgid:"Move to {target}",msgstr:["Μετακίνηση στο {target}"]},{msgid:"Name",msgstr:["Όνομα"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Τα ονόματα μπορούν να έχουν μέγιστο μήκος 64 χαρακτήρες."]},{msgid:"Names must not be empty.",msgstr:["Τα ονόματα δεν πρέπει να είναι κενά."]},{msgid:'Names must not end with "{extension}".',msgstr:['Τα ονόματα δεν πρέπει να τελειώνουν με "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Τα ονόματα δεν πρέπει να ξεκινούν με τελεία."]},{msgid:"New",msgstr:["Νέο"]},{msgid:"New folder",msgstr:["Νέος φάκελος"]},{msgid:"New folder name",msgstr:["Όνομα νέου φακέλου"]},{msgid:"New version",msgstr:["Νέα έκδοση"]},{msgid:"No files in here",msgstr:["Δεν υπάρχουν αρχεία εδώ"]},{msgid:"No files matching your filter were found.",msgstr:["Δεν βρέθηκαν αρχεία που να ταιριάζουν με το φίλτρο σας."]},{msgid:"No matching files",msgstr:["Κανένα αρχείο δεν ταιριάζει"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Παρακαλώ εισάγετε ένα όνομα με τουλάχιστον 2 χαρακτήρες."]},{msgid:"Recent",msgstr:["Πρόσφατα"]},{msgid:"Select all checkboxes",msgstr:["Επιλέξτε όλα τα πλαίσια ελέγχου"]},{msgid:"Select all entries",msgstr:["Επιλογή όλων των καταχωρήσεων"]},{msgid:"Select all existing files",msgstr:["Επιλογή όλων των υπάρχοντων αρχείων"]},{msgid:"Select all new files",msgstr:["Επιλογή όλων των νέων αρχείων"]},{msgid:"Select entry",msgstr:["Επιλογή εγγραφής"]},{msgid:"Select the row for {nodename}",msgstr:["Επιλέξτε τη γραμμή για το {nodename}"]},{msgid:"Size",msgstr:["Μέγεθος"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Παράλειψη ενός αρχείου","Παράλειψη %n αρχείων"]},{msgid:"Skip this file",msgstr:["Παράλειψη αυτού το αρχείου"]},{msgid:"Submit name",msgstr:["Υποβολή ονόματος"]},{msgid:"Undo",msgstr:["Αναίρεση"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ανεβάστε κάποιο περιεχόμενο ή συγχρονίστε με τις συσκευές σας!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Όταν επιλέγεται ένας φάκελος εισερχομένων, όλα τα αρχεία που βρίσκονται σε σύγκρουση μέσα σε αυτόν θα αντικατασταθούν επίσης."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Όταν επιλεγεί ένας φάκελος εισερχομένων, θα αντικατασταθούν επίσης όλα τα αρχεία που περιέχει."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Όταν επιλέγεται ένας φάκελος εισερχομένων, το περιεχόμενο εγγράφεται στον υπάρχοντα φάκελο και εκτελείται μια αναδρομική επίλυση σύγκρουσης."]},{msgid:"Which files do you want to keep?",msgstr:["Ποια αρχεία θέλετε να διατηρήσετε;"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Αυτή τη στιγμή έχετε αναγνωριστεί ως {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Δεν έχετε ταυτοποιηθεί."]},{msgid:"You cannot leave the name empty.",msgstr:["Δεν μπορείτε να αφήσετε το όνομα κενό."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία λύση σύγκρουσης"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία έκδοση από κάθε αρχείο για να συνεχίσετε."]}]},{language:"en_GB",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" is not allowed inside a folder name.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" is not allowed inside a name.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" is not an allowed name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" is a reserved name and cannot be used for folder names.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" is a reserved name and not allowed.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n file conflict","%n files conflict"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n file conflict in {dirname}","%n file conflicts in {dirname}"]},{msgid:"All files",msgstr:["All files"]},{msgid:"Cancel",msgstr:["Cancel"]},{msgid:"Cancel the entire operation",msgstr:["Cancel the entire operation"]},{msgid:"Choose",msgstr:["Choose"]},{msgid:"Choose {file}",msgstr:["Choose {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Choose %n file","Choose %n files"]},{msgid:"Confirm",msgstr:["Confirm"]},{msgid:"Continue",msgstr:["Continue"]},{msgid:"Copy",msgstr:["Copy"]},{msgid:"Copy to {target}",msgstr:["Copy to {target}"]},{msgid:"Could not create the new folder",msgstr:["Could not create the new folder"]},{msgid:"Could not load files settings",msgstr:["Could not load files settings"]},{msgid:"Could not load files views",msgstr:["Could not load files views"]},{msgid:"Create directory",msgstr:["Create directory"]},{msgid:"Current view selector",msgstr:["Current view selector"]},{msgid:"Enter your name",msgstr:["Enter your name"]},{msgid:"Existing version",msgstr:["Existing version"]},{msgid:"Failed to set nickname.",msgstr:["Failed to set nickname."]},{msgid:"Favorites",msgstr:["Favourites"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Files and folders you mark as favourite will show up here."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Files and folders you recently modified will show up here."]},{msgid:"Filter file list",msgstr:["Filter file list"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Folder names must not end with "{extension}".']},{msgid:"Guest identification",msgstr:["Guest identification"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["If you select both versions, the incoming file will have a number added to its name."]},{msgid:"Invalid folder name.",msgstr:["Invalid folder name."]},{msgid:"Invalid name.",msgstr:["Invalid name."]},{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},{msgid:"Modified",msgstr:["Modified"]},{msgid:"Move",msgstr:["Move"]},{msgid:"Move to {target}",msgstr:["Move to {target}"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Names may be at most 64 characters long."]},{msgid:"Names must not be empty.",msgstr:["Names must not be empty."]},{msgid:'Names must not end with "{extension}".',msgstr:['Names must not end with "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Names must not start with a dot."]},{msgid:"New",msgstr:["New"]},{msgid:"New folder",msgstr:["New folder"]},{msgid:"New folder name",msgstr:["New folder name"]},{msgid:"New version",msgstr:["New version"]},{msgid:"No files in here",msgstr:["No files in here"]},{msgid:"No files matching your filter were found.",msgstr:["No files matching your filter were found."]},{msgid:"No matching files",msgstr:["No matching files"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Please enter a name with at least 2 characters."]},{msgid:"Recent",msgstr:["Recent"]},{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},{msgid:"Select all entries",msgstr:["Select all entries"]},{msgid:"Select all existing files",msgstr:["Select all existing files"]},{msgid:"Select all new files",msgstr:["Select all new files"]},{msgid:"Select entry",msgstr:["Select entry"]},{msgid:"Select the row for {nodename}",msgstr:["Select the row for {nodename}"]},{msgid:"Size",msgstr:["Size"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Skip %n file","Skip %n files"]},{msgid:"Skip this file",msgstr:["Skip this file"]},{msgid:"Submit name",msgstr:["Submit name"]},{msgid:"Undo",msgstr:["Undo"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload some content or sync with your devices!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any conflicting files within it will also be overwritten."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any files within it will also be overwritten."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."]},{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["You are currently identified as {nickname}."]},{msgid:"You are currently not identified.",msgstr:["You are currently not identified."]},{msgid:"You cannot leave the name empty.",msgstr:["You cannot leave the name empty."]},{msgid:"You need to choose at least one conflict solution",msgstr:["You need to choose at least one conflict solution"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}]},{language:"es",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" no está permitido dentro de un nombre.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no es un nombre permitido.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" es un nombre de carpeta no válido.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no es un nombre de carpeta permitido']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" es un nombre reservado y no está permitido.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" no está permitido dentro del nombre de una carpeta.']},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Choose",msgstr:["Seleccionar"]},{msgid:"Choose {file}",msgstr:["Seleccionar {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Elige %n archivo","Elige %n archivos","Seleccione %n archivos"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudieron cargar los ajustes de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Ingrese su nombre"]},{msgid:"Failed to set nickname.",msgstr:["Fallo al establecer apodo."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:"Folder name cannot be empty.",msgstr:["El nombre de la carpeta no puede estar vacío."]},{msgid:"Guest identification",msgstr:["Identificación de invitado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"Invalid name.",msgstr:["Nombre inválido."]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"Names must not be empty.",msgstr:["Los nombres no deben estar vacíos."]},{msgid:'Names must not end with "{extension}".',msgstr:['Los nombres no deben terminar con "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Los nombres no deben iniciar con un punto."]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:[" Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nuevo nombre de carpeta"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidiesen con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Por favor, ingrese un nombre con al menos 2 caracteres."]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Submit name",msgstr:["Enviar nombre"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Cargue algún contenido o sincronice con sus dispositivos!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Ud. se encuentra identificado actualmente como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Ud. no se encuentra identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["No puede dejar el nombre vacío."]}]},{language:"es_AR",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" es un nombre de carpeta inválido.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no es un nombre de carpeta permitido']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" no está permitido en el nombre de una carpeta.']},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Choose",msgstr:["Elegir"]},{msgid:"Choose {file}",msgstr:["Elija {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Elija %n archivo","Elija %n archivos","Elija %n archivos"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudo cargar la configuración de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:"Folder name cannot be empty.",msgstr:["El nombre de la carpeta no puede estar vacío."]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:["Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nombre de nueva carpeta"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidan con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Cargue algún contenido o sincronice con sus dispositivos!"]}]},{language:"es_MX",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" no está permitido dentro de un nombre de carpeta']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" no está permitido dentro de un nombre']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no es un nombre permitido']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" es un nombre reservado y no está permitido para nombres de carpetas']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" es un nombre reservado y no está permitido']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n conflicto de archivo","%n conflicto de archivos","%n conflicto de archivos"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n conflicto de archivo en {dirname}","%n conflictos de archivo en {dirname}","%n conflictos de archivo en {dirname}"]},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar la operación completa"]},{msgid:"Choose",msgstr:["Seleccionar"]},{msgid:"Choose {file}",msgstr:["Seleccionar {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Seleccionar %n archivo","Seleccionar %n archivos","Seleccionar %n archivos"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudo cargar la configuración de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear carpeta"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Ingresa tu nombre"]},{msgid:"Existing version",msgstr:["Versión existente"]},{msgid:"Failed to set nickname.",msgstr:["No se pudo establecer el nickname"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Los nombres para carpeta no deben terminar con "{extension}"']},{msgid:"Guest identification",msgstr:["Identificación de invitado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si seleccionas ambas versiones, se le agregará al archivo que se está descargando, un número a su nombre."]},{msgid:"Invalid folder name.",msgstr:["Nombre de carpeta no válido"]},{msgid:"Invalid name.",msgstr:["Nombre no válido"]},{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Los nombres pueden tener como máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Los nombres no deben estar vacíos."]},{msgid:'Names must not end with "{extension}".',msgstr:['Los nombres no deben terminar con "{extension}"']},{msgid:"Names must not start with a dot.",msgstr:["Los nombres no deben comenzar con un punto."]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:["Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nombre de nueva carpeta"]},{msgid:"New version",msgstr:["Versión nueva"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidan con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Por favor ingrese un nombre con al menos 2 caracteres."]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all checkboxes",msgstr:["Seleccione todas las casillas de verificación"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select all existing files",msgstr:["Seleccione todos los archivos que aparecen"]},{msgid:"Select all new files",msgstr:["Seleccione todos los archivos nuevos"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omitir %n archivo","Omitir %n archivos","Omitir %n archivos"]},{msgid:"Skip this file",msgstr:["Omitir este archivo"]},{msgid:"Submit name",msgstr:["Enviar nombre"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Suba algún contenido o sincronice con sus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando se selecciona una carpeta en descarga, cualquier archivo conflictivo que contenga también se sobrescribirá."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando se selecciona una carpeta en descarga, el contenido se escribe en la carpeta existente y se realiza una resolución de conflicto recursiva."]},{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos deseas conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Actualmente estás identificado como {nickname}"]},{msgid:"You are currently not identified.",msgstr:["No estás identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["No puedes dejar el nombre vacío."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Necesitas elegir al menos una solución al conflicto."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Necesitas seleccionar al menos una versión de cada archivo para continuar."]}]},{language:"et_EE",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["„{char}“ pole kausta nimes lubatud."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ pole nimes lubatud."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ pole lubatud nimi."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ on reserveeritud nimi ja pole kausta nimes lubatud."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ on reserveeritud nimi ja pole kasutamiseks lubatud."]},{msgid:"All files",msgstr:["Kõik failid"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["„{dirname}“ kaustas juba on olemas sama nimega objekt."]},{msgid:"Cancel",msgstr:["Katkesta"]},{msgid:"Cancel the entire operation",msgstr:["Katkesta kogu tegevus"]},{msgid:"Choose",msgstr:["Tee valik"]},{msgid:"Choose {file}",msgstr:["Vali {file} fail"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vali %n fail","Vali %n faili"]},{msgid:"Close",msgstr:["Sulge"]},{msgid:"Confirm",msgstr:["Kinnita"]},{msgid:"Continue",msgstr:["Jätka"]},{msgid:"Copy",msgstr:["Kopeeri"]},{msgid:"Copy to {target}",msgstr:["Kopeeri sihtkohta „{target}“"]},{msgid:"Could not create the new folder",msgstr:["Uue kausta loomine ei õnnestunud"]},{msgid:"Could not load files settings",msgstr:["Failide seadistusi ei õnnestunud laadida"]},{msgid:"Could not load files views",msgstr:["Failide vaatamiskordi ei õnnestunud laadida"]},{msgid:"Create directory",msgstr:["Loo kaust"]},{msgid:"Current view selector",msgstr:["Praeguse vaate valija"]},{msgid:"Enter your name",msgstr:["Sisesta oma nimi"]},{msgid:"Error: {message}",msgstr:["Viga: {message}"]},{msgid:"Existing files",msgstr:["Olemasolevad failid"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Kui nad just pole valitud, siis olemasolevad failid ja kaustad kustutatakse. Kui mõlemad on valitud, siis nende nimed muutuvad."]},{msgid:"Existing version",msgstr:["Olemasolev versioon"]},{msgid:"Failed to set nickname.",msgstr:["Hüüdnime sisestamine ei õnnestunud."]},{msgid:"Favorites",msgstr:["Lemmikud"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Failid ja kaustad, mida märgid lemmikuks, kuvatakse siin."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Siin kuvatakse hiljuti muudetud failid ja kaustad."]},{msgid:"Filter file list",msgstr:["Filtreeri faililoendit"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Kausta nime lõpus ei tohi olla „{extension}“."]},{msgid:"Guest identification",msgstr:["Külalise tuvastamine"]},{msgid:"Home",msgstr:["Avaleht"]},{msgid:"Info: {message}",msgstr:["Teave: {message}"]},{msgid:"Invalid folder name.",msgstr:["Vigane kausta nimi."]},{msgid:"Invalid name.",msgstr:["Vigane nimi."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["„{dirname}“ kaustas juba on olemas sama nimega objekte, vali mida tahad neist säilitada."]},{msgid:"Keep both",msgstr:["Säilita mõlemad"]},{msgid:"Last modified date unknown",msgstr:["Viimase muutmise kuupäev pole teada"]},{msgid:"Modified",msgstr:["Muudetud"]},{msgid:"Move",msgstr:["Teisalda"]},{msgid:"Move to {target}",msgstr:["Teisalda kausta „{target}“"]},{msgid:"Name",msgstr:["Nimi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nimed võivad olla vaid kuni 64 tähemärki pikad."]},{msgid:"Names must not be empty.",msgstr:["Nimi ei saa olla tühi."]},{msgid:'Names must not end with "{extension}".',msgstr:["Nime lõpus ei tohi olla „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Nime alguses ei tohi olla punkti."]},{msgid:"New",msgstr:["Uus"]},{msgid:"New files",msgstr:["Uued failid"]},{msgid:"New folder",msgstr:["Uus kaust"]},{msgid:"New folder name",msgstr:["Uue kausta nimi"]},{msgid:"New version",msgstr:["Uus versioon"]},{msgid:"No files in here",msgstr:["Siin pole faile"]},{msgid:"No files matching your filter were found.",msgstr:["Sinu filtrile vastavaid faile ei leidunud."]},{msgid:"No matching files",msgstr:["Puuduvad sobivad failid"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Palun sisesta vähemalt 2 tähemärki pikk nimi."]},{msgid:"Recent",msgstr:["Hiljutine"]},{msgid:"Replace",msgstr:["Asenda"]},{msgid:"Select all checkboxes",msgstr:["Vali kõik märkeruudud"]},{msgid:"Select all entries",msgstr:["Vali kõik kirjed"]},{msgid:"Select entry",msgstr:["Vali kirje"]},{msgid:"Select file to keep",msgstr:["Vali säilitatav fail"]},{msgid:"Select files to keep",msgstr:["Vali säilitatavad failid"]},{msgid:"Select the row for {nodename}",msgstr:["Vali rida „{nodename}“ jaoks"]},{msgid:"Size",msgstr:["Suurus"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Jäta %n fail vahele","Jäta %n faili vahele"]},{msgid:"Submit name",msgstr:["Lisa nimi"]},{msgid:"Success: {message}",msgstr:["Õnnestumine: {message}"]},{msgid:"Undo",msgstr:["Tühista"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lisa mingit sisu või sünkrooni see oma seadmetest!"]},{msgid:"Warning: {message}",msgstr:["Hoiatus: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kui uus kaust on valitud, siis seal asuvad vastuoluliste nimedega failid kirjutatakse samuti üle."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Kui uus kaust on valitud, siis kõik seal leiduvad vastuolus failid saavad üle kirjutatud."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kui uus kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja korraldatakse rekursiivne failikonfliktide lahendamine."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sa oled hetkel tuvastatav kui {nickname}.."]},{msgid:"You are currently not identified.",msgstr:["Sa oled hetkel tuvastamata."]},{msgid:"You cannot leave the name empty.",msgstr:["Sa ei saa jätta nime tühjaks."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Sa pead valima vähemalt ühe failikonflikti lahenduse."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Jätkamaks pead valima igast failist vähemalt ühe versiooni."]}]},{language:"fa",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} نام پوشه معتبر نیست"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} نام پوشه مجاز نیست"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" نمی‌تواند در نام پوشه استفاده شود.']},{msgid:"All files",msgstr:["همه فایل‌ها"]},{msgid:"Cancel",msgstr:["لغو"]},{msgid:"Choose",msgstr:["انتخاب"]},{msgid:"Choose {file}",msgstr:["انتخاب {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["انتخاب %n فایل","انتخاب %n فایل"]},{msgid:"Copy",msgstr:["رونوشت"]},{msgid:"Copy to {target}",msgstr:["رونوشت از {target}"]},{msgid:"Could not create the new folder",msgstr:["پوشه جدید ایجاد نشد"]},{msgid:"Could not load files settings",msgstr:["تنظیمات فایل باز نشد"]},{msgid:"Could not load files views",msgstr:["نمای فایل‌ها بارگیری نشد"]},{msgid:"Create directory",msgstr:["ایجاد فهرست"]},{msgid:"Current view selector",msgstr:["انتخابگر نماگر فعلی"]},{msgid:"Enter your name",msgstr:["نام خود را وارد کنید"]},{msgid:"Failed to set nickname.",msgstr:["تنظیم نام مستعار ناموفق بود."]},{msgid:"Favorites",msgstr:["علایق"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["فایل‌ها و پوشه‌هایی که به‌عنوان مورد علاقه علامت‌گذاری می‌کنید در اینجا نشان داده می‌شوند."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["فایل‌ها و پوشه‌هایی که اخیراً تغییر داده‌اید در اینجا نمایش داده می‌شوند."]},{msgid:"Filter file list",msgstr:["فیلتر لیست فایل"]},{msgid:"Folder name cannot be empty.",msgstr:["نام پوشه نمی تواند خالی باشد."]},{msgid:"Guest identification",msgstr:["شناسایی مهمان"]},{msgid:"Home",msgstr:["خانه"]},{msgid:"Modified",msgstr:["اصلاح شده"]},{msgid:"Move",msgstr:["انتقال"]},{msgid:"Move to {target}",msgstr:["انتقال به {target}"]},{msgid:"Name",msgstr:["نام"]},{msgid:"New",msgstr:["جدید"]},{msgid:"New folder",msgstr:["پوشه جدید"]},{msgid:"New folder name",msgstr:["نام پوشه جدید"]},{msgid:"No files in here",msgstr:["فایلی اینجا نیست"]},{msgid:"No files matching your filter were found.",msgstr:["هیچ فایلی مطابق با فیلتر شما یافت نشد."]},{msgid:"No matching files",msgstr:["فایل منطبقی وجود ندارد"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["لطفاً نامی با حداقل ۲ کاراکتر وارد کنید."]},{msgid:"Recent",msgstr:["اخیر"]},{msgid:"Select all entries",msgstr:["انتخاب همه ورودی ها"]},{msgid:"Select entry",msgstr:["انتخاب ورودی"]},{msgid:"Select the row for {nodename}",msgstr:["انتخاب ردیف برای {nodename}"]},{msgid:"Size",msgstr:["اندازه"]},{msgid:"Submit name",msgstr:["ارسال نام"]},{msgid:"Undo",msgstr:["بازگردانی"]},{msgid:"Upload some content or sync with your devices!",msgstr:["مقداری محتوا آپلود کنید یا با دستگاه های خود همگام سازی کنید!"]},{msgid:"You are currently not identified.",msgstr:["شما در حال حاضر شناسایی نشده‌اید."]},{msgid:"You cannot leave the name empty.",msgstr:["نمی‌توانید نام را خالی بگذارید."]}]},{language:"fi_FI",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ei ole sallittu nimessä.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ei ole sallittu nimi.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" on virheellinen kansion nimi.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" ei ole sallittu kansion nimi']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" on varattu nimi eikä se ole sallittu.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ei ole sallittu kansion nimessä.']},{msgid:"All files",msgstr:["Kaikki tiedostot"]},{msgid:"Cancel",msgstr:["Peruuta"]},{msgid:"Choose",msgstr:["Valitse"]},{msgid:"Choose {file}",msgstr:["Valitse {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Valitse %n tiedosto","Valitse %n tiedostoa"]},{msgid:"Copy",msgstr:["Kopioi"]},{msgid:"Copy to {target}",msgstr:["Kopioi sijaintiin {target}"]},{msgid:"Could not create the new folder",msgstr:["Uutta kansiota ei voitu luoda"]},{msgid:"Could not load files settings",msgstr:["Tiedoston asetuksia ei saa ladattua"]},{msgid:"Could not load files views",msgstr:["Tiedoston näkymiä ei saa ladattua"]},{msgid:"Create directory",msgstr:["Luo kansio"]},{msgid:"Current view selector",msgstr:["Nykyisen näkymän valinta"]},{msgid:"Enter your name",msgstr:["Kirjoita nimesi"]},{msgid:"Failed to set nickname.",msgstr:["Kutsumanimen asettaminen epäonnistui."]},{msgid:"Favorites",msgstr:["Suosikit"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tiedostot ja kansiot, jotka merkitset suosikkeihisi, näkyvät täällä."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Tiedostot ja kansiot, joita muokkasit äskettäin, näkyvät täällä."]},{msgid:"Filter file list",msgstr:["Suodata tiedostolistaa"]},{msgid:"Folder name cannot be empty.",msgstr:["Kansion nimi ei voi olla tyhjä."]},{msgid:"Guest identification",msgstr:["Vieraan tunnistaminen"]},{msgid:"Home",msgstr:["Koti"]},{msgid:"Invalid name.",msgstr:["Virheellinen nimi."]},{msgid:"Modified",msgstr:["Muokattu"]},{msgid:"Move",msgstr:["Siirrä"]},{msgid:"Move to {target}",msgstr:["Siirrä sijaintiin {target}"]},{msgid:"Name",msgstr:["Nimi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nimissä voi olla enintään 64 merkkiä."]},{msgid:"Names must not be empty.",msgstr:["Nimet eivät saa olla tyhjiä."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nimet eivät saa päättyä sanaan "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nimet eivät saa alkaa pisteellä."]},{msgid:"New",msgstr:["Uusi"]},{msgid:"New folder",msgstr:["Uusi kansio"]},{msgid:"New folder name",msgstr:["Uuden kansion nimi"]},{msgid:"No files in here",msgstr:["Täällä ei ole tiedostoja"]},{msgid:"No files matching your filter were found.",msgstr:["Suodatinta vastaavia tiedostoja ei löytynyt."]},{msgid:"No matching files",msgstr:["Ei vastaavia tiedostoja"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Kirjoita vähintään kaksi merkkiä sisältävä nimi."]},{msgid:"Recent",msgstr:["Viimeisimmät"]},{msgid:"Select all entries",msgstr:["Valitse kaikki tietueet"]},{msgid:"Select entry",msgstr:["Valitse tietue"]},{msgid:"Select the row for {nodename}",msgstr:["Valitse rivi {nodename}:lle"]},{msgid:"Size",msgstr:["Koko"]},{msgid:"Submit name",msgstr:["Lähetä nimi"]},{msgid:"Undo",msgstr:["Kumoa"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lähetä jotain sisältöä tai synkronoi laitteidesi kanssa!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sinut tunnetaan tällä hetkellä nimellä {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Sinua ei ole tunnistettu."]},{msgid:"You cannot leave the name empty.",msgstr:["Nimeä ei voi jättää tyhjäksi."]}]},{language:"fr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" n'est pas autorisé dans un nom de dossier.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`"{char}" n'est pas autorisé dans un nom.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:[`"{extension}" n'est pas un nom autorisé.`]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`"{segment}" est un nom réservé et n'est pas autorisé pour un nom de dossier.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:[`"{segment}" est un nom réservé et n'est pas autorisé.`]},{msgid:"All files",msgstr:["Tous les fichiers"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Un élément portant le même nom existe déjà dans {dirname}."]},{msgid:"Cancel",msgstr:["Annuler"]},{msgid:"Cancel the entire operation",msgstr:["Tout annuler "]},{msgid:"Choose",msgstr:["Choisir"]},{msgid:"Choose {file}",msgstr:["Choisir {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Choisir %n fichier","Choisir %n fichiers","Choisir %n fichiers "]},{msgid:"Close",msgstr:["Fermer"]},{msgid:"Confirm",msgstr:["Confirmer"]},{msgid:"Continue",msgstr:["Continuer"]},{msgid:"Copy",msgstr:["Copier"]},{msgid:"Copy to {target}",msgstr:["Copier vers {target}"]},{msgid:"Could not create the new folder",msgstr:["Impossible de créer le nouveau dossier"]},{msgid:"Could not load files settings",msgstr:["Les paramètres des fichiers n'ont pas pu être chargés"]},{msgid:"Could not load files views",msgstr:["Impossible de charger les vues des fichiers"]},{msgid:"Create directory",msgstr:["Créer un répertoire"]},{msgid:"Current view selector",msgstr:["Sélecteur d'affichage actuel"]},{msgid:"Enter your name",msgstr:["Entrez votre nom"]},{msgid:"Error: {message}",msgstr:["Erreur: {message}"]},{msgid:"Existing files",msgstr:["Fichiers existants"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Les fichiers et dossiers existants seront supprimés s'ils ne sont pas sélectionnés. Si les deux sont choisis, ils seront renommés."]},{msgid:"Existing version",msgstr:["Version actuelle "]},{msgid:"Failed to set nickname.",msgstr:["Échec de définition du surnom."]},{msgid:"Favorites",msgstr:["Favoris"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Les fichiers et répertoires marqués en favoris apparaîtront ici."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Les fichiers et répertoires modifiés récemment apparaîtront ici."]},{msgid:"Filter file list",msgstr:["Filtrer la liste des fichiers"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Les noms de dossiers ne doivent pas se terminer par "{extension}".']},{msgid:"Guest identification",msgstr:["Identification d'invité"]},{msgid:"Home",msgstr:["Accueil"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Nom de dossier invalide."]},{msgid:"Invalid name.",msgstr:["Nom invalide."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Des éléments portant des noms identiques existent déjà dans {dirname}, sélectionnez ceux à garder."]},{msgid:"Keep both",msgstr:["Garder les deux"]},{msgid:"Last modified date unknown",msgstr:["Date de modification inconnue"]},{msgid:"Modified",msgstr:["Modifié"]},{msgid:"Move",msgstr:["Déplacer"]},{msgid:"Move to {target}",msgstr:["Déplacer vers {target}"]},{msgid:"Name",msgstr:["Nom"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Les noms peuvent comporter au maximum 64 caractères."]},{msgid:"Names must not be empty.",msgstr:["Les noms ne peuvent pas être vides."]},{msgid:'Names must not end with "{extension}".',msgstr:['Les noms ne doivent pas se terminer par "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Les noms ne peuvent pas commencer par un point."]},{msgid:"New",msgstr:["Nouveau"]},{msgid:"New files",msgstr:["Nouveaux fichiers"]},{msgid:"New folder",msgstr:["Nouveau dossier"]},{msgid:"New folder name",msgstr:["Nom du nouveau dossier"]},{msgid:"New version",msgstr:["Nouvelle version"]},{msgid:"No files in here",msgstr:["Aucun fichier ici"]},{msgid:"No files matching your filter were found.",msgstr:["Aucun fichier trouvé correspondant à votre filtre."]},{msgid:"No matching files",msgstr:["Aucun fichier correspondant"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Veuillez entrer un nom avec au moins 2 caractères."]},{msgid:"Recent",msgstr:["Récents"]},{msgid:"Replace",msgstr:["Remplacer"]},{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},{msgid:"Select all entries",msgstr:["Tout sélectionner"]},{msgid:"Select entry",msgstr:["Sélectionner une entrée"]},{msgid:"Select file to keep",msgstr:["Sélectionner le fichier à garder"]},{msgid:"Select files to keep",msgstr:["Sélectionner les fichiers à garder"]},{msgid:"Select the row for {nodename}",msgstr:["Sélectionner la ligne correspondant à {nodename}"]},{msgid:"Size",msgstr:["Taille"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorer %n fichier","Ignorer %n fichiers ","Ignorer %n fichiers "]},{msgid:"Submit name",msgstr:["Envoyer le nom"]},{msgid:"Success: {message}",msgstr:["Succès: {message}"]},{msgid:"Undo",msgstr:["Annuler"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Chargez du contenu ou synchronisez avec vos équipements !"]},{msgid:"Warning: {message}",msgstr:["Avertissement: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quand un nouveau dossier est sélectionné, tout fichier en conflit déjà présent dans celui-ci sera alors écrasé."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Quand un nouveau dossier est sélectionné, tout fichier déjà présent dans celui-ci sera alors écrasé."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quand un nouveau dossier est sélectionné, le contenu est écrit dans le dossier existant et une résolution récursive des conflits est effectuée."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Vous êtes actuellement identifié comme {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Vous n'êtes pas identifié actuellement."]},{msgid:"You cannot leave the name empty.",msgstr:["Vous ne pouvez pas laisser le nom vide."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Vous devez choisir au moins une option pour résoudre le conflit"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sélectionnez au moins une version de chaque fichier pour continuer."]}]},{language:"ga",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`Ní cheadaítear "{char}" laistigh d'ainm fillteáin.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`Ní cheadaítear "{char}" laistigh d'ainm.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['Ní ainm ceadaithe é "{extension}".']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`Is ainm curtha in áirithe é "{segment}" agus ní cheadaítear é d'ainmneacha fillteán.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['Is ainm curtha in áirithe é "{segment}" agus ní cheadaítear é.']},{msgid:"All files",msgstr:["Gach comhad"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Tá mír leis an ainm céanna ann cheana féin i {dirname}."]},{msgid:"Cancel",msgstr:["Cealaigh"]},{msgid:"Cancel the entire operation",msgstr:["Cealaigh an oibríocht ar fad"]},{msgid:"Choose",msgstr:["Roghnaigh"]},{msgid:"Choose {file}",msgstr:["Roghnaigh {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Roghnaigh %n comhad","Roghnaigh %n comhaid","Roghnaigh %n comhaid","Roghnaigh %n comhaid","Roghnaigh %n comhaid"]},{msgid:"Close",msgstr:["Dún"]},{msgid:"Confirm",msgstr:["Deimhnigh"]},{msgid:"Continue",msgstr:["Lean ar aghaidh"]},{msgid:"Copy",msgstr:["Cóip"]},{msgid:"Copy to {target}",msgstr:["Cóipeáil chuig {target}"]},{msgid:"Could not create the new folder",msgstr:["Níorbh fhéidir an fillteán nua a chruthú"]},{msgid:"Could not load files settings",msgstr:["Níorbh fhéidir socruithe comhaid a lódáil"]},{msgid:"Could not load files views",msgstr:["Níorbh fhéidir radhairc comhad a lódáil"]},{msgid:"Create directory",msgstr:["Cruthaigh eolaire"]},{msgid:"Current view selector",msgstr:["Roghnóir amhairc reatha"]},{msgid:"Enter your name",msgstr:["Cuir isteach d'ainm"]},{msgid:"Error: {message}",msgstr:["Earráid: {message}"]},{msgid:"Existing files",msgstr:["Comhaid atá ann cheana"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Scriosfar comhaid agus fillteáin atá ann cheana mura roghnaítear iad. Má roghnaítear an dá cheann, athainmneofar iad."]},{msgid:"Existing version",msgstr:["Leagan atá ann cheana féin"]},{msgid:"Failed to set nickname.",msgstr:["Theip ar leasainm a shocrú."]},{msgid:"Favorites",msgstr:["Ceanáin"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Taispeánfar comhaid agus fillteáin a d'athraigh tú le déanaí anseo."]},{msgid:"Filter file list",msgstr:["Scag liosta comhad"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ní féidir ainmneacha fillteán a chríochnú le "{extension}".']},{msgid:"Guest identification",msgstr:["Aitheantas aoi"]},{msgid:"Home",msgstr:["Baile"]},{msgid:"Info: {message}",msgstr:["Eolas: {message}"]},{msgid:"Invalid folder name.",msgstr:["Ainm fillteáin neamhbhailí."]},{msgid:"Invalid name.",msgstr:["Ainm neamhbhailí."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Tá míreanna leis an ainm céanna ann cheana féin i {dirname}, roghnaigh cé acu is mian leat a choinneáil."]},{msgid:"Keep both",msgstr:["Coinnigh an dá cheann"]},{msgid:"Last modified date unknown",msgstr:["Dáta an athraithe dheireanaigh anaithnid"]},{msgid:"Modified",msgstr:["Athraithe"]},{msgid:"Move",msgstr:["Bog"]},{msgid:"Move to {target}",msgstr:["Bog go{target}"]},{msgid:"Name",msgstr:["Ainm"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Ní fhéadfaidh ainmneacha a bheith níos mó ná 64 carachtar ar fhad."]},{msgid:"Names must not be empty.",msgstr:["Ní féidir ainmneacha a bheith folamh."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ní féidir ainmneacha a chríochnú le "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Ní mór ainmneacha a bheith ag tosú le ponc."]},{msgid:"New",msgstr:["Nua"]},{msgid:"New files",msgstr:["Comhaid nua"]},{msgid:"New folder",msgstr:["Fillteán nua"]},{msgid:"New folder name",msgstr:["Ainm fillteáin nua"]},{msgid:"New version",msgstr:["Leagan nua"]},{msgid:"No files in here",msgstr:["Níl aon chomhaid istigh anseo"]},{msgid:"No files matching your filter were found.",msgstr:["Níor aimsíodh aon chomhad a tháinig le do scagaire."]},{msgid:"No matching files",msgstr:["Gan comhaid meaitseála"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Cuir isteach ainm ina bhfuil 2 charachtar ar a laghad."]},{msgid:"Recent",msgstr:["le déanaí"]},{msgid:"Replace",msgstr:["Athsholáthair"]},{msgid:"Select all checkboxes",msgstr:["Roghnaigh na boscaí seiceála go léir"]},{msgid:"Select all entries",msgstr:["Roghnaigh gach iontráil"]},{msgid:"Select entry",msgstr:["Roghnaigh iontráil"]},{msgid:"Select file to keep",msgstr:["Roghnaigh comhad le coinneáil"]},{msgid:"Select files to keep",msgstr:["Roghnaigh comhaid le coinneáil"]},{msgid:"Select the row for {nodename}",msgstr:["Roghnaigh an ró do {nodename}"]},{msgid:"Size",msgstr:["Méid"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Léim %n comhad","Léim %n comhaid","Léim %n comhaid","Léim %n comhaid","Léim %n comhaid"]},{msgid:"Submit name",msgstr:["Cuir isteach ainm"]},{msgid:"Success: {message}",msgstr:["Rath: {message}"]},{msgid:"Undo",msgstr:["Cealaigh"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Uaslódáil roinnt ábhair nó sioncronaigh le do ghléasanna!"]},{msgid:"Warning: {message}",msgstr:["Rabhadh: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán nua, déanfar aon chomhaid contrártha ann a athscríobh freisin."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán nua, déanfar aon chomhaid laistigh de a athscríobh freisin."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Nuair a roghnaítear fillteán nua, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana féin agus déantar réiteach coinbhleachta athchúrsach."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Is é {nickname} an ainm atá ort faoi láthair."]},{msgid:"You are currently not identified.",msgstr:["Níl aitheantas tugtha duit faoi láthair."]},{msgid:"You cannot leave the name empty.",msgstr:["Ní féidir leat an t-ainm a fhágáil folamh."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Ní mór duit réiteach coinbhleachta amháin ar a laghad a roghnú"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú le leanúint ar aghaidh."]}]},{language:"gl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["«{char}» non está permitido no nome dun cartafol."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["«{char}» non está permitido dentro dun nome."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["«{extension}» non é un nome permitido."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["«{segment}» é un nome reservado e non está permitido para nomes de cartafoles."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["«{segment}» é un nome reservado e non está permitido."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ficheiro en conflito","%n ficheiros en conflito"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ficheiro en conflito en {dirname}","%n ficheiros en conflito en {dirname}"]},{msgid:"All files",msgstr:["Todos os ficheiros"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operación"]},{msgid:"Choose",msgstr:["Escoller"]},{msgid:"Choose {file}",msgstr:["Escoller {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escoller %n ficheiro","Escoller %n ficheiros"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar en {target}"]},{msgid:"Could not create the new folder",msgstr:["Non foi posíbel crear o novo cartafol"]},{msgid:"Could not load files settings",msgstr:["Non foi posíbel cargar os axustes dos ficheiros"]},{msgid:"Could not load files views",msgstr:["Non foi posíbel cargar as vistas dos ficheiros"]},{msgid:"Create directory",msgstr:["Crear un directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Introduza o seu nome"]},{msgid:"Existing version",msgstr:["Versión existente"]},{msgid:"Failed to set nickname.",msgstr:["Produciuse un fallo ao definir o alcume."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os ficheiros e cartafoles que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Os ficheiros e cartafoles que modificou recentemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar a lista de ficheiros"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Os nomes de cartafol non deben rematar en «{extension}»."]},{msgid:"Guest identification",msgstr:["Identificación do convidado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome."]},{msgid:"Invalid folder name.",msgstr:["O nome de cartafol non é válido."]},{msgid:"Invalid name.",msgstr:["Nome incorrecto"]},{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover cara a {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes poden ter unha lonxitude máxima de 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Os nomes non deben estar baleiros."]},{msgid:'Names must not end with "{extension}".',msgstr:["Os nomes non deben rematar en «{extension}»."]},{msgid:"Names must not start with a dot.",msgstr:["Os nomes non deben comezar cun punto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Novo cartafol"]},{msgid:"New folder name",msgstr:["Novo nome do cartafol"]},{msgid:"New version",msgstr:["Nova versión"]},{msgid:"No files in here",msgstr:["Aquí non hai ficheiros"]},{msgid:"No files matching your filter were found.",msgstr:["Non se atopou ningún ficheiro que coincida co filtro."]},{msgid:"No matching files",msgstr:["Non hai ficheiros coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Introduza un nome con polo menos 2 caracteres."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Seleccionar todas as caixas"]},{msgid:"Select all entries",msgstr:["Seleccionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},{msgid:"Select entry",msgstr:["Seleccionar a entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccionar a fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omitir %n ficheiro","Omitir %n ficheiros"]},{msgid:"Skip this file",msgstr:["Omitir este ficheiro"]},{msgid:"Submit name",msgstr:["Enviar o nome"]},{msgid:"Undo",msgstr:["Desfacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Enviar algún contido ou sincronizalo cos seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cando se selecciona un cartafol entrante, todos os ficheiros conflitivos dentro dela tamén serán sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e realízase unha resolución recursiva de conflitos."]},{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Vde. está identificado actualmente como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Vde. non está identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["Vde. non pode deixar o nome baleiro."]},{msgid:"You need to choose at least one conflict solution",msgstr:["É necesario escoller polo menos unha solución de conflito"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["É necesario seleccionar polo menos unha versión de cada ficheiro para continuar."]}]},{language:"hr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["Znak „{char}” nije dopušten u nazivu mape."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["Znak „{char}” nije dopušten u nazivu."]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nije dopušten u nazivu.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" je rezervirana riječ i nije dopušten u nazivu mape.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" je rezervirana riječ i nije dopušten.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["Sukobljava se %n datoteka","Sukobljava se %n datoteke","Sukobljava se %n datoteke"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n sukob datoteka u {dirname}","%n sukoba datoteka u {dirname}","%n sukoba datoteka u {dirname}"]},{msgid:"All files",msgstr:["Sve datoteke"]},{msgid:"Cancel",msgstr:["Odustani"]},{msgid:"Cancel the entire operation",msgstr:["Odustani od cijele operacije"]},{msgid:"Choose",msgstr:["Odaberi"]},{msgid:"Choose {file}",msgstr:["Odaberi {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Odaberi %n datoteku","Odaberi %n datoteka","Odaberi %n datoteke"]},{msgid:"Confirm",msgstr:["Potvrdi"]},{msgid:"Continue",msgstr:["Nastavi"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj u {target}"]},{msgid:"Could not create the new folder",msgstr:["Nije moguće stvoriti novu mapu"]},{msgid:"Could not load files settings",msgstr:["Nije moguće učitati postavke datoteka"]},{msgid:"Could not load files views",msgstr:["Nije moguće učitati prikaze datoteka"]},{msgid:"Create directory",msgstr:["Stvori mapu"]},{msgid:"Current view selector",msgstr:["Odabir trenutačnog prikaza"]},{msgid:"Enter your name",msgstr:["Unesite vaše ime"]},{msgid:"Existing version",msgstr:["Postojeća verzija"]},{msgid:"Failed to set nickname.",msgstr:["Neuspjelo postavljanje nadimka."]},{msgid:"Favorites",msgstr:["Favoriti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Ovdje se prikazuju datoteke i mape koje ste označili kao favoriti."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Ovdje se prikazuju datoteke i mape koje ste nedavno ažurirali."]},{msgid:"Filter file list",msgstr:["Filtriranje liste datoteka"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nazivi mapa ne smiju završiti sa "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikacija gosta"]},{msgid:"Home",msgstr:["Naslovna"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ako odaberete obje verzije, dolaznoj datoteci bit će dodan broj u nazivu."]},{msgid:"Invalid folder name.",msgstr:["Neispavan naziv mape."]},{msgid:"Invalid name.",msgstr:["Neispravan naziv."]},{msgid:"Last modified date unknown",msgstr:["Nepoznat datum zadnjeg ažuriranja"]},{msgid:"Modified",msgstr:["Ažurirano"]},{msgid:"Move",msgstr:["Premjesti"]},{msgid:"Move to {target}",msgstr:["Premjesti u {target}"]},{msgid:"Name",msgstr:["Naziv"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nazivi mogu imati najviše 64 znaka."]},{msgid:"Names must not be empty.",msgstr:["Nazivi ne smiju biti prazni."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nazivi ne smiju završiti sa "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nazivi ne smiju započinjati točkom."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova mapa"]},{msgid:"New folder name",msgstr:["Novi naziv mape"]},{msgid:"New version",msgstr:["Nova verzija"]},{msgid:"No files in here",msgstr:["Ovdje nema datoteka"]},{msgid:"No files matching your filter were found.",msgstr:["Nisu pronađene datoteke koje odgovaraju vašem filtru."]},{msgid:"No matching files",msgstr:["Nema odgovarajućih datoteka."]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Unesite naziv s najmanje 2 znaka."]},{msgid:"Recent",msgstr:["Nedavno"]},{msgid:"Select all checkboxes",msgstr:["Označi sve potvrdne okvire"]},{msgid:"Select all entries",msgstr:["Označi sve stavke"]},{msgid:"Select all existing files",msgstr:["Označi sve postojeće datoteke"]},{msgid:"Select all new files",msgstr:["Označi sve nove datoteke"]},{msgid:"Select entry",msgstr:["Označi stavku"]},{msgid:"Select the row for {nodename}",msgstr:["Označi red za{nodename}"]},{msgid:"Size",msgstr:["Veličina"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Preskoči %n datoteku","Preskoči %n datoteke","Preskoči %n datoteke"]},{msgid:"Skip this file",msgstr:["Preskoči ovu datoteku"]},{msgid:"Submit name",msgstr:["Pošalji naziv"]},{msgid:"Undo",msgstr:["Poništi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Prenesite neki sadržaj ili sinkronizirajte sa svojim uređajima!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kada je odabrana dolazna mapa, sve datoteke unutar nje koje su u sukobu također će biti prepisane."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kada je odabrana dolazna mapa, sadržaj se upisuje u postojeću mapu i provodi se rekurzivno rješavanje sukoba."]},{msgid:"Which files do you want to keep?",msgstr:["Koje datoteke želite zadržati?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Trenutno ste identificirani kao {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Trenutno niste identificirani."]},{msgid:"You cannot leave the name empty.",msgstr:["Ne možete ostaviti naziv prazan."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Morate odabrati barem jedno rješenje sukoba"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Morate odabrati barem jednu verziju svake datoteke kako biste nastavili."]}]},{language:"hu_HU",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["A(z) „{char}” nem engedélyezett egy mappanévben."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["A(z) „{char}” nem engedélyezett egy névben."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["A(z) „{extension}” nem engedélyezett név."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["A(z) „{segment}” foglalt név, és nem engedélyezett a mappanevekben."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["A(z) „{segment}” foglalt név, és nem engedélyezett."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ütköző fájl","%n ütköző fájl"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ütköző fájl ebben: {dirname}","%n ütköző fájl ebben: {dirname}"]},{msgid:"All files",msgstr:["Összes fájl"]},{msgid:"Cancel",msgstr:["Mégse"]},{msgid:"Cancel the entire operation",msgstr:["Egész művelet megszakítása"]},{msgid:"Choose",msgstr:["Kiválasztás"]},{msgid:"Choose {file}",msgstr:["{file} kiválasztása"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n fájl kiválasztása","%n fájl kiválasztása"]},{msgid:"Confirm",msgstr:["Megerősítés"]},{msgid:"Continue",msgstr:["Folytatás"]},{msgid:"Copy",msgstr:["Másolás"]},{msgid:"Copy to {target}",msgstr:["Másolás ide: {target}"]},{msgid:"Could not create the new folder",msgstr:["Nem lehet létrehozni az új mappát"]},{msgid:"Could not load files settings",msgstr:["Nem lehet betölteni a fájlok beállításait"]},{msgid:"Could not load files views",msgstr:["Nem lehet betölteni a fájlok nézeteit"]},{msgid:"Create directory",msgstr:["Mappa létrehozása"]},{msgid:"Current view selector",msgstr:["Jelenlegi nézet választója"]},{msgid:"Enter your name",msgstr:["Adja meg a nevét"]},{msgid:"Existing version",msgstr:["Meglévő verzió"]},{msgid:"Failed to set nickname.",msgstr:["Nem sikerült a becenév beállítása."]},{msgid:"Favorites",msgstr:["Kedvencek"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["A kedvencként megjelölt fájlok és mappák itt jelennek meg."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["A nemrég módosított fájlok és mappák itt jelennek meg."]},{msgid:"Filter file list",msgstr:["Fájllista szűrése"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["A mappanevek nem végződhetnek ezzel: „{extension}”."]},{msgid:"Guest identification",msgstr:["Vendégazonosítás"]},{msgid:"Home",msgstr:["Kezdőlap"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ha mindkét verziót választja, akkor a bejövő fájl nevéhez egy szám lesz hozzáfűzve."]},{msgid:"Invalid folder name.",msgstr:["Érvénytelen mappanév."]},{msgid:"Invalid name.",msgstr:["Érvénytelen név."]},{msgid:"Last modified date unknown",msgstr:["Legutóbbi módosítás ideje ismeretlen"]},{msgid:"Modified",msgstr:["Módosítva"]},{msgid:"Move",msgstr:["Áthelyezés"]},{msgid:"Move to {target}",msgstr:["Áthelyezés ide: {target}"]},{msgid:"Name",msgstr:["Név"]},{msgid:"Names may be at most 64 characters long.",msgstr:["A nevek legfeljebb 64 karakter hosszúak lehetnek."]},{msgid:"Names must not be empty.",msgstr:["A nevek nem lehetnek üresek."]},{msgid:'Names must not end with "{extension}".',msgstr:["A nevek nem végződhetnek ezzel: „{extension}”."]},{msgid:"Names must not start with a dot.",msgstr:["A nevek nem kezdődhetnek ponttal."]},{msgid:"New",msgstr:["Új"]},{msgid:"New folder",msgstr:["Új mappa"]},{msgid:"New folder name",msgstr:["Új mappa neve"]},{msgid:"New version",msgstr:["Új verzió"]},{msgid:"No files in here",msgstr:["Itt nincsenek fájlok"]},{msgid:"No files matching your filter were found.",msgstr:["Nincs a szűrési feltételeknek megfelelő fájl."]},{msgid:"No matching files",msgstr:["Nincs ilyen fájl"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Legalább 2 karakteres nevet adjon meg."]},{msgid:"Recent",msgstr:["Legutóbbi"]},{msgid:"Select all checkboxes",msgstr:["Összes jelölőmező bepipálása"]},{msgid:"Select all entries",msgstr:["Összes bejegyzés kijelölése"]},{msgid:"Select all existing files",msgstr:["Összes meglévő fájl kijelölése"]},{msgid:"Select all new files",msgstr:["Összes új fájl kijelölése"]},{msgid:"Select entry",msgstr:["Bejegyzés kijelölése"]},{msgid:"Select the row for {nodename}",msgstr:["Válasszon sort a következőnek: {nodename}"]},{msgid:"Size",msgstr:["Méret"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n fájl kihagyása","%n fájl kihagyása"]},{msgid:"Skip this file",msgstr:["Fájl kihagyása"]},{msgid:"Submit name",msgstr:["Név beküldése"]},{msgid:"Undo",msgstr:["Visszavonás"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Töltsön fel tartalmat, vagy szinkronizáljon az eszközeivel!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ha egy bejövő mappa van kijelölve, akkor a benne lévő ütköző fájlok is felül lesznek írva."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Amikor egy bejövő mappát kiválaszt, a benne lévő fájlok is felülíródnak."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ha egy bejövő mappa van kijelölve, akkor a tartalom a meglévő mappába lesz írva, és rekurzív ütközéskezelés lesz végezve."]},{msgid:"Which files do you want to keep?",msgstr:["Mely fájlokat akarja megtartani?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Jelenleg ekként van azonosítva: {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Jelenleg nincs azonosítva."]},{msgid:"You cannot leave the name empty.",msgstr:["A nevet nem hagyhatja üresen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Legalább egy ütközéskezelési megoldást kell választania"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["A folytatáshoz az összes fájlnak legalább egy verzióját ki kell választania."]}]},{language:"hy",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} սխալ թղթապանակի անվանում է"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} համարվում է անթույլատրելի թղթապանակի անվանում"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["/ չի թույլատրվում օգտագործել անվանման մեջ"]},{msgid:"All files",msgstr:["Բոլոր ֆայլերը"]},{msgid:"Choose",msgstr:["Ընտրել"]},{msgid:"Choose {file}",msgstr:["Ընտրել {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Ընտրել %n ֆայլ","Ընտրել %n ֆայլեր"]},{msgid:"Copy",msgstr:["Պատճենել"]},{msgid:"Copy to {target}",msgstr:["Պատճենել {target}"]},{msgid:"Could not create the new folder",msgstr:["Չստացվեց ստեղծել նոր թղթապանակը"]},{msgid:"Could not load files settings",msgstr:["Չստացվեց բեռնել ֆայլի կարգավորումները"]},{msgid:"Could not load files views",msgstr:["Չստացվեց բեռնել ֆայլերի դիտումները"]},{msgid:"Create directory",msgstr:["Ստեղծել դիրեկտորիա"]},{msgid:"Current view selector",msgstr:["Ընթացիկ դիտման ընտրիչ"]},{msgid:"Favorites",msgstr:["Նախընտրելիներ"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք դուք նշել եք որպես նախընտրելիներ:"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք վերջերս փոխել եք:"]},{msgid:"Filter file list",msgstr:["Ֆիլտրել ֆայլերի ցուցակը"]},{msgid:"Folder name cannot be empty.",msgstr:["Թղթապանակի անունը չի կարող դատարկ լինել:"]},{msgid:"Home",msgstr:["Սկիզբ"]},{msgid:"Modified",msgstr:["Փոփոխված"]},{msgid:"Move",msgstr:["Տեղափոխել"]},{msgid:"Move to {target}",msgstr:["Տեղափոխել {target}"]},{msgid:"Name",msgstr:["Անուն"]},{msgid:"New",msgstr:["Նոր"]},{msgid:"New folder",msgstr:["Նոր թղթապանակ"]},{msgid:"New folder name",msgstr:["Նոր թղթապանակի անվանում"]},{msgid:"No files in here",msgstr:["Այստեղ չկան ֆայլեր"]},{msgid:"No files matching your filter were found.",msgstr:["Ձեր ֆիլտրին համապատասխանող ֆայլերը չեն գտնվել:"]},{msgid:"No matching files",msgstr:["Չկան համապատասխան ֆայլեր"]},{msgid:"Recent",msgstr:["Վերջին"]},{msgid:"Select all entries",msgstr:["Ընտրել բոլոր գրառումները"]},{msgid:"Select entry",msgstr:["Ընտրել բոլոր գրառումը"]},{msgid:"Select the row for {nodename}",msgstr:["Ընտրեք տողը {nodename}-ի համար "]},{msgid:"Size",msgstr:["Չափ"]},{msgid:"Undo",msgstr:["Ետարկել"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ներբեռնեք որոշ բովանդակություն կամ համաժամացրեք այն ձեր սարքերի հետ:"]}]},{language:"id",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" tidak diizinkan di dalam nama folder.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" tidak diizinkan di dalam nama.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" bukan nama yang diizinkan.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" adalah nama yang dicadangkan dan tidak diizinkan untuk nama folder.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" adalah nama yang dicadangkan dan tidak diizinkan.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n konflik file"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konflik file di {dirname}"]},{msgid:"All files",msgstr:["Semua berkas"]},{msgid:"Cancel",msgstr:["Batal"]},{msgid:"Cancel the entire operation",msgstr:["Batalkan seluruh operasi"]},{msgid:"Choose",msgstr:["Pilih"]},{msgid:"Choose {file}",msgstr:["Pilih {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pilih %n file"]},{msgid:"Confirm",msgstr:["Konfirmasi"]},{msgid:"Continue",msgstr:["Lanjutkan"]},{msgid:"Copy",msgstr:["Salin"]},{msgid:"Copy to {target}",msgstr:["Salin ke {target}"]},{msgid:"Could not create the new folder",msgstr:["Tidak dapat membuat folder baru"]},{msgid:"Could not load files settings",msgstr:["Tidak dapat memuat pengaturan file"]},{msgid:"Could not load files views",msgstr:["Tidak dapat memuat tampilan file"]},{msgid:"Create directory",msgstr:["Buat direktori"]},{msgid:"Current view selector",msgstr:["Pemilih tampilan saat ini"]},{msgid:"Enter your name",msgstr:["Masukkan nama Anda"]},{msgid:"Existing version",msgstr:["Versi yang ada"]},{msgid:"Failed to set nickname.",msgstr:["Gagal menetapkan nama panggilan."]},{msgid:"Favorites",msgstr:["Favorit"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Berkas dan folder yang Anda tandai sebagai favorit akan muncul di sini."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Berkas dan folder yang Anda ubah baru-baru ini akan muncul di sini."]},{msgid:"Filter file list",msgstr:["Saring daftar berkas"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nama folder tidak boleh diakhiri dengan "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikasi tamu"]},{msgid:"Home",msgstr:["Beranda"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, file yang masuk akan ditambahkan angka pada namanya."]},{msgid:"Invalid folder name.",msgstr:["Nama folder tidak valid."]},{msgid:"Invalid name.",msgstr:["Nama tidak valid."]},{msgid:"Last modified date unknown",msgstr:["Tanggal modifikasi terakhir tidak diketahui"]},{msgid:"Modified",msgstr:["Diubah"]},{msgid:"Move",msgstr:["Pindahkan"]},{msgid:"Move to {target}",msgstr:["Pindahkan ke {target}"]},{msgid:"Name",msgstr:["Nama"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Panjang nama maksimal 64 karakter."]},{msgid:"Names must not be empty.",msgstr:["Nama tidak boleh kosong."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nama tidak boleh diakhiri dengan "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nama tidak boleh diawali dengan titik."]},{msgid:"New",msgstr:["Baru"]},{msgid:"New folder",msgstr:["Folder baru"]},{msgid:"New folder name",msgstr:["Nama folder baru"]},{msgid:"New version",msgstr:["Versi baru"]},{msgid:"No files in here",msgstr:["Tidak ada berkas di sini"]},{msgid:"No files matching your filter were found.",msgstr:["Tidak ada berkas yang cocok dengan penyaringan Anda."]},{msgid:"No matching files",msgstr:["Tidak ada berkas yang cocok"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Silakan masukkan nama dengan minimal 2 karakter."]},{msgid:"Recent",msgstr:["Terkini"]},{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},{msgid:"Select all entries",msgstr:["Pilih semua entri"]},{msgid:"Select all existing files",msgstr:["Pilih semua file yang ada"]},{msgid:"Select all new files",msgstr:["Pilih semua file baru"]},{msgid:"Select entry",msgstr:["Pilih entri"]},{msgid:"Select the row for {nodename}",msgstr:["Pilih baris untuk {nodename}"]},{msgid:"Size",msgstr:["Ukuran"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Lewati %n file"]},{msgid:"Skip this file",msgstr:["Lewati file ini"]},{msgid:"Submit name",msgstr:["Kirim nama"]},{msgid:"Undo",msgstr:["Tidak jadi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Unggah beberapa konten atau sinkronkan dengan perangkat Anda!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Saat folder yang masuk dipilih, semua file yang konflik di dalamnya juga akan ditimpa."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Saat folder yang masuk dipilih, konten ditulis ke dalam folder yang ada dan penyelesaian konflik rekursif dilakukan."]},{msgid:"Which files do you want to keep?",msgstr:["File mana yang ingin Anda pertahankan?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Saat ini Anda teridentifikasi sebagai {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Saat ini Anda tidak teridentifikasi."]},{msgid:"You cannot leave the name empty.",msgstr:["Anda tidak dapat membiarkan nama kosong."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Anda perlu memilih setidaknya satu solusi konflik"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda perlu memilih setidaknya satu versi dari setiap file untuk melanjutkan."]}]},{language:"is",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" er ógilt möppuheiti.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" er ekki leyfilegt möppuheiti']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er er ekki leyfilegt innan í skráarheiti.']},{msgid:"All files",msgstr:["Allar skrár"]},{msgid:"Choose",msgstr:["Veldu"]},{msgid:"Choose {file}",msgstr:["Veldu {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Veldu %n skrá","Veldu %n skrár"]},{msgid:"Copy",msgstr:["Afrita"]},{msgid:"Copy to {target}",msgstr:["Afrita í {target}"]},{msgid:"Could not create the new folder",msgstr:["Get ekki búið til nýju möppuna"]},{msgid:"Could not load files settings",msgstr:["Tókst ekki að hlaða inn stillingum skráa"]},{msgid:"Could not load files views",msgstr:["Tókst ekki að hlaða inn sýnum skráa"]},{msgid:"Create directory",msgstr:["Búa til möppu"]},{msgid:"Current view selector",msgstr:["Núverandi val sýnar"]},{msgid:"Favorites",msgstr:["Eftirlæti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Skrár og möppur sem þú merkir sem eftirlæti birtast hér."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Skrár og möppur sem þú breyttir nýlega birtast hér."]},{msgid:"Filter file list",msgstr:["Sía skráalista"]},{msgid:"Folder name cannot be empty.",msgstr:["Möppuheiti má ekki vera tómt."]},{msgid:"Home",msgstr:["Heim"]},{msgid:"Modified",msgstr:["Breytt"]},{msgid:"Move",msgstr:["Færa"]},{msgid:"Move to {target}",msgstr:["Færa í {target}"]},{msgid:"Name",msgstr:["Heiti"]},{msgid:"New",msgstr:["Nýtt"]},{msgid:"New folder",msgstr:["Ný mappa"]},{msgid:"New folder name",msgstr:["Heiti nýrrar möppu"]},{msgid:"No files in here",msgstr:["Engar skrár hér"]},{msgid:"No files matching your filter were found.",msgstr:["Engar skrár fundust sem passa við síuna."]},{msgid:"No matching files",msgstr:["Engar samsvarandi skrár"]},{msgid:"Recent",msgstr:["Nýlegt"]},{msgid:"Select all entries",msgstr:["Velja allar færslur"]},{msgid:"Select entry",msgstr:["Velja færslu"]},{msgid:"Select the row for {nodename}",msgstr:["Veldu röðina fyrir {nodename}"]},{msgid:"Size",msgstr:["Stærð"]},{msgid:"Undo",msgstr:["Afturkalla"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Sendu inn eitthvað efni eða samstilltu við tækin þín!"]}]},{language:"it",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" non è consentito all'interno di un nome di cartella.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`"{char}" non è consentito all'interno di un nome.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" non è un nome consentito']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" è un nome riservato e non consentito per i nomi delle cartelle.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" è un nome riservato e non consentito.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n file in conflitto","%n file in conflitto","%n file in conflitto"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n file in conflitto in {dirname}","%n file in conflitto in {dirname}","%n file in conflitto in {dirname}"]},{msgid:"All files",msgstr:["Tutti i file"]},{msgid:"Cancel",msgstr:["Annulla"]},{msgid:"Cancel the entire operation",msgstr:["Annulla l'intera operazione"]},{msgid:"Choose",msgstr:["Scegli"]},{msgid:"Choose {file}",msgstr:["Scegli {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Scegli %n file","Scegli %n file","Scegli %n file"]},{msgid:"Confirm",msgstr:["Conferma"]},{msgid:"Continue",msgstr:["Continua"]},{msgid:"Copy",msgstr:["Copia"]},{msgid:"Copy to {target}",msgstr:["Copia in {target}"]},{msgid:"Could not create the new folder",msgstr:["Impossibile creare la nuova cartella"]},{msgid:"Could not load files settings",msgstr:["Impossibile caricare le impostazioni dei file"]},{msgid:"Could not load files views",msgstr:["Impossibile caricare le visualizzazioni dei file"]},{msgid:"Create directory",msgstr:["Crea cartella"]},{msgid:"Current view selector",msgstr:["Selettore della vista attuale"]},{msgid:"Enter your name",msgstr:["Inserisci il tuo nome"]},{msgid:"Existing version",msgstr:["Versione esistente"]},{msgid:"Failed to set nickname.",msgstr:["Impossibile impostare lo pseudonimo."]},{msgid:"Favorites",msgstr:["Preferiti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["I file e le cartelle contrassegnate come preferite saranno mostrate qui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["I file e le cartelle che hai modificato di recente saranno mostrate qui."]},{msgid:"Filter file list",msgstr:["Filtra l'elenco dei file"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['I nomi delle cartelle devono finire con "{extension}".']},{msgid:"Guest identification",msgstr:["Identificazione ospiti"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, al nome del file in arrivo verrà aggiunto un numero."]},{msgid:"Invalid folder name.",msgstr:["Nome cartella non valido."]},{msgid:"Invalid name.",msgstr:["Nome non valido."]},{msgid:"Last modified date unknown",msgstr:["Data di ultima modifica sconosciuta"]},{msgid:"Modified",msgstr:["Modificato"]},{msgid:"Move",msgstr:["Sposta"]},{msgid:"Move to {target}",msgstr:["Sposta in {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["I nomi dovrebbero avere una lunghezza massima di 64 caratteri."]},{msgid:"Names must not be empty.",msgstr:["I nomi non devono essere vuoti."]},{msgid:'Names must not end with "{extension}".',msgstr:['I nomi devono finire con "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["I nomi non possono iniziare con un punto."]},{msgid:"New",msgstr:["Nuovo"]},{msgid:"New folder",msgstr:["Nuova cartella"]},{msgid:"New folder name",msgstr:["Nome della nuova cartella"]},{msgid:"New version",msgstr:["Nuova versione"]},{msgid:"No files in here",msgstr:["Nessun file qui"]},{msgid:"No files matching your filter were found.",msgstr:["Nessun file che corrisponde al tuo filtro è stato trovato."]},{msgid:"No matching files",msgstr:["Nessun file corrispondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Digita un nome con almeno 2 caratteri."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},{msgid:"Select all entries",msgstr:["Scegli tutte le voci"]},{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},{msgid:"Select entry",msgstr:["Seleziona la voce"]},{msgid:"Select the row for {nodename}",msgstr:["Seleziona la riga per {nodename}"]},{msgid:"Size",msgstr:["Dimensioni"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Salta %n file","Salta %n file","Salta %n file"]},{msgid:"Skip this file",msgstr:["Salta questo file"]},{msgid:"Submit name",msgstr:["Invia nome"]},{msgid:"Undo",msgstr:["Annulla"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Carica qualche contenuto o sincronizza con i tuoi dispositivi!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno saranno sovrascritti."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche i documenti all'interno verranno sovrascritti."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti."]},{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi conservare?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sei attualmente identificato come {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Attualmente non sei identificato."]},{msgid:"You cannot leave the name empty.",msgstr:["Non puoi lasciare il nome vuoto."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Devi scegliere almeno una soluzione al conflitto"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Per continuare, è necessario selezionare almeno una versione di ciascun file."]}]},{language:"ja_JP",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['フォルダー名に "{char}" を使用することはできません。']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['名前に "{char}" を使用することはできません。']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" は許可された名前ではありません。']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" は予約名のため、使用できません。']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" は予約名のため、使用できません。']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%nファイルが競合しています"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%nディレクトリ{dirname}内のファイル競合"]},{msgid:"All files",msgstr:["すべてのファイル"]},{msgid:"Cancel",msgstr:["キャンセル"]},{msgid:"Cancel the entire operation",msgstr:["すべての操作をキャンセル"]},{msgid:"Choose",msgstr:["選択"]},{msgid:"Choose {file}",msgstr:["{file} を選択"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n 個のファイルを選択"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Continue",msgstr:["続行"]},{msgid:"Copy",msgstr:["コピー"]},{msgid:"Copy to {target}",msgstr:["{target} にコピー"]},{msgid:"Could not create the new folder",msgstr:["新しいフォルダーを作成できませんでした"]},{msgid:"Could not load files settings",msgstr:["ファイル設定を読み込めませんでした"]},{msgid:"Could not load files views",msgstr:["ファイルビューを読み込めませんでした"]},{msgid:"Create directory",msgstr:["ディレクトリを作成"]},{msgid:"Current view selector",msgstr:["現在のビュー選択"]},{msgid:"Enter your name",msgstr:["名前を入力してください"]},{msgid:"Existing version",msgstr:["現行バージョン"]},{msgid:"Failed to set nickname.",msgstr:["ニックネームの設定に失敗しました。"]},{msgid:"Favorites",msgstr:["お気に入り"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["お気に入りとしてマークしたファイルとフォルダーがここに表示されます。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["最近変更したファイルとフォルダーがここに表示されます。"]},{msgid:"Filter file list",msgstr:["ファイルのリストをフィルター"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['フォルダー名の末尾に "{extension}" を使用できません。']},{msgid:"Guest identification",msgstr:["ゲスト識別"]},{msgid:"Home",msgstr:["ホーム"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["両方のバージョンを選択した場合、受信ファイル名には番号が追加されます。"]},{msgid:"Invalid folder name.",msgstr:["フォルダー名が無効です。"]},{msgid:"Invalid name.",msgstr:["無効な名前です。"]},{msgid:"Last modified date unknown",msgstr:["最終更新日不明"]},{msgid:"Modified",msgstr:["変更済み"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["{target} に移動"]},{msgid:"Name",msgstr:["名前"]},{msgid:"Names may be at most 64 characters long.",msgstr:["名前は最大64文字です。"]},{msgid:"Names must not be empty.",msgstr:["名前は空にできません。"]},{msgid:'Names must not end with "{extension}".',msgstr:['名前の末尾に "{extension}" を使用できません。']},{msgid:"Names must not start with a dot.",msgstr:["ドットで始まる名前は使用できません。"]},{msgid:"New",msgstr:["新規作成"]},{msgid:"New folder",msgstr:["新しいフォルダー"]},{msgid:"New folder name",msgstr:["新しいフォルダーの名前"]},{msgid:"New version",msgstr:["新バージョン"]},{msgid:"No files in here",msgstr:["ファイルがありません"]},{msgid:"No files matching your filter were found.",msgstr:["フィルターに一致するファイルは見つかりませんでした。"]},{msgid:"No matching files",msgstr:["一致するファイルはありません"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["名前は2文字以上を入力してください。"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all checkboxes",msgstr:["すべてのチェックボックスを選択"]},{msgid:"Select all entries",msgstr:["すべてのエントリを選択"]},{msgid:"Select all existing files",msgstr:["既存のファイルをすべて選択"]},{msgid:"Select all new files",msgstr:["すべての新規ファイルを選択"]},{msgid:"Select entry",msgstr:["エントリを選択"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} の行を選択"]},{msgid:"Size",msgstr:["サイズ"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n 個のファイルをスキップ"]},{msgid:"Skip this file",msgstr:["このファイルをスキップ"]},{msgid:"Submit name",msgstr:["名前を送信する"]},{msgid:"Undo",msgstr:["元に戻す"]},{msgid:"Upload some content or sync with your devices!",msgstr:["コンテンツをアップロードするか、デバイスと同期してください!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["受信フォルダーを選択すると、そのフォルダー内の競合ファイルも上書きされます。"]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["受信フォルダを選択すると、その中のファイルも上書きされます。"]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["受信フォルダーを選択すると、内容は既存のフォルダーに書き込まれ、再帰的な競合解決が実行されます。"]},{msgid:"Which files do you want to keep?",msgstr:["どのファイルを残しますか?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["現在、{nickname}として識別されています。"]},{msgid:"You are currently not identified.",msgstr:["現在あなたは識別されていません。"]},{msgid:"You cannot leave the name empty.",msgstr:["名前を空にすることはできません。"]},{msgid:"You need to choose at least one conflict solution",msgstr:["少なくとも1つの競合ソリューションを選択する必要があります"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["続行するには、各ファイルのバージョンを少なくとも1つ選択する必要があります。"]}]},{language:"ko",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["문자 '{char}'은(는) 폴더 이름에 사용할 수 없습니다."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["문자 '{char}'은(는) 이름에 사용할 수 없습니다."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["'{extension}'은(는) 사용 불가능한 이름입니다."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["'{segment}'은(는) 예약된 이름이므로 폴더 이름으로 사용할 수 없습니다."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["'{segment}'은(는) 예약된 이름이므로 사용할 수 없습니다."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n개의 파일이 충돌함"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname}에서 %n개의 파일이 충돌함"]},{msgid:"All files",msgstr:["모든 파일"]},{msgid:"Cancel",msgstr:["취소"]},{msgid:"Cancel the entire operation",msgstr:["전체 작업 취소"]},{msgid:"Choose",msgstr:["선택"]},{msgid:"Choose {file}",msgstr:["{file} 선택"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["파일 %n개 선택"]},{msgid:"Confirm",msgstr:["확인"]},{msgid:"Continue",msgstr:["계속"]},{msgid:"Copy",msgstr:["복사"]},{msgid:"Copy to {target}",msgstr:["{target}(으)로 복사"]},{msgid:"Could not create the new folder",msgstr:["새 폴더를 만들 수 없음"]},{msgid:"Could not load files settings",msgstr:["파일 설정을 불러오지 못함"]},{msgid:"Could not load files views",msgstr:["파일 보기를 불러오지 못함"]},{msgid:"Create directory",msgstr:["디렉토리 만들기"]},{msgid:"Current view selector",msgstr:["현재 보기 방식"]},{msgid:"Enter your name",msgstr:["이름을 입력하세요"]},{msgid:"Existing version",msgstr:["기존 버전"]},{msgid:"Failed to set nickname.",msgstr:[`닉네임을 설정하지 못했습니다. + `]},{msgid:"Favorites",msgstr:["즐겨찾기"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["즐겨찾기 한 파일 및 폴더가 이곳에 표시됩니다."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["최근 수정된 파일 및 폴더가 이곳에 표시됩니다."]},{msgid:"Filter file list",msgstr:["파일 목록 필터링"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["폴더 이름은 '{extension}'(으)로 끝날 수 없습니다."]},{msgid:"Guest identification",msgstr:["게스트 확인"]},{msgid:"Home",msgstr:["홈"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["두 버전을 모두 선택할 경우 새로 추가되는 파일의 이름에 숫자가 붙게 됩니다."]},{msgid:"Invalid folder name.",msgstr:["잘못된 폴더 이름입니다."]},{msgid:"Invalid name.",msgstr:["잘못된 이름입니다. "]},{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},{msgid:"Modified",msgstr:["수정됨"]},{msgid:"Move",msgstr:["이동"]},{msgid:"Move to {target}",msgstr:["{target}(으)로 이동"]},{msgid:"Name",msgstr:["이름"]},{msgid:"Names may be at most 64 characters long.",msgstr:["이름은 최대 64글자까지 지정할 수 있습니다."]},{msgid:"Names must not be empty.",msgstr:["이름은 비어 있을 수 없습니다."]},{msgid:'Names must not end with "{extension}".',msgstr:["이름은 '{extension}'(으)로 끝날 수 없습니다."]},{msgid:"Names must not start with a dot.",msgstr:["이름은 마침표로 시작될 수 없습니다."]},{msgid:"New",msgstr:["새로 만들기"]},{msgid:"New folder",msgstr:["새 폴더"]},{msgid:"New folder name",msgstr:["새 폴더명"]},{msgid:"New version",msgstr:["새로운 버전"]},{msgid:"No files in here",msgstr:["파일이 없습니다"]},{msgid:"No files matching your filter were found.",msgstr:["선택된 필터에 해당하는 파일이 없습니다."]},{msgid:"No matching files",msgstr:["해당하는 파일 없음"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["최소 두 글자 이상의 이름을 입력해주세요."]},{msgid:"Recent",msgstr:["최근"]},{msgid:"Select all checkboxes",msgstr:["체크박스 모두 선택"]},{msgid:"Select all entries",msgstr:["모두 선택"]},{msgid:"Select all existing files",msgstr:["기존 파일 모두 선택"]},{msgid:"Select all new files",msgstr:["새 파일 모두 선택"]},{msgid:"Select entry",msgstr:["항목 선택"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename}의 행 선택"]},{msgid:"Size",msgstr:["크기"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n개 파일 건너뛰기"]},{msgid:"Skip this file",msgstr:["이 파일 건너뛰기"]},{msgid:"Submit name",msgstr:["이름 제출"]},{msgid:"Undo",msgstr:["되돌리기"]},{msgid:"Upload some content or sync with your devices!",msgstr:["기기에서 파일을 업로드 또는 동기화하세요!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["새 폴더를 선택할 경우, 해당 폴더 내의 충돌 파일들도 덮어쓰기 됩니다."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["새 폴더를 선택할 경우 내용물이 기존 폴더에 기록되며 재귀적 충돌 해결이 수행됩니다."]},{msgid:"Which files do you want to keep?",msgstr:["어떤 파일들을 유지하시겠습니까?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["{nickname}(으)로 인증된 상태 입니다."]},{msgid:"You are currently not identified.",msgstr:["현재 인증 정보가 없습니다."]},{msgid:"You cannot leave the name empty.",msgstr:["이름은 비워 둘 수 없습니다. "]},{msgid:"You need to choose at least one conflict solution",msgstr:["최소한 하나의 충돌 해결 방안을 선택해야 합니다."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}]},{language:"lb",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} ass en ongëlteg Dossier"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} ass net en erlaabten Dossiernumm"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ass net an engem Dossier Numm erlaabt']},{msgid:"All files",msgstr:["All Dateien"]},{msgid:"Choose",msgstr:["Wielt"]},{msgid:"Choose {file}",msgstr:["Wielt {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Wielt %n Fichieren","Wielt %n Fichier"]},{msgid:"Copy",msgstr:["Kopie"]},{msgid:"Copy to {target}",msgstr:["Kopie op {target}"]},{msgid:"Could not create the new folder",msgstr:["Konnt den neien Dossier net erstellen"]},{msgid:"Could not load files settings",msgstr:["Konnt d'Dateienastellungen net lueden"]},{msgid:"Could not load files views",msgstr:["Konnt d'Dateien net lueden"]},{msgid:"Create directory",msgstr:["Erstellt Verzeechnes"]},{msgid:"Current view selector",msgstr:["Aktuell Vue selector"]},{msgid:"Favorites",msgstr:["Favoritten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien an Ordner, déi Dir als Favorit markéiert, ginn hei gewisen"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien an Ordner déi Dir viru kuerzem geännert hutt ginn hei op"]},{msgid:"Filter file list",msgstr:["Filter Datei Lëscht"]},{msgid:"Folder name cannot be empty.",msgstr:["Dossier Numm kann net eidel sinn"]},{msgid:"Home",msgstr:["Wëllkomm"]},{msgid:"Modified",msgstr:["Geännert"]},{msgid:"Move",msgstr:["Plënne"]},{msgid:"Move to {target}",msgstr:["Plënneren {target}"]},{msgid:"Name",msgstr:["Numm"]},{msgid:"New",msgstr:["Nei"]},{msgid:"New folder",msgstr:["Neien dossier"]},{msgid:"New folder name",msgstr:["Neien dossier numm"]},{msgid:"No files in here",msgstr:["Kee fichier hei"]},{msgid:"No files matching your filter were found.",msgstr:["Kee fichier deen äre filter passt gouf fonnt"]},{msgid:"No matching files",msgstr:["Keng passende dateien"]},{msgid:"Recent",msgstr:["Rezent"]},{msgid:"Select all entries",msgstr:["Wielt all entréen"]},{msgid:"Select entry",msgstr:["Wielt entrée"]},{msgid:"Select the row for {nodename}",msgstr:["Wielt d'zeil fir {nodename}"]},{msgid:"Size",msgstr:["Gréisst"]},{msgid:"Undo",msgstr:["Undoen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Luet en inhalt erop oder synchroniséiert mat ären apparater"]}]},{language:"lo",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ບໍ່ອະນຸຍາດໃຫ້ມີຢູ່ໃນຊື່ໂຟນເດີ.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['ບໍ່ອະນຸຍາດໃຫ້ມີ "{char}" ພາຍໃນຊື່.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ບໍ່ແມ່ນຊື່ທີ່ໄດ້ຮັບອະນຸຍາດ.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ເປັນຊື່ໂຟນເດີ.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ໄດ້ຮັບອະນຸຍາດ.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["ໄຟລ໌ຂັດກັນ %n ລາຍການ"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["ໄຟລ໌ຂັດກັນ %n ລາຍການໃນ {dirname}"]},{msgid:"All files",msgstr:["ໄຟລ໌ທັງໝົດ"]},{msgid:"Cancel",msgstr:["ຍົກເລີກ"]},{msgid:"Cancel the entire operation",msgstr:["ຍົກເລີກການດຳເນີນການທັງໝົດ"]},{msgid:"Choose",msgstr:["ເລືອກ"]},{msgid:"Choose {file}",msgstr:["ເລືອກ {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["ເລືອກ %n ໄຟລ໌"]},{msgid:"Confirm",msgstr:["ຢືນຢັນ"]},{msgid:"Continue",msgstr:["ດຳເນີນການຕໍ່"]},{msgid:"Copy",msgstr:["ຄັດລອກ"]},{msgid:"Copy to {target}",msgstr:["ຄັດລອກໄປທີ່ {target}"]},{msgid:"Could not create the new folder",msgstr:["ບໍ່ສາມາດສ້າງໂຟນເດີໃໝ່ໄດ້"]},{msgid:"Could not load files settings",msgstr:["ບໍ່ສາມາດໂຫຼດການຕັ້ງຄ່າໄຟລ໌ໄດ້"]},{msgid:"Could not load files views",msgstr:["ບໍ່ສາມາດໂຫຼດມຸມມອງໄຟລ໌ໄດ້"]},{msgid:"Create directory",msgstr:["ສ້າງໄດເຣັກທໍຣີ"]},{msgid:"Current view selector",msgstr:["ຕົວເລືອກມຸມມອງປັດຈຸບັນ"]},{msgid:"Enter your name",msgstr:["ປ້ອນຊື່ຂອງທ່ານ"]},{msgid:"Existing version",msgstr:["ເວີຊັນທີ່ມີຢູ່"]},{msgid:"Failed to set nickname.",msgstr:["ຕັ້ງຊື່ຫຼິ້ນບໍ່ສຳເລັດ."]},{msgid:"Favorites",msgstr:["ລາຍການທີ່ມັກ"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານໝາຍວ່າເປັນລາຍການທີ່ມັກຈະສະແດງຢູ່ບ່ອນນີ້."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານແກ້ໄຂລ່າສຸດຈະສະແດງຢູ່ບ່ອນນີ້."]},{msgid:"Filter file list",msgstr:["ກັ່ນຕອງລາຍການໄຟລ໌"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['ຊື່ໂຟນເດີຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ "{extension}".']},{msgid:"Guest identification",msgstr:["ການລະບຸຕົວຕົນຂອງແຂກ"]},{msgid:"Home",msgstr:["ໜ້າຫຼັກ"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["ຖ້າທ່ານເລືອກທັງສອງເວີຊັນ, ໄຟລ໌ທີ່ເຂົ້າມາຈະມີຕົວເລກເພີ່ມໃສ່ຊື່ຂອງມັນ."]},{msgid:"Invalid folder name.",msgstr:["ຊື່ໂຟນເດີບໍ່ຖືກຕ້ອງ."]},{msgid:"Invalid name.",msgstr:["ຊື່ບໍ່ຖືກຕ້ອງ."]},{msgid:"Last modified date unknown",msgstr:["ບໍ່ຮູ້ວັນທີແກ້ໄຂລ່າສຸດ"]},{msgid:"Modified",msgstr:["ແກ້ໄຂເມື່ອ"]},{msgid:"Move",msgstr:["ຍ້າຍ"]},{msgid:"Move to {target}",msgstr:["ຍ້າຍໄປທີ່ {target}"]},{msgid:"Name",msgstr:["ຊື່"]},{msgid:"Names may be at most 64 characters long.",msgstr:["ຊື່ອາດມີຄວາມຍາວສູງສຸດ 64 ຕົວອັກສອນ."]},{msgid:"Names must not be empty.",msgstr:["ຊື່ຕ້ອງບໍ່ຫວ່າງເປົ່າ."]},{msgid:'Names must not end with "{extension}".',msgstr:['ຊື່ຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["ຊື່ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຈຸດ."]},{msgid:"New",msgstr:["ໃໝ່"]},{msgid:"New folder",msgstr:["ໂຟນເດີໃໝ່"]},{msgid:"New folder name",msgstr:["ຊື່ໂຟນເດີໃໝ່"]},{msgid:"New version",msgstr:["ເວີຊັນໃໝ່"]},{msgid:"No files in here",msgstr:["ບໍ່ມີໄຟລ໌ຢູ່ບ່ອນນີ້"]},{msgid:"No files matching your filter were found.",msgstr:["ບໍ່ພົບໄຟລ໌ທີ່ກົງກັບການກັ່ນຕອງຂອງທ່ານ."]},{msgid:"No matching files",msgstr:["ບໍ່ມີໄຟລ໌ທີ່ກົງກັນ"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["ກະລຸນາປ້ອນຊື່ທີ່ມີຢ່າງໜ້ອຍ 2 ຕົວອັກສອນ."]},{msgid:"Recent",msgstr:["ລ່າສຸດ"]},{msgid:"Select all checkboxes",msgstr:["ເລືອກກ່ອງໝາຍທັງໝົດ"]},{msgid:"Select all entries",msgstr:["ເລືອກທຸກລາຍການ"]},{msgid:"Select all existing files",msgstr:["ເລືອກໄຟລ໌ທີ່ມີຢູ່ທັງໝົດ"]},{msgid:"Select all new files",msgstr:["ເລືອກໄຟລ໌ໃໝ່ທັງໝົດ"]},{msgid:"Select entry",msgstr:["ເລືອກລາຍການ"]},{msgid:"Select the row for {nodename}",msgstr:["ເລືອກແຖວສຳລັບ {nodename}"]},{msgid:"Size",msgstr:["ຂະໜາດ"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["ຂ້າມ %n ໄຟລ໌"]},{msgid:"Skip this file",msgstr:["ຂ້າມໄຟລ໌ນີ້"]},{msgid:"Submit name",msgstr:["ສົ່ງຊື່"]},{msgid:"Undo",msgstr:["ເອົາຄືນ"]},{msgid:"Upload some content or sync with your devices!",msgstr:["ອັບໂຫຼດເນື້ອຫາ ຫຼື ຊິງຄ໌ກັບອຸປະກອນຂອງທ່ານ!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ໄຟລ໌ໃດໆທີ່ຂັດກັນພາຍໃນໂຟນເດີນັ້ນກໍຈະຖືກຂຽນທັບເຊັ່ນກັນ."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ເນື້ອຫາຈະຖືກຂຽນລົງໃນໂຟນເດີທີ່ມີຢູ່ ແລະ ຈະມີການແກ້ໄຂຂໍ້ຂັດແຍ່ງແບບຕໍ່ເນື່ອງ."]},{msgid:"Which files do you want to keep?",msgstr:["ທ່ານຕ້ອງການເກັບໄຟລ໌ໃດໄວ້?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["ຕອນນີ້ທ່ານຖືກລະບຸວ່າເປັນ {nickname}."]},{msgid:"You are currently not identified.",msgstr:["ຕອນນີ້ທ່ານຍັງບໍ່ໄດ້ຖືກລະບຸຕົວຕົນ."]},{msgid:"You cannot leave the name empty.",msgstr:["ທ່ານບໍ່ສາມາດປະຊື່ໃຫ້ຫວ່າງເປົ່າໄດ້."]},{msgid:"You need to choose at least one conflict solution",msgstr:["ທ່ານຈຳເປັນຕ້ອງເລືອກວິທີແກ້ໄຂຂໍ້ຂັດແຍ່ງຢ່າງໜ້ອຍໜຶ່ງຢ່າງ"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["ທ່ານຈຳເປັນຕ້ອງເລືອກຢ່າງໜ້ອຍໜຶ່ງເວີຊັນຂອງແຕ່ລະໄຟລ໌ເພື່ອດຳເນີນການຕໍ່."]}]},{language:"lt_LT",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["„{char}“ negalima naudoti aplanko pavadinime."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ negalima naudoti vardo sudėtyje."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ nėra leidžiamas vardas."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ yra rezervuotas vardas, kurio negalima naudoti aplankų pavadinimuose."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ yra rezervuotas vardas, todėl jo naudoti negalima."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n failo konfliktas","%n failų konfliktas","%n failų konfliktas","%n failų konfliktas"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n failo konfliktas {dirname}","%n failų konfliktas {dirname}","%n failų konfliktas {dirname}","%n failų konfliktas {dirname}"]},{msgid:"All files",msgstr:["Visi failai"]},{msgid:"Cancel",msgstr:["Atsisakyti"]},{msgid:"Cancel the entire operation",msgstr:["Atsisakyti visos operacijos"]},{msgid:"Choose",msgstr:["Pasirinkti"]},{msgid:"Choose {file}",msgstr:["Pasirinkti {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pasirinkti %n failą","Pasirinkti %n failus","Pasirinkti %n failų","Pasirinkti %n failą"]},{msgid:"Confirm",msgstr:["Patvirtinti"]},{msgid:"Continue",msgstr:["Tęsti"]},{msgid:"Copy",msgstr:["Kopijuoti"]},{msgid:"Copy to {target}",msgstr:["Kopijuoti į {target}"]},{msgid:"Could not create the new folder",msgstr:["Nepavyko sukurti naujo aplanko"]},{msgid:"Could not load files settings",msgstr:["Nepavyko įkelti failų nustatymų"]},{msgid:"Could not load files views",msgstr:["Nepavyko įkelti failų peržiūrų"]},{msgid:"Create directory",msgstr:["Sukurti katalogą"]},{msgid:"Current view selector",msgstr:["Dabartinis peržiūros pasirinkimas"]},{msgid:"Enter your name",msgstr:["Įrašykite savo vardą"]},{msgid:"Existing version",msgstr:["Esama versija"]},{msgid:"Failed to set nickname.",msgstr:["Nepavyko nustatyti slapyvardžio"]},{msgid:"Favorites",msgstr:["Populiariausi"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Failai ir aplankai, kuriuos pažymėsite kaip mėgstamiausius, bus rodomi čia."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Čia bus rodomi failai ir aplankai, kuriuos neseniai pakeitėte."]},{msgid:"Filter file list",msgstr:["Filtruoti failų sąrašą"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Aplankų pavadinimai neturi baigtis simboliu „{extension}“."]},{msgid:"Guest identification",msgstr:["Svečio identifikacija"]},{msgid:"Home",msgstr:["Pradžia"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jei pasirinksite abi versijas, prie gaunamo failo pavadinimo bus pridėtas numeris."]},{msgid:"Invalid folder name.",msgstr:["Netinkamas aplanko pavadinimas."]},{msgid:"Invalid name.",msgstr:["Netinkamas pavadinimas."]},{msgid:"Last modified date unknown",msgstr:["Paskutinio atnaujinimo data nežinoma"]},{msgid:"Modified",msgstr:["Pakeista"]},{msgid:"Move",msgstr:["Perkelti"]},{msgid:"Move to {target}",msgstr:["Perkelti į {target}"]},{msgid:"Name",msgstr:["Vardas"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Vardų ilgis negali viršyti 64 simbolių."]},{msgid:"Names must not be empty.",msgstr:["Pavadinimai negali būti tušti."]},{msgid:'Names must not end with "{extension}".',msgstr:["Vardai neturi baigtis simboliu „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Vardai negali prasidėti tašku."]},{msgid:"New",msgstr:["Naujas"]},{msgid:"New folder",msgstr:["Naujas aplankas"]},{msgid:"New folder name",msgstr:["Naujas aplanko pavadinimas"]},{msgid:"New version",msgstr:["Nauja versija"]},{msgid:"No files in here",msgstr:["Čia failų nėra"]},{msgid:"No files matching your filter were found.",msgstr:["Nepavyko rasti failų pagal filtro nustatymus"]},{msgid:"No matching files",msgstr:["Nėra atitinkančių failų"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Įrašykite vardą iš mažiausiai dviejų ženklų."]},{msgid:"Recent",msgstr:["Nauji"]},{msgid:"Select all checkboxes",msgstr:["Pažymėti visus langelius"]},{msgid:"Select all entries",msgstr:["Žymėti visus įrašus"]},{msgid:"Select all existing files",msgstr:["Pažymėti visus esamus failus"]},{msgid:"Select all new files",msgstr:["Pažymėti visus naujus failus"]},{msgid:"Select entry",msgstr:["Žymėti įrašą"]},{msgid:"Select the row for {nodename}",msgstr:["Pasirinkite eilutę {nodename}"]},{msgid:"Size",msgstr:["Dydis"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Praleisti %n failą","Praleisti %n failus","Praleisti %n failų","Praleisti %n failą"]},{msgid:"Skip this file",msgstr:["Praleisti šį failą"]},{msgid:"Submit name",msgstr:["Pateikti pavadinimą"]},{msgid:"Undo",msgstr:["Atšaukti"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Įkelkite turinio arba sinchronizuokite su savo įrenginiais!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Pasirinkus įeinančių failų aplanką, jame esantys failai, su kuriais kyla konfliktas, taip pat bus perrašyti."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Pasirinkus gaunamų laiškų aplanką, visi jame esantys failai taip pat bus perrašyti."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Pasirinkus įeinančių failų aplanką, jo turinys įrašomas į esamą aplanką ir atliekamas rekursyvus konfliktų sprendimas."]},{msgid:"Which files do you want to keep?",msgstr:["Kokius failus norite išsaugoti?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Šiuo metu esate identifikuotas kaip {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Šiuo metu nesate identifikuotas."]},{msgid:"You cannot leave the name empty.",msgstr:["Negalite palikti tuščio vardo lauko."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Turite pasirinkti bent vieną konflikto sprendimo būdą"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Norėdami tęsti, turite pasirinkti bent vieną kiekvieno failo versiją."]}]},{language:"lv",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" nav derīgs mapes nosaukums.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nav atļauts mapes nosaukums']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" nav atļauts mapes nosaukuma izmantošanā.']},{msgid:"All files",msgstr:["Visas datnes"]},{msgid:"Choose",msgstr:["Izvēlieties"]},{msgid:"Choose {file}",msgstr:["Izvēlieties {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izvēlēties %n datņu","Izvēlēties %n datni","Izvēlēties %n datnes"]},{msgid:"Copy",msgstr:["Kopēt"]},{msgid:"Copy to {target}",msgstr:["Kopēt uz {target}"]},{msgid:"Could not create the new folder",msgstr:["Nevarēja izveidot jaunu mapi"]},{msgid:"Could not load files settings",msgstr:["Nevarēja ielādēt datņu iestatījumus"]},{msgid:"Could not load files views",msgstr:["Nevarēja ielādēt datņu apskatījumus"]},{msgid:"Create directory",msgstr:["Izveidot direktoriju"]},{msgid:"Current view selector",msgstr:["Pašreizēja skata atlasītājs"]},{msgid:"Favorites",msgstr:["Favorīti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Šeit parādīsies datnes un mapes, kas tiks atzīmētas kā iecienītas."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Šeit parādīsies datnes un mapes, kuras nesen tika izmainītas."]},{msgid:"Filter file list",msgstr:["Atlasīt datņu sarakstu"]},{msgid:"Folder name cannot be empty.",msgstr:["Mapes nosaukums nevar būt tukšs."]},{msgid:"Home",msgstr:["Sākums"]},{msgid:"Modified",msgstr:["Izmaninīta"]},{msgid:"Move",msgstr:["Pārvietot"]},{msgid:"Move to {target}",msgstr:["Pārvietot uz {target}"]},{msgid:"Name",msgstr:["Nosaukums"]},{msgid:"New",msgstr:["Jauns"]},{msgid:"New folder",msgstr:["Jauna mape"]},{msgid:"New folder name",msgstr:["Jaunas mapes nosaukums"]},{msgid:"No files in here",msgstr:["Šeit nav datņu"]},{msgid:"No files matching your filter were found.",msgstr:["Netika atrasta neviena datne, kas atbilst atlasei."]},{msgid:"No matching files",msgstr:["Nav atbilstošu datņu"]},{msgid:"Recent",msgstr:["Nesenās"]},{msgid:"Select all entries",msgstr:["Atlasīt visus ierakstus"]},{msgid:"Select entry",msgstr:["Atlasīt ierakstu"]},{msgid:"Select the row for {nodename}",msgstr:["Atlasīt rindu {nodename}"]},{msgid:"Size",msgstr:["Izmērs"]},{msgid:"Undo",msgstr:["Atsaukt"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Augšupielādē kādu saturu vai sinhronizē savās iekārtās!"]}]},{language:"mk",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" не е дозволен во име на папка.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не е дозволено во име.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" не е дозволено име.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" е резервирано име и не е дозволено за име на папка.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" е резервирано име и не е дозволено.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфликт со датотекa","%n конфликти со датотеки"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфликт со датотека во {dirname}","%n конфликти со датотеки vo {dirname}"]},{msgid:"All files",msgstr:["Сите датотеки"]},{msgid:"Cancel",msgstr:["Откажи"]},{msgid:"Cancel the entire operation",msgstr:["Прекини ја целата операција"]},{msgid:"Choose",msgstr:["Избери"]},{msgid:"Choose {file}",msgstr:["Избери {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Избери %n датотека","Избери %n датотеки"]},{msgid:"Confirm",msgstr:["Потврди"]},{msgid:"Continue",msgstr:["Продолжи"]},{msgid:"Copy",msgstr:["Копирај"]},{msgid:"Copy to {target}",msgstr:["Копирај во {target}"]},{msgid:"Could not create the new folder",msgstr:["Неможе да се креира нова папка"]},{msgid:"Could not load files settings",msgstr:["Неможе да се вчиаат параметрите за датотеките"]},{msgid:"Could not load files views",msgstr:["Неможе да се вчитаат погледите за датотеките"]},{msgid:"Create directory",msgstr:["Креирај папка"]},{msgid:"Current view selector",msgstr:["Избирач на тековен приказ"]},{msgid:"Enter your name",msgstr:["Внесете го вашето име"]},{msgid:"Existing version",msgstr:["Моментална верзија"]},{msgid:"Failed to set nickname.",msgstr:["Неуспешно поставување прекар."]},{msgid:"Favorites",msgstr:["Фаворити"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Датотеките и папките кој ќе ги означите за омилени ќе се појават овде."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Датотеките и папките кој неодамна сте ги измениле ќе се појават овде."]},{msgid:"Filter file list",msgstr:["Филтрирај листа на датотеки"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Имињата на папките неможе да завршуваат со "{extension}".']},{msgid:"Guest identification",msgstr:["Гостинска идентификација"]},{msgid:"Home",msgstr:["Почетна"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ако ги избереш двете верзии, влезната датотека ќе добие број додаден на нејзиното име."]},{msgid:"Invalid folder name.",msgstr:["Невалидно име на папка."]},{msgid:"Invalid name.",msgstr:["Невалидно име."]},{msgid:"Last modified date unknown",msgstr:["Датумот на последна измена е непознат"]},{msgid:"Modified",msgstr:["Променето"]},{msgid:"Move",msgstr:["Премести"]},{msgid:"Move to {target}",msgstr:["Премести во {target}"]},{msgid:"Name",msgstr:["Име"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Имињата можат да бидат најмногу со 64 карактери."]},{msgid:"Names must not be empty.",msgstr:["Имињата неможе да бидат празни."]},{msgid:'Names must not end with "{extension}".',msgstr:['Имињата неможе да завршуваат со "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Имињата неможе да започнуваат со точка."]},{msgid:"New",msgstr:["Нова"]},{msgid:"New folder",msgstr:["Нова папка"]},{msgid:"New folder name",msgstr:["Ново име на папка"]},{msgid:"New version",msgstr:["Нова верзија"]},{msgid:"No files in here",msgstr:["Овде нема датотеки"]},{msgid:"No files matching your filter were found.",msgstr:["Не се пронајдени датотеки што одговараат на вашиот филтер."]},{msgid:"No matching files",msgstr:["Нема датотеки што се совпаѓаат"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Внесете име со најмалку 2 карактери."]},{msgid:"Recent",msgstr:["Неодамнешни"]},{msgid:"Select all checkboxes",msgstr:["Избери ги сите полиња за избор"]},{msgid:"Select all entries",msgstr:["Изберете ги сите записи"]},{msgid:"Select all existing files",msgstr:["Изберете ги сите постоечки датотеки"]},{msgid:"Select all new files",msgstr:["Изберете ги сите нови датотеки"]},{msgid:"Select entry",msgstr:["Избери запис"]},{msgid:"Select the row for {nodename}",msgstr:["Избери ред за {nodename}"]},{msgid:"Size",msgstr:["Големина"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Прескокни %n датотека","Прескокни %n датотеки"]},{msgid:"Skip this file",msgstr:["Прескокни ја оваа датотека"]},{msgid:"Submit name",msgstr:["Испрати име"]},{msgid:"Undo",msgstr:["Врати"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Прикачи содржина или синхронизирај со ваши уреди!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Кога е избрана влезна папка, сите конфликтни датотеки во неа исто така ќе бидат препишани."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Кога е избрана влезна папка, содржината се запишува во постоечката папка и се извршува рекурсивно решавање на конфликти."]},{msgid:"Which files do you want to keep?",msgstr:["Кој датотеки сакаш да ги зачуваш?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Моментално сте идентификувани како {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Моментално не сте идентификувани."]},{msgid:"You cannot leave the name empty.",msgstr:["Не можете да го оставите името празно."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Треба да избереш најмалку едно решение за конфликт"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Треба да избереш најмалку една верзија за секоја датотека за да продолжи."]}]},{language:"ms_MY",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" adalah nama folder yang tidak sesuai ']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nama folder yang tidak dibenarkan']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" tidak dibenarkan dalam nama folder']},{msgid:"All files",msgstr:["Semua fail"]},{msgid:"Choose",msgstr:["Pilih"]},{msgid:"Choose {file}",msgstr:["Pilih {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pilih fail %n"]},{msgid:"Copy",msgstr:["menyalin"]},{msgid:"Copy to {target}",msgstr:["menyalin ke {target}"]},{msgid:"Could not create the new folder",msgstr:["Tidak dapat mewujudkan folder baharu"]},{msgid:"Could not load files settings",msgstr:["Tidak dapat memuatkan tetapan fail"]},{msgid:"Could not load files views",msgstr:["Tidak dapat memuatkan paparan fail"]},{msgid:"Create directory",msgstr:["mewujudkan direktori"]},{msgid:"Current view selector",msgstr:["pemilih pandangan semasa"]},{msgid:"Favorites",msgstr:["Pilihan"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Fail dan folder yang anda tanda sebagai pilihan akan dipaparkan di sini."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Fail dan folder yang anda telah ubah suai baru-baru ini dipaparkan di sini."]},{msgid:"Filter file list",msgstr:["Menapis senarai fail"]},{msgid:"Folder name cannot be empty.",msgstr:["Nama folder tidak boleh kosong."]},{msgid:"Home",msgstr:["Utama"]},{msgid:"Modified",msgstr:["Ubah suai"]},{msgid:"Move",msgstr:["pindah"]},{msgid:"Move to {target}",msgstr:["pindah ke {target}"]},{msgid:"Name",msgstr:["Nama"]},{msgid:"New",msgstr:["Baru"]},{msgid:"New folder",msgstr:["Folder Baharu"]},{msgid:"New folder name",msgstr:["Nama folder baharu"]},{msgid:"No files in here",msgstr:["Tiada fail di sini"]},{msgid:"No files matching your filter were found.",msgstr:["Tiada fail yang sepadan dengan tapisan anda."]},{msgid:"No matching files",msgstr:["Tiada fail yang sepadan"]},{msgid:"Recent",msgstr:["baru-baru ini"]},{msgid:"Select all entries",msgstr:["Pilih semua entri"]},{msgid:"Select entry",msgstr:["Pilih entri"]},{msgid:"Select the row for {nodename}",msgstr:["memilih baris {nodename}"]},{msgid:"Size",msgstr:["Saiz"]},{msgid:"Undo",msgstr:["buat asal"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Muat naik beberapa kandungan atau selaras dengan peranti anda!"]}]},{language:"nb_NO",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" er ikke tillatt i et mappenavn.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" er ikke tillatt i et navn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" er ikke et tillatt navn.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" er et reservert navn og er ikke tillatt for mappenavn.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" er et reservert navn og er ikke tillatt.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n files conflict"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n fil konflikter i {dirname}","%n fil konflikter i {dirname}"]},{msgid:"All files",msgstr:["Alle filer"]},{msgid:"Cancel",msgstr:["Avbryt"]},{msgid:"Cancel the entire operation",msgstr:["Avbryt hele operasjonen"]},{msgid:"Choose",msgstr:["Velg"]},{msgid:"Choose {file}",msgstr:["Velg {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Velg %n fil","Velg %n filer"]},{msgid:"Confirm",msgstr:["Bekreft"]},{msgid:"Continue",msgstr:["Fortsett"]},{msgid:"Copy",msgstr:["Kopier"]},{msgid:"Copy to {target}",msgstr:["Kopier til {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunne ikke opprette den nye mappen"]},{msgid:"Could not load files settings",msgstr:["Kunne ikke laste filinnstillinger"]},{msgid:"Could not load files views",msgstr:["Kunne ikke laste filvisninger"]},{msgid:"Create directory",msgstr:["Opprett mappe"]},{msgid:"Current view selector",msgstr:["Nåværende visningsvelger"]},{msgid:"Enter your name",msgstr:["Skriv inn navnet ditt"]},{msgid:"Existing version",msgstr:["Eksisterende versjon"]},{msgid:"Failed to set nickname.",msgstr:["Kunne ikke lagre kallenavnet."]},{msgid:"Favorites",msgstr:["Favoritter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer og mapper du markerer som favoritter vil vises her."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer og mapper du nylig har endret, vil vises her."]},{msgid:"Filter file list",msgstr:["Filtrer filliste"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mappenavn må ikke slutte med "{extension}".']},{msgid:"Guest identification",msgstr:["Gjesteidentifikasjon"]},{msgid:"Home",msgstr:["Hjem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du velger begge versjonene, vil den innkommende filen få et nummer lagt til navnet sitt."]},{msgid:"Invalid folder name.",msgstr:["Ugyldig mappenavn."]},{msgid:"Invalid name.",msgstr:["Ugyldig navn."]},{msgid:"Last modified date unknown",msgstr:["Sist endret dato ukjent"]},{msgid:"Modified",msgstr:["Modifisert"]},{msgid:"Move",msgstr:["Flytt"]},{msgid:"Move to {target}",msgstr:["Flytt til {target}"]},{msgid:"Name",msgstr:["Navn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Navn kan maksimalt være 64 tegn lange."]},{msgid:"Names must not be empty.",msgstr:["Navn kan ikke være tomme."]},{msgid:'Names must not end with "{extension}".',msgstr:['Navn kan ikke ende med "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Navn kan ikke starte med et punktum."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mappe"]},{msgid:"New folder name",msgstr:["Nytt mappenavn"]},{msgid:"New version",msgstr:["Ny versjon"]},{msgid:"No files in here",msgstr:["Ingen filer her"]},{msgid:"No files matching your filter were found.",msgstr:["Ingen filer funnet med ditt filter."]},{msgid:"No matching files",msgstr:["Ingen filer samsvarer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Vennligst angi et navn som har minst 2 tegn."]},{msgid:"Recent",msgstr:["Nylige"]},{msgid:"Select all checkboxes",msgstr:["Merk av i alle avmerkingsboksene"]},{msgid:"Select all entries",msgstr:["Velg alle oppføringer"]},{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},{msgid:"Select entry",msgstr:["Velg oppføring"]},{msgid:"Select the row for {nodename}",msgstr:["Velg raden for {nodename}"]},{msgid:"Size",msgstr:["Størrelse"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Hopp over %n fil","Hopp over %nfiler"]},{msgid:"Skip this file",msgstr:["Hopp over denne filen"]},{msgid:"Submit name",msgstr:["Bekreft navn"]},{msgid:"Undo",msgstr:["Angre"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Last opp innhold eller synkroniser med enhetene dine!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, vil eventuelle motstridende filer i den også bli overskrevet."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, vil eventuelle filer i den også bli overskrevet."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres."]},{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du er akkurat nå identifisert som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du er akkurat nå ikke identifisert."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan ikke la navnet være blankt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du må velge minst én konfliktløsning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst én versjon av hver fil for å fortsette."]}]},{language:"nl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" is niet toegestaan in een mapnaam.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" kan niet gebruikt worden in de benaming.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" is geen toegestane naam.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" is een gereserveerde naam en niet toegestaan voor mapnamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" is een gereserveerde naam en niet toegestaan.']},{msgid:"All files",msgstr:["Alle bestanden"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Er bestaat al een item met dezelfde naam in {dirname}."]},{msgid:"Cancel",msgstr:["Annuleren"]},{msgid:"Cancel the entire operation",msgstr:["Annuleer de hele bewerking"]},{msgid:"Choose",msgstr:["Kiezen"]},{msgid:"Choose {file}",msgstr:["Kies {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Kies %n bestand","Kies %n bestanden"]},{msgid:"Close",msgstr:["Sluiten"]},{msgid:"Confirm",msgstr:["Bevestigen"]},{msgid:"Continue",msgstr:["Doorgaan"]},{msgid:"Copy",msgstr:["Kopiëren"]},{msgid:"Copy to {target}",msgstr:["Kopiëren naar {target}"]},{msgid:"Could not create the new folder",msgstr:["Kon de nieuwe map niet aanmaken"]},{msgid:"Could not load files settings",msgstr:["Instellingen voor bestanden konden niet worden geladen"]},{msgid:"Could not load files views",msgstr:["Weergaven voor bestanden konden niet worden geladen"]},{msgid:"Create directory",msgstr:["Map aanmaken"]},{msgid:"Current view selector",msgstr:["Huidige weergave keuze"]},{msgid:"Enter your name",msgstr:["Voer je naam in"]},{msgid:"Error: {message}",msgstr:["Fout: {message}"]},{msgid:"Existing files",msgstr:["Bestaande bestanden"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Bestaande bestanden en mappen worden verwijderd als ze niet worden geselecteerd. Als beide worden geselecteerd, krijgen ze een nieuwe naam."]},{msgid:"Existing version",msgstr:["Bestaande versie"]},{msgid:"Failed to set nickname.",msgstr:["Instellen bijnaam is mislukt."]},{msgid:"Favorites",msgstr:["Favorieten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Bestanden en mappen die je als favoriet markeert, worden hier weergegeven."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Bestanden en mappen die je onlangs hebt gewijzigd, worden hier weergegeven."]},{msgid:"Filter file list",msgstr:["Bestandslijst filteren"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mapnamen mogen niet eindigen op "{extension}".']},{msgid:"Guest identification",msgstr:["Gastenidentificatie"]},{msgid:"Home",msgstr:["Thuis"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Ongeldige mapnaam."]},{msgid:"Invalid name.",msgstr:["Ongeldige naam."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Er bestaan al items met dezelfde naam in {dirname}, kies welke je wilt behouden."]},{msgid:"Keep both",msgstr:["Beide behouden"]},{msgid:"Last modified date unknown",msgstr:["Datum laatste aanpassing onbekend"]},{msgid:"Modified",msgstr:["Aangepast"]},{msgid:"Move",msgstr:["Verplaatsen"]},{msgid:"Move to {target}",msgstr:["Verplaatsen naar {target}"]},{msgid:"Name",msgstr:["Naam"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen mogen maximaal 64 tekens lang zijn."]},{msgid:"Names must not be empty.",msgstr:["Namen mogen niet leeg zijn."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen mogen niet eindigen met "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Namen mogen niet beginnen met een punt."]},{msgid:"New",msgstr:["Nieuw"]},{msgid:"New files",msgstr:["Nieuwe bestanden"]},{msgid:"New folder",msgstr:["Nieuwe map"]},{msgid:"New folder name",msgstr:["Nieuwe mapnaam"]},{msgid:"New version",msgstr:["Nieuwe versie"]},{msgid:"No files in here",msgstr:["Hier staan geen bestanden"]},{msgid:"No files matching your filter were found.",msgstr:["Geen bestanden gevonden die voldoen aan je filter."]},{msgid:"No matching files",msgstr:["Geen overeenkomende bestanden"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Voer een naam in met minimaal 2 tekens."]},{msgid:"Recent",msgstr:["Recent"]},{msgid:"Replace",msgstr:["Vervangen"]},{msgid:"Select all checkboxes",msgstr:["Selecteer alle aanvinkopties"]},{msgid:"Select all entries",msgstr:["Alle vermeldingen selecteren"]},{msgid:"Select entry",msgstr:["Vermelding selecteren"]},{msgid:"Select file to keep",msgstr:["Selecteer bestand om te behouden"]},{msgid:"Select files to keep",msgstr:["Selecteer bestanden om te behouden"]},{msgid:"Select the row for {nodename}",msgstr:["Selecteer de rij voor {nodename}"]},{msgid:"Size",msgstr:["Grootte"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Sla %n bestand over","Sla %n bestanden over"]},{msgid:"Submit name",msgstr:["Naam indienen"]},{msgid:"Success: {message}",msgstr:["Succesvol: {message}"]},{msgid:"Undo",msgstr:["Ongedaan maken"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload inhoud of synchroniseer met je apparaten!"]},{msgid:"Warning: {message}",msgstr:["Waarschuwing: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wanneer een nieuwe map wordt geselecteerd, worden eventuele conflicterende bestanden daarin ook overschreven."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Wanneer een nieuwe map wordt geselecteerd, worden alle bestanden daarin ook overschreven."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Wanneer een nieuwe map wordt geselecteerd, wordt de inhoud naar de bestaande map gekopieerd en wordt er een recursieve conflictoplossing uitgevoerd."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Je wordt momenteel geïdentificeerd als {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Je bent momenteel niet geïdentificeerd."]},{msgid:"You cannot leave the name empty.",msgstr:["Je kunt de naam niet leeg laten."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Je moet ten minste één manier kiezen om het conflict op te lossen"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Je moet ten minste één versie van elk bestand selecteren om door te gaan."]}]},{language:"pl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['Znak "{char}" nie jest dozwolony w nazwie folderu.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" nie jest dozwolone w nazwie.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nie jest dozwoloną nazwą.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" jest nazwą zastrzeżoną i nie jest dozwolona jako nazwa folderu.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" jest zastrzeżoną nazwą i nie jest dozwolone.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["Konflikt pliku","Konflikt %n plików","Konflikt %n plików","Konflikt %n plików"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konfliktów pliku w {dirname}","%n konfliktów plików w {dirname}","%n konfliktów plików w {dirname}","%n konfliktów plików w {dirname}"]},{msgid:"All files",msgstr:["Wszystkie pliki"]},{msgid:"Cancel",msgstr:["Anuluj"]},{msgid:"Cancel the entire operation",msgstr:["Anuluj całą operację"]},{msgid:"Choose",msgstr:["Wybierz"]},{msgid:"Choose {file}",msgstr:["Wybierz {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Wybierz %n plik","Wybierz %n pliki","Wybierz %n plików","Wybierz %n plików"]},{msgid:"Confirm",msgstr:["Potwierdź"]},{msgid:"Continue",msgstr:["Kontynuuj"]},{msgid:"Copy",msgstr:["Kopiuj"]},{msgid:"Copy to {target}",msgstr:["Skopiuj do {target}"]},{msgid:"Could not create the new folder",msgstr:["Nie można utworzyć nowego folderu"]},{msgid:"Could not load files settings",msgstr:["Nie można wczytać ustawień plików"]},{msgid:"Could not load files views",msgstr:["Nie można wczytać widoków plików"]},{msgid:"Create directory",msgstr:["Utwórz katalog"]},{msgid:"Current view selector",msgstr:["Bieżący selektor widoku"]},{msgid:"Enter your name",msgstr:["Wprowadź nazwę"]},{msgid:"Existing version",msgstr:["Istniejąca wersja"]},{msgid:"Failed to set nickname.",msgstr:["Nie udało się utworzyć pseudonimu."]},{msgid:"Favorites",msgstr:["Ulubione"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Pliki i foldery które oznaczysz jako ulubione będą wyświetlały się tutaj"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Pliki i foldery które ostatnio modyfikowałeś będą wyświetlały się tutaj"]},{msgid:"Filter file list",msgstr:["Filtruj listę plików"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nazwy folderów nie mogą kończyć się na "{extension}".']},{msgid:"Guest identification",msgstr:["Identyfikacja gościa"]},{msgid:"Home",msgstr:["Strona główna"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jeśli wybierzesz obie wersje, do nazwy przychodzącego pliku zostanie dodany numer."]},{msgid:"Invalid folder name.",msgstr:["Nieprawidłowa nazwa folderu."]},{msgid:"Invalid name.",msgstr:["Nieprawidłowa nazwa."]},{msgid:"Last modified date unknown",msgstr:["Data ostatniej modyfikacji nieznana"]},{msgid:"Modified",msgstr:["Zmodyfikowano"]},{msgid:"Move",msgstr:["Przenieś"]},{msgid:"Move to {target}",msgstr:["Przejdź do {target}"]},{msgid:"Name",msgstr:["Nazwa"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nazwy mogą mieć maksymalnie 64 znaki."]},{msgid:"Names must not be empty.",msgstr:["Nazwy nie mogą być puste."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nazwy nie mogą kończyć się na "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nazwy nie mogą zaczynać się od kropki."]},{msgid:"New",msgstr:["Nowy"]},{msgid:"New folder",msgstr:["Nowy folder"]},{msgid:"New folder name",msgstr:["Nowa nazwa folderu"]},{msgid:"New version",msgstr:["Nowa wersja"]},{msgid:"No files in here",msgstr:["Brak plików"]},{msgid:"No files matching your filter were found.",msgstr:["Nie znaleziono plików spełniających warunki filtru"]},{msgid:"No matching files",msgstr:["Brak pasujących plików"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Wprowadź nazwę zawierającą minimum 2 znaki."]},{msgid:"Recent",msgstr:["Ostatni"]},{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie pola wyboru"]},{msgid:"Select all entries",msgstr:["Wybierz wszystkie wpisy"]},{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},{msgid:"Select entry",msgstr:["Wybierz wpis"]},{msgid:"Select the row for {nodename}",msgstr:["Wybierz wiersz dla {nodename}"]},{msgid:"Size",msgstr:["Rozmiar"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Pomiń %n plik","Pomiń %n plików","Pomiń %n plików","Pomiń %n plików"]},{msgid:"Skip this file",msgstr:["Pomiń ten plik"]},{msgid:"Submit name",msgstr:["Zatwierdź nazwę"]},{msgid:"Undo",msgstr:["Cofnij"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Wyślij zawartość lub zsynchronizuj ze swoimi urządzeniami!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po wybraniu przychodzącego folderu wszystkie konfliktujące pliki w jego obrębie również zostaną nadpisane."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po wybraniu przychodzącego folderu jego zawartość zostanie zapisana w istniejącym folderze i zostanie przeprowadzone rekursywne rozwiązywanie konfliktów."]},{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Obecnie jesteś zidentyfikowany jako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Użytkownik nie został uwierzytelniony."]},{msgid:"You cannot leave the name empty.",msgstr:["Nazwa nie może być pusta."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Musisz wybrać co najmniej jedno rozwiązanie konfliktu"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}]},{language:"pt_BR",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" não é permitido dentro de um nome de pasta.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" não é permitido dentro de um nome.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" não é um nome permitido.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" é um nome reservado e não permitido para nomes de pasta.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" é um nome reservado e não permitido.']},{msgid:"All files",msgstr:["Todos os arquivos"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Já existe um item com o mesmo nome em {dirname}."]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operação"]},{msgid:"Choose",msgstr:["Escolher"]},{msgid:"Choose {file}",msgstr:["Escolher {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escolher %n arquivo","Escolher %n arquivos","Escolher %n arquivos"]},{msgid:"Close",msgstr:["Fechar"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar para {target}"]},{msgid:"Could not create the new folder",msgstr:["Não foi possível criar a nova pasta"]},{msgid:"Could not load files settings",msgstr:["Não foi possível carregar configurações de arquivos"]},{msgid:"Could not load files views",msgstr:["Não foi possível carregar visualições de arquivos"]},{msgid:"Create directory",msgstr:["Criar diretório"]},{msgid:"Current view selector",msgstr:["Seletor de visualização atual"]},{msgid:"Enter your name",msgstr:["Digite seu nome"]},{msgid:"Error: {message}",msgstr:["Erro: {message}"]},{msgid:"Existing files",msgstr:["Arquivos existentes"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Os arquivos e pastas existentes serão excluídos se não forem selecionados. Se ambos forem selecionados, serão renomeados."]},{msgid:"Existing version",msgstr:["Versão existente"]},{msgid:"Failed to set nickname.",msgstr:["Falha ao definir apelido."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os arquivos e pastas que você marca como favoritos aparecerão aqui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Arquivos e pastas que você modificou recentemente aparecerão aqui."]},{msgid:"Filter file list",msgstr:["Filtrar lista de arquivos"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nomes de pasta não podem terminar com "{extension}".']},{msgid:"Guest identification",msgstr:["Identificação de convidados"]},{msgid:"Home",msgstr:["Início"]},{msgid:"Info: {message}",msgstr:["Info: {message}"]},{msgid:"Invalid folder name.",msgstr:["Nome de pasta inválido."]},{msgid:"Invalid name.",msgstr:["Nome inválido."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Já existem itens com o mesmo nome em {dirname}; selecione qual deles deseja manter."]},{msgid:"Keep both",msgstr:["Manter ambos"]},{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover para {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes podem ter no máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Nomes não podem estar vazios."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nomes não podem terminar com "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nomes não podem começar com um ponto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New files",msgstr:["Novos arquivos"]},{msgid:"New folder",msgstr:["Nova pasta"]},{msgid:"New folder name",msgstr:["Novo nome de pasta"]},{msgid:"New version",msgstr:["Nova versão"]},{msgid:"No files in here",msgstr:["Nenhum arquivo aqui"]},{msgid:"No files matching your filter were found.",msgstr:["Nenhum arquivo correspondente ao seu filtro foi encontrado."]},{msgid:"No matching files",msgstr:["Nenhum arquivo correspondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Digite um nome com pelo menos 2 caracteres."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Replace",msgstr:["Substituir"]},{msgid:"Select all checkboxes",msgstr:["Selecione todas as caixas de seleção"]},{msgid:"Select all entries",msgstr:["Selecionar todas as entradas"]},{msgid:"Select entry",msgstr:["Selecionar entrada"]},{msgid:"Select file to keep",msgstr:["Selecione o arquivo a ser mantido"]},{msgid:"Select files to keep",msgstr:["Selecione os arquivos a serem mantidos"]},{msgid:"Select the row for {nodename}",msgstr:["Selecionar a linha para {nodename}"]},{msgid:"Size",msgstr:["Tamanho"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorar %n arquivo","Ignorar %n de arquivos","Ignorar %n arquivos"]},{msgid:"Submit name",msgstr:["Enviar nome"]},{msgid:"Success: {message}",msgstr:["Sucesso: {message}"]},{msgid:"Undo",msgstr:["Desfazer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Faça upload de algum conteúdo ou sincronize com seus dispositivos!"]},{msgid:"Warning: {message}",msgstr:["Aviso: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando uma nova pasta for selecionada, quaisquer arquivos conflitantes contidos nela também serão sobrescritos."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Quando uma nova pasta for selecionada, todos os arquivos contidos nela também serão sobrescritos."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma nova pasta for selecionada, o conteúdo é gravado na pasta existente e é realizada uma resolução recursiva de conflitos."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Você está atualmente identificado como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["No momento, você não está identificado."]},{msgid:"You cannot leave the name empty.",msgstr:["Você não pode deixar o nome vazio."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Você precisa escolher pelo menos uma solução para o conflito"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}]},{language:"pt_PT",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" não é permitido dentro de um nome de pasta.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" não é permitido dentro de um nome.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" não é um nome permitido.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" é um nome reservado e não é permitido para nomes de pasta.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" é um nome reservado e não é permitido.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ficheiro em conflito","%n ficheiros em conflito","%n ficheiros em conflito"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ficheiro em conflito em {dirname}","%n ficheiros em conflito em {dirname}","%n ficheiros em conflito em {dirname}"]},{msgid:"All files",msgstr:["Todos os ficheiros"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operação"]},{msgid:"Choose",msgstr:["Escolher"]},{msgid:"Choose {file}",msgstr:["Escolher {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escolha %n ficheiro","Escolha %n ficheiros","Escolha %n ficheiros"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar para {target}"]},{msgid:"Could not create the new folder",msgstr:["Não foi possível criar a nova pasta "]},{msgid:"Could not load files settings",msgstr:["Não foi possível carregar as definições dos ficheiros"]},{msgid:"Could not load files views",msgstr:["Não foi possível carregar as visualizações dos ficheiros"]},{msgid:"Create directory",msgstr:["Criar pasta"]},{msgid:"Current view selector",msgstr:["Seletor de visualização atual"]},{msgid:"Enter your name",msgstr:["Introduza o seu nome"]},{msgid:"Existing version",msgstr:["Versão existente"]},{msgid:"Failed to set nickname.",msgstr:["Falha ao definir o nome alternativo."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os ficheiros e as pastas que marcar como favoritos aparecerão aqui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Os ficheiros e as pastas que modificou recentemente aparecerão aqui."]},{msgid:"Filter file list",msgstr:["Filtrar lista de ficheiros"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nomes de pasta não podem terminar em "{extension}".']},{msgid:"Guest identification",msgstr:["Identificação de convidado"]},{msgid:"Home",msgstr:["Início"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, um número será adicionado ao nome do ficheiro recebido."]},{msgid:"Invalid folder name.",msgstr:["Nome de pasta inválido."]},{msgid:"Invalid name.",msgstr:["Nome inválido."]},{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover para {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes podem ter no máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["O nome não pode ficar em branco."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nomes não podem terminar em "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Os nomes não podem começar por um ponto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova pasta"]},{msgid:"New folder name",msgstr:["Novo nome da pasta"]},{msgid:"New version",msgstr:["Nova versão"]},{msgid:"No files in here",msgstr:["Sem ficheiros aqui"]},{msgid:"No files matching your filter were found.",msgstr:["Não foi encontrado nenhum ficheiro correspondente ao seu filtro."]},{msgid:"No matching files",msgstr:["Nenhum ficheiro correspondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Introduza um nome com, pelo menos, 2 caracteres."]},{msgid:"Recent",msgstr:["Recentes"]},{msgid:"Select all checkboxes",msgstr:["Selecione todas as caixas de seleção"]},{msgid:"Select all entries",msgstr:["Selecionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Selecione todos os ficheiros existentes"]},{msgid:"Select all new files",msgstr:["Selecione todos os novos ficheiros"]},{msgid:"Select entry",msgstr:["Selecionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Selecione a linha para {nodename}"]},{msgid:"Size",msgstr:["Tamanho"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorar %n ficheiro","Ignorar %n ficheiros","Ignorar %n ficheiros"]},{msgid:"Skip this file",msgstr:["Ignorar este ficheiro"]},{msgid:"Submit name",msgstr:["Submeter nome"]},{msgid:"Undo",msgstr:["Anular"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Envie algum conteúdo ou sincronize com os seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, quaisquer ficheiros conflituantes dentro da mesma serão também sobrescritos."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, todos os ficheiros nela contidos serão também sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e é realizada uma resolução recursiva de conflitos."]},{msgid:"Which files do you want to keep?",msgstr:["Quais os ficheiros que deseja manter?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Atualmente está identificado como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Atualmente, não está identificado."]},{msgid:"You cannot leave the name empty.",msgstr:["Não pode deixar o nome em branco."]},{msgid:"You need to choose at least one conflict solution",msgstr:["É preciso escolher pelo menos uma solução para o conflito."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["É necessário selecionar pelo menos uma versão de cada ficheiro para continuar."]}]},{language:"ro",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" este un nume de director invalid.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nu este un nume de director permis']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" nu este permis în numele unui director.']},{msgid:"All files",msgstr:["Toate fișierele"]},{msgid:"Choose",msgstr:["Alege"]},{msgid:"Choose {file}",msgstr:["Alege {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Alege %n fișier","Alege %n fișiere","Alege %n fișiere"]},{msgid:"Copy",msgstr:["Copiază"]},{msgid:"Copy to {target}",msgstr:["Copiază în {target}"]},{msgid:"Could not create the new folder",msgstr:["Nu s-a putut crea noul director"]},{msgid:"Could not load files settings",msgstr:["Nu s-au putut încărca setările fișierelor"]},{msgid:"Could not load files views",msgstr:["Nu s-au putut încărca vizualizările fișierelor"]},{msgid:"Create directory",msgstr:["Creează director"]},{msgid:"Current view selector",msgstr:["Selectorul curent al vizualizării"]},{msgid:"Favorites",msgstr:["Favorite"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Fișiere și directoare pe care le marcați ca favorite vor apărea aici."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Fișiere și directoare pe care le-ați modificat recent vor apărea aici."]},{msgid:"Filter file list",msgstr:["Filtrează lista de fișiere"]},{msgid:"Folder name cannot be empty.",msgstr:["Numele de director nu poate fi necompletat."]},{msgid:"Home",msgstr:["Acasă"]},{msgid:"Modified",msgstr:["Modificat"]},{msgid:"Move",msgstr:["Mută"]},{msgid:"Move to {target}",msgstr:["Mută către {target}"]},{msgid:"Name",msgstr:["Nume"]},{msgid:"New",msgstr:["Nou"]},{msgid:"New folder",msgstr:["Director nou"]},{msgid:"New folder name",msgstr:["Numele noului director"]},{msgid:"No files in here",msgstr:["Nu există fișiere"]},{msgid:"No files matching your filter were found.",msgstr:["Nu există fișiere potrivite pentru filtrul selectat"]},{msgid:"No matching files",msgstr:["Nu există fișiere potrivite"]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all entries",msgstr:["Selectează toate înregistrările"]},{msgid:"Select entry",msgstr:["Selectează înregistrarea"]},{msgid:"Select the row for {nodename}",msgstr:["Selectează rândul pentru {nodename}"]},{msgid:"Size",msgstr:["Mărime"]},{msgid:"Undo",msgstr:["Anulează"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Încărcați conținut sau sincronizați cu dispozitivele dumneavoastră!"]}]},{language:"ru",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" не допускается в названии папки.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не допускается внутри имени.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" — недопустимое имя.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" — зарезервированное имя, недопустимое для имени папки.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" — зарезервированное и недопустимое имя.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфликт файла","%n конфликта файлов","%n конфликтов файлов","%n конфликтов файлов"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфликт файлов в {dirname}","%n конфликта файлов в {dirname}","%n конфликтов файлов в {dirname}","%n конфликтов файлов в {dirname}"]},{msgid:"All files",msgstr:["Все файлы"]},{msgid:"Cancel",msgstr:["Отмена"]},{msgid:"Cancel the entire operation",msgstr:["Отменить всю операцию"]},{msgid:"Choose",msgstr:["Выбрать"]},{msgid:"Choose {file}",msgstr:["Выбрать «{file}»"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Выбрать %n файл","Выбрать %n файла","Выбрать %n файлов","Выбрать %n файлов"]},{msgid:"Confirm",msgstr:["Подтвердить"]},{msgid:"Continue",msgstr:["Продолжить"]},{msgid:"Copy",msgstr:["Копировать"]},{msgid:"Copy to {target}",msgstr:["Копировать в «{target}»"]},{msgid:"Could not create the new folder",msgstr:["Не удалось создать новую папку"]},{msgid:"Could not load files settings",msgstr:["Не удалось загрузить настройки файлов"]},{msgid:"Could not load files views",msgstr:["Не удалось загрузить конфигурацию просмотра файлов"]},{msgid:"Create directory",msgstr:["Создать папку"]},{msgid:"Current view selector",msgstr:["Переключатель текущего вида"]},{msgid:"Enter your name",msgstr:["Введите ваше имя"]},{msgid:"Existing version",msgstr:["Текущая версия"]},{msgid:"Failed to set nickname.",msgstr:["Не удалось задать никнейм."]},{msgid:"Favorites",msgstr:["Избранное"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Здесь будут отображаться файлы и папки, которые вы пометили как избранные."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Здесь будут отображаться файлы и папки, которые вы недавно изменили."]},{msgid:"Filter file list",msgstr:["Фильтровать список файлов"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Имена папок не могут оканчиваться на "{extension}".']},{msgid:"Guest identification",msgstr:["Гостевая идентификация"]},{msgid:"Home",msgstr:["Домой"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени входящего файла будет добавлен номер."]},{msgid:"Invalid folder name.",msgstr:["Недопустимое имя папки."]},{msgid:"Invalid name.",msgstr:["Недопустимое имя."]},{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},{msgid:"Modified",msgstr:["Изменен"]},{msgid:"Move",msgstr:["Переместить"]},{msgid:"Move to {target}",msgstr:["Переместить в «{target}»"]},{msgid:"Name",msgstr:["Имя"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Имена не могут быть длиннее 64 символов."]},{msgid:"Names must not be empty.",msgstr:["Имена не могут быть пустыми."]},{msgid:'Names must not end with "{extension}".',msgstr:['Имена не могут оканчиваться на "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Имена не должны начинаться с точки."]},{msgid:"New",msgstr:["Новый"]},{msgid:"New folder",msgstr:["Новая папка"]},{msgid:"New folder name",msgstr:["Имя новой папки"]},{msgid:"New version",msgstr:["Новая версия"]},{msgid:"No files in here",msgstr:["Здесь нет файлов"]},{msgid:"No files matching your filter were found.",msgstr:["Файлы, соответствующие вашему фильтру, не найдены."]},{msgid:"No matching files",msgstr:["Нет подходящих файлов"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Введите имя длиной не менее 2 символов."]},{msgid:"Recent",msgstr:["Недавний"]},{msgid:"Select all checkboxes",msgstr:["Выбрать все флажки"]},{msgid:"Select all entries",msgstr:["Выбрать все записи"]},{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},{msgid:"Select entry",msgstr:["Выбрать запись"]},{msgid:"Select the row for {nodename}",msgstr:["Выбрать строку для «{nodename}»"]},{msgid:"Size",msgstr:["Размер"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Пропустить %n файл","Пропустить %n файла","Пропустить %n файлов","Пропустить %n файлов"]},{msgid:"Skip this file",msgstr:["Пропустить файл"]},{msgid:"Submit name",msgstr:["Отправить имя"]},{msgid:"Undo",msgstr:["Отменить"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Загрузите контент или синхронизируйте его со своими устройствами!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все файлы в ней также будут перезаписаны."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов."]},{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Вы идентифицированы как {nickname}."]},{msgid:"You are currently not identified.",msgstr:["В данный момент вы не идентифицированы."]},{msgid:"You cannot leave the name empty.",msgstr:["Вы не можете оставить имя пустым."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Вам нужно выбрать хотя бы одно решение конфликта"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать хотя бы одну версию каждого файла."]}]},{language:"sk_SK",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" nie je povolené v názve priečinka.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" nie je povolené v rámci mena.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nie je povolený názov.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ je rezervované meno a nie je povolené na názvy priečinkov."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" je rezervované meno a nie je povolené.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n konflikt súborov","%n konflikty súborov","%n konfliktov súborov","%n konflikty súborov"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konflikt súborov v {dirname}","%n konflikty súborov v {dirname}","%n konfliktov súborov v {dirname}","%n konfliktov súborov v {dirname}"]},{msgid:"All files",msgstr:["Všetky súbory"]},{msgid:"Cancel",msgstr:["Zrušiť"]},{msgid:"Cancel the entire operation",msgstr:["Zrušiť celú operáciu"]},{msgid:"Choose",msgstr:["Vybrať"]},{msgid:"Choose {file}",msgstr:["Vybrať {súbor}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vybraný %n súbor","Vybrané %n súbory","Vybraných %n súborov","Vybraných %n súborov"]},{msgid:"Confirm",msgstr:["Potvrdiť"]},{msgid:"Continue",msgstr:["Pokračovať"]},{msgid:"Copy",msgstr:["Kopírovať"]},{msgid:"Copy to {target}",msgstr:["Kopírovať do {umiestnenia}"]},{msgid:"Could not create the new folder",msgstr:["Nepodarilo sa vytvoriť nový priečinok"]},{msgid:"Could not load files settings",msgstr:["Nepodarilo sa načítať nastavenia súborov"]},{msgid:"Could not load files views",msgstr:["Nepodarilo sa načítať pohľady súborov"]},{msgid:"Create directory",msgstr:["Vytvoriť adresár"]},{msgid:"Current view selector",msgstr:["Výber aktuálneho zobrazenia"]},{msgid:"Enter your name",msgstr:["Zadajte svoje meno"]},{msgid:"Existing version",msgstr:["Existujúca verzia"]},{msgid:"Failed to set nickname.",msgstr:["Nepodarilo sa nastaviť prezývku."]},{msgid:"Favorites",msgstr:["Obľúbené"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tu sa zobrazia súbory a priečinky, ktoré označíte ako obľúbené."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Tu sa zobrazia súbory a priečinky, ktoré ste nedávno upravili."]},{msgid:"Filter file list",msgstr:["Filtrovať zoznam súborov"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Názvy priečinkov nesmú končiť na "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikácia hosťa"]},{msgid:"Home",msgstr:["Domov"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ak vyberiete obe verzie, prichádzajúci súbor bude mať k svojmu názvu pridané číslo."]},{msgid:"Invalid folder name.",msgstr:["Neplatný názov priečinka."]},{msgid:"Invalid name.",msgstr:["Neplatné meno."]},{msgid:"Last modified date unknown",msgstr:["Posledná zmena dátumu neznáma"]},{msgid:"Modified",msgstr:["Upravené"]},{msgid:"Move",msgstr:["Prejsť"]},{msgid:"Move to {target}",msgstr:["Prejsť na {umiestnenie}"]},{msgid:"Name",msgstr:["Názov"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Mená môžu mať maximálne 64 znakov."]},{msgid:"Names must not be empty.",msgstr:["Mená nesmú byť prázdne."]},{msgid:'Names must not end with "{extension}".',msgstr:['Mená nesmú končiť "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Mená nesmú začínať bodkou."]},{msgid:"New",msgstr:["Pridať"]},{msgid:"New folder",msgstr:["Pridať priečinok"]},{msgid:"New folder name",msgstr:["Pridať názov priečinka"]},{msgid:"New version",msgstr:["Nová verzia"]},{msgid:"No files in here",msgstr:["Nie sú tu žiadne súbory"]},{msgid:"No files matching your filter were found.",msgstr:["Nenašli sa žiadne súbory zodpovedajúce vášmu filtru."]},{msgid:"No matching files",msgstr:["Žiadne zodpovedajúce súbory"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Zadajte meno s aspoň 2 znakmi."]},{msgid:"Recent",msgstr:["Nedávne"]},{msgid:"Select all checkboxes",msgstr:["Vyberte všetky zaškrtávacie políčka"]},{msgid:"Select all entries",msgstr:["Vybrať všetky položky"]},{msgid:"Select all existing files",msgstr:["Vybrať všetky existujúce súbory"]},{msgid:"Select all new files",msgstr:["Vybrať všetky nové súbory"]},{msgid:"Select entry",msgstr:["Vybrať položku"]},{msgid:"Select the row for {nodename}",msgstr:["Vyberte riadok pre {názov uzla}"]},{msgid:"Size",msgstr:["Veľkosť"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Preskočiť %n súbor","Preskočiť %n súbory","Preskočiť %n súborov","Preskočiť %n súbory"]},{msgid:"Skip this file",msgstr:["Preskočiť tento súbor"]},{msgid:"Submit name",msgstr:["Zadať meno"]},{msgid:"Undo",msgstr:["Späť"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Nahrajte nejaký obsah alebo synchronizujte so svojimi zariadeniami!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Keď je vybraná prichádzajúca složka, všetky konfliktné súbory v nej budú taktiež prepísané."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Keď je vybraná prichádzajúca zložka, obsah sa zapíše do existujúcej zložky a vykoná sa rekurzívne riešenie konfliktov."]},{msgid:"Which files do you want to keep?",msgstr:["Ktoré súbory chcete zachovať?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Momentálne ste identifikovaný ako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Momentálne nie ste identifikovaný."]},{msgid:"You cannot leave the name empty.",msgstr:["Nemôžete nechať meno prázdne."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Musíte si vybrať aspoň jedno riešenie konfliktu."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Musíte vybrať aspoň jednu verziu každého súboru, aby ste mohli pokračovať."]}]},{language:"sl",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} je neveljavno ime mape."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} ni dovoljeno ime mape"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ni dovoljen v imenu mape.']},{msgid:"All files",msgstr:["Vse datoteke"]},{msgid:"Choose",msgstr:["Izberi"]},{msgid:"Choose {file}",msgstr:["Izberi {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izberi %n datoteko","Izberi %n datoteki","Izberi %n datotek","Izberi %n datotek"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj v {target}"]},{msgid:"Could not create the new folder",msgstr:["Nisem mogel ustvariti nove mape"]},{msgid:"Could not load files settings",msgstr:["NIsem mogel naložiti nastavitev datotek"]},{msgid:"Could not load files views",msgstr:["Nisem mogel naložiti pogledov datotek"]},{msgid:"Create directory",msgstr:["Ustvari mapo"]},{msgid:"Current view selector",msgstr:["Izbirnik trenutnega pogleda"]},{msgid:"Favorites",msgstr:["Priljubljene"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Datoteke in mape ki jih označite kot priljubljene se bodo prikazale tukaj."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Daoteke in mape ki ste jih pred kratkim spremenili se bodo prikazale tukaj."]},{msgid:"Filter file list",msgstr:["Filtriraj seznam datotek"]},{msgid:"Folder name cannot be empty.",msgstr:["Ime mape ne more biti prazno"]},{msgid:"Home",msgstr:["Domov"]},{msgid:"Modified",msgstr:["Spremenjeno"]},{msgid:"Move",msgstr:["Premakni"]},{msgid:"Move to {target}",msgstr:["Premakni v {target}"]},{msgid:"Name",msgstr:["Ime"]},{msgid:"New",msgstr:["Nov"]},{msgid:"New folder",msgstr:["Nova mapa"]},{msgid:"New folder name",msgstr:["Novo ime mape"]},{msgid:"No files in here",msgstr:["Tukaj ni datotek"]},{msgid:"No files matching your filter were found.",msgstr:["Ni bilo najdenih ujemajočih datotek glede na vaš filter."]},{msgid:"No matching files",msgstr:["Ni ujemajočih datotek"]},{msgid:"Recent",msgstr:["Nedavne"]},{msgid:"Select all entries",msgstr:["Izberi vse vnose"]},{msgid:"Select entry",msgstr:["Izberi vnos"]},{msgid:"Select the row for {nodename}",msgstr:["Izberi vrstico za {nodename}"]},{msgid:"Size",msgstr:["Velikost"]},{msgid:"Undo",msgstr:["Razveljavi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Naloži nekaj vsebine ali sinhroniziraj s svojimi napravami!"]}]},{language:"sr",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}” није дозвољено унутар имена."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}” није дозвољено име."]},{msgid:'"{name}" is an invalid folder name.',msgstr:["„{name}” није исправно име фолдера."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["„{name}” није дозвољено име за фолдер."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}” је резервисано име и није дозвољено."]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["„/” није дозвољено унутар имена фолдера."]},{msgid:"All files",msgstr:["Сви фајлови"]},{msgid:"Cancel",msgstr:["Откажи"]},{msgid:"Choose",msgstr:["Изаберите"]},{msgid:"Choose {file}",msgstr:["Изаберите {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Изаберите %n фајл","Изаберите %n фајла","Изаберите %n фајлова"]},{msgid:"Copy",msgstr:["Копирај"]},{msgid:"Copy to {target}",msgstr:["Копирај у {target}"]},{msgid:"Could not create the new folder",msgstr:["Није могао да се креира нови фолдер"]},{msgid:"Could not load files settings",msgstr:["Не могу да се учитају подешавања фајлова"]},{msgid:"Could not load files views",msgstr:["Не могу да се учитају прикази фајлова"]},{msgid:"Create directory",msgstr:["Креирај директоријум"]},{msgid:"Current view selector",msgstr:["Бирач тренутног приказа"]},{msgid:"Enter your name",msgstr:["Унесите своје име"]},{msgid:"Failed to set nickname.",msgstr:["Није успело постављање надимка."]},{msgid:"Favorites",msgstr:["Омиљено"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Овде ће се појавити фајлови и фолдери које сте означили као омиљене."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Овде ће се појавити фајлови и фолдери који се се недавно изменили."]},{msgid:"Filter file list",msgstr:["Фитрирање листе фајлова"]},{msgid:"Folder name cannot be empty.",msgstr:["Име фолдера не може бити празно."]},{msgid:"Guest identification",msgstr:["Идентификација госта"]},{msgid:"Home",msgstr:["Почетак"]},{msgid:"Invalid name.",msgstr:["Неисправно име."]},{msgid:"Modified",msgstr:["Измењено"]},{msgid:"Move",msgstr:["Премести"]},{msgid:"Move to {target}",msgstr:["Премести у {target}"]},{msgid:"Name",msgstr:["Име"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Највећа дужина имена може бити 64 карактера."]},{msgid:"Names must not be empty.",msgstr:["Имена не смеју да буду празна."]},{msgid:'Names must not end with "{extension}".',msgstr:["Имена не смеју да се завршавају на „{extension}”."]},{msgid:"Names must not start with a dot.",msgstr:["Имена не смеју да почињу тачком."]},{msgid:"New",msgstr:["Ново"]},{msgid:"New folder",msgstr:["Нови фолдер"]},{msgid:"New folder name",msgstr:["Име новог фолдера"]},{msgid:"No files in here",msgstr:["Овде нема фајлова"]},{msgid:"No files matching your filter were found.",msgstr:["Није пронађен ниједан фајл који задовољава ваш филтер."]},{msgid:"No matching files",msgstr:["Нема таквих фајлова"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Молимо вас да унесете име од барем два карактера."]},{msgid:"Recent",msgstr:["Скорашње"]},{msgid:"Select all entries",msgstr:["Изаберите све ставке"]},{msgid:"Select entry",msgstr:["Изаберите ставку"]},{msgid:"Select the row for {nodename}",msgstr:["Изаберите ред за {nodename}"]},{msgid:"Size",msgstr:["Величина"]},{msgid:"Submit name",msgstr:["Предај име"]},{msgid:"Undo",msgstr:["Поништи"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Отпремите нешто или синхронизујте са својим уређајима!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Тренутно се идентификујете као {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Тренутно немате идентификацију."]},{msgid:"You cannot leave the name empty.",msgstr:["Име не можете да оставите празно."]}]},{language:"sr@latin",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["„{name}” je neispravan naziv foldera."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["„{name}” je nedozvoljen naziv foldera."]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["„/” se ne može koristiti unutar naziva foldera."]},{msgid:"All files",msgstr:["Svi fajlovi"]},{msgid:"Choose",msgstr:["Izaberite"]},{msgid:"Choose {file}",msgstr:["Izaberite {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izaberite %n fajl","Izaberite %n fajla","Izaberite %n fajlova"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj u {target}"]},{msgid:"Could not create the new folder",msgstr:["Neuspešno kreiranje novog foldera"]},{msgid:"Could not load files settings",msgstr:["Neuspešno učitavanje podešavanja fajlova"]},{msgid:"Could not load files views",msgstr:["Neuspešno učitavanje prikaza fajlova"]},{msgid:"Create directory",msgstr:["Kreiraj direktorijum"]},{msgid:"Current view selector",msgstr:["Birač trenutnog prikaza"]},{msgid:"Favorites",msgstr:["Omiljeno"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Lista omiljenih fajlova i foldera."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Lista fajlova i foldera sa skorašnjim izmenama."]},{msgid:"Filter file list",msgstr:["Fitriranje liste fajlova"]},{msgid:"Folder name cannot be empty.",msgstr:["Naziv foldera ne može biti prazan."]},{msgid:"Home",msgstr:["Početak"]},{msgid:"Modified",msgstr:["Izmenjeno"]},{msgid:"Move",msgstr:["Premesti"]},{msgid:"Move to {target}",msgstr:["Premesti u {target}"]},{msgid:"Name",msgstr:["Naziv"]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Novi folder"]},{msgid:"New folder name",msgstr:["Naziv novog foldera"]},{msgid:"No files in here",msgstr:["Bez fajlova"]},{msgid:"No files matching your filter were found.",msgstr:["Nema fajlova koji zadovoljavaju uslove filtera."]},{msgid:"No matching files",msgstr:["Nema takvih fajlova"]},{msgid:"Recent",msgstr:["Skorašnje"]},{msgid:"Select all entries",msgstr:["Izaberite sve stavke"]},{msgid:"Select entry",msgstr:["Izaberite stavku"]},{msgid:"Select the row for {nodename}",msgstr:["Izaberite red za {nodename}"]},{msgid:"Size",msgstr:["Veličina"]},{msgid:"Undo",msgstr:["Vrati"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Otpremite sadržaj ili sinhronizujte sa svojim uređajima!"]}]},{language:"sv",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" får inte ingå i ett mappnamn.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" får inte ingå i ett namn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" får inte användas som namn.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" är ett reserverat namn och får inte användas som mappnamn.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" är ett reserverat namn och får inte användas.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n filkonflikter"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n filkonflikt i {dirname}","%n filkonflikter i {dirname}"]},{msgid:"All files",msgstr:["Alla filer"]},{msgid:"Cancel",msgstr:["Avbryt"]},{msgid:"Cancel the entire operation",msgstr:["Avbryt hela åtgärden"]},{msgid:"Choose",msgstr:["Välj"]},{msgid:"Choose {file}",msgstr:["Välj {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Välj %n fil","Välj %n filer"]},{msgid:"Confirm",msgstr:["Bekräfta"]},{msgid:"Continue",msgstr:["Fortsätt"]},{msgid:"Copy",msgstr:["Kopiera"]},{msgid:"Copy to {target}",msgstr:["Kopiera till {target}"]},{msgid:"Could not create the new folder",msgstr:["Det gick inte att skapa den nya mappen"]},{msgid:"Could not load files settings",msgstr:["Det gick inte att läsa in filinställningarna"]},{msgid:"Could not load files views",msgstr:["Det gick inte att läsa in filvyerna"]},{msgid:"Create directory",msgstr:["Skapa mapp"]},{msgid:"Current view selector",msgstr:["Väljare för aktuell vy"]},{msgid:"Enter your name",msgstr:["Ange ditt namn"]},{msgid:"Existing version",msgstr:["Befintlig version"]},{msgid:"Failed to set nickname.",msgstr:["Det gick inte att ange smeknamnet."]},{msgid:"Favorites",msgstr:["Favoriter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer och mappar som du markerar som favoriter visas här."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer och mappar som du nyligen har ändrat visas här."]},{msgid:"Filter file list",msgstr:["Filtrera fillistan"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mappnamn får inte sluta med "{extension}".']},{msgid:"Guest identification",msgstr:["Gästidentifiering"]},{msgid:"Home",msgstr:["Hem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Om du väljer båda versionerna läggs ett nummer till i namnet på den inkommande filen."]},{msgid:"Invalid folder name.",msgstr:["Ogiltigt mappnamn."]},{msgid:"Invalid name.",msgstr:["Ogiltigt namn."]},{msgid:"Last modified date unknown",msgstr:["Datumet för senaste ändringen är okänt"]},{msgid:"Modified",msgstr:["Ändrad"]},{msgid:"Move",msgstr:["Flytta"]},{msgid:"Move to {target}",msgstr:["Flytta till {target}"]},{msgid:"Name",msgstr:["Namn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namn får vara högst 64 tecken långa."]},{msgid:"Names must not be empty.",msgstr:["Namn får inte vara tomma."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namn får inte sluta med "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Namn får inte börja med en punkt."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mapp"]},{msgid:"New folder name",msgstr:["Nytt mappnamn"]},{msgid:"New version",msgstr:["Ny version"]},{msgid:"No files in here",msgstr:["Det finns inga filer här"]},{msgid:"No files matching your filter were found.",msgstr:["Inga filer som matchar ditt filter hittades."]},{msgid:"No matching files",msgstr:["Inga matchande filer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Ange ett namn med minst 2 tecken."]},{msgid:"Recent",msgstr:["Senaste"]},{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},{msgid:"Select all entries",msgstr:["Markera alla poster"]},{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},{msgid:"Select entry",msgstr:["Markera post"]},{msgid:"Select the row for {nodename}",msgstr:["Markera raden för {nodename}"]},{msgid:"Size",msgstr:["Storlek"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Hoppa över %n fil","Hoppa över %n filer"]},{msgid:"Skip this file",msgstr:["Hoppa över den här filen"]},{msgid:"Submit name",msgstr:["Bekräfta namnet"]},{msgid:"Undo",msgstr:["Ångra"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ladda upp innehåll eller synkronisera med dina enheter!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs kommer även alla filer i den som har konflikter att skrivas över."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs kommer även alla filer i den att skrivas över."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och konflikterna löses rekursivt."]},{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du är identifierad som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du är inte identifierad."]},{msgid:"You cannot leave the name empty.",msgstr:["Namnet får inte lämnas tomt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du måste välja minst en lösning på konflikten"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att kunna fortsätta."]}]},{language:"tr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" karakteri bir klasör adında kullanılamaz.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['Bir ad içinde "{char}" karakteri kullanılamaz.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" adına izin verilmiyor.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" adı sistem için ayrılmış olduğundan klasör adlarında kullanılamaz.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" adı sistem için ayrılmış olduğundan kullanılamaz.']},{msgid:"All files",msgstr:["Tüm dosyalar"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["{dirname} içinde aynı adlı bir öge zaten var."]},{msgid:"Cancel",msgstr:["İptal"]},{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},{msgid:"Choose",msgstr:["Seçin"]},{msgid:"Choose {file}",msgstr:["{file} seçin"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n dosya seçin","%n dosya seçin"]},{msgid:"Close",msgstr:["Kapat"]},{msgid:"Confirm",msgstr:["Onayla"]},{msgid:"Continue",msgstr:["İlerle"]},{msgid:"Copy",msgstr:["Kopyala"]},{msgid:"Copy to {target}",msgstr:["{target} üzerine kopyala"]},{msgid:"Could not create the new folder",msgstr:["Yeni klasör oluşturulamadı"]},{msgid:"Could not load files settings",msgstr:["Dosyalar uygulamasının ayarları yüklenemedi"]},{msgid:"Could not load files views",msgstr:["Dosyalar uygulamasının görünümleri yüklenemedi"]},{msgid:"Create directory",msgstr:["Klasör oluştur"]},{msgid:"Current view selector",msgstr:["Geçerli görünüm seçici"]},{msgid:"Enter your name",msgstr:["Adınızı yazın"]},{msgid:"Error: {message}",msgstr:["Hata: {message}"]},{msgid:"Existing files",msgstr:["Var olan dosyalar"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["İşaretlenmediğinde var olan dosyalar ve klasörler silinir. İkisi de seçilirse, bu ögeler yeniden adlandırılır."]},{msgid:"Existing version",msgstr:["Var olan sürüm"]},{msgid:"Failed to set nickname.",msgstr:["Takma ad ayarlanamadı."]},{msgid:"Favorites",msgstr:["Sık kullanılanlar"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Sık kullanılan olarak seçtiğiniz dosyalar burada görüntülenir."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Son zamanlarda değiştirdiğiniz dosya ve klasörler burada görüntülenir."]},{msgid:"Filter file list",msgstr:["Dosya listesini süz"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Klasör adları "{extension}" ile bitemez.']},{msgid:"Guest identification",msgstr:["Konuk kimliği"]},{msgid:"Home",msgstr:["Giriş"]},{msgid:"Info: {message}",msgstr:["Bilgi: {message}"]},{msgid:"Invalid folder name.",msgstr:["Klasör adı geçersiz."]},{msgid:"Invalid name.",msgstr:["Ad geçersiz."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["{dirname} içinde aynı adlı ögeler var, hangilerinin tutulacağını seçin."]},{msgid:"Keep both",msgstr:["İkisi de tutulsun"]},{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor."]},{msgid:"Modified",msgstr:["Değiştirilme"]},{msgid:"Move",msgstr:["Taşı"]},{msgid:"Move to {target}",msgstr:["{target} üzerine taşı"]},{msgid:"Name",msgstr:["Ad"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Adlar en fazla 64 karakter uzunluğunda olabilir."]},{msgid:"Names must not be empty.",msgstr:["Ad boş olamaz."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ad "{extension}" ile bitemez.']},{msgid:"Names must not start with a dot.",msgstr:["Ad nokta karakteri ile başlayamaz."]},{msgid:"New",msgstr:["Yeni"]},{msgid:"New files",msgstr:["Yeni dosyalar"]},{msgid:"New folder",msgstr:["Yeni klasör"]},{msgid:"New folder name",msgstr:["Yeni klasör adı"]},{msgid:"New version",msgstr:["Yeni sürüm"]},{msgid:"No files in here",msgstr:["Burada herhangi bir dosya yok"]},{msgid:"No files matching your filter were found.",msgstr:["Süzgece uyan bir dosya bulunamadı."]},{msgid:"No matching files",msgstr:["Eşleşen bir dosya yok"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Ad en az 2 karakter uzunluğunda olmalıdır."]},{msgid:"Recent",msgstr:["Son kullanılanlar"]},{msgid:"Replace",msgstr:["Değiştir"]},{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},{msgid:"Select all entries",msgstr:["Tüm kayıtları seç"]},{msgid:"Select entry",msgstr:["Kaydı seç"]},{msgid:"Select file to keep",msgstr:["Tutulacak dosyayı seçin"]},{msgid:"Select files to keep",msgstr:["Tutulacak dosyaları seçin"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} satırını seçin"]},{msgid:"Size",msgstr:["Boyut"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n dosyayı atla","%n dosyayı atla"]},{msgid:"Submit name",msgstr:["Adı gönder"]},{msgid:"Success: {message}",msgstr:["Başarı: {message}"]},{msgid:"Undo",msgstr:["Geri al"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Bazı içerikler yükleyin ya da aygıtlarınızla eşitleyin!"]},{msgid:"Warning: {message}",msgstr:["Uyarı: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir yeni klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Bir yeni klasör seçildiğinde, içindeki dosyaların da üzerine yazılır."]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bir yeni klasör seçildiğinde, içerik var olan klasöre yazılır ve alt klasörlere çakışma çözümü uygulanır."]},{msgid:"You are currently identified as {nickname}.",msgstr:["{nickname} olarak tanınıyorsunuz."]},{msgid:"You are currently not identified.",msgstr:["Henüz kendinizi tanıtmadınız."]},{msgid:"You cannot leave the name empty.",msgstr:["Ad boş bırakılamaz."]},{msgid:"You need to choose at least one conflict solution",msgstr:["En az bir çakışma çözümü seçmelisiniz"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosaynın en az bir sürümünü seçmelisiniz."]}]},{language:"uk",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["{char} не дозволено всередині назви каталогу."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не дозволено всередині імени.']},{msgid:'"{extension}" is not an allowed name.',msgstr:[`"{extension}" недозволене ім'я.`]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["{segment} є зарезервованим ім'ям і не дозволено для назви каталогу."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:[`"{segment}" зарезервоване ім'я і не дозволено для використання.`]},{msgid:"All files",msgstr:["Всі файли"]},{msgid:"An item with the same name already exists in {dirname}.",msgstr:["Об'єкт з таким ім'ям присутній у {dirname}."]},{msgid:"Cancel",msgstr:["Скасувати"]},{msgid:"Cancel the entire operation",msgstr:["Скасувати всю операцію"]},{msgid:"Choose",msgstr:["Вибрати"]},{msgid:"Choose {file}",msgstr:["Вибрати {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Вибрати %n файл","Вибрати %n файли","Вибрати %n файлів","Вибрати %n файлів"]},{msgid:"Close",msgstr:["Закрити"]},{msgid:"Confirm",msgstr:["Підтвердити"]},{msgid:"Continue",msgstr:["Продовжити"]},{msgid:"Copy",msgstr:["Копіювати"]},{msgid:"Copy to {target}",msgstr:["Копіювати до {target}"]},{msgid:"Could not create the new folder",msgstr:["Не вдалося створити новий каталог"]},{msgid:"Could not load files settings",msgstr:["Не вдалося завантажити налаштування файлів"]},{msgid:"Could not load files views",msgstr:["Не вдалося завантажити подання файлів"]},{msgid:"Create directory",msgstr:["Створити каталог"]},{msgid:"Current view selector",msgstr:["Вибір подання"]},{msgid:"Enter your name",msgstr:["Зазначте ваше ім'я"]},{msgid:"Error: {message}",msgstr:["Помилка: {message}"]},{msgid:"Existing files",msgstr:["Присутні файли"]},{msgid:"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.",msgstr:["Присутні файли та каталоги буде вилучено, якщо їх не вибрано. Якщо вибрано обидві версії, то буде перейменовано."]},{msgid:"Existing version",msgstr:["Наявна версія"]},{msgid:"Failed to set nickname.",msgstr:["Не вдалося встановити псевдо."]},{msgid:"Favorites",msgstr:["Із зірочкою"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Тут показуватимуться файли та каталоги, які ви позначите зірочкою."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Тут показуватимуться файли та каталоги, які було нещодавно змінено."]},{msgid:"Filter file list",msgstr:["Фільтрувати список файлів"]},{msgid:'Folder names must not end with "{extension}".',msgstr:[`Ім'я каталогу не може закінчуватися на "{extension}".`]},{msgid:"Guest identification",msgstr:["Ім'я для гостя"]},{msgid:"Home",msgstr:["Домівка"]},{msgid:"Info: {message}",msgstr:["Інформація: {message}"]},{msgid:"Invalid folder name.",msgstr:["Недійсне ім'я каталогу."]},{msgid:"Invalid name.",msgstr:["Недійсне ім'я."]},{msgid:"Items with the same name already exist in {dirname}, select which to keep.",msgstr:["Присутні об'єкти з тотожніми імеами у {dirname}, виберіть, які зберегти."]},{msgid:"Keep both",msgstr:["Зберегти обидва"]},{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},{msgid:"Modified",msgstr:["Змінено"]},{msgid:"Move",msgstr:["Перемістити"]},{msgid:"Move to {target}",msgstr:["Перемістити до {target}"]},{msgid:"Name",msgstr:["Ім'я"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Імена мають мати довжину не більше 64 символів."]},{msgid:"Names must not be empty.",msgstr:["Ім'я не може бути порожнє."]},{msgid:'Names must not end with "{extension}".',msgstr:[`Ім'я не може закінчуватися на "{extension}".`]},{msgid:"Names must not start with a dot.",msgstr:["Ім'я не може починатися з крапки."]},{msgid:"New",msgstr:["Новий"]},{msgid:"New files",msgstr:["Нові файли"]},{msgid:"New folder",msgstr:["Новий каталог"]},{msgid:"New folder name",msgstr:["Ім'я нового каталогу"]},{msgid:"New version",msgstr:["Нова версія"]},{msgid:"No files in here",msgstr:["Тут відсутні файли"]},{msgid:"No files matching your filter were found.",msgstr:["Відсутні збіги за фільтром."]},{msgid:"No matching files",msgstr:["Відсутні збіги файлів."]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Зазначте ім'я довжиною не менше 2 символів"]},{msgid:"Recent",msgstr:["Останні"]},{msgid:"Replace",msgstr:["Замінити"]},{msgid:"Select all checkboxes",msgstr:["Вибрати всі прапорці"]},{msgid:"Select all entries",msgstr:["Вибрати всі записи"]},{msgid:"Select entry",msgstr:["Вибрати запис"]},{msgid:"Select file to keep",msgstr:["Виберіть файл, який потрібно зберегти"]},{msgid:"Select files to keep",msgstr:["Виберіть файли, які потрібно зберегти"]},{msgid:"Select the row for {nodename}",msgstr:["Вибрати рядок для {nodename}"]},{msgid:"Size",msgstr:["Розмір"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Пропустити %n файл","Пропустити %n файли","Пропустити %n файлів","Пропустити %n файлів"]},{msgid:"Submit name",msgstr:["Встановити ім'я"]},{msgid:"Success: {message}",msgstr:["Успішно: {message}"]},{msgid:"Undo",msgstr:["Повернути"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Завантажте вміст або синхронізуйте з вашим пристроєм!"]},{msgid:"Warning: {message}",msgstr:["Увага: {message}"]},{msgid:"When a new folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Якщо вибрано новий каталог, то файли з конфліктами буде також перезаписано"]},{msgid:"When a new folder is selected, any files within it will also be overwritten.",msgstr:["Якщо вибрано новий каталог, то всі файли в ньому буде перезаписано"]},{msgid:"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Якщо вибрано новий каталог, то до нього буде записано всі об'єкти, застосовано рекурсивне розв'язання конфліктів."]},{msgid:"You are currently identified as {nickname}.",msgstr:["Вас визначено як {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Вас не ідентифіковано."]},{msgid:"You cannot leave the name empty.",msgstr:["Потрібно зазначити ім'я."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Треб вибрати щонайменше одне розв'язання конфлікту"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Треба вибрати щонайменше одну версію кожного файлу, щоби продовжити."]}]},{language:"uz",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['Papka nomi ichida "{char}" ga ruxsat berilmaydi.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['Nom ichida "{char}" ga ruxsat berilmagan.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ruxsat etilgan nom emas.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`"{segment}" ajratilgan nom bo'lib, papka nomlari uchun ruxsat berilmagan.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" - zaxiralangan nom va ruxsat berilmaydi.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n fayl ziddiyatli"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} da %n fayl ziddiyati"]},{msgid:"All files",msgstr:["Barcha fayllar"]},{msgid:"Cancel",msgstr:["Bekor qilish"]},{msgid:"Cancel the entire operation",msgstr:["Butun operatsiyani bekor qiling"]},{msgid:"Choose",msgstr:["Tanlang"]},{msgid:"Choose {file}",msgstr:["Tanlang {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Tanlang %n faylni"]},{msgid:"Confirm",msgstr:["Tasdiqlang"]},{msgid:"Continue",msgstr:["Davom eting"]},{msgid:"Copy",msgstr:["Nusxa"]},{msgid:"Copy to {target}",msgstr:[" {target} ga nusxa"]},{msgid:"Could not create the new folder",msgstr:["Yangi jild yaratib bo‘lmadi"]},{msgid:"Could not load files settings",msgstr:["Fayl sozlamalari yuklanmadi"]},{msgid:"Could not load files views",msgstr:["Fayllarni koʻrishni yuklab boʻlmadi"]},{msgid:"Create directory",msgstr:["Katalog yaratish"]},{msgid:"Current view selector",msgstr:["Joriy ko'rinish selektori"]},{msgid:"Enter your name",msgstr:["Ismingizni kiriting"]},{msgid:"Existing version",msgstr:["Mavjud versiya"]},{msgid:"Failed to set nickname.",msgstr:["Taxallusni o‘rnatib bo‘lmadi."]},{msgid:"Favorites",msgstr:["Tanlanganlar"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tanlangan deb belgilagan fayl va papkalar shu yerda koʻrinadi."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Siz yaqinda oʻzgartirgan fayl va papkalar shu yerda koʻrinadi."]},{msgid:"Filter file list",msgstr:["Fayl ro'yxatini filtrlash"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Papka nomlari "{extension}" bilan tugamasligi kerak.']},{msgid:"Guest identification",msgstr:["Foydalanuvchini identifikatsiyalash"]},{msgid:"Home",msgstr:["Uy"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi."]},{msgid:"Invalid folder name.",msgstr:["Jild nomi noto'g'ri."]},{msgid:"Invalid name.",msgstr:["Nomi noto‘g‘ri."]},{msgid:"Last modified date unknown",msgstr:["Oxirgi tahrirlangan sana noma'lum"]},{msgid:"Modified",msgstr:["Modifikatsiyalangan"]},{msgid:"Move",msgstr:["Ko'chirish"]},{msgid:"Move to {target}",msgstr:[" {target} ga ko'chirish"]},{msgid:"Name",msgstr:["Nomi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Ismlar ko'pi bilan 64 ta belgidan iborat bo'lishi mumkin."]},{msgid:"Names must not be empty.",msgstr:["Ismlar bo'sh bo'lmasligi kerak."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ismlar "{extension}" bilan tugamasligi kerak.']},{msgid:"Names must not start with a dot.",msgstr:["Ismlar nuqta bilan boshlanmasligi kerak."]},{msgid:"New",msgstr:["Yangi"]},{msgid:"New folder",msgstr:["Yangi jild"]},{msgid:"New folder name",msgstr:["Yangi jild nomi"]},{msgid:"New version",msgstr:["Yangi versiya"]},{msgid:"No files in here",msgstr:["Fayl mavjud emas"]},{msgid:"No files matching your filter were found.",msgstr:["Filtringizga mos keladigan fayl topilmadi."]},{msgid:"No matching files",msgstr:["Mos fayllar yo'q"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Kamida 2 ta belgidan iborat nom kiriting."]},{msgid:"Recent",msgstr:["Yaqinda"]},{msgid:"Select all checkboxes",msgstr:["Barcha katakchalarni belgilang"]},{msgid:"Select all entries",msgstr:["Barcha yozuvlarni tanlang"]},{msgid:"Select all existing files",msgstr:["Barcha mavjud fayllarni tanlang"]},{msgid:"Select all new files",msgstr:["Barcha yangi fayllarni tanlang"]},{msgid:"Select entry",msgstr:["Yozuvni tanlang"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} uchun qatorni tanlang"]},{msgid:"Size",msgstr:["O`lcham"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n faylni oʻtkazib yuborish"]},{msgid:"Skip this file",msgstr:["Ushbu faylni o'tkazib yuboring"]},{msgid:"Submit name",msgstr:["Ismni tasdiqlang"]},{msgid:"Undo",msgstr:["Bekor qilish"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Qurilmangizga ba'zi kontentni yuklang yoki sinxronlang!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kiruvchi papka tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kiruvchi papka tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi."]},{msgid:"Which files do you want to keep?",msgstr:["Qaysi fayllarni saqlamoqchisiz?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Siz hozirda {nickname} sifatida aniqlangansiz."]},{msgid:"You are currently not identified.",msgstr:["Siz hozirda identifikatsiyadan o'tmagansiz"]},{msgid:"You cannot leave the name empty.",msgstr:["Ism katagini bo'sh qoldirib bo'lmaydi."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Siz kamida bitta mojaro yechimini tanlashingiz kerak"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak."]}]},{language:"vi",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" là tên thư mục không hợp lệ.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"1{name}"không phải là tên thư mục được cho phép']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/"không được phép đặt trong tên thư mục.']},{msgid:"All files",msgstr:["Tất cả tệp"]},{msgid:"Choose",msgstr:["Chọn"]},{msgid:"Choose {file}",msgstr:["Chọn {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Chọn %n tệp"]},{msgid:"Copy",msgstr:["Sao chép"]},{msgid:"Copy to {target}",msgstr:["Sao chép đến {target}"]},{msgid:"Could not create the new folder",msgstr:["Không thể tạo thư mục mới"]},{msgid:"Could not load files settings",msgstr:["Không thể tải tập tin cài đặt"]},{msgid:"Could not load files views",msgstr:["Không thể tải xuống tệp xem"]},{msgid:"Create directory",msgstr:["Tạo thư mục"]},{msgid:"Current view selector",msgstr:["Hiện tại chế độ xem của bộ chọn"]},{msgid:"Favorites",msgstr:["Yêu cầu thích"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Các tập tin và thư mục bạn đánh dấu yêu thích sẽ hiển thị ở đây."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Các tập tin và thư mục bạn sửa đổi gần đây sẽ hiển thị ở đây."]},{msgid:"Filter file list",msgstr:["Filter list file"]},{msgid:"Folder name cannot be empty.",msgstr:["Thư mục tên không được để trống."]},{msgid:"Home",msgstr:["Trang chủ"]},{msgid:"Modified",msgstr:["Đã sửa đổi"]},{msgid:"Move",msgstr:["Di chuyển"]},{msgid:"Move to {target}",msgstr:["Di chuyển đến{target}"]},{msgid:"Name",msgstr:["Tên"]},{msgid:"New",msgstr:["Mới"]},{msgid:"New folder",msgstr:["New thư mục"]},{msgid:"New folder name",msgstr:["New thư mục tên"]},{msgid:"No files in here",msgstr:["No file at here"]},{msgid:"No files matching your filter were found.",msgstr:["Không tìm thấy tệp nào phù hợp với bộ lọc của bạn."]},{msgid:"No matching files",msgstr:["No file phù hợp"]},{msgid:"Recent",msgstr:["Gần đây"]},{msgid:"Select all entries",msgstr:["Choose all items"]},{msgid:"Select entry",msgstr:["Chọn mục nhập"]},{msgid:"Select the row for {nodename}",msgstr:["Choose hang cho{nodename}"]},{msgid:"Size",msgstr:["Kích cỡ"]},{msgid:"Undo",msgstr:["Hoàn tác"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Tải lên một số nội dung hoặc đồng bộ hóa với thiết bị của bạn!"]}]},{language:"zh_CN",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["“{name}” 是无效的文件夹名称。"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["“{name}” 不是允许的文件夹名称"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["文件夹名称中不允许包含 “/”。"]},{msgid:"All files",msgstr:["所有文件"]},{msgid:"Choose",msgstr:["选择"]},{msgid:"Choose {file}",msgstr:["选择 {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["选择 %n 个文件"]},{msgid:"Copy",msgstr:["复制"]},{msgid:"Copy to {target}",msgstr:["复制到 {target}"]},{msgid:"Could not create the new folder",msgstr:["无法创建新文件夹"]},{msgid:"Could not load files settings",msgstr:["无法加载文件设置"]},{msgid:"Could not load files views",msgstr:["无法加载文件视图"]},{msgid:"Create directory",msgstr:["创建目录"]},{msgid:"Current view selector",msgstr:["当前视图选择器"]},{msgid:"Favorites",msgstr:["最爱"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您标记为最爱的文件与文件夹会显示在这里"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的文件与文件夹会显示在这里"]},{msgid:"Filter file list",msgstr:["过滤文件列表"]},{msgid:"Folder name cannot be empty.",msgstr:["文件夹名称不能为空。"]},{msgid:"Home",msgstr:["主目录"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移动"]},{msgid:"Move to {target}",msgstr:["移动至 {target}"]},{msgid:"Name",msgstr:["名称"]},{msgid:"New",msgstr:["新建"]},{msgid:"New folder",msgstr:["新文件夹"]},{msgid:"New folder name",msgstr:["新文件夹名称"]},{msgid:"No files in here",msgstr:["此处无文件"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您过滤条件的文件"]},{msgid:"No matching files",msgstr:["无符合的文件"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all entries",msgstr:["选择所有条目"]},{msgid:"Select entry",msgstr:["选择条目"]},{msgid:"Select the row for {nodename}",msgstr:["选择 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Undo",msgstr:[" 撤消"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上传一些项目或与您的设备同步!"]}]},{language:"zh_HK",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["資料夾名稱中不允許使用「{char}」。"]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['名稱中不能使用 "{char}"。']},{msgid:'"{extension}" is not an allowed name.',msgstr:["「{extension}」並非允許的名稱。"]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["「{segment}」為保留名稱,不能用作資料夾名稱。"]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["「{segment}」是一個保留名稱,不能使用。"]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n 檔案衝突"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} 中有 %n 個檔案衝突"]},{msgid:"All files",msgstr:["所有檔案"]},{msgid:"Cancel",msgstr:["取消"]},{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},{msgid:"Choose",msgstr:["選擇"]},{msgid:"Choose {file}",msgstr:["選擇 {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["選擇 %n 個檔案"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Continue",msgstr:["繼續"]},{msgid:"Copy",msgstr:["複製"]},{msgid:"Copy to {target}",msgstr:["複製到 {target}"]},{msgid:"Could not create the new folder",msgstr:["無法建立新資料夾"]},{msgid:"Could not load files settings",msgstr:["無法載入檔案設定"]},{msgid:"Could not load files views",msgstr:["無法載入檔案視圖"]},{msgid:"Create directory",msgstr:["建立目錄"]},{msgid:"Current view selector",msgstr:["目前視圖選擇器"]},{msgid:"Enter your name",msgstr:["輸入您的名字"]},{msgid:"Existing version",msgstr:["現有的版本"]},{msgid:"Failed to set nickname.",msgstr:["無法設置暱稱。"]},{msgid:"Favorites",msgstr:["最愛"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您標記為最愛的檔案與資料夾將會顯示在此處。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的檔案與資料夾將會顯示在此處。"]},{msgid:"Filter file list",msgstr:["過濾檔案清單"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["資料夾名稱不得以「{extension}」結尾。"]},{msgid:"Guest identification",msgstr:["訪客身份識別"]},{msgid:"Home",msgstr:["首頁"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["如果您選擇兩個版本,傳入的檔案名稱將會附加一個數字。"]},{msgid:"Invalid folder name.",msgstr:["無效的資料夾名稱。"]},{msgid:"Invalid name.",msgstr:["無效的名字。"]},{msgid:"Last modified date unknown",msgstr:["最後的修改日期不詳"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["移動至 {target}"]},{msgid:"Name",msgstr:["名稱"]},{msgid:"Names may be at most 64 characters long.",msgstr:["名稱長度最多為 64 個字元。"]},{msgid:"Names must not be empty.",msgstr:["名稱不能為空。"]},{msgid:'Names must not end with "{extension}".',msgstr:["名稱不得以「{extension}」結尾。"]},{msgid:"Names must not start with a dot.",msgstr:["名稱不得以點開頭。"]},{msgid:"New",msgstr:["新"]},{msgid:"New folder",msgstr:["新資料夾"]},{msgid:"New folder name",msgstr:["新資料夾名稱"]},{msgid:"New version",msgstr:["新版本"]},{msgid:"No files in here",msgstr:["此處無檔案"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您過濾條件的檔案。"]},{msgid:"No matching files",msgstr:["沒有匹配的檔案"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["請輸入至少 2 個字符的名稱。"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all checkboxes",msgstr:["選擇所有復選框"]},{msgid:"Select all entries",msgstr:["選擇所有項目"]},{msgid:"Select all existing files",msgstr:["選擇所有現有的檔案"]},{msgid:"Select all new files",msgstr:["選擇所有新檔案"]},{msgid:"Select entry",msgstr:["選擇項目"]},{msgid:"Select the row for {nodename}",msgstr:["選擇 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["跳過 %n 個檔案"]},{msgid:"Skip this file",msgstr:["跳過此檔案"]},{msgid:"Submit name",msgstr:["遞交名字"]},{msgid:"Undo",msgstr:["還原"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上傳一些內容或與您的裝置同步!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾時,其中任何衝突的檔案也將被覆蓋。"]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["當選取傳入資料夾時,內容將寫入現有資料夾,並執行遞歸衝突解決。"]},{msgid:"Which files do you want to keep?",msgstr:["你想保留哪些檔案?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["您目前被識別為 {nickname}。"]},{msgid:"You are currently not identified.",msgstr:["您目前尚未被識別。"]},{msgid:"You cannot leave the name empty.",msgstr:["名稱不能留空。"]},{msgid:"You need to choose at least one conflict solution",msgstr:["你需要選擇至少一種衝突解決方案。"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須選擇每個文件的至少一個版本才能繼續。"]}]},{language:"zh_TW",translations:[{msgid:'"{name}" is an invalid file name.',msgstr:["「{name}」是無效的檔案名稱。"]},{msgid:'"{name}" is not an allowed filetype',msgstr:["「{name}」並非允許的檔案類型"]},{msgid:'"/" is not allowed inside a file name.',msgstr:["檔案名稱中不允許使用「/」。"]},{msgid:"All files",msgstr:["所有檔案"]},{msgid:"Choose",msgstr:["選擇"]},{msgid:"Choose {file}",msgstr:["選擇 {file}"]},{msgid:"Copy",msgstr:["複製"]},{msgid:"Copy to {target}",msgstr:["複製到 {target}"]},{msgid:"Could not create the new folder",msgstr:["無法建立新資料夾"]},{msgid:"Create directory",msgstr:["建立目錄"]},{msgid:"Current view selector",msgstr:["目前檢視選取器"]},{msgid:"Favorites",msgstr:["最愛"]},{msgid:"File name cannot be empty.",msgstr:["檔案名稱不能為空。"]},{msgid:"Filepicker sections",msgstr:["檔案挑選器選取"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您標記為最愛的檔案與資料夾將會顯示在此處。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的檔案與資料夾將會顯示在此處。"]},{msgid:"Filter file list",msgstr:["過濾檔案清單"]},{msgid:"Home",msgstr:["家"]},{msgid:"Mime type {mime}",msgstr:["Mime type {mime}"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["移動至 {target}"]},{msgid:"Name",msgstr:["名稱"]},{msgid:"New",msgstr:["新"]},{msgid:"New folder",msgstr:["新資料夾"]},{msgid:"New folder name",msgstr:["新資料夾名稱"]},{msgid:"No files in here",msgstr:["此處無檔案"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您過濾條件的檔案。"]},{msgid:"No matching files",msgstr:["無符合的檔案"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all entries",msgstr:["選取所有條目"]},{msgid:"Select entry",msgstr:["選取條目"]},{msgid:"Select the row for {nodename}",msgstr:["選取 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Undo",msgstr:["復原"]},{msgid:"unknown",msgstr:["未知"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上傳一些內容或與您的裝置同步"]}]}]){const{language:t,translations:n}=e,u={headers:{},translations:{"":Object.fromEntries(n.map(s=>[s.msgid,s]))}};Jp.addTranslation(t,u)}const Go=Jp.build();Go.ngettext.bind(Go);const qs=Go.gettext.bind(Go);Lc().setApp("@nextcloud/dialogs").detectLogLevel().build();const O4=7e3,ow=Te({__name:"ToastContainer",setup(e,{expose:t}){let n=null;const u=bn("politeRef"),s=bn("assertiveRef"),i=bn("containerRef"),r=be(!1);function o({open:c}){r.value=c}function a(c,d){if(d==="assertive"){const g=s.value;if(!g)return;n!==null&&(clearTimeout(n),n=null),g.textContent="",setTimeout(()=>{g&&(g.textContent=c,n=setTimeout(()=>{g.textContent="",n=null},O4))},50)}else{const g=u.value;if(!g)return;const m=document.createElement("li");m.textContent=c,g.appendChild(m),setTimeout(()=>m.remove(),O4)}}function l(){return i.value}return Qt(()=>{const c=document.querySelector(".app-navigation");c&&(r.value=!c.classList.contains("app-navigation--close")),Oc("navigation-toggled",o)}),Bn(()=>{Ip("navigation-toggled",o)}),t({announce:a,getContainerEl:l}),(c,d)=>(D(),R(qe,null,[H("ul",{ref_key:"politeRef",ref:u,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions",class:"hidden-visually"},null,512),H("div",{ref_key:"assertiveRef",ref:s,"aria-live":"assertive","aria-atomic":"true",class:"hidden-visually"},null,512),H("div",{ref_key:"containerRef",ref:i,class:Ae([c.$style.toastContainer,{[c.$style.toastContainer_navOpen]:r.value}])},null,2)],64))}}),aw="_toastContainer_1biev_1",lw="_toastContainer_navOpen_1biev_15",cw={toastContainer:aw,toastContainer_navOpen:lw},Qp=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n},dw={$style:cw},L4=Qp(ow,[["__cssModules",dw]]),mw=["role"],gw=["innerHTML"],fw=Te({__name:"ToastNotification",props:{message:{},isHTML:{type:Boolean,default:!1},type:{default:void 0},timeout:{},noClose:{type:Boolean,default:!1},role:{},onClick:{type:Function,default:void 0},onUndo:{type:Function,default:void 0}},emits:["dismiss"],setup(e,{expose:t,emit:n}){const u=e,s=n,i=be(null);let r=null;const o=IC(),a=Z(()=>u.type?o[`toast_${u.type.replace(/^toast-/,"")}`]:null),l=Z(()=>typeof u.message=="string"),c=Z(()=>u.type===K0.LOADING),d=Z(()=>u.type===K0.UNDO);function g(){r!==null&&(clearTimeout(r),r=null),s("dismiss")}function m(f){f.stopPropagation(),u.onUndo?.(f),g()}return Qt(()=>{u.message instanceof Node&&i.value&&i.value.appendChild(u.message),u.timeout>0&&(r=setTimeout(g,u.timeout))}),Bn(()=>{r!==null&&(clearTimeout(r),r=null)}),t({hide:g}),(f,p)=>(D(),R("div",{class:Ae([f.$style.toast,a.value,{[f.$style.toast_clickable]:e.onClick}]),role:e.role,onClick:p[0]||(p[0]=E=>e.onClick?.())},[c.value?(D(),R(qe,{key:0},[H("span",{class:Ae(f.$style.toastMessage)},te(e.message),3),H("span",{class:Ae(f.$style.toastLoader),"aria-hidden":"true"},[le(N(Fc),{size:20})],2)],64)):d.value?(D(),R(qe,{key:1},[H("span",{class:Ae(f.$style.toastMessage)},te(e.message),3),le(N(dt),{class:Ae(f.$style.toastUndoButton),variant:"tertiary",onClick:ln(m,["stop"])},{default:re(()=>[Re(te(N(qs)("Undo")),1)]),_:1},8,["class"])],64)):(D(),R(qe,{key:2},[e.isHTML&&l.value?(D(),R("span",{key:0,class:Ae(f.$style.toastMessage),innerHTML:e.message},null,10,gw)):l.value?(D(),R("span",{key:1,class:Ae(f.$style.toastMessage)},te(e.message),3)):(D(),R("span",{key:2,ref_key:"nodeRef",ref:i,class:Ae(f.$style.toastMessage)},null,2))],64)),e.noClose?me("",!0):(D(),pe(N(dt),{key:3,class:Ae(f.$style.toastClose),variant:"tertiary","aria-label":N(qs)("Close"),onClick:ln(g,["stop"])},{icon:re(()=>[le(N(St),{path:N(rw),size:20},null,8,["path"])]),_:1},8,["class","aria-label"]))],10,mw))}}),pw="_toast_v43ag_11",hw="_toast_clickable_v43ag_25",vw="_toast_error_v43ag_29",Ew="_toast_info_v43ag_33",Cw="_toast_warning_v43ag_37",yw="_toast_success_v43ag_41",xw="_toast_undo_v43ag_45",bw="_toast_loading_v43ag_49",ww="_toastMessage_v43ag_53",kw="_toastLoader_v43ag_58",Bw="_toastClose_v43ag_59",Aw="_toastUndoButton_v43ag_60",Dw={toast:pw,"toast-in":"_toast-in_v43ag_1",toast_clickable:hw,toast_error:vw,toast_info:Ew,toast_warning:Cw,toast_success:yw,toast_undo:xw,toast_loading:bw,toastMessage:ww,toastLoader:kw,toastClose:Bw,toastUndoButton:Aw},Fw={$style:Dw},Sw=Qp(fw,[["__cssModules",Fw]]);var K0=(e=>(e.ERROR="toast-error",e.WARNING="toast-warning",e.INFO="toast-info",e.SUCCESS="toast-success",e.UNDO="toast-undo",e.LOADING="toast-loading",e))(K0||{});const _w="off",Nw="polite",Tw="assertive";var Us=(e=>(e[e.OFF=_w]="OFF",e[e.POLITE=Nw]="POLITE",e[e.ASSERTIVE=Tw]="ASSERTIVE",e))(Us||{});const zw=7e3,Ow=-1;function Lw(e){return e===Ow||e>0}function Iw(){try{const e=iw()?.theming?.toastTimeout;if(typeof e=="number"&&Lw(e))return e}catch{}return zw}const I4="__nc_toast_container__";function eh(e){if(e){const i=document.querySelector(e);if(i){const r=document.createElement("div");return i.appendChild(r),To(L4).mount(r)}}const t=window,n=t[I4];if(n&&document.body.contains(n.el))return n.api;const u=document.createElement("div");document.body.appendChild(u);const s=To(L4).mount(u);return t[I4]={api:s,el:u},s}function Pw(e){const t=eh(e.selector).getContainerEl()??document.body,n=document.createElement("div");n.style.cssText="display:contents",t.appendChild(n);const u=To(Sw,{message:e.message,isHTML:e.isHTML,type:e.type,timeout:e.timeout,noClose:!e.close,role:e.role,onClick:e.onClick,onUndo:e.onUndo,onDismiss:()=>{e.onRemove?.(),u.unmount(),n.remove()}}),s=u.mount(n);return{hideToast:()=>s.hide()}}function Y0(e){return e instanceof Element&&e.getAttribute("aria-hidden")==="true"?"":e.nodeType===Node.TEXT_NODE?e.textContent??"":Array.from(e.childNodes).map(Y0).join("")}function Rw(e,t){return typeof e=="string"?t?Y0(new DOMParser().parseFromString(e,"text/html").body):e:Y0(e)}function th(e,t){const n={timeout:Iw(),isHTML:!1,type:void 0,selector:void 0,onRemove:void 0,onClick:void 0,close:!0,ariaLive:void 0,...t};typeof e=="string"&&!n.isHTML&&(e=new DOMParser().parseFromString(e,"text/html").body.innerText);let u=Us.POLITE;if(n.ariaLive?u=n.ariaLive:(n.type==="toast-error"||n.type==="toast-undo")&&(u=Us.ASSERTIVE),u!==Us.OFF){const s=Rw(e,n.isHTML),i={"toast-error":qs("Error: {message}",{message:s}),"toast-warning":qs("Warning: {message}",{message:s}),"toast-info":qs("Info: {message}",{message:s}),"toast-success":qs("Success: {message}",{message:s})},r=(n.type&&i[n.type])??s;eh(n.selector).announce(r,u===Us.ASSERTIVE?"assertive":"polite")}return Pw({message:e,isHTML:n.isHTML,type:n.type,timeout:n.timeout,close:n.close,role:u===Us.ASSERTIVE?"alert":"status",selector:n.selector,onRemove:n.onRemove,onClick:n.onClick,onUndo:void 0})}function pu(e,t){return th(e,{...t,type:"toast-error"})}function Zo(e,t){return th(e,{...t,type:"toast-success"})}const jw={name:"TrayArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mw=["aria-hidden","aria-label"],$w=["fill","width","height"],Vw={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z"},Uw={key:0};function Hw(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon tray-arrow-down-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",Vw,[n.title?(D(),R("title",Uw,te(n.title),1)):me("",!0)])],8,$w))],16,Mw)}const Ww=st(jw,[["render",Hw]]),qw={name:"TrayArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Kw=["aria-hidden","aria-label"],Yw=["fill","width","height"],Gw={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"},Zw={key:0};function Xw(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon tray-arrow-up-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",Gw,[n.title?(D(),R("title",Zw,te(n.title),1)):me("",!0)])],8,Yw))],16,Kw)}const Jw=st(qw,[["render",Xw]]);function nh(e,t){return function(){return e.apply(t,arguments)}}const{toString:Qw}=Object.prototype,{getPrototypeOf:Hu}=Object,{iterator:Fr,toStringTag:uh}=Symbol,hr=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),sh=e=>typeof e=="string"&&(e==="__proto__"||e==="constructor"||e==="prototype"),ih=(e,t,n)=>e===Object.prototype||!n&&t===null,ek=e=>{if(!Object.isExtensible(e))return!1;const t=Object.getOwnPropertyNames(e);return Object.getOwnPropertySymbols&&t.push(...Object.getOwnPropertySymbols(e)),t.every(n=>{if(sh(n))return!1;const u=Object.getOwnPropertyDescriptor(e,n);return!!u&&u.configurable&&u.writable===!0})},vr=(e,t)=>{let n=e;const u=[];for(;n!=null;){if(u.indexOf(n)!==-1)return!1;u.push(n);const s=Hu(n);if(ih(n,s,n===e))return!1;if(hr(n,t))return!0;n=s}return!1},tk=(e,t)=>e!=null&&vr(e,t)?e[t]:void 0,nk=e=>{if(e==null||typeof e!="object"&&typeof e!="function")return e;const t=Hu(e);if(t===null&&ek(e))return e;const n=Object.create(null),u=Object.create(null),s=[];let i=e;for(;i!=null&&s.indexOf(i)===-1;){s.push(i);const r=i===e?t:Hu(i);if(ih(i,r,i===e))break;const o=Object.getOwnPropertyNames(i);Object.getOwnPropertySymbols&&o.push(...Object.getOwnPropertySymbols(i));for(const a of o)sh(a)||hr(u,a)||(n[a]=e[a],u[a]=!0);i=r}return n},Rc=(e=>t=>{const n=Qw.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),An=e=>(e=e.toLowerCase(),t=>Rc(t)===e),za=e=>t=>typeof t===e,{isArray:xs}=Array,bs=za("undefined");function oi(e){return e!==null&&!bs(e)&&e.constructor!==null&&!bs(e.constructor)&&Xt(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const rh=An("ArrayBuffer");function uk(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&rh(e.buffer),t}const sk=za("string"),Xt=za("function"),oh=za("number"),ai=e=>e!==null&&typeof e=="object",ik=e=>e===!0||e===!1,ao=e=>{if(!ai(e))return!1;const t=Hu(e);return(t===null||t===Object.prototype||Hu(t)===null)&&!vr(e,uh)&&!vr(e,Fr)},rk=e=>{if(!ai(e)||oi(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},ok=An("Date"),ak=An("File"),lk=e=>!!(e&&typeof e.uri<"u"),ck=e=>e&&typeof e.getParts<"u",dk=An("Blob"),mk=An("FileList"),gk=An("Set"),fk=e=>ai(e)&&Xt(e.pipe);function pk(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Ji<"u"?Ji:{}}const P4=pk(),R4=typeof P4.FormData<"u"?P4.FormData:void 0,hk=e=>{if(!e)return!1;if(R4&&e instanceof R4)return!0;const t=Hu(e);if(!t||t===Object.prototype||!Xt(e.append))return!1;const n=Rc(e);return n==="formdata"||n==="object"&&Xt(e.toString)&&e.toString()==="[object FormData]"},vk=An("URLSearchParams"),[Ek,Ck,yk,xk]=["ReadableStream","Request","Response","Headers"].map(An),bk=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Sr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let u,s;if(typeof e!="object"&&(e=[e]),xs(e))for(u=0,s=e.length;u0;)if(s=n[u],t===s.toLowerCase())return s;return null}const ds=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ji,lh=e=>!bs(e)&&e!==ds;function G0(...e){const{caseless:t,skipUndefined:n}=lh(this)&&this||{},u={},s=(i,r)=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;const o=t&&typeof r=="string"&&ah(u,r)||r,a=hr(u,o)?u[o]:void 0;ao(a)&&ao(i)?u[o]=G0(a,i):ao(i)?u[o]=G0({},i):xs(i)?u[o]=i.slice():(!n||!bs(i))&&(u[o]=i)};for(let i=0,r=e.length;i(Sr(t,(s,i)=>{n&&Xt(s)?Object.defineProperty(e,i,{__proto__:null,value:nh(s,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,i,{__proto__:null,value:s,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:u}),e),kk=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Bk=(e,t,n,u)=>{e.prototype=Object.create(t.prototype,u),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},Ak=(e,t,n,u)=>{let s,i,r;const o={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)r=s[i],(!u||u(r,e,t))&&!o[r]&&(t[r]=e[r],o[r]=!0);e=n!==!1&&Hu(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Dk=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const u=e.indexOf(t,n);return u!==-1&&u===n},Fk=e=>{if(!e)return null;if(xs(e))return e;let t=e.length;if(!oh(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Sk=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Hu(Uint8Array)),_k=(e,t)=>{const n=(e&&e[Fr]).call(e);let u;for(;(u=n.next())&&!u.done;){const s=u.value;t.call(e,s[0],s[1])}},Nk=(e,t)=>{let n;const u=[];for(;(n=e.exec(t))!==null;)u.push(n);return u},Tk=An("HTMLFormElement"),zk=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,n,u){return n.toUpperCase()+u}),{propertyIsEnumerable:Ok}=Object.prototype,Lk=An("RegExp"),ch=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),u={};Sr(n,(s,i)=>{let r;(r=t(s,i,e))!==!1&&(u[i]=r||s)}),Object.defineProperties(e,u)},Ik=e=>{ch(e,(t,n)=>{if(Xt(e)&&["arguments","caller","callee"].includes(n))return!1;const u=e[n];if(Xt(u)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Pk=(e,t)=>{const n={},u=s=>{s.forEach(i=>{n[i]=!0})};return xs(e)?u(e):u(String(e).split(t)),n},Rk=()=>{},jk=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Mk(e){return!!(e&&Xt(e.append)&&e[uh]==="FormData"&&e[Fr])}const $k=e=>{const t=new WeakSet,n=u=>{if(ai(u)){if(t.has(u))return;if(oi(u))return u;if(!("toJSON"in u)){t.add(u);let s;if(gk(u)){s=[];for(const i of u){const r=n(i);!bs(r)&&s.push(r)}}else s=xs(u)?[]:{},Sr(u,(i,r)=>{const o=n(i);!bs(o)&&(s[r]=o)});return t.delete(u),s}}return u};return n(e)},Vk=An("AsyncFunction"),Uk=e=>e&&(ai(e)||Xt(e))&&Xt(e.then)&&Xt(e.catch),dh=((e,t)=>e?setImmediate:t?((n,u)=>(ds.addEventListener("message",({source:s,data:i})=>{s===ds&&i===n&&u.length&&u.shift()()},!1),s=>{u.push(s),ds.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Xt(ds.postMessage)),Hk=typeof queueMicrotask<"u"?queueMicrotask.bind(ds):typeof W0<"u"&&W0.nextTick||dh,mh=e=>e!=null&&Xt(e[Fr]),Wk=e=>e!=null&&vr(e,Fr)&&mh(e),_={isArray:xs,isArrayBuffer:rh,isBuffer:oi,isFormData:hk,isArrayBufferView:uk,isString:sk,isNumber:oh,isBoolean:ik,isObject:ai,isPlainObject:ao,isEmptyObject:rk,isReadableStream:Ek,isRequest:Ck,isResponse:yk,isHeaders:xk,isUndefined:bs,isDate:ok,isFile:ak,isReactNativeBlob:lk,isReactNative:ck,isBlob:dk,isRegExp:Lk,isFunction:Xt,isStream:fk,isURLSearchParams:vk,isTypedArray:Sk,isFileList:mk,forEach:Sr,merge:G0,extend:wk,trim:bk,stripBOM:kk,inherits:Bk,toFlatObject:Ak,kindOf:Rc,kindOfTest:An,endsWith:Dk,toArray:Fk,forEachEntry:_k,matchAll:Nk,isHTMLForm:Tk,hasOwnProperty:hr,hasOwnProp:hr,hasOwnInPrototypeChain:vr,getSafeProp:tk,toSafeFlatObject:nk,reduceDescriptors:ch,freezeMethods:Ik,toObjectSet:Pk,toCamelCase:zk,noop:Rk,toFiniteNumber:jk,findKey:ah,global:ds,isContextDefined:lh,isSpecCompliantForm:Mk,toJSONObject:$k,isAsyncFn:Vk,isThenable:Uk,setImmediate:dh,asap:Hk,isIterable:mh,isSafeIterable:Wk},qk=_.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"]),Kk=e=>{const t={};let n,u,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),u=i.substring(s+1).trim();const r=_.hasOwnProp(t,n);!n||r&&_.hasOwnProp(qk,n)||(n==="set-cookie"?r?t[n].push(u):t[n]=[u]:t[n]=r?t[n]+", "+u:u)}),t};function Yk(e){let t=0,n=e.length;for(;tt;){const u=e.charCodeAt(n-1);if(u!==9&&u!==32)break;n-=1}return t===0&&n===e.length?e:e.slice(t,n)}const Gk=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),Zk=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function jc(e,t){return _.isArray(e)?e.map(n=>jc(n,t)):Yk(String(e).replace(t,""))}const Xk=e=>jc(e,Gk),Jk=e=>jc(e,Zk);function gh(e){const t=Object.create(null);return _.forEach(e.toJSON(),(n,u)=>{t[u]=Jk(n)}),t}const j4=Symbol("internals");function ki(e){return e&&String(e).trim().toLowerCase()}function lo(e){return e===!1||e==null?e:_.isArray(e)?e.map(lo):Xk(String(e))}function Qk(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let u;for(;u=n.exec(e);)t[u[1]]=u[2];return t}const eB=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function $l(e){let t=0,n=e.length;for(;tt;){const u=e.charCodeAt(n-1);if(u!==9&&u!==32)break;n-=1}return t===0&&n===e.length?e:e.slice(t,n)}function tB(e){const t=e.length-1;if(t<1||e.charCodeAt(0)!==34||e.charCodeAt(t)!==34)return e;let n="";for(let u=1;u=t))return e;n+=e[u]}return n}function nB(e){const t=Object.create(null),n=String(e);let u=0,s=!1,i=!1;function r(o){const a=$l(n.slice(u,o)),l=a.indexOf("=");if(l<1)return;const c=$l(a.slice(0,l));if(!eB.test(c))return;const d=c.toLowerCase();if(d==="__proto__"||d==="constructor"||d==="prototype")return;const g=$l(a.slice(l+1));t[d]=tB(g)}for(let o=0;o/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Vl(e,t,n,u,s){if(_.isFunction(u))return u.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(u))return t.indexOf(u)!==-1;if(_.isRegExp(u))return u.test(t)}}function sB(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,u)=>n.toUpperCase()+u)}function iB(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(u=>{Object.defineProperty(e,u+n,{__proto__:null,value:function(s,i,r){return this[u].call(this,t,s,i,r)},configurable:!0})})}let Vt=class{constructor(e){e&&this.set(e)}set(e,t,n){const u=this;function s(r,o,a){const l=ki(o);if(!l)return;const c=_.findKey(u,l);(!c||u[c]===void 0||a===!0||a===void 0&&u[c]!==!1)&&(u[c||o]=lo(r))}const i=(r,o)=>_.forEach(r,(a,l)=>s(a,l,o));if(_.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(_.isString(e)&&(e=e.trim())&&!uB(e))i(Kk(e),t);else if(_.isObject(e)&&_.isSafeIterable(e)){let r=Object.create(null),o,a;for(const l of e){if(!_.isArray(l))throw new TypeError("Object iterator must return a key-value pair");a=l[0],_.hasOwnProp(r,a)?(o=r[a],r[a]=_.isArray(o)?[...o,l[1]]:[o,l[1]]):r[a]=l[1]}i(r,t)}else e!=null&&s(t,e,n);return this}get(e,t){if(e=ki(e),e){const n=_.findKey(this,e);if(n){const u=this[n];if(!t)return u;if(t===!0)return Qk(u);if(_.isFunction(t))return t.call(this,u,n);if(_.isRegExp(t))return t.exec(u);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=ki(e),e){const n=_.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||Vl(this,this[n],n,t)))}return!1}delete(e,t){const n=this;let u=!1;function s(i){if(i=ki(i),i){const r=_.findKey(n,i);r&&(!t||Vl(n,n[r],r,t))&&(delete n[r],u=!0)}}return _.isArray(e)?e.forEach(s):s(e),u}clear(e){const t=Object.keys(this);let n=t.length,u=!1;for(;n--;){const s=t[n];(!e||Vl(this,this[s],s,e,!0))&&(delete this[s],u=!0)}return u}normalize(e){const t=this,n={};return _.forEach(this,(u,s)=>{const i=_.findKey(n,s);if(i){t[i]=lo(u),delete t[s];return}const r=e?sB(s):String(s).trim();r!==s&&delete t[s],t[r]=lo(u),n[r]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return _.forEach(this,(n,u)=>{n!=null&&n!==!1&&(t[u]=e&&_.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join(` +`)}getSetCookie(){const e=this.get("set-cookie");return _.isArray(e)?e:e==null||e===!1?[]:[e]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static parseParameters(e){return nB(e)}static concat(e,...t){const n=new this(e);return t.forEach(u=>n.set(u)),n}static accessor(e){const t=(this[j4]=this[j4]={accessors:{}}).accessors,n=this.prototype;function u(s){const i=ki(s);t[i]||(iB(n,s),t[i]=!0)}return _.isArray(e)?e.forEach(u):u(e),this}};Vt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),_.reduceDescriptors(Vt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(u){this[n]=u}}}),_.freezeMethods(Vt);const Xo="[REDACTED ****]";function rB(e){if(_.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(_.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}function oB(e,t){const n=new Set(t.map(i=>String(i).toLowerCase())),u=[],s=i=>{if(i===null||typeof i!="object"||_.isBuffer(i))return i;if(u.indexOf(i)!==-1)return;i instanceof Vt&&(i=i.toJSON()),u.push(i);let r;if(_.isArray(i))r=[],i.forEach((o,a)=>{const l=s(o);_.isUndefined(l)||(r[a]=l)});else{if(!_.isPlainObject(i)&&rB(i))return u.pop(),i;r=Object.create(null);for(const[o,a]of Object.entries(i)){const l=n.has(o.toLowerCase())?Xo:s(a);_.isUndefined(l)||(r[o]=l)}}return u.pop(),r};return s(e)}function M4(e){try{return String(e)}catch{return""}}function aB(e){return e.errors.map(t=>{try{return t&&t.message?M4(t.message):M4(t)}catch{return""}}).filter(Boolean).join("; ")||e.name||"AggregateError"}let de=class fh extends Error{static from(t,n,u,s,i,r){let o=t.message;!o&&_.isArray(t.errors)&&t.errors.length&&(o=aB(t));const a=new fh(o,n||t.code,u,s,i);return Object.defineProperty(a,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),a.name=t.name,t.status!=null&&a.status==null&&(a.status=t.status),r&&Object.assign(a,r),a}constructor(t,n,u,s,i){super(t),Object.defineProperty(this,"message",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),u&&(this.config=u),s&&(this.request=s),i&&(this.response=i,this.status=i.status)}toJSON(){const t=this.config,n=t&&_.hasOwnProp(t,"redact")?t.redact:void 0,u=_.isArray(n)&&n.length>0?oB(t,n):_.toJSONObject(t);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:u,code:this.code,status:this.status}}};de.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",de.ERR_BAD_OPTION="ERR_BAD_OPTION",de.ECONNABORTED="ECONNABORTED",de.ETIMEDOUT="ETIMEDOUT",de.ECONNREFUSED="ECONNREFUSED",de.ERR_NETWORK="ERR_NETWORK",de.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",de.ERR_DEPRECATED="ERR_DEPRECATED",de.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",de.ERR_BAD_REQUEST="ERR_BAD_REQUEST",de.ERR_CANCELED="ERR_CANCELED",de.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",de.ERR_INVALID_URL="ERR_INVALID_URL",de.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const lB=null,ph=100;function Z0(e){return _.isPlainObject(e)||_.isArray(e)}function hh(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function Ul(e,t,n){return e?e.concat(t).map(function(u,s){return u=hh(u),!n&&s?"["+u+"]":u}).join(n?".":""):t}function cB(e){return _.isArray(e)&&!e.some(Z0)}const dB=_.toFlatObject(_,{},null,function(e){return/^is[A-Z]/.test(e)});function Oa(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const u=(C,y)=>{const k=_.getSafeProp(n,C);return _.isUndefined(k)?y:k},s=u("metaTokens",!0),i=u("visitor")||p,r=u("dots",!1),o=u("indexes",!1),a=u("Blob")||typeof Blob<"u"&&Blob,l=u("maxDepth",ph),c=a&&_.isSpecCompliantForm(t),d=[];if(!_.isFunction(i))throw new TypeError("visitor must be a function");function g(C){if(C===null)return"";if(_.isDate(C))return C.toISOString();if(_.isBoolean(C))return C.toString();if(!c&&_.isBlob(C))throw new de("Blob is not supported. Use a Buffer instead.");if(_.isArrayBuffer(C)||_.isTypedArray(C)){if(c&&typeof a=="function")return new a([C]);throw new de("Blob is not supported. Use a Buffer instead.",de.ERR_NOT_SUPPORT)}return C}function m(C){if(C>l)throw new de("Object is too deeply nested ("+C+" levels). Max depth: "+l,de.ERR_FORM_DATA_DEPTH_EXCEEDED)}function f(C,y){if(l===1/0)return JSON.stringify(C);const k=[];return JSON.stringify(C,function(j,F){if(!_.isObject(F))return F;for(;k.length&&k[k.length-1]!==this;)k.pop();return k.push(F),m(y+k.length-1),F})}function p(C,y,k){let j=C;if(_.isReactNative(t)&&_.isReactNativeBlob(C))return t.append(Ul(k,y,r),g(C)),!1;if(C&&!k&&typeof C=="object"){if(_.endsWith(y,"{}"))y=s?y:y.slice(0,-2),C=f(C,1);else if(_.isArray(C)&&cB(C)||(_.isFileList(C)||_.endsWith(y,"[]"))&&(j=_.toArray(C)))return y=hh(y),j.forEach(function(F,P){!(_.isUndefined(F)||F===null)&&t.append(o===!0?Ul([y],P,r):o===null?y:y+"[]",g(F))}),!1}return Z0(C)?!0:(t.append(Ul(k,y,r),g(C)),!1)}const E=Object.assign(dB,{defaultVisitor:p,convertValue:g,isVisitable:Z0});function v(C,y,k=0){if(!_.isUndefined(C)){if(m(k),d.indexOf(C)!==-1)throw new Error("Circular reference detected in "+y.join("."));d.push(C),_.forEach(C,function(j,F){(!(_.isUndefined(j)||j===null)&&i.call(t,j,_.isString(F)?F.trim():F,y,E))===!0&&v(j,y?y.concat(F):[F],k+1)}),d.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return v(e),t}function $4(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(n){return t[n]})}function Mc(e,t){this._pairs=[],e&&Oa(e,this,t)}const V4=Mc.prototype;V4.append=function(e,t){this._pairs.push([e,t])},V4.toString=function(e){const t=e?n=>e.call(this,n,$4):$4;return this._pairs.map(function(n){return t(n[0])+"="+t(n[1])},"").join("&")};function mB(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function vh(e,t,n){if(!t)return e;e=e||"";const u=_.isFunction(n)?{serialize:n}:n,s=_.getSafeProp(u,"encode")||mB,i=_.getSafeProp(u,"serialize");let r;if(i?r=i(t,u):r=_.isURLSearchParams(t)?t.toString():new Mc(t,u).toString(s),r){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+r}return e}const Bi=Symbol("internals");function Eh(e){return e?e.length:0}function U4(e){if(e)for(;e.length&&e[e.length-1]===null;)e.pop()}function Ai(e,t){const n=e.handlers,u=Eh(n);n!==t.handlersRef?(t.handlersRef=n,t.handlerEntries.clear()):u!==t.handlersLength&&(u?t.handlerEntries.forEach(function(s,i){n[s.index]!==s.handler&&t.handlerEntries.delete(i)}):t.handlerEntries.clear()),t.handlersLength=u}class H4{constructor(){this.handlers=[],this[Bi]={handlersRef:this.handlers,handlersLength:this.handlers.length,handlerEntries:new Map,iterationDepth:0,nextId:0}}use(t,n,u){const s={fulfilled:t,rejected:n,synchronous:u?u.synchronous:!1,runWhen:u?u.runWhen:null},i=this[Bi];this.handlers==null&&(this.handlers=[]),Ai(this,i);const r=i.nextId++;return this.handlers.push(s),i.handlerEntries.set(r,{handler:s,index:this.handlers.length-1}),i.handlersLength=this.handlers.length,r}eject(t){const n=this[Bi];Ai(this,n);const u=n.handlerEntries.get(t);if(u){if(n.handlerEntries.delete(t),this.handlers[u.index]!==u.handler)return;this.handlers[u.index]=null,n.iterationDepth||(U4(this.handlers),n.handlersLength=this.handlers.length)}}clear(){this.handlers&&(this.handlers=[],Ai(this,this[Bi]))}forEach(t){const n=this[Bi];Ai(this,n),n.iterationDepth++;try{_.forEach(this.handlers,function(u){u!==null&&t(u)})}finally{--n.iterationDepth||(Ai(this,n),U4(this.handlers),n.handlersLength=Eh(this.handlers))}}}const $c={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},gB=typeof URLSearchParams<"u"?URLSearchParams:Mc,fB=typeof FormData<"u"?FormData:null,pB=typeof Blob<"u"?Blob:null,hB={isBrowser:!0,classes:{URLSearchParams:gB,FormData:fB,Blob:pB},protocols:["http","https","file","blob","url","data"]},Vc=typeof window<"u"&&typeof document<"u",X0=typeof navigator=="object"&&navigator||void 0,vB=Vc&&(!X0||["ReactNative","NativeScript","NS"].indexOf(X0.product)<0),EB=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",CB=Vc&&window.location.href||"http://localhost",yB=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Vc,hasStandardBrowserEnv:vB,hasStandardBrowserWebWorkerEnv:EB,navigator:X0,origin:CB},Symbol.toStringTag,{value:"Module"})),xt={...yB,...hB};function xB(e,t){return Oa(e,new xt.classes.URLSearchParams,{visitor:function(n,u,s,i){return xt.isNode&&_.isBuffer(n)?(this.append(u,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}const W4=ph;function Ch(e){if(e>W4)throw new de("FormData field is too deeply nested ("+e+" levels). Max depth: "+W4,de.ERR_FORM_DATA_DEPTH_EXCEEDED)}function bB(e){const t=[],n=/[^.[\]]+|\[([^.[\]]*)]/g;let u;for(;(u=n.exec(e))!==null;)Ch(t.length),t.push(u[0]==="[]"?"":u[1]||u[0]);return t}function wB(e){const t={},n=Object.keys(e);let u;const s=n.length;let i;for(u=0;u=n.length;return r=!r&&_.isArray(s)?s.length:r,a?(_.hasOwnProp(s,r)?s[r]=_.isArray(s[r])?s[r].concat(u):[s[r],u]:s[r]=u,!o):((!_.hasOwnProp(s,r)||!_.isObject(s[r]))&&(s[r]=[]),t(n,u,s[r],i)&&_.isArray(s[r])&&(s[r]=wB(s[r])),!o)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(u,s)=>{t(bB(u),s,n,0)}),n}return null}const xh=Object.freeze(["get","delete","head","options","post","put","patch","purge","link","unlink","query"]),Is=(e,t)=>e!=null&&_.hasOwnProp(e,t)?e[t]:void 0;function kB(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(u){if(u.name!=="SyntaxError")throw u}return(n||JSON.stringify)(e)}const _r={transitional:$c,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",u=n.indexOf("application/json")>-1,s=_.isObject(e);if(s&&_.isHTMLForm(e)&&(e=new FormData(e)),_.isFormData(e))return u?JSON.stringify(yh(e)):e;if(_.isArrayBuffer(e)||_.isBuffer(e)||_.isStream(e)||_.isFile(e)||_.isBlob(e)||_.isReadableStream(e))return e;if(_.isArrayBufferView(e))return e.buffer;if(_.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(s){const r=Is(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return xB(e,r).toString();if((i=_.isFileList(e))||n.indexOf("multipart/form-data")>-1){const o=Is(this,"env"),a=o&&o.FormData;return Oa(i?{"files[]":e}:e,a&&new a,r)}}return s||u?(t.setContentType("application/json",!1),kB(e)):e}],transformResponse:[function(e){const t=Is(this,"transitional")||_r.transitional,n=t&&t.forcedJSONParsing,u=Is(this,"responseType"),s=u==="json";if(_.isResponse(e)||_.isReadableStream(e))return e;if(e&&_.isString(e)&&(n&&!u||s)){const i=!(t&&t.silentJSONParsing)&&s;try{return JSON.parse(e,Is(this,"parseReviver"))}catch(r){if(i)throw r.name==="SyntaxError"?de.from(r,de.ERR_BAD_RESPONSE,this,null,Is(this,"response")):r}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:xt.classes.FormData,Blob:xt.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(xh,e=>{_r.headers[e]={}});function Hl(e,t){const n=this||_r,u=t||n,s=Vt.from(u.headers);let i=u.data;return _.forEach(e,function(r){i=r.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function bh(e){return!!(e&&e.__CANCEL__)}let Nr=class extends de{constructor(e,t,n){super(e??"canceled",de.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function wh(e,t,n){const u=n.config.validateStatus;!n.status||!u||u(n.status)?e(n):t(new de("Request failed with status code "+n.status,n.status>=400&&n.status<500?de.ERR_BAD_REQUEST:de.ERR_BAD_RESPONSE,n.config,n.request,n))}const BB=/[\t\n\r]/g;function kh(e){if(typeof e!="string")return e;let t=0;for(;t{n=a,s=null,i&&(clearTimeout(i),i=null),e(...o)};return[(...o)=>{const a=Date.now(),l=a-n;l>=u?r(o,a):(s=o,i||(i=setTimeout(()=>{i=null,r(s)},u-l)))},()=>s&&r(s),(...o)=>r(o)]}const Jo=(e,t,n=3)=>{let u=0;const s=AB(50,250);return DB(i=>{if(!i||!_.isNumber(i.loaded))return;const r=i.loaded,o=i.lengthComputable?i.total:void 0,a=Math.max(0,o!=null?Math.min(r,o):r),l=Math.max(0,a-u),c=s(l);u=Math.max(u,a);const d={loaded:a,total:o,progress:o?a/o:void 0,bytes:l,rate:c||void 0,estimated:c&&o?(o-a)/c:void 0,event:i,lengthComputable:o!=null,[t?"download":"upload"]:!0};e(d)},n)},q4=(e,t)=>{const n=e!=null;return[u=>t[0]({lengthComputable:n,total:e,loaded:u}),t[1]]},K4=(e,t=_.asap)=>(...n)=>t(()=>e(...n)),FB=xt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,xt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(xt.origin),xt.navigator&&/(msie|trident)/i.test(xt.navigator.userAgent)):()=>!0,SB=xt.hasStandardBrowserEnv?{write(e,t,n,u,s,i,r){if(typeof document>"u")return;const o=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&o.push(`expires=${new Date(n).toUTCString()}`),_.isString(u)&&o.push(`path=${u}`),_.isString(s)&&o.push(`domain=${s}`),i===!0&&o.push("secure"),_.isString(r)&&o.push(`SameSite=${r}`),document.cookie=o.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.split(";");for(let n=0;n0&&e.charCodeAt(n-1)===47;)n--;return e.slice(0,n)+"/"+t.replace(/^\/+/,"")}const TB=/^https?:(?!\/\/)/i;function zB(e){return e&&e.replace(/(^|&)([^=&]*=)?[^&]+/g,(t,n,u="")=>`${n}${u}${Xo}`)}function OB(e){const t=e.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${Xo}@`),n=t.indexOf("#"),u=(n===-1?t:t.slice(0,n)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${Xo}`);return n===-1?u:`${u}#${zB(t.slice(n+1))}`}function Y4(e,t){if(typeof e=="string"){const n=kh(e);if(TB.test(n))throw new de(`Invalid URL ${JSON.stringify(OB(n))}: missing "//" after protocol`,de.ERR_INVALID_URL,t)}}function Bh(e,t,n,u){Y4(t,u);let s=!_B(t);return e&&(s||n===!1)?(Y4(e,u),NB(e,t)):t}const G4=e=>e instanceof Vt?{...e}:e,LB=e=>Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(e).concat(Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)):Object.keys(e);function ws(e,t){e=e||{},t=t||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function u(c,d,g,m){return _.isPlainObject(c)&&_.isPlainObject(d)?_.merge.call({caseless:m},c,d):_.isPlainObject(d)?_.merge({},d):_.isArray(d)?d.slice():d}function s(c,d,g,m){if(_.isUndefined(d)){if(!_.isUndefined(c))return u(void 0,c,g,m)}else return u(c,d,g,m)}function i(c,d){if(!_.isUndefined(d))return u(void 0,d)}function r(c,d){if(_.isUndefined(d)){if(!_.isUndefined(c))return u(void 0,c)}else return u(void 0,d)}function o(c){const d=_.hasOwnProp(t,"transitional")?t.transitional:void 0;if(!_.isUndefined(d))if(_.isPlainObject(d)){if(_.hasOwnProp(d,c))return d[c]}else return;const g=_.hasOwnProp(e,"transitional")?e.transitional:void 0;if(_.isPlainObject(g)&&_.hasOwnProp(g,c))return g[c]}function a(c,d,g){if(_.hasOwnProp(t,g))return u(c,d);if(_.hasOwnProp(e,g))return u(void 0,c)}const l={url:i,method:i,data:i,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutErrorMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,allowedSocketPaths:r,responseEncoding:r,validateStatus:a,headers:(c,d,g)=>s(G4(c),G4(d),g,!0)};return _.forEach(LB({...e,...t}),function(c){if(c==="__proto__"||c==="constructor"||c==="prototype")return;const d=_.hasOwnProp(l,c)?l[c]:s,g=_.hasOwnProp(e,c)?e[c]:void 0,m=_.hasOwnProp(t,c)?t[c]:void 0,f=d(g,m,c);_.isUndefined(f)&&d!==a||(n[c]=f)}),_.hasOwnProp(t,"validateStatus")&&_.isUndefined(t.validateStatus)&&o("validateStatusUndefinedResolves")===!1&&(_.hasOwnProp(e,"validateStatus")?n.validateStatus=u(void 0,e.validateStatus):delete n.validateStatus),n}const IB=["content-type","content-length"];function PB(e,t,n){if(n!=="content-only"){e.set(t);return}Object.entries(t||{}).forEach(([u,s])=>{IB.includes(u.toLowerCase())&&e.set(u,s)})}const RB=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16)));function Ah(e){const t=ws({},e),n=g=>_.hasOwnProp(t,g)?t[g]:void 0,u=n("data");let s=n("withXSRFToken");const i=n("xsrfHeaderName"),r=n("xsrfCookieName");let o=n("headers");const a=n("auth"),l=n("baseURL"),c=n("allowAbsoluteUrls"),d=n("url");if(t.headers=o=Vt.from(o),t.url=vh(Bh(l,d,c,t),n("params"),n("paramsSerializer")),a){const g=_.getSafeProp(a,"username")||"",m=_.getSafeProp(a,"password")||"";try{o.set("Authorization","Basic "+btoa(g+":"+(m?RB(m):"")))}catch(f){throw de.from(f,de.ERR_BAD_OPTION_VALUE,e)}}if(_.isFormData(u)){const g=_.getSafeProp(u,"getHeaders");xt.hasStandardBrowserEnv||xt.hasStandardBrowserWebWorkerEnv||_.isReactNative(u)?o.setContentType(void 0):_.isFunction(g)&&PB(o,g.call(u),n("formDataHeaderPolicy"))}if(xt.hasStandardBrowserEnv&&(_.isFunction(s)&&(s=s(t)),s===!0||s==null&&FB(t.url))){const g=i&&r&&SB.read(r);g&&o.set(i,g)}return t}const jB=typeof XMLHttpRequest<"u",MB=jB&&function(e){return new Promise(function(t,n){const u=Ah(e);let s=u.data;const i=Vt.from(u.headers).normalize();let{responseType:r,onUploadProgress:o,onDownloadProgress:a}=u,l,c,d,g,m,f;function p(){g&&g(),m&&m(),u.cancelToken&&u.cancelToken.unsubscribe(l),u.signal&&u.signal.removeEventListener("abort",l)}let E=new XMLHttpRequest;E.open(u.method.toUpperCase(),u.url,!0),E.timeout=u.timeout;function v(y){if(!E)return;if(E.status===0&&(Wl(kh(u.url))||Wl(xt.origin))!=="file"&&!(E.responseURL&&E.responseURL.startsWith("file:"))){n(new de("Request aborted",de.ECONNABORTED,e,E)),p(),E=null;return}try{y?f&&f(y):m&&m()}catch(F){setTimeout(()=>{throw F})}if(!E)return;const k=Vt.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),j={data:!r||r==="text"||r==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:k,config:e,request:E};wh(function(F){t(F),p()},function(F){n(F),p()},j),E=null}"onloadend"in E?E.onloadend=v:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.startsWith("file:"))||setTimeout(v)},E.onabort=function(){E&&(n(new de("Request aborted",de.ECONNABORTED,e,E)),p(),E=null)},E.onerror=function(y){const k=y&&y.message?y.message:"Network Error",j=new de(k,de.ERR_NETWORK,e,E);j.event=y||null,n(j),p(),E=null},E.ontimeout=function(){let y=u.timeout?"timeout of "+u.timeout+"ms exceeded":"timeout exceeded";const k=u.transitional||$c;u.timeoutErrorMessage&&(y=u.timeoutErrorMessage),n(new de(y,k.clarifyTimeoutError?de.ETIMEDOUT:de.ECONNABORTED,e,E)),p(),E=null},s===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(gh(i),function(y,k){E.setRequestHeader(k,y)}),_.isUndefined(u.withCredentials)||(E.withCredentials=!!u.withCredentials),r&&r!=="json"&&(E.responseType=u.responseType),a&&([d,m,f]=Jo(a,!0),E.addEventListener("progress",d)),o&&E.upload&&([c,g]=Jo(o),E.upload.addEventListener("progress",c),E.upload.addEventListener("loadend",g)),(u.cancelToken||u.signal)&&(l=y=>{E&&(n(!y||y.type?new Nr(null,e,E):y),E.abort(),p(),E=null)},u.cancelToken&&u.cancelToken.subscribe(l),u.signal&&(u.signal.aborted?l():u.signal.addEventListener("abort",l)));const C=Wl(u.url);if(C&&!xt.protocols.includes(C)){n(new de("Unsupported protocol "+C+":",de.ERR_BAD_REQUEST,e)),p();return}E.send(s||null)})},$B=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const n=new AbortController;let u=!1;const s=function(a){if(!u){u=!0,r();const l=a instanceof Error?a:this.reason;n.abort(l instanceof de?l:new Nr(l instanceof Error?l.message:l))}};let i=t&&setTimeout(()=>{i=null,s(new de(`timeout of ${t}ms exceeded`,de.ETIMEDOUT))},t);const r=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(a=>{a.unsubscribe?a.unsubscribe(s):a.removeEventListener("abort",s)}),e=null)};e.forEach(a=>{if(!u){if(a.aborted){s.call(a);return}a.addEventListener("abort",s,{once:!0})}});const{signal:o}=n;return o.unsubscribe=()=>_.asap(r),o},VB=function*(e,t){let n=e.byteLength;if(n{const s=UB(e,t);let i=0,r,o=a=>{r||(r=!0,u&&u(a))};return new ReadableStream({async pull(a){try{const{done:l,value:c}=await s.next();if(l){o(),a.close();return}let d=c.byteLength;if(n){let g=i+=d;n(g)}a.enqueue(new Uint8Array(c))}catch(l){throw o(l),l}},cancel(a){return o(a),s.return()}},{highWaterMark:2})},X4=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Dh=(e,t,n)=>t+2e<=57?e-48:(e&223)-55,WB=e=>e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===45||e===95,qB=e=>e===9||e===10||e===12||e===13||e===32,KB=e=>{const t=Math.floor(e/4),n=e%4;return t*3+(n===2?1:n===3?2:0)},YB=e=>{const t=e.length;let n=0;return t>0&&e.charCodeAt(t-1)===61&&(n++,t>1&&e.charCodeAt(t-2)===61&&n++),Math.floor((t-n)*3/4)},GB=e=>{const t=e.length;let n=0,u=0,s=!1;for(let i=0;i0){s=!0;continue}n++}}return s||u>2||u>0&&(n+u)%4!==0||n%4===1?YB(e):KB(n)},ZB=(e,t)=>{if(!e||typeof e!="string"||!e.startsWith("data:"))return 0;const n=e.indexOf(",");if(n<0)return 0;const u=e.slice(5,n),s=e.slice(n+1);if(/;base64/i.test(u))return t(s);let i=0;for(let r=0,o=s.length;r=55296&&a<=56319&&r+1=56320&&l<=57343?(i+=4,r++):i+=3}else i+=3}return i};function XB(e){const t=typeof e=="string"?e.indexOf("#"):-1;return ZB(t===-1?e:e.slice(0,t),GB)}const Uc="1.20.0",Q4=64*1024,JB={cache:"default",redirect:"follow",referrer:"about:client",referrerPolicy:"",mode:"cors",integrity:"",keepalive:!1,priority:"auto",window:null},{isFunction:Gr}=_,QB=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16))),eg=e=>{if(!_.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},tg=(e,...t)=>{try{return!!e(...t)}catch{return!1}},eA=e=>{const t=e.indexOf("://");let n=e;return t!==-1&&(n=n.slice(t+3)),n.includes("@")||n.includes(":")},tA=e=>{const t=_.global!==void 0&&_.global!==null?_.global:globalThis,{ReadableStream:n,TextEncoder:u}=t;e=_.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:s,Request:i,Response:r}=e,o=s?Gr(s):typeof fetch=="function",a=Gr(i),l=Gr(r);if(!o)return!1;const c=o&&Gr(n),d=o&&(typeof u=="function"?(v=>C=>v.encode(C))(new u):async v=>new Uint8Array(await new i(v).arrayBuffer())),g=a&&c&&tg(()=>{let v=!1;const C=new i(xt.origin,{body:new n,method:"POST",get duplex(){return v=!0,"half"}}),y=C.headers.has("Content-Type");return C.body!=null&&C.body.cancel(),v&&!y}),m=l&&c&&tg(()=>_.isReadableStream(new r("").body)),f={stream:m&&(v=>v.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(v=>{!f[v]&&(f[v]=(C,y)=>{let k=C&&C[v];if(k)return k.call(C);throw new de(`Response type '${v}' is not supported`,de.ERR_NOT_SUPPORT,y)})});const p=async v=>{if(v==null)return 0;if(_.isBlob(v))return v.size;if(_.isSpecCompliantForm(v))return(await new i(xt.origin,{method:"POST",body:v}).arrayBuffer()).byteLength;if(_.isArrayBufferView(v)||_.isArrayBuffer(v))return v.byteLength;if(_.isURLSearchParams(v)&&(v=v+""),_.isString(v))return(await d(v)).byteLength},E=async(v,C)=>_.toFiniteNumber(v.getContentLength())??p(C);return async v=>{let{url:C,method:y,data:k,signal:j,cancelToken:F,timeout:P,onDownloadProgress:K,onUploadProgress:$,responseType:B,headers:T,withCredentials:x="same-origin",fetchOptions:z,maxContentLength:L,maxBodyLength:I,maxRedirects:G}=Ah(v);const ue=_.isNumber(L)&&L>-1,oe=_.isNumber(I)&&I>-1,Ee=Fe=>_.hasOwnProp(v,Fe)?v[Fe]:void 0;let b=s||fetch;B=B?(B+"").toLowerCase():"text";let Se=$B([j,F&&F.toAbortSignal()],P),ye=null;const A=Se&&Se.unsubscribe&&(()=>{Se.unsubscribe()});let Je,xe=null;const he=()=>new de("Request body larger than maxBodyLength limit",de.ERR_BAD_REQUEST,v,ye);try{let Fe;const Ke=Ee("auth");if(Ke){const M=_.getSafeProp(Ke,"username")||"",ne=_.getSafeProp(Ke,"password")||"";Fe={username:M,password:ne}}if(eA(C)){const M=new URL(C,xt.origin);if(!Fe&&(M.username||M.password)){const ne=eg(M.username),Y=eg(M.password);Fe={username:ne,password:Y}}(M.username||M.password)&&(M.username="",M.password="",C=M.href)}if(Fe&&(T.delete("authorization"),T.set("Authorization","Basic "+btoa(QB((Fe.username||"")+":"+(Fe.password||""))))),ue&&typeof C=="string"&&C.startsWith("data:")&&XB(C)>L)throw new de("maxContentLength size of "+L+" exceeded",de.ERR_BAD_RESPONSE,v,ye);if(oe&&y!=="get"&&y!=="head"){const M=await p(k);if(typeof M=="number"&&isFinite(M)&&(Je=M,M>I))throw he()}const Ot=oe&&(_.isReadableStream(k)||_.isStream(k)),Lt=(M,ne,Y)=>Z4(M,Q4,fe=>{if(oe&&fe>I)throw xe=he();ne&&ne(fe)},Y);if(g&&y!=="get"&&y!=="head"&&($||Ot)){if(Je=Je??await E(T,k),Je!==0||Ot){let M=new i(C,{method:"POST",body:k,duplex:"half"}),ne;if(_.isFormData(k)&&(ne=M.headers.get("content-type"))&&T.setContentType(ne),M.body){const[Y,fe]=$&&q4(Je,Jo(K4($)))||[];k=Lt(M.body,Y,fe)}}}else if(Ot&&!a&&c&&y!=="get"&&y!=="head")k=Lt(k);else if(Ot&&a&&!g&&y!=="get"&&y!=="head")throw new de("Stream request bodies are not supported by the current fetch implementation",de.ERR_NOT_SUPPORT,v,ye);_.isString(x)||(x=x?"include":"omit");const w=a&&"credentials"in i.prototype;if(_.isFormData(k)){const M=T.getContentType();M&&/^multipart\/form-data/i.test(M)&&!/boundary=/i.test(M)&&T.delete("content-type")}T.set("User-Agent","axios/"+Uc,!1);const S=z==null?z:Object.assign(Object.create(null),z);S&&(delete S.body,delete S.headers,delete S.method,delete S.signal,delete S.duplex,delete S.credentials);const U=Object.assign(Object.create(null),S,{signal:Se,method:y.toUpperCase(),headers:gh(T.normalize()),body:k,duplex:"half",credentials:w?x:void 0});a&&(_.forEach(JB,(M,ne)=>{U[ne]===void 0&&(U[ne]=M)}),U.signal===void 0&&(U.signal=null),U.body===void 0&&(U.body=null)),G===0&&(U.redirect="manual",S&&(S.redirect="manual")),ye=a&&new i(C,U);let ee=await(a?b(ye,S):b(C,U));const J=Vt.from(ee.headers);if(ue){const M=_.toFiniteNumber(J.getContentLength());if(M!=null&&M>L)throw new de("maxContentLength size of "+L+" exceeded",de.ERR_BAD_RESPONSE,v,ye)}const q=m&&(B==="stream"||B==="response");if(m&&ee.body&&(K||ue||q&&A)){const M={};["status","statusText","headers"].forEach(Ce=>{M[Ce]=ee[Ce]});const ne=_.toFiniteNumber(J.getContentLength()),[Y,fe]=K&&q4(ne,Jo(K4(K),!0))||[];let ge=0;const ve=Ce=>{if(ue&&(ge=Ce,ge>L))throw new de("maxContentLength size of "+L+" exceeded",de.ERR_BAD_RESPONSE,v,ye);Y&&Y(Ce)};ee=new r(Z4(ee.body,Q4,ve,()=>{fe&&fe(),A&&A()}),M)}B=B||"text";let se=await f[_.findKey(f,B)||"text"](ee,v);if(ue&&!m&&!q){let M;if(se!=null&&(typeof se.byteLength=="number"?M=se.byteLength:typeof se.size=="number"?M=se.size:typeof se=="string"&&(M=typeof u=="function"?new u().encode(se).byteLength:se.length)),typeof M=="number"&&M>L)throw new de("maxContentLength size of "+L+" exceeded",de.ERR_BAD_RESPONSE,v,ye)}return!q&&A&&A(),await new Promise((M,ne)=>{wh(M,ne,{data:se,headers:Vt.from(ee.headers),status:ee.status,statusText:ee.statusText,config:v,request:ye})})}catch(Fe){if(A&&A(),Se&&Se.aborted&&Se.reason instanceof de){const Ke=Se.reason;throw Ke.config=v,ye&&(Ke.request=ye),Fe!==Ke&&Object.defineProperty(Ke,"cause",{__proto__:null,value:Fe,writable:!0,enumerable:!1,configurable:!0}),Ke}if(xe)throw ye&&!xe.request&&(xe.request=ye),xe;if(Fe instanceof de)throw ye&&!Fe.request&&(Fe.request=ye),Fe;if(Fe&&Fe.name==="TypeError"&&/Load failed|fetch/i.test(Fe.message)){const Ke=new de("Network Error",de.ERR_NETWORK,v,ye,Fe&&Fe.response);throw Object.defineProperty(Ke,"cause",{__proto__:null,value:Fe.cause||Fe,writable:!0,enumerable:!1,configurable:!0}),Ke}throw de.from(Fe,Fe&&Fe.code,v,ye,Fe&&Fe.response)}}},nA=new Map,Fh=e=>{let t=e&&e.env||{};const{fetch:n,Request:u,Response:s}=t,i=[u,s,n];let r=i.length,o=r,a,l,c=nA;for(;o--;)a=i[o],l=c.get(a),l===void 0&&c.set(a,l=o?new Map:tA(t)),c=l;return l};Fh();const Hc={http:lB,xhr:MB,fetch:{get:Fh}};_.forEach(Hc,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const ng=e=>`- ${e}`,uA=e=>_.isFunction(e)||e===null||e===!1;function sA(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let u,s;const i={};for(let r=0;r`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let o=n?r.length>1?`since : +`+r.map(ng).join(` +`):" "+ng(r[0]):"as no adapter specified";throw new de("There is no suitable adapter to dispatch the request "+o,de.ERR_NOT_SUPPORT)}return s}const Sh={getAdapter:sA,adapters:Hc};function ql(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Nr(null,e)}function Kl(e){const t=_.toSafeFlatObject(e);return ql(t),t.headers=Vt.from(_.getSafeProp(t,"headers")),t.data=Hl.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Sh.getAdapter(t.adapter||_r.adapter,t)(t).then(function(n){ql(t),t.response=n;try{n.data=Hl.call(t,t.transformResponse,n)}finally{delete t.response}return n.headers=Vt.from(n.headers),n},function(n){if(!bh(n)&&(ql(t),n&&n.response)){t.response=n.response;try{n.response.data=Hl.call(t,t.transformResponse,n.response)}finally{delete t.response}n.response.headers=Vt.from(n.response.headers)}return Promise.reject(n)})}const Qo={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Qo[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const ug={};Qo.transitional=function(e,t,n){function u(s,i){return"[Axios v"+Uc+"] Transitional option '"+s+"'"+i+(n?". "+n:"")}return(s,i,r)=>{if(e===!1)throw new de(u(i," has been removed"+(t?" in "+t:"")),de.ERR_DEPRECATED);return t&&!ug[i]&&(ug[i]=!0,console.warn(u(i," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(s,i,r):!0}},Qo.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function iA(e,t,n){if(typeof e!="object"||e===null)throw new de("options must be an object",de.ERR_BAD_OPTION_VALUE);const u=Object.keys(e);let s=u.length;for(;s-- >0;){const i=u[s],r=Object.prototype.hasOwnProperty.call(t,i)?t[i]:void 0;if(r){const o=e[i],a=o===void 0||r(o,i,e);if(a!==!0)throw new de("option "+i+" must be "+a,de.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new de("Unknown option "+i,de.ERR_BAD_OPTION)}}const co={assertOptions:iA,validators:Qo},It=co.validators;let ps=class{constructor(e){this.defaults=e||{},this.interceptors={request:new H4,response:new H4}}async request(e,t){try{return await this._request(e,t)}catch(n){if(n instanceof Error)try{let u={};Error.captureStackTrace?Error.captureStackTrace(u):u=new Error;const s=u.stack;let i="";if(typeof s=="string"){const r=s.indexOf(` +`);i=r===-1?"":s.slice(r+1)}if(!n.stack)n.stack=i;else if(i){const r=i.indexOf(` +`),o=r===-1?-1:i.indexOf(` +`,r+1),a=o===-1?"":i.slice(o+1);String(n.stack).endsWith(a)||(n.stack+=` +`+i)}}catch{}throw n}}_request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=ws(this.defaults,t);const{transitional:n,paramsSerializer:u,headers:s}=t;n!==void 0&&co.assertOptions(n,{silentJSONParsing:It.transitional(It.boolean),forcedJSONParsing:It.transitional(It.boolean),clarifyTimeoutError:It.transitional(It.boolean),legacyInterceptorReqResOrdering:It.transitional(It.boolean),advertiseZstdAcceptEncoding:It.transitional(It.boolean),validateStatusUndefinedResolves:It.transitional(It.boolean)},!1),u!=null&&(_.isFunction(u)?t.paramsSerializer={serialize:u}:co.assertOptions(u,{encode:It.function,serialize:It.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),co.assertOptions(t,{baseUrl:It.spelling("baseURL"),withXsrfToken:It.spelling("withXSRFToken")},!0),t.method=(_.getSafeProp(t,"method")||_.getSafeProp(this.defaults,"method")||"get").toLowerCase();let i=s&&_.merge(s.common,s[t.method]);s&&_.forEach(xh.concat("common"),m=>{delete s[m]}),t.headers=Vt.concat(i,s);const r=[];let o=!0;this.interceptors.request.forEach(function(m){if(typeof m.runWhen=="function"&&m.runWhen(t)===!1)return;o=o&&m.synchronous;const f=t.transitional||$c;f&&f.legacyInterceptorReqResOrdering?r.unshift(m.fulfilled,m.rejected):r.push(m.fulfilled,m.rejected)});const a=[];this.interceptors.response.forEach(function(m){a.push(m.fulfilled,m.rejected)});let l,c=0,d;if(!o){const m=[Kl.bind(this),void 0];for(m.unshift(...r),m.push(...a),d=m.length,l=Promise.resolve(t);cKl.call(this,g)))}catch(E){l=Promise.reject(E)}break}}if(!l)try{l=Kl.call(this,g)}catch(m){l=Promise.reject(m)}for(c=0,d=a.length;c{if(!u._listeners)return;let i=u._listeners.length;for(;i-- >0;)u._listeners[i](s);u._listeners=null}),this.promise.then=s=>{let i;const r=new Promise(o=>{u.subscribe(o),i=o}).then(s);return r.cancel=function(){u.unsubscribe(i)},r},t(function(s,i,r){u.reason||(u.reason=new Nr(s,i,r),n(u.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=u=>{t.abort(u)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new _h(function(n){t=n}),cancel:t}}};function oA(e){return function(t){return e.apply(null,t)}}function aA(e){return _.isObject(e)&&e.isAxiosError===!0}const mo={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,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent: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,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(mo).forEach(([e,t])=>{mo[t]===void 0&&(mo[t]=e)});function Nh(e){const t=new ps(e),n=nh(ps.prototype.request,t);return _.extend(n,ps.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(u){return Nh(ws(e,u))},n}const lt=Nh(_r);lt.Axios=ps,lt.CanceledError=Nr,lt.CancelToken=rA,lt.isCancel=bh,lt.VERSION=Uc,lt.toFormData=Oa,lt.AxiosError=de,lt.Cancel=lt.CanceledError,lt.all=function(e){return Promise.all(e)},lt.spread=oA,lt.isAxiosError=aA,lt.mergeConfig=ws,lt.AxiosHeaders=Vt,lt.formToJSON=e=>yh(_.isHTMLForm(e)?new FormData(e):e),lt.getAdapter=Sh.getAdapter,lt.HttpStatusCode=mo,lt.default=lt;const{Axios:oL,AxiosError:aL,CanceledError:lL,isCancel:cL,CancelToken:dL,VERSION:mL,all:gL,Cancel:fL,isAxiosError:Wc,spread:pL,toFormData:hL,AxiosHeaders:vL,HttpStatusCode:EL,formToJSON:CL,getAdapter:yL,mergeConfig:xL,create:bL}=lt;function lA(){const e=lt.create({headers:{requesttoken:m2()??"","X-Requested-With":"XMLHttpRequest"}});return f2(t=>{e.defaults.headers.requesttoken=t}),Object.assign(e,{CancelToken:lt.CancelToken,isCancel:lt.isCancel})}const sg="_nextcloudCsrfTokenReloaded";function cA(e){return async t=>{if(!Wc(t))throw t;const{config:n,response:u,request:s}=t,i=s?.responseURL;if(n&&!(sg in n)&&u?.status===412&&u?.data?.message==="CSRF check failed"){console.warn(`Request to ${i} failed because of a CSRF mismatch. Fetching a new token.`);const r=await g2();return e.defaults.headers.requesttoken=r,e({...n,[sg]:!0,headers:{...n.headers,requesttoken:r}})}throw t}}const ig="_nextcloudMaintenanceModeRetryDelay";function dA(e){return async t=>{if(!Wc(t))throw t;const{config:n,response:u,request:s}=t,i=s?.responseURL,r=u?.status,o=u?.headers;let a=n?.[ig]??1;if(r===503&&o?.["x-nextcloud-maintenance-mode"]==="1"&&n?.retryIfMaintenanceMode){if(a*=2,a>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:i}),t;return console.warn(`Request to ${i} failed because of maintenance mode. Retrying in ${a}s`),await new Promise(l=>{setTimeout(l,a*1e3)}),e({...n,[ig]:a})}throw t}}async function mA(e){if(Wc(e)){const{config:t,response:n,request:u}=e,s=u?.responseURL;n?.status===401&&n?.data?.message==="Current user is not logged in"&&t?.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 e}const sn=lA();sn.interceptors.response.use(e=>e,cA(sn)),sn.interceptors.response.use(e=>e,dA(sn)),sn.interceptors.response.use(e=>e,mA);const rg=(e,t={})=>sn.get(ri("apps/logreader/api/log"),{...t,params:e}),og=(e,t={})=>sn.get(ri("apps/logreader/api/poll"),{...t,params:e}),gA=(e,t={})=>sn.put(ri("apps/logreader/api/settings"),e,t),fA=(e,t={})=>sn.get(ri("apps/logreader/api/settings"),{...t,params:e}),si=[ae("logreader","Debug"),ae("logreader","Info"),ae("logreader","Warning"),ae("logreader","Error"),ae("logreader","Fatal")],Th=["debug","info","warning","error","fatal"],ag=1e4;function pA(e){if(typeof e=="object")return e;if(hA(e))return lg(e);if(vA(e)){const t=lg(e.slice(10)),n=t.Trace?.split(` +`);return t.Trace=n?.map(EA),t}}function hA(e){return typeof e=="string"&&e[0]==="{"}function vA(e){return typeof e=="string"&&e.slice(0,12)==="Exception: {"}function lg(e){try{return JSON.parse(e)}catch{return e=e.replace(/\n/g,"\\n"),e=e.replace(/([^\\])\\([A-Z{])/g,"$1\\\\$2"),JSON.parse(e)}}function EA(e){let t=e.split(" ");const n=t.shift(),u=t.join(" ");if(t=u.split(":"),t.length>1){let s,i;const r=t.shift(),o=t.join(" ");if(r[0]==="[")s=r;else{const a=r.split("(",2);s=a[0];const l=a[1]?.slice(0,a[1].length-1);i=l?parseInt(l):void 0}return{function:o,number:n,file:s,line:i}}else return{function:u,number:n,file:!1}}const Sn=Lc().setApp(p3).build();function CA(e){let t=0,n=0,u=null;const s=[];for(let r=0;r{const e=ui("logreader","settings",{enabled:!1,liveLog:!1,dateTimeFormat:"raw",shownLevels:[],logLevel:2}),t=be(e.enabled),n=Z(()=>t.value&&a.value===void 0),u=be(e.liveLog),s=be(e.shownLevels),i=be(e.logLevel),r=be(e.dateTimeFormat),o=Z({get:()=>a.value!==void 0?"raw":r.value,set:g=>{r.value=g}}),a=be(),l=Z(()=>a.value?.name||"");async function c(g,m){await gA({settingsKey:g,settingsValue:m}),this[g]=m}async function d(){const g=await fA();return Object.keys(g.data).forEach(m=>{this[m]=g.data[m]}),g.data}return{shownLevels:s,logLevel:i,dateTimeFormat:o,enabled:t,isEnabled:n,liveLog:u,localFile:a,localFileName:l,setSetting:c,getSettings:d}}),La=Vf("logreader-logs",()=>{const e=Jn(),t=be([]),n=be(""),u=Z(()=>{if(n.value){const m=n.value.toLowerCase();return t.value.filter(f=>JSON.stringify(f).toLowerCase().includes(m))}return t.value}),s=be(!0),i=be(!1),r=be(!1);async function o(m=!0){if(e.isEnabled&&(r.value=!r.value))try{if(m||!t.value.length){const{data:f}=await rg({offset:t.value.length,query:n.value});t.value.push(...f.data.map(Li)),s.value=f.remain}else{const{data:f}=await og({lastReqId:t.value[0].reqId});t.value.splice(0,0,...f.map(Li))}}catch(f){Sn.debug(f),pu(ae("logreader","Could not load log entries"))}finally{r.value=!1}}async function a(){if(!e.localFile){Sn.debug("Can not read file, no file was uploaded");return}t.value=await yA(e.localFile),s.value=!1}async function l(m){if(m!=="")try{t.value=await zh(m),e.localFile=new File([],ae("logreader","Clipboard")),s.value=!1}catch(f){pu(ae("logreader","Could not parse clipboard content")),Sn.error(f)}}function c(){i.value=!1}function d(){if(i.value)return;const m=async()=>{try{if(e.isEnabled&&n.value===""&&t.value.length){const{data:f}=await og({lastReqId:t.value[0].reqId});t.value.splice(0,0,...f.map(Li))}}catch(f){Sn.warn("Unexpected error while polling for new log entries",{error:f}),(f.status||0)>=500?pu(ae("logreader","Could not fetch new log entries (server unavailable)")):pu(ae("logreader","Could not fetch new entries"))}finally{i.value&&window.setTimeout(m,ag)}};i.value=!0,window.setTimeout(m,ag)}async function g(m=""){const f=n.value;if(n.value=m,m!==f&&e.isEnabled){r.value=!0;try{const{data:p}=await rg({offset:0,query:m});t.value=[...p.data.map(Li)],s.value=p.remain}finally{r.value=!1}}}return{allEntries:t,entries:u,hasRemainingEntries:s,query:n,loadMore:o,loadText:l,loadFile:a,startPolling:d,stopPolling:c,searchLogs:g}}),xA=["innerHTML"],bA={class:"hidden-visually"},wA=Te({__name:"SettingsActions",setup(e){const t=Jn(),n=La(),u=`${ae("logreader","Ctrl")} + v`,s=ri("/settings/admin/log/download"),i=be();async function r(){const o=i.value?.files?.item?.(0);if(o)try{t.localFile=o,await n.loadFile()}catch(a){t.localFile=void 0,pu(ae("logreader","Could not parse local log file")),Sn.debug(a)}}return(o,a)=>(D(),R("div",null,[le(N(Lo),{type:"info",class:"info-note"},{default:re(()=>[H("p",{innerHTML:N(ae)("logreader","You can also show log entries copied from your clipboard by pasting them on the log view using: {keyboardShortcut}",{keyboardShortcut:u},void 0,{escape:!1})},null,8,xA)]),_:1}),le(N(dt),{href:N(t).enabled?N(s):null,disabled:!N(t).enabled,download:"nextcloud.log"},{icon:re(()=>[le(Ww,{size:20})]),default:re(()=>[Re(" "+te(N(ae)("logreader","Download logs")),1)]),_:1},8,["href","disabled"]),le(N(dt),{onClick:a[0]||(a[0]=l=>i.value?.click())},{icon:re(()=>[le(Jw,{size:20})]),default:re(()=>[Re(" "+te(N(ae)("logreader","Show local log file")),1)]),_:1}),H("label",bA,[Re(te(N(ae)("logreader","Upload local log file to be displayed"))+" ",1),H("input",{ref_key:"fileinput",ref:i,type:"file",name:"logfile",accept:".log,.json,.txt,application/json,text/plain",onChange:ln(r,["stop"])},null,544)])]))}}),kA=st(wA,[["__scopeId","data-v-a8dbd136"]]),BA=` @@ -24,42 +24,42 @@ ${t.stack}`),s)}log(t,n,u){if(!(typeof this.context?.level=="number"&&t -`,vA=Me({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(e){_a(u=>({v6bd152af:t.value,v16fd8ca9:n.value}));const t=ne(()=>e.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),n=ne(()=>e.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(u,s)=>(_(),we(It,{class:ze(u.$style.iconToggleSwitch),svg:hA,size:e.size,inline:e.inline},null,8,["class","size","inline"]))}}),EA="_iconToggleSwitch_hhj0H",CA={"material-design-icon":"_material-design-icon_zYnoU",iconToggleSwitch:EA},yA={$style:CA},xA=ut(vA,[["__cssModules",yA]]),wA=Symbol.for("insideRadioGroup");function bA(){return jt(wA,void 0)}const BA={name:"CheckboxBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},kA=["aria-hidden","aria-label"],AA=["fill","width","height"],DA={d:"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"},FA={key:0};function SA(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon checkbox-blank-outline-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",DA,[n.title?(_(),W("title",FA,re(n.title),1)):ye("",!0)])],8,AA))],16,kA)}const _A=ut(BA,[["render",SA]]),NA={name:"CheckboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},TA=["aria-hidden","aria-label"],zA=["fill","width","height"],PA={d:"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"},IA={key:0};function LA(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon checkbox-marked-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",PA,[n.title?(_(),W("title",IA,re(n.title),1)):ye("",!0)])],8,zA))],16,TA)}const OA=ut(NA,[["render",LA]]),RA={name:"MinusBoxIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jA=["aria-hidden","aria-label"],MA=["fill","width","height"],$A={d:"M17,13H7V11H17M19,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"},VA={key:0};function UA(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon minus-box-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",$A,[n.title?(_(),W("title",VA,re(n.title),1)):ye("",!0)])],8,MA))],16,jA)}const HA=ut(RA,[["render",UA]]),WA={name:"RadioboxBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},qA=["aria-hidden","aria-label"],KA=["fill","width","height"],GA={d:"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"},YA={key:0};function ZA(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon radiobox-blank-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",GA,[n.title?(_(),W("title",YA,re(n.title),1)):ye("",!0)])],8,KA))],16,qA)}const JA=ut(WA,[["render",ZA]]),XA={name:"RadioboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},QA=["aria-hidden","aria-label"],eD=["fill","width","height"],tD={d:"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"},nD={key:0};function uD(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon radiobox-marked-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",tD,[n.title?(_(),W("title",nD,re(n.title),1)):ye("",!0)])],8,eD))],16,QA)}const sD=ut(XA,[["render",uD]]),Gs="checkbox",ds="radio",du="switch",Xi="button",iD={name:"NcCheckboxContent",components:{NcLoadingIcon:Nc,NcIconToggleSwitch:xA},props:{iconClass:{type:[String,Object],default:null},textClass:{type:[String,Object],default:null},type:{type:String,default:"checkbox",validator:e=>[Gs,ds,du,Xi].includes(e)},buttonVariant:{type:Boolean,default:!1},isChecked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},iconSize:{type:Number,default:24},labelId:{type:String,required:!0},descriptionId:{type:String,required:!0}},computed:{isButtonType(){return this.type===Xi},isSwitchType(){return this.type===du},checkboxRadioIconElement(){return this.type===ds?this.isChecked?sD:JA:this.indeterminate?HA:this.isChecked?OA:_A}}},rD={key:0,class:"checkbox-content__wrapper"},oD=["id"],aD=["id"];function lD(e,t,n,u,s,i){const r=hn("NcLoadingIcon"),o=hn("NcIconToggleSwitch");return _(),W("span",{class:ze(["checkbox-content",{["checkbox-content-"+n.type]:!0,"checkbox-content--button-variant":n.buttonVariant,"checkbox-content--has-text":!!e.$slots.default}])},[Z("span",{class:ze(["checkbox-content__icon",{"checkbox-content__icon--checked":n.isChecked,"checkbox-content__icon--has-description":!i.isButtonType&&e.$slots.description,[n.iconClass]:!0}]),"aria-hidden":!0,inert:""},[Pe(e.$slots,"icon",{checked:n.isChecked,loading:n.loading},()=>[n.loading?(_(),we(r,{key:0})):i.isSwitchType?(_(),we(o,{key:1,checked:n.isChecked,size:n.iconSize,inline:""},null,8,["checked","size"])):n.buttonVariant?ye("",!0):(_(),we(xu(i.checkboxRadioIconElement),{key:2,size:n.iconSize},null,8,["size"]))],!0)],2),e.$slots.default||e.$slots.description?(_(),W("span",rD,[e.$slots.default?(_(),W("span",{key:0,id:n.labelId,class:ze(["checkbox-content__text",n.textClass])},[Pe(e.$slots,"default",{},void 0,!0)],10,oD)):ye("",!0),!i.isButtonType&&e.$slots.description?(_(),W("span",{key:1,id:n.descriptionId,class:"checkbox-content__description"},[Pe(e.$slots,"description",{},void 0,!0)],8,aD)):ye("",!0)])):ye("",!0)],2)}const cD=ut(iD,[["render",lD],["__scopeId","data-v-5ca1e30f"]]);Ft();const Yc={name:"NcCheckboxRadioSwitch",components:{NcCheckboxContent:cD},inheritAttrs:!1,props:{id:{type:String,default:()=>"checkbox-radio-switch-"+fn(),validator:e=>e.trim()!==""},wrapperId:{type:String,default:null},name:{type:String,default:null},ariaLabel:{type:String,default:""},type:{type:String,default:"checkbox",validator:e=>[Gs,ds,du,Xi].includes(e)},buttonVariant:{type:Boolean,default:!1},buttonVariantGrouped:{type:String,default:"no",validator:e=>["no","vertical","horizontal"].includes(e)},modelValue:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},required:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:null},class:{type:[String,Array,Object],default:""},style:{type:[String,Array,Object],default:""},description:{type:String,default:null}},emits:["update:modelValue"],setup(e,{emit:t}){const n=bA();un(()=>n?.value.register(!1));const u=ne(()=>n?.value?ds:e.type),s=ne({get(){return n?.value?n.value.modelValue:e.modelValue},set(i){n?.value?n.value.onUpdate(i):t("update:modelValue",i)}});return{internalType:u,internalModelValue:s,labelId:fn(),descriptionId:fn()}},computed:{isButtonType(){return this.internalType===Xi},computedWrapperElement(){return this.isButtonType?"button":this.wrapperElement!==null?this.wrapperElement:"span"},listeners(){return this.isButtonType?{click:this.onToggle}:{change:this.onToggle}},iconSize(){return this.internalType===du?36:20},cssIconSize(){return this.iconSize+"px"},cssIconHeight(){return this.internalType===du?"16px":this.cssIconSize},inputType(){return[Gs,ds,Xi].includes(this.internalType)?this.internalType:Gs},inputRole(){return this.internalType===du?"switch":void 0},isChecked(){return this.value!==null?Array.isArray(this.internalModelValue)?[...this.internalModelValue].indexOf(this.value)>-1:this.internalModelValue===this.value:this.internalModelValue===!0},hasIndeterminate(){return[Gs,ds].includes(this.inputType)}},mounted(){if(this.name&&this.internalType===Gs&&!Array.isArray(this.internalModelValue))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&this.internalType===du)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if(typeof this.internalModelValue!="boolean"&&this.internalType===du)throw new Error("Switches can only be used with boolean as modelValue prop.")},methods:{t:Ye,n:e6,onToggle(e){if(!(this.disabled||e.target.tagName.toLowerCase()==="a")){if(this.internalType===ds){this.internalModelValue=this.value;return}if(this.internalType===du){this.internalModelValue=!this.isChecked;return}if(typeof this.internalModelValue=="boolean"){this.internalModelValue=!this.internalModelValue;return}this.isChecked?this.internalModelValue=this.internalModelValue.filter(t=>t!==this.value):this.internalModelValue=[...this.internalModelValue,this.value]}}}},cg=()=>{_a(e=>({f99d0228:e.cssIconSize,v69c82152:e.cssIconHeight}))},dg=Yc.setup;Yc.setup=dg?(e,t)=>(cg(),dg(e,t)):cg;const dD=["id","aria-labelledby","aria-describedby","aria-label","disabled","type","role","value","checked",".indeterminate","required","name"];function mD(e,t,n,u,s,i){const r=hn("NcCheckboxContent");return _(),we(xu(i.computedWrapperElement),Ze({id:n.wrapperId??(i.isButtonType?n.id:null),"aria-label":i.isButtonType&&n.ariaLabel?n.ariaLabel:void 0,class:["checkbox-radio-switch",[e.$props.class,{["checkbox-radio-switch-"+u.internalType]:u.internalType,"checkbox-radio-switch--checked":i.isChecked,"checkbox-radio-switch--disabled":n.disabled,"checkbox-radio-switch--indeterminate":i.hasIndeterminate?n.indeterminate:!1,"checkbox-radio-switch--button-variant":n.buttonVariant,"checkbox-radio-switch--button-variant-v-grouped":n.buttonVariant&&n.buttonVariantGrouped==="vertical","checkbox-radio-switch--button-variant-h-grouped":n.buttonVariant&&n.buttonVariantGrouped==="horizontal","button-vue":i.isButtonType}]],style:n.style,type:i.isButtonType?"button":null},i.isButtonType?e.$attrs:{},Do(i.isButtonType?i.listeners:{})),{default:he(()=>[i.isButtonType?ye("",!0):(_(),W("input",Ze({key:0,id:n.id,"aria-labelledby":!i.isButtonType&&!n.ariaLabel?u.labelId:null,"aria-describedby":!i.isButtonType&&(n.description||e.$slots.description)?u.descriptionId:null,"aria-label":n.ariaLabel||void 0,class:"checkbox-radio-switch__input",disabled:n.disabled,type:i.inputType,role:i.inputRole,value:n.value,checked:i.isChecked,".indeterminate":i.hasIndeterminate?n.indeterminate:null,required:n.required,name:n.name},e.$attrs,Do(i.listeners,!0)),null,48,dD)),Ee(r,{id:i.isButtonType?void 0:`${n.id}-label`,class:"checkbox-radio-switch__content",iconClass:"checkbox-radio-switch__icon",textClass:"checkbox-radio-switch__text",type:u.internalType,indeterminate:i.hasIndeterminate?n.indeterminate:!1,buttonVariant:n.buttonVariant,isChecked:i.isChecked,loading:n.loading,labelId:u.labelId,descriptionId:u.descriptionId,iconSize:i.iconSize,onClick:i.onToggle},Bc({icon:he(()=>[Pe(e.$slots,"icon",{},void 0,!0)]),_:2},[e.$slots.description||n.description?{name:"description",fn:he(()=>[Pe(e.$slots,"description",{},()=>[We(re(n.description),1)],!0)]),key:"0"}:void 0,e.$slots.default?{name:"default",fn:he(()=>[Pe(e.$slots,"default",{},void 0,!0)]),key:"1"}:void 0]),1032,["id","type","indeterminate","buttonVariant","isChecked","loading","labelId","descriptionId","iconSize","onClick"])]),_:3},16,["id","aria-label","class","style","type"])}const $u=ut(Yc,[["render",mD],["__scopeId","data-v-81045d2a"]]),gD=Me({__name:"SettingsDatetimeFormat",setup(e){const t=uu(),n=ne(()=>{let r=ve("logreader","Time format used for displaying the timestamp");return t.localFile&&(r+=" "+ve("logreader",'(Local log files only support the "raw" time format)')),r}),u=ne(()=>t.localFile!==void 0),s=ne(()=>t.dateTimeFormat);function i(r){return t.setSetting("dateTimeFormat",r).catch(o=>{Tn.debug(o),yu(ve("logreader","Could not change date time format."))})}return(r,o)=>(_(),W("fieldset",null,[Z("legend",null,re(n.value),1),Ee(I($u),{modelValue:s.value,value:"raw",name:"timestamp_format",type:"radio","onUpdate:modelValue":i},{default:he(()=>[We(re(I(ve)("logreader","Raw data")),1)]),_:1},8,["modelValue"]),Ee(I($u),{modelValue:s.value,disabled:u.value,value:"local",name:"timestamp_format",type:"radio","onUpdate:modelValue":i},{default:he(()=>[We(re(I(ve)("logreader","Local time")),1)]),_:1},8,["modelValue","disabled"]),Ee(I($u),{modelValue:s.value,disabled:u.value,value:"utc",name:"timestamp_format",type:"radio","onUpdate:modelValue":i},{default:he(()=>[We(re(I(ve)("logreader","UTC time")),1)]),_:1},8,["modelValue","disabled"]),Ee(I($u),{modelValue:s.value,disabled:u.value,value:"relative",name:"timestamp_format",type:"radio","onUpdate:modelValue":i},{default:he(()=>[We(re(I(ve)("logreader","Relative")),1)]),_:1},8,["modelValue","disabled"])]))}}),fD=gt(gD,[["__scopeId","data-v-ed1800c8"]]),pD=Me({__name:"SettingsLiveView",setup(e){const t=uu(),n=ne({get:()=>t.enabled?t.liveLog:!1,set:u=>t.setSetting("liveLog",u).catch(s=>{Tn.debug(s),yu(ve("logreader","Could not change live view setting."))})});return(u,s)=>(_(),W("div",null,[I(t).enabled?ye("",!0):(_(),we(I(Ro),{key:0,type:"info"},{default:he(()=>[We(re(I(ve)("logreader","Polling is disabled because server is not configured to log to file")),1)]),_:1})),Ee(I($u),{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=i=>n.value=i),disabled:!I(t).enabled},{default:he(()=>[We(re(I(ve)("logreader","Polling (live view)")),1)]),_:1},8,["modelValue","disabled"])]))}});function Sh(e,t=300){let n;return(...u)=>{clearTimeout(n),n=window.setTimeout(()=>{e.apply(this,u)},t)}}const hD=Me({__name:"SettingsLogLevels",setup(e){const t=uu(),n=ne(()=>Object.fromEntries(Object.keys(ci).map(s=>[s,t.shownLevels.includes(parseInt(s))]))),u=Sh(s=>{const i={...n.value,[s]:!n.value[s]},r=Object.keys(i).filter(o=>i[o]).map(o=>parseInt(o));t.setSetting("shownLevels",r).catch(()=>yu(ve("logreader","Could not set logging levels to show")))},200);return(s,i)=>(_(),W("div",null,[Z("fieldset",null,[Z("legend",null,re(I(ve)("logreader","Filter logging levels")),1),(_(!0),W(et,null,tu(I(ci),(r,o)=>(_(),we(I($u),{key:o,modelValue:n.value[o],"onUpdate:modelValue":a=>I(u)(o)},{default:he(()=>[We(re(r),1)]),_:2},1032,["modelValue","onUpdate:modelValue"]))),128))])]))}}),vD=gt(hD,[["__scopeId","data-v-ea32d803"]]),ED=Me({__name:"SettingsSetLogLevel",setup(e){const t=uu(),n=ne(()=>`${t.logLevel}`);function u(s){const i=parseInt(s);t.setSetting("logLevel",i).catch(r=>{yu(ve("logreader","Could not set logging level")),Tn.error(r)})}return(s,i)=>(_(),W("fieldset",null,[Z("legend",null,re(I(ve)("logreader","Set backend loglevel")),1),(_(!0),W(et,null,tu(I(ci),(r,o)=>(_(),we(I($u),{key:o,modelValue:n.value,value:`${o}`,type:"radio",name:"loglevel","onUpdate:modelValue":u},{default:he(()=>[We(re(r),1)]),_:2},1032,["modelValue","value"]))),128))]))}}),CD=gt(ED,[["__scopeId","data-v-41d2be68"]]),yD=Me({__name:"AppSettingsDialog",props:{open:{type:Boolean}},emits:["update:open"],setup(e,{emit:t}){const n=e,u=t,s=r=>u("update:open",r),i=window.OCP.Accessibility.disableKeyboardShortcuts();return(r,o)=>(_(),we(I(Sw),{open:n.open,showNavigation:"",name:I(ve)("logreader","Log reader settings"),"onUpdate:open":s},{default:he(()=>[Ee(I(qs),{id:"logreader-settings-levels",name:I(ve)("logreader","Filter log levels")},{default:he(()=>[Ee(vD)]),_:1},8,["name"]),Ee(I(qs),{id:"logreader-settings-set-level",name:I(ve)("logreader","Set log level")},{default:he(()=>[Ee(CD)]),_:1},8,["name"]),Ee(I(qs),{id:"logreader-settings-time",name:I(ve)("logreader","Time format")},{default:he(()=>[Ee(fD)]),_:1},8,["name"]),Ee(I(qs),{id:"logreader-settings-live-view",name:I(ve)("logreader","Live view")},{default:he(()=>[Ee(pD)]),_:1},8,["name"]),Ee(I(qs),{id:"logreader-settings-actions",name:I(ve)("logreader","Download/Upload logs")},{default:he(()=>[Ee(pA)]),_:1},8,["name"]),I(i)?ye("",!0):(_(),we(I(jw),{key:0},{default:he(()=>[Ee(I(sb),null,{default:he(()=>[Ee(I(Xw),{label:I(ve)("logreader","Search log entries"),hotkey:"Control F"},null,8,["label"])]),_:1})]),_:1}))]),_:1},8,["open","name"]))}}),mg=Me({__name:"IntersectionObserver",props:{options:{}},emits:["intersection"],setup(e,{emit:t}){const n=e,u=t,s=_e(),i=new IntersectionObserver(r=>{r[0].isIntersecting&&u("intersection")},n.options);return un(()=>{s.value&&i.observe(s.value)}),Sn(()=>i.disconnect()),(r,o)=>(_(),W("div",{ref_key:"observable",ref:s},[Pe(r.$slots,"default")],512))}}),xD={};function Ma(e,t){const n=xD,u=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,s=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return _h(e,u,s)}function _h(e,t,n){if(wD(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return gg(e.children,t,n)}return Array.isArray(e)?gg(e,t,n):""}function gg(e,t,n){const u=[];let s=-1;for(;++s{const n=(s,i)=>(e.set(i,s),s),u=s=>{if(e.has(s))return e.get(s);const[i,r]=t[s];switch(i){case $a:case Nh:return n(r,s);case sa:{const o=n([],s);for(const a of r)o.push(u(a));return o}case ia:{const o=n({},s);for(const[a,c]of r)o[u(a)]=u(c);return o}case Zc:return n(new Date(r),s);case Jc:{const{source:o,flags:a}=r;return n(new RegExp(o,a),s)}case Xc:{const o=n(new Map,s);for(const[a,c]of r)o.set(u(a),u(c));return o}case Qc:{const o=n(new Set,s);for(const a of r)o.add(u(a));return o}case Th:{const{name:o,message:a}=r;return n(new fg[o](a),s)}case zh:return n(BigInt(r),s);case"BigInt":return n(Object(BigInt(r)),s)}return n(new fg[i](r),s)};return u},pg=e=>bD(new Map,e)(0),$s="",{toString:BD}={},{keys:kD}=Object,Ni=e=>{const t=typeof e;if(t!=="object"||!e)return[$a,t];const n=BD.call(e).slice(8,-1);switch(n){case"Array":return[sa,$s];case"Object":return[ia,$s];case"Date":return[Zc,$s];case"RegExp":return[Jc,$s];case"Map":return[Xc,$s];case"Set":return[Qc,$s]}return n.includes("Array")?[sa,n]:n.includes("Error")?[Th,n]:[ia,n]},Qr=([e,t])=>e===$a&&(t==="function"||t==="symbol"),AD=(e,t,n,u)=>{const s=(r,o)=>{const a=u.push(r)-1;return n.set(o,a),a},i=r=>{if(n.has(r))return n.get(r);let[o,a]=Ni(r);switch(o){case $a:{let l=r;switch(a){case"bigint":o=zh,l=r.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+a);l=null;break;case"undefined":return s([Nh],r)}return s([o,l],r)}case sa:{if(a)return s([a,[...r]],r);const l=[],d=s([o,l],r);for(const f of r)l.push(i(f));return d}case ia:{if(a)switch(a){case"BigInt":return s([a,r.toString()],r);case"Boolean":case"Number":case"String":return s([a,r.valueOf()],r)}if(t&&"toJSON"in r)return i(r.toJSON());const l=[],d=s([o,l],r);for(const f of kD(r))(e||!Qr(Ni(r[f])))&&l.push([i(f),i(r[f])]);return d}case Zc:return s([o,r.toISOString()],r);case Jc:{const{source:l,flags:d}=r;return s([o,{source:l,flags:d}],r)}case Xc:{const l=[],d=s([o,l],r);for(const[f,g]of r)(e||!(Qr(Ni(f))||Qr(Ni(g))))&&l.push([i(f),i(g)]);return d}case Qc:{const l=[],d=s([o,l],r);for(const f of r)(e||!Qr(Ni(f)))&&l.push(i(f));return d}}const{message:c}=r;return s([o,{name:a,message:c}],r)};return i},hg=(e,{json:t,lossy:n}={})=>{const u=[];return AD(!(t||n),!!t,new Map,u)(e),u},ys=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?pg(hg(e,t)):structuredClone(e):(e,t)=>pg(hg(e,t)),Ph=(function(e){if(e==null)return SD;if(typeof e=="string")return FD(e);if(typeof e=="object")return DD(e);if(typeof e=="function")return ed(e);throw new Error("Expected function, string, or array as `test`")});function DD(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let g=Ih,h,E,b;if((!t||i(a,c,l[l.length-1]||void 0))&&(g=VD(n(a,l)),g[0]===tc))return g;if("children"in a&&a.children){const C=a;if(C.children&&g[0]!==Ua)for(E=(u?C.children.length:-1)+r,b=l.concat(C);E>-1&&E0&&(i.properties.rel=[...f]),g&&(i.properties.target=g),l){const E=Ti(t.contentProperties,i)||{};i.children.push({type:"element",tagName:"span",properties:ys(E),children:ys(l)})}}}})}}function Ti(e,t){return typeof e=="function"?e(t):e}function KD(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const GD=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,YD=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,ZD={};function vg(e,t){return(ZD.jsx?YD:GD).test(e)}const JD=/[ \t\n\f\r]/g;function XD(e){return typeof e=="object"?e.type==="text"?Eg(e.value):!1:Eg(e)}function Eg(e){return e.replace(JD,"")===""}class Qi{constructor(t,n,u){this.normal=n,this.property=t,u&&(this.space=u)}}Qi.prototype.normal={},Qi.prototype.property={},Qi.prototype.space=void 0;function Lh(e,t){const n={},u={};for(const s of e)Object.assign(n,s.property),Object.assign(u,s.normal);return new Qi(n,u,t)}function nc(e){return e.toLowerCase()}class Qt{constructor(t,n){this.attribute=n,this.property=t}}Qt.prototype.attribute="",Qt.prototype.booleanish=!1,Qt.prototype.boolean=!1,Qt.prototype.commaOrSpaceSeparated=!1,Qt.prototype.commaSeparated=!1,Qt.prototype.defined=!1,Qt.prototype.mustUseProperty=!1,Qt.prototype.number=!1,Qt.prototype.overloadedBoolean=!1,Qt.prototype.property="",Qt.prototype.spaceSeparated=!1,Qt.prototype.space=void 0;let QD=0;const Ve=Ss(),Bt=Ss(),uc=Ss(),ge=Ss(),lt=Ss(),si=Ss(),rn=Ss();function Ss(){return 2**++QD}const sc=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ve,booleanish:Bt,commaOrSpaceSeparated:rn,commaSeparated:si,number:ge,overloadedBoolean:uc,spaceSeparated:lt},Symbol.toStringTag,{value:"Module"})),Yl=Object.keys(sc);class nd extends Qt{constructor(t,n,u,s){let i=-1;if(super(t,n),Cg(this,"space",s),typeof u=="number")for(;++i4&&n.slice(0,4)==="data"&&s8.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(yg,o8);u="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!yg.test(i)){let r=i.replace(u8,r8);r.charAt(0)!=="-"&&(r="-"+r),t="data"+r}}s=nd}return new s(u,t)}function r8(e){return"-"+e.toLowerCase()}function o8(e){return e.charAt(1).toUpperCase()}const a8=Lh([Oh,e8,Mh,$h,Vh],"html"),ud=Lh([Oh,t8,Mh,$h,Vh],"svg");var Vs={},Zl,xg;function l8(){if(xg)return Zl;xg=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,u=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,r=/^[;\s]*/,o=/^\s+|\s+$/g,a=` -`,c="/",l="*",d="",f="comment",g="declaration";function h(b,C){if(typeof b!="string")throw new TypeError("First argument must be a string");if(!b)return[];C=C||{};var x=1,k=1;function S(M){var $=M.match(t);$&&(x+=$.length);var Q=M.lastIndexOf(a);k=~Q?M.length-Q:k+M.length}function H(){var M={line:x,column:k};return function($){return $.position=new T(M),K(),$}}function T(M){this.start=M,this.end={line:x,column:k},this.source=C.source}T.prototype.content=b;function U(M){var $=new Error(C.source+":"+x+":"+k+": "+M);if($.reason=M,$.filename=C.source,$.line=x,$.column=k,$.source=b,!C.silent)throw $}function X(M){var $=M.exec(b);if($){var Q=$[0];return S(Q),b=b.slice(Q.length),$}}function K(){X(n)}function D(M){var $;for(M=M||[];$=O();)$!==!1&&M.push($);return M}function O(){var M=H();if(!(c!=b.charAt(0)||l!=b.charAt(1))){for(var $=2;d!=b.charAt($)&&(l!=b.charAt($)||c!=b.charAt($+1));)++$;if($+=2,d===b.charAt($-1))return U("End of comment missing");var Q=b.slice(2,$-2);return k+=2,S(Q),b=b.slice($),k+=2,M({type:f,comment:Q})}}function B(){var M=H(),$=X(u);if($){if(O(),!X(s))return U("property missing ':'");var Q=X(i),oe=M({type:g,property:E($[0].replace(e,d)),value:Q?E(Q[0].replace(e,d)):d});return X(r),oe}}function R(){var M=[];D(M);for(var $;$=B();)$!==!1&&(M.push($),D(M));return M}return K(),R()}function E(b){return b?b.replace(o,d):d}return Zl=h,Zl}var wg;function c8(){if(wg)return Vs;wg=1;var e=Vs&&Vs.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Vs,"__esModule",{value:!0}),Vs.default=n;const t=e(l8());function n(u,s){let i=null;if(!u||typeof u!="string")return i;const r=(0,t.default)(u),o=typeof s=="function";return r.forEach(a=>{if(a.type!=="declaration")return;const{property:c,value:l}=a;o?s(c,l,a):l&&(i=i||{},i[c]=l)}),i}return Vs}var zi={},bg;function d8(){if(bg)return zi;bg=1,Object.defineProperty(zi,"__esModule",{value:!0}),zi.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,u=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,i=function(c){return!c||n.test(c)||e.test(c)},r=function(c,l){return l.toUpperCase()},o=function(c,l){return"".concat(l,"-")},a=function(c,l){return l===void 0&&(l={}),i(c)?c:(c=c.toLowerCase(),l.reactCompat?c=c.replace(s,o):c=c.replace(u,o),c.replace(t,r))};return zi.camelCase=a,zi}var Pi,Bg;function m8(){if(Bg)return Pi;Bg=1;var e=Pi&&Pi.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},t=e(c8()),n=d8();function u(s,i){var r={};return!s||typeof s!="string"||(0,t.default)(s,function(o,a){o&&a&&(r[(0,n.camelCase)(o,i)]=a)}),r}return u.default=u,Pi=u,Pi}var g8=m8();const f8=Sr(g8),Uh=Hh("end"),sd=Hh("start");function Hh(e){return t;function t(n){const u=n&&n.position&&n.position[e]||{};if(typeof u.line=="number"&&u.line>0&&typeof u.column=="number"&&u.column>0)return{line:u.line,column:u.column,offset:typeof u.offset=="number"&&u.offset>-1?u.offset:void 0}}}function p8(e){const t=sd(e),n=Uh(e);if(t&&n)return{start:t,end:n}}function er(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?kg(e.position):"start"in e||"end"in e?kg(e):"line"in e||"column"in e?ic(e):""}function ic(e){return Ag(e&&e.line)+":"+Ag(e&&e.column)}function kg(e){return ic(e&&e.start)+"-"+ic(e&&e.end)}function Ag(e){return e&&typeof e=="number"?e:1}class Vt extends Error{constructor(t,n,u){super(),typeof n=="string"&&(u=n,n=void 0);let s="",i={},r=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(r=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof u=="string"){const a=u.indexOf(":");a===-1?i.ruleId=u:(i.source=u.slice(0,a),i.ruleId=u.slice(a+1))}if(!i.place&&i.ancestors&&i.ancestors){const a=i.ancestors[i.ancestors.length-1];a&&(i.place=a.position)}const o=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=o?o.line:void 0,this.name=er(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=r&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Vt.prototype.file="",Vt.prototype.name="",Vt.prototype.reason="",Vt.prototype.message="",Vt.prototype.stack="",Vt.prototype.column=void 0,Vt.prototype.line=void 0,Vt.prototype.ancestors=void 0,Vt.prototype.cause=void 0,Vt.prototype.fatal=void 0,Vt.prototype.place=void 0,Vt.prototype.ruleId=void 0,Vt.prototype.source=void 0;const id={}.hasOwnProperty,h8=new Map,v8=/[A-Z]/g,E8=new Set(["table","tbody","thead","tfoot","tr"]),C8=new Set(["td","th"]),Wh="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function y8(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let u;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");u=F8(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");u=D8(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:u,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?ud:a8,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=qh(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function qh(e,t,n){if(t.type==="element")return x8(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return w8(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return B8(e,t,n);if(t.type==="mdxjsEsm")return b8(e,t);if(t.type==="root")return k8(e,t,n);if(t.type==="text")return A8(e,t)}function x8(e,t,n){const u=e.schema;let s=u;t.tagName.toLowerCase()==="svg"&&u.space==="html"&&(s=ud,e.schema=s),e.ancestors.push(t);const i=Gh(e,t.tagName,!1),r=S8(e,t);let o=od(e,t);return E8.has(t.tagName)&&(o=o.filter(function(a){return typeof a=="string"?!XD(a):!0})),Kh(e,r,i,t),rd(r,o),e.ancestors.pop(),e.schema=u,e.create(t,i,r,n)}function w8(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}wr(e,t.position)}function b8(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);wr(e,t.position)}function B8(e,t,n){const u=e.schema;let s=u;t.name==="svg"&&u.space==="html"&&(s=ud,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:Gh(e,t.name,!0),r=_8(e,t),o=od(e,t);return Kh(e,r,i,t),rd(r,o),e.ancestors.pop(),e.schema=u,e.create(t,i,r,n)}function k8(e,t,n){const u={};return rd(u,od(e,t)),e.create(t,e.Fragment,u,n)}function A8(e,t){return t.value}function Kh(e,t,n,u){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=u)}function rd(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function D8(e,t,n){return u;function u(s,i,r,o){const a=Array.isArray(r.children)?n:t;return o?a(i,r,o):a(i,r)}}function F8(e,t){return n;function n(u,s,i,r){const o=Array.isArray(i.children),a=sd(u);return t(s,i,r,o,{columnNumber:a?a.column-1:void 0,fileName:e,lineNumber:a?a.line:void 0},void 0)}}function S8(e,t){const n={};let u,s;for(s in t.properties)if(s!=="children"&&id.call(t.properties,s)){const i=N8(e,s,t.properties[s]);if(i){const[r,o]=i;e.tableCellAlignToStyle&&r==="align"&&typeof o=="string"&&C8.has(t.tagName)?u=o:n[r]=o}}if(u){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=u}return n}function _8(e,t){const n={};for(const u of t.attributes)if(u.type==="mdxJsxExpressionAttribute")if(u.data&&u.data.estree&&e.evaluater){const s=u.data.estree.body[0];s.type;const i=s.expression;i.type;const r=i.properties[0];r.type,Object.assign(n,e.evaluater.evaluateExpression(r.argument))}else wr(e,t.position);else{const s=u.name;let i;if(u.value&&typeof u.value=="object")if(u.value.data&&u.value.data.estree&&e.evaluater){const r=u.value.data.estree.body[0];r.type,i=e.evaluater.evaluateExpression(r.expression)}else wr(e,t.position);else i=u.value===null?!0:u.value;n[s]=i}return n}function od(e,t){const n=[];let u=-1;const s=e.passKeys?new Map:h8;for(;++u0?{type:"text",value:S}:void 0),S===!1?d.lastIndex=x+1:(g!==x&&b.push({type:"text",value:a.value.slice(g,x)}),Array.isArray(S)?b.push(...S):S&&b.push(S),g=x+C[0].length,E=!0),!d.global)break;C=d.exec(a.value)}return E?(gs?0:s+t:t=t>s?s:t,n=n>0?n:0,u.length<1e4)r=Array.from(u),r.unshift(t,n),e.splice(...r);else for(n&&e.splice(t,n);i0?(nu(e,e.length,0,t),e):t}const Fg={}.hasOwnProperty;function W8(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function ii(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const G8=Zu(new RegExp("\\p{P}","u")),Yn=Zu(/[A-Za-z]/),dn=Zu(/[\dA-Za-z]/),Y8=Zu(/[#-'*+\--9=?A-Z^-~]/);function rc(e){return e!==null&&(e<32||e===127)}const oc=Zu(/\d/),Z8=Zu(/[\dA-Fa-f]/),Zh=Zu(/[!-/:-@[-`{-~]/);function Re(e){return e!==null&&e<-2}function nn(e){return e!==null&&(e<0||e===32)}function tt(e){return e===-2||e===-1||e===32}function J8(e){return Zh(e)||G8(e)}const X8=Zu(/\s/);function Zu(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function hi(e){const t=[];let n=-1,u=0,s=0;for(;++n55295&&i<57344){const o=e.charCodeAt(n+1);i<56320&&o>56319&&o<57344?(r=String.fromCharCode(i,o),s=1):r="�"}else r=String.fromCharCode(i);r&&(t.push(e.slice(u,n),encodeURIComponent(r)),u=n+s+1,r=""),s&&(n+=s,s=0)}return t.join("")+e.slice(u)}function dt(e,t,n,u){const s=u?u-1:Number.POSITIVE_INFINITY;let i=0;return r;function r(a){return tt(a)?(e.enter(n),o(a)):t(a)}function o(a){return tt(a)&&i++r))return;const U=t.events.length;let X=U,K,D;for(;X--;)if(t.events[X][0]==="exit"&&t.events[X][1].type==="chunkFlow"){if(K){D=t.events[X][1].end;break}K=!0}for(C(u),T=U;Tk;){const H=n[S];t.containerState=H[1],H[0].exit.call(t,e)}n.length=k}function x(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function uF(e,t,n){return dt(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function _g(e){if(e===null||nn(e)||X8(e))return 1;if(J8(e))return 2}function ld(e,t,n){const u=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const d={...e[u][1].end},f={...e[n][1].start};Ng(d,-a),Ng(f,a),r={type:a>1?"strongSequence":"emphasisSequence",start:d,end:{...e[u][1].end}},o={type:a>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:a>1?"strongText":"emphasisText",start:{...e[u][1].end},end:{...e[n][1].start}},s={type:a>1?"strong":"emphasis",start:{...r.start},end:{...o.end}},e[u][1].end={...r.start},e[n][1].start={...o.end},c=[],e[u][1].end.offset-e[u][1].start.offset&&(c=bn(c,[["enter",e[u][1],t],["exit",e[u][1],t]])),c=bn(c,[["enter",s,t],["enter",r,t],["exit",r,t],["enter",i,t]]),c=bn(c,ld(t.parser.constructs.insideSpan.null,e.slice(u+1,n),t)),c=bn(c,[["exit",i,t],["enter",o,t],["exit",o,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(l=2,c=bn(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):l=0,nu(e,u-1,n-u+3,c),n=u+c.length-l-2;break}}for(n=-1;++n0&&tt(T)?dt(e,x,"linePrefix",i+1)(T):x(T)}function x(T){return T===null||Re(T)?e.check(Tg,E,S)(T):(e.enter("codeFlowValue"),k(T))}function k(T){return T===null||Re(T)?(e.exit("codeFlowValue"),x(T)):(e.consume(T),k)}function S(T){return e.exit("codeFenced"),t(T)}function H(T,U,X){let K=0;return D;function D($){return T.enter("lineEnding"),T.consume($),T.exit("lineEnding"),O}function O($){return T.enter("codeFencedFence"),tt($)?dt(T,B,"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)($):B($)}function B($){return $===o?(T.enter("codeFencedFenceSequence"),R($)):X($)}function R($){return $===o?(K++,T.consume($),R):K>=r?(T.exit("codeFencedFenceSequence"),tt($)?dt(T,M,"whitespace")($):M($)):X($)}function M($){return $===null||Re($)?(T.exit("codeFencedFence"),U($)):X($)}}}function pF(e,t,n){const u=this;return s;function s(r){return r===null?n(r):(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),i)}function i(r){return u.parser.lazy[u.now().line]?n(r):t(r)}}const Jl={name:"codeIndented",tokenize:vF},hF={partial:!0,tokenize:EF};function vF(e,t,n){const u=this;return s;function s(c){return e.enter("codeIndented"),dt(e,i,"linePrefix",5)(c)}function i(c){const l=u.events[u.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?r(c):n(c)}function r(c){return c===null?a(c):Re(c)?e.attempt(hF,r,a)(c):(e.enter("codeFlowValue"),o(c))}function o(c){return c===null||Re(c)?(e.exit("codeFlowValue"),r(c)):(e.consume(c),o)}function a(c){return e.exit("codeIndented"),t(c)}}function EF(e,t,n){const u=this;return s;function s(r){return u.parser.lazy[u.now().line]?n(r):Re(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),s):dt(e,i,"linePrefix",5)(r)}function i(r){const o=u.events[u.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?t(r):Re(r)?s(r):n(r)}}const CF={name:"codeText",previous:xF,resolve:yF,tokenize:wF};function yF(e){let t=e.length-4,n=3,u,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(u=n;++u=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-u+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-u+this.left.length).reverse())}splice(t,n,u){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return u&&Ii(this.left,u),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Ii(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Ii(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(r):e.interrupt(u.parser.constructs.flow,n,t)(r)}}function tv(e,t,n,u,s,i,r,o,a){const c=a||Number.POSITIVE_INFINITY;let l=0;return d;function d(C){return C===60?(e.enter(u),e.enter(s),e.enter(i),e.consume(C),e.exit(i),f):C===null||C===32||C===41||rc(C)?n(C):(e.enter(u),e.enter(r),e.enter(o),e.enter("chunkString",{contentType:"string"}),E(C))}function f(C){return C===62?(e.enter(i),e.consume(C),e.exit(i),e.exit(s),e.exit(u),t):(e.enter(o),e.enter("chunkString",{contentType:"string"}),g(C))}function g(C){return C===62?(e.exit("chunkString"),e.exit(o),f(C)):C===null||C===60||Re(C)?n(C):(e.consume(C),C===92?h:g)}function h(C){return C===60||C===62||C===92?(e.consume(C),g):g(C)}function E(C){return!l&&(C===null||C===41||nn(C))?(e.exit("chunkString"),e.exit(o),e.exit(r),e.exit(u),t(C)):l999||g===null||g===91||g===93&&!a||g===94&&!o&&"_hiddenFootnoteSupport"in r.parser.constructs?n(g):g===93?(e.exit(i),e.enter(s),e.consume(g),e.exit(s),e.exit(u),t):Re(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),d(g))}function d(g){return g===null||g===91||g===93||Re(g)||o++>999?(e.exit("chunkString"),l(g)):(e.consume(g),a||(a=!tt(g)),g===92?f:d)}function f(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}}function uv(e,t,n,u,s,i){let r;return o;function o(f){return f===34||f===39||f===40?(e.enter(u),e.enter(s),e.consume(f),e.exit(s),r=f===40?41:f,a):n(f)}function a(f){return f===r?(e.enter(s),e.consume(f),e.exit(s),e.exit(u),t):(e.enter(i),c(f))}function c(f){return f===r?(e.exit(i),a(r)):f===null?n(f):Re(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),dt(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(f))}function l(f){return f===r||f===null||Re(f)?(e.exit("chunkString"),c(f)):(e.consume(f),f===92?d:l)}function d(f){return f===r||f===92?(e.consume(f),l):l(f)}}function tr(e,t){let n;return u;function u(s){return Re(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,u):tt(s)?dt(e,u,n?"linePrefix":"lineSuffix")(s):t(s)}}const _F={name:"definition",tokenize:TF},NF={partial:!0,tokenize:zF};function TF(e,t,n){const u=this;let s;return i;function i(g){return e.enter("definition"),r(g)}function r(g){return nv.call(u,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(g)}function o(g){return s=ii(u.sliceSerialize(u.events[u.events.length-1][1]).slice(1,-1)),g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),a):n(g)}function a(g){return nn(g)?tr(e,c)(g):c(g)}function c(g){return tv(e,l,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(g)}function l(g){return e.attempt(NF,d,d)(g)}function d(g){return tt(g)?dt(e,f,"whitespace")(g):f(g)}function f(g){return g===null||Re(g)?(e.exit("definition"),u.parser.defined.push(s),t(g)):n(g)}}function zF(e,t,n){return u;function u(o){return nn(o)?tr(e,s)(o):n(o)}function s(o){return uv(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(o)}function i(o){return tt(o)?dt(e,r,"whitespace")(o):r(o)}function r(o){return o===null||Re(o)?t(o):n(o)}}const PF={name:"hardBreakEscape",tokenize:IF};function IF(e,t,n){return u;function u(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Re(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const LF={name:"headingAtx",resolve:OF,tokenize:RF};function OF(e,t){let n=e.length-2,u=3,s,i;return e[u][1].type==="whitespace"&&(u+=2),n-2>u&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(u===n-1||n-4>u&&e[n-2][1].type==="whitespace")&&(n-=u+1===n?2:4),n>u&&(s={type:"atxHeadingText",start:e[u][1].start,end:e[n][1].end},i={type:"chunkText",start:e[u][1].start,end:e[n][1].end,contentType:"text"},nu(e,u,n-u+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function RF(e,t,n){let u=0;return s;function s(l){return e.enter("atxHeading"),i(l)}function i(l){return e.enter("atxHeadingSequence"),r(l)}function r(l){return l===35&&u++<6?(e.consume(l),r):l===null||nn(l)?(e.exit("atxHeadingSequence"),o(l)):n(l)}function o(l){return l===35?(e.enter("atxHeadingSequence"),a(l)):l===null||Re(l)?(e.exit("atxHeading"),t(l)):tt(l)?dt(e,o,"whitespace")(l):(e.enter("atxHeadingText"),c(l))}function a(l){return l===35?(e.consume(l),a):(e.exit("atxHeadingSequence"),o(l))}function c(l){return l===null||l===35||nn(l)?(e.exit("atxHeadingText"),o(l)):(e.consume(l),c)}}const jF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Pg=["pre","script","style","textarea"],MF={concrete:!0,name:"htmlFlow",resolveTo:UF,tokenize:HF},$F={partial:!0,tokenize:qF},VF={partial:!0,tokenize:WF};function UF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function HF(e,t,n){const u=this;let s,i,r,o,a;return c;function c(F){return l(F)}function l(F){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(F),d}function d(F){return F===33?(e.consume(F),f):F===47?(e.consume(F),i=!0,E):F===63?(e.consume(F),s=3,u.interrupt?t:w):Yn(F)?(e.consume(F),r=String.fromCharCode(F),b):n(F)}function f(F){return F===45?(e.consume(F),s=2,g):F===91?(e.consume(F),s=5,o=0,h):Yn(F)?(e.consume(F),s=4,u.interrupt?t:w):n(F)}function g(F){return F===45?(e.consume(F),u.interrupt?t:w):n(F)}function h(F){const Oe="CDATA[";return F===Oe.charCodeAt(o++)?(e.consume(F),o===Oe.length?u.interrupt?t:B:h):n(F)}function E(F){return Yn(F)?(e.consume(F),r=String.fromCharCode(F),b):n(F)}function b(F){if(F===null||F===47||F===62||nn(F)){const Oe=F===47,Be=r.toLowerCase();return!Oe&&!i&&Pg.includes(Be)?(s=1,u.interrupt?t(F):B(F)):jF.includes(r.toLowerCase())?(s=6,Oe?(e.consume(F),C):u.interrupt?t(F):B(F)):(s=7,u.interrupt&&!u.parser.lazy[u.now().line]?n(F):i?x(F):k(F))}return F===45||dn(F)?(e.consume(F),r+=String.fromCharCode(F),b):n(F)}function C(F){return F===62?(e.consume(F),u.interrupt?t:B):n(F)}function x(F){return tt(F)?(e.consume(F),x):D(F)}function k(F){return F===47?(e.consume(F),D):F===58||F===95||Yn(F)?(e.consume(F),S):tt(F)?(e.consume(F),k):D(F)}function S(F){return F===45||F===46||F===58||F===95||dn(F)?(e.consume(F),S):H(F)}function H(F){return F===61?(e.consume(F),T):tt(F)?(e.consume(F),H):k(F)}function T(F){return F===null||F===60||F===61||F===62||F===96?n(F):F===34||F===39?(e.consume(F),a=F,U):tt(F)?(e.consume(F),T):X(F)}function U(F){return F===a?(e.consume(F),a=null,K):F===null||Re(F)?n(F):(e.consume(F),U)}function X(F){return F===null||F===34||F===39||F===47||F===60||F===61||F===62||F===96||nn(F)?H(F):(e.consume(F),X)}function K(F){return F===47||F===62||tt(F)?k(F):n(F)}function D(F){return F===62?(e.consume(F),O):n(F)}function O(F){return F===null||Re(F)?B(F):tt(F)?(e.consume(F),O):n(F)}function B(F){return F===45&&s===2?(e.consume(F),Q):F===60&&s===1?(e.consume(F),oe):F===62&&s===4?(e.consume(F),De):F===63&&s===3?(e.consume(F),w):F===93&&s===5?(e.consume(F),be):Re(F)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check($F,Ie,R)(F)):F===null||Re(F)?(e.exit("htmlFlowData"),R(F)):(e.consume(F),B)}function R(F){return e.check(VF,M,Ie)(F)}function M(F){return e.enter("lineEnding"),e.consume(F),e.exit("lineEnding"),$}function $(F){return F===null||Re(F)?R(F):(e.enter("htmlFlowData"),B(F))}function Q(F){return F===45?(e.consume(F),w):B(F)}function oe(F){return F===47?(e.consume(F),r="",fe):B(F)}function fe(F){if(F===62){const Oe=r.toLowerCase();return Pg.includes(Oe)?(e.consume(F),De):B(F)}return Yn(F)&&r.length<8?(e.consume(F),r+=String.fromCharCode(F),fe):B(F)}function be(F){return F===93?(e.consume(F),w):B(F)}function w(F){return F===62?(e.consume(F),De):F===45&&s===2?(e.consume(F),w):B(F)}function De(F){return F===null||Re(F)?(e.exit("htmlFlowData"),Ie(F)):(e.consume(F),De)}function Ie(F){return e.exit("htmlFlow"),t(F)}}function WF(e,t,n){const u=this;return s;function s(r){return Re(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),i):n(r)}function i(r){return u.parser.lazy[u.now().line]?n(r):t(r)}}function qF(e,t,n){return u;function u(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Ha,t,n)}}const KF={name:"htmlText",tokenize:GF};function GF(e,t,n){const u=this;let s,i,r;return o;function o(w){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(w),a}function a(w){return w===33?(e.consume(w),c):w===47?(e.consume(w),H):w===63?(e.consume(w),k):Yn(w)?(e.consume(w),X):n(w)}function c(w){return w===45?(e.consume(w),l):w===91?(e.consume(w),i=0,h):Yn(w)?(e.consume(w),x):n(w)}function l(w){return w===45?(e.consume(w),g):n(w)}function d(w){return w===null?n(w):w===45?(e.consume(w),f):Re(w)?(r=d,oe(w)):(e.consume(w),d)}function f(w){return w===45?(e.consume(w),g):d(w)}function g(w){return w===62?Q(w):w===45?f(w):d(w)}function h(w){const De="CDATA[";return w===De.charCodeAt(i++)?(e.consume(w),i===De.length?E:h):n(w)}function E(w){return w===null?n(w):w===93?(e.consume(w),b):Re(w)?(r=E,oe(w)):(e.consume(w),E)}function b(w){return w===93?(e.consume(w),C):E(w)}function C(w){return w===62?Q(w):w===93?(e.consume(w),C):E(w)}function x(w){return w===null||w===62?Q(w):Re(w)?(r=x,oe(w)):(e.consume(w),x)}function k(w){return w===null?n(w):w===63?(e.consume(w),S):Re(w)?(r=k,oe(w)):(e.consume(w),k)}function S(w){return w===62?Q(w):k(w)}function H(w){return Yn(w)?(e.consume(w),T):n(w)}function T(w){return w===45||dn(w)?(e.consume(w),T):U(w)}function U(w){return Re(w)?(r=U,oe(w)):tt(w)?(e.consume(w),U):Q(w)}function X(w){return w===45||dn(w)?(e.consume(w),X):w===47||w===62||nn(w)?K(w):n(w)}function K(w){return w===47?(e.consume(w),Q):w===58||w===95||Yn(w)?(e.consume(w),D):Re(w)?(r=K,oe(w)):tt(w)?(e.consume(w),K):Q(w)}function D(w){return w===45||w===46||w===58||w===95||dn(w)?(e.consume(w),D):O(w)}function O(w){return w===61?(e.consume(w),B):Re(w)?(r=O,oe(w)):tt(w)?(e.consume(w),O):K(w)}function B(w){return w===null||w===60||w===61||w===62||w===96?n(w):w===34||w===39?(e.consume(w),s=w,R):Re(w)?(r=B,oe(w)):tt(w)?(e.consume(w),B):(e.consume(w),M)}function R(w){return w===s?(e.consume(w),s=void 0,$):w===null?n(w):Re(w)?(r=R,oe(w)):(e.consume(w),R)}function M(w){return w===null||w===34||w===39||w===60||w===61||w===96?n(w):w===47||w===62||nn(w)?K(w):(e.consume(w),M)}function $(w){return w===47||w===62||nn(w)?K(w):n(w)}function Q(w){return w===62?(e.consume(w),e.exit("htmlTextData"),e.exit("htmlText"),t):n(w)}function oe(w){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(w),e.exit("lineEnding"),fe}function fe(w){return tt(w)?dt(e,be,"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):be(w)}function be(w){return e.enter("htmlTextData"),r(w)}}const cd={name:"labelEnd",resolveAll:XF,resolveTo:QF,tokenize:eS},YF={tokenize:tS},ZF={tokenize:nS},JF={tokenize:uS};function XF(e){let t=-1;const n=[];for(;++t=3&&(c===null||Re(c))?(e.exit("thematicBreak"),t(c)):n(c)}function a(c){return c===s?(e.consume(c),u++,a):(e.exit("thematicBreakSequence"),tt(c)?dt(e,o,"whitespace")(c):o(c))}}const Xt={continuation:{tokenize:gS},exit:pS,name:"list",tokenize:mS},cS={partial:!0,tokenize:hS},dS={partial:!0,tokenize:fS};function mS(e,t,n){const u=this,s=u.events[u.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,r=0;return o;function o(g){const h=u.containerState.type||(g===42||g===43||g===45?"listUnordered":"listOrdered");if(h==="listUnordered"?!u.containerState.marker||g===u.containerState.marker:oc(g)){if(u.containerState.type||(u.containerState.type=h,e.enter(h,{_container:!0})),h==="listUnordered")return e.enter("listItemPrefix"),g===42||g===45?e.check(ho,n,c)(g):c(g);if(!u.interrupt||g===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),a(g)}return n(g)}function a(g){return oc(g)&&++r<10?(e.consume(g),a):(!u.interrupt||r<2)&&(u.containerState.marker?g===u.containerState.marker:g===41||g===46)?(e.exit("listItemValue"),c(g)):n(g)}function c(g){return e.enter("listItemMarker"),e.consume(g),e.exit("listItemMarker"),u.containerState.marker=u.containerState.marker||g,e.check(Ha,u.interrupt?n:l,e.attempt(cS,f,d))}function l(g){return u.containerState.initialBlankLine=!0,i++,f(g)}function d(g){return tt(g)?(e.enter("listItemPrefixWhitespace"),e.consume(g),e.exit("listItemPrefixWhitespace"),f):n(g)}function f(g){return u.containerState.size=i+u.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(g)}}function gS(e,t,n){const u=this;return u.containerState._closeFlow=void 0,e.check(Ha,s,i);function s(o){return u.containerState.furtherBlankLines=u.containerState.furtherBlankLines||u.containerState.initialBlankLine,dt(e,t,"listItemIndent",u.containerState.size+1)(o)}function i(o){return u.containerState.furtherBlankLines||!tt(o)?(u.containerState.furtherBlankLines=void 0,u.containerState.initialBlankLine=void 0,r(o)):(u.containerState.furtherBlankLines=void 0,u.containerState.initialBlankLine=void 0,e.attempt(dS,t,r)(o))}function r(o){return u.containerState._closeFlow=!0,u.interrupt=void 0,dt(e,e.attempt(Xt,t,n),"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}function fS(e,t,n){const u=this;return dt(e,s,"listItemIndent",u.containerState.size+1);function s(i){const r=u.events[u.events.length-1];return r&&r[1].type==="listItemIndent"&&r[2].sliceSerialize(r[1],!0).length===u.containerState.size?t(i):n(i)}}function pS(e){e.exit(this.containerState.type)}function hS(e,t,n){const u=this;return dt(e,s,"listItemPrefixWhitespace",u.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const r=u.events[u.events.length-1];return!tt(i)&&r&&r[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Ig={name:"setextUnderline",resolveTo:vS,tokenize:ES};function vS(e,t){let n=e.length,u,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){u=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const r={type:"setextHeading",start:{...e[u][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",r,t]),e.splice(i+1,0,["exit",e[u][1],t]),e[u][1].end={...e[i][1].end}):e[u][1]=r,e.push(["exit",r,t]),e}function ES(e,t,n){const u=this;let s;return i;function i(c){let l=u.events.length,d;for(;l--;)if(u.events[l][1].type!=="lineEnding"&&u.events[l][1].type!=="linePrefix"&&u.events[l][1].type!=="content"){d=u.events[l][1].type==="paragraph";break}return!u.parser.lazy[u.now().line]&&(u.interrupt||d)?(e.enter("setextHeadingLine"),s=c,r(c)):n(c)}function r(c){return e.enter("setextHeadingLineSequence"),o(c)}function o(c){return c===s?(e.consume(c),o):(e.exit("setextHeadingLineSequence"),tt(c)?dt(e,a,"lineSuffix")(c):a(c))}function a(c){return c===null||Re(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const CS={tokenize:yS};function yS(e){const t=this,n=e.attempt(Ha,u,e.attempt(this.parser.constructs.flowInitial,s,dt(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kF,s)),"linePrefix")));return n;function u(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const xS={resolveAll:iv()},wS=sv("string"),bS=sv("text");function sv(e){return{resolveAll:iv(e==="text"?BS:void 0),tokenize:t};function t(n){const u=this,s=this.parser.constructs[e],i=n.attempt(s,r,o);return r;function r(l){return c(l)?i(l):o(l)}function o(l){if(l===null){n.consume(l);return}return n.enter("data"),n.consume(l),a}function a(l){return c(l)?(n.exit("data"),i(l)):(n.consume(l),a)}function c(l){if(l===null)return!0;const d=s[l];let f=-1;if(d)for(;++f-1){const o=r[0];typeof o=="string"?r[0]=o.slice(u):r.shift()}i>0&&r.push(e[s].slice(0,i))}return r}function OS(e,t){let n=-1;const u=[];let s;for(;++n`,AA=Te({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(e){Aa(u=>({v6bd152af:t.value,v16fd8ca9:n.value}));const t=Z(()=>e.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),n=Z(()=>e.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(u,s)=>(D(),pe(St,{class:Ae(u.$style.iconToggleSwitch),svg:BA,size:e.size,inline:e.inline},null,8,["class","size","inline"]))}}),DA="_iconToggleSwitch_hhj0H",FA={"material-design-icon":"_material-design-icon_zYnoU",iconToggleSwitch:DA},SA={$style:FA},_A=Ze(AA,[["__cssModules",SA]]),NA=Symbol.for("insideRadioGroup");function TA(){return Tt(NA,void 0)}const zA={name:"CheckboxBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},OA=["aria-hidden","aria-label"],LA=["fill","width","height"],IA={d:"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"},PA={key:0};function RA(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon checkbox-blank-outline-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",IA,[n.title?(D(),R("title",PA,te(n.title),1)):me("",!0)])],8,LA))],16,OA)}const jA=Ze(zA,[["render",RA]]),MA={name:"CheckboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$A=["aria-hidden","aria-label"],VA=["fill","width","height"],UA={d:"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"},HA={key:0};function WA(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon checkbox-marked-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",UA,[n.title?(D(),R("title",HA,te(n.title),1)):me("",!0)])],8,VA))],16,$A)}const qA=Ze(MA,[["render",WA]]),KA={name:"MinusBoxIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},YA=["aria-hidden","aria-label"],GA=["fill","width","height"],ZA={d:"M17,13H7V11H17M19,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"},XA={key:0};function JA(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon minus-box-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",ZA,[n.title?(D(),R("title",XA,te(n.title),1)):me("",!0)])],8,GA))],16,YA)}const QA=Ze(KA,[["render",JA]]),eD={name:"RadioboxBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tD=["aria-hidden","aria-label"],nD=["fill","width","height"],uD={d:"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"},sD={key:0};function iD(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon radiobox-blank-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",uD,[n.title?(D(),R("title",sD,te(n.title),1)):me("",!0)])],8,nD))],16,tD)}const rD=Ze(eD,[["render",iD]]),oD={name:"RadioboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},aD=["aria-hidden","aria-label"],lD=["fill","width","height"],cD={d:"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"},dD={key:0};function mD(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon radiobox-marked-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",cD,[n.title?(D(),R("title",dD,te(n.title),1)):me("",!0)])],8,lD))],16,aD)}const gD=Ze(oD,[["render",mD]]),Hs="checkbox",os="radio",ru="switch",Yi="button",fD={name:"NcCheckboxContent",components:{NcLoadingIcon:Fc,NcIconToggleSwitch:_A},props:{iconClass:{type:[String,Object],default:null},textClass:{type:[String,Object],default:null},type:{type:String,default:"checkbox",validator:e=>[Hs,os,ru,Yi].includes(e)},buttonVariant:{type:Boolean,default:!1},isChecked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},iconSize:{type:Number,default:24},labelId:{type:String,required:!0},descriptionId:{type:String,required:!0}},computed:{isButtonType(){return this.type===Yi},isSwitchType(){return this.type===ru},checkboxRadioIconElement(){return this.type===os?this.isChecked?gD:rD:this.indeterminate?QA:this.isChecked?qA:jA}}},pD={key:0,class:"checkbox-content__wrapper"},hD=["id"],vD=["id"];function ED(e,t,n,u,s,i){const r=mn("NcLoadingIcon"),o=mn("NcIconToggleSwitch");return D(),R("span",{class:Ae(["checkbox-content",{["checkbox-content-"+n.type]:!0,"checkbox-content--button-variant":n.buttonVariant,"checkbox-content--has-text":!!e.$slots.default}])},[H("span",{class:Ae(["checkbox-content__icon",{"checkbox-content__icon--checked":n.isChecked,"checkbox-content__icon--has-description":!i.isButtonType&&e.$slots.description,[n.iconClass]:!0}]),"aria-hidden":!0,inert:""},[De(e.$slots,"icon",{checked:n.isChecked,loading:n.loading},()=>[n.loading?(D(),pe(r,{key:0})):i.isSwitchType?(D(),pe(o,{key:1,checked:n.isChecked,size:n.iconSize,inline:""},null,8,["checked","size"])):n.buttonVariant?me("",!0):(D(),pe(hu(i.checkboxRadioIconElement),{key:2,size:n.iconSize},null,8,["size"]))],!0)],2),e.$slots.default||e.$slots.description?(D(),R("span",pD,[e.$slots.default?(D(),R("span",{key:0,id:n.labelId,class:Ae(["checkbox-content__text",n.textClass])},[De(e.$slots,"default",{},void 0,!0)],10,hD)):me("",!0),!i.isButtonType&&e.$slots.description?(D(),R("span",{key:1,id:n.descriptionId,class:"checkbox-content__description"},[De(e.$slots,"description",{},void 0,!0)],8,vD)):me("",!0)])):me("",!0)],2)}const CD=Ze(fD,[["render",ED],["__scopeId","data-v-5ca1e30f"]]);yt();const qc={name:"NcCheckboxRadioSwitch",components:{NcCheckboxContent:CD},inheritAttrs:!1,props:{id:{type:String,default:()=>"checkbox-radio-switch-"+cn(),validator:e=>e.trim()!==""},wrapperId:{type:String,default:null},name:{type:String,default:null},ariaLabel:{type:String,default:""},type:{type:String,default:"checkbox",validator:e=>[Hs,os,ru,Yi].includes(e)},buttonVariant:{type:Boolean,default:!1},buttonVariantGrouped:{type:String,default:"no",validator:e=>["no","vertical","horizontal"].includes(e)},modelValue:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},required:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:null},class:{type:[String,Array,Object],default:""},style:{type:[String,Array,Object],default:""},description:{type:String,default:null}},emits:["update:modelValue"],setup(e,{emit:t}){const n=TA();Qt(()=>n?.value.register(!1));const u=Z(()=>n?.value?os:e.type),s=Z({get(){return n?.value?n.value.modelValue:e.modelValue},set(i){n?.value?n.value.onUpdate(i):t("update:modelValue",i)}});return{internalType:u,internalModelValue:s,labelId:cn(),descriptionId:cn()}},computed:{isButtonType(){return this.internalType===Yi},computedWrapperElement(){return this.isButtonType?"button":this.wrapperElement!==null?this.wrapperElement:"span"},listeners(){return this.isButtonType?{click:this.onToggle}:{change:this.onToggle}},iconSize(){return this.internalType===ru?36:20},cssIconSize(){return this.iconSize+"px"},cssIconHeight(){return this.internalType===ru?"16px":this.cssIconSize},inputType(){return[Hs,os,Yi].includes(this.internalType)?this.internalType:Hs},inputRole(){return this.internalType===ru?"switch":void 0},isChecked(){return this.value!==null?Array.isArray(this.internalModelValue)?[...this.internalModelValue].indexOf(this.value)>-1:this.internalModelValue===this.value:this.internalModelValue===!0},hasIndeterminate(){return[Hs,os].includes(this.inputType)}},mounted(){if(this.name&&this.internalType===Hs&&!Array.isArray(this.internalModelValue))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&this.internalType===ru)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if(typeof this.internalModelValue!="boolean"&&this.internalType===ru)throw new Error("Switches can only be used with boolean as modelValue prop.")},methods:{t:$e,n:X5,onToggle(e){if(!(this.disabled||e.target.tagName.toLowerCase()==="a")){if(this.internalType===os){this.internalModelValue=this.value;return}if(this.internalType===ru){this.internalModelValue=!this.isChecked;return}if(typeof this.internalModelValue=="boolean"){this.internalModelValue=!this.internalModelValue;return}this.isChecked?this.internalModelValue=this.internalModelValue.filter(t=>t!==this.value):this.internalModelValue=[...this.internalModelValue,this.value]}}}},dg=()=>{Aa(e=>({f99d0228:e.cssIconSize,v69c82152:e.cssIconHeight}))},mg=qc.setup;qc.setup=mg?(e,t)=>(dg(),mg(e,t)):dg;const yD=["id","aria-labelledby","aria-describedby","aria-label","disabled","type","role","value","checked",".indeterminate","required","name"];function xD(e,t,n,u,s,i){const r=mn("NcCheckboxContent");return D(),pe(hu(i.computedWrapperElement),Ve({id:n.wrapperId??(i.isButtonType?n.id:null),"aria-label":i.isButtonType&&n.ariaLabel?n.ariaLabel:void 0,class:["checkbox-radio-switch",[e.$props.class,{["checkbox-radio-switch-"+u.internalType]:u.internalType,"checkbox-radio-switch--checked":i.isChecked,"checkbox-radio-switch--disabled":n.disabled,"checkbox-radio-switch--indeterminate":i.hasIndeterminate?n.indeterminate:!1,"checkbox-radio-switch--button-variant":n.buttonVariant,"checkbox-radio-switch--button-variant-v-grouped":n.buttonVariant&&n.buttonVariantGrouped==="vertical","checkbox-radio-switch--button-variant-h-grouped":n.buttonVariant&&n.buttonVariantGrouped==="horizontal","button-vue":i.isButtonType}]],style:n.style,type:i.isButtonType?"button":null},i.isButtonType?e.$attrs:{},ko(i.isButtonType?i.listeners:{})),{default:re(()=>[i.isButtonType?me("",!0):(D(),R("input",Ve({key:0,id:n.id,"aria-labelledby":!i.isButtonType&&!n.ariaLabel?u.labelId:null,"aria-describedby":!i.isButtonType&&(n.description||e.$slots.description)?u.descriptionId:null,"aria-label":n.ariaLabel||void 0,class:"checkbox-radio-switch__input",disabled:n.disabled,type:i.inputType,role:i.inputRole,value:n.value,checked:i.isChecked,".indeterminate":i.hasIndeterminate?n.indeterminate:null,required:n.required,name:n.name},e.$attrs,ko(i.listeners,!0)),null,48,yD)),le(r,{id:i.isButtonType?void 0:`${n.id}-label`,class:"checkbox-radio-switch__content",iconClass:"checkbox-radio-switch__icon",textClass:"checkbox-radio-switch__text",type:u.internalType,indeterminate:i.hasIndeterminate?n.indeterminate:!1,buttonVariant:n.buttonVariant,isChecked:i.isChecked,loading:n.loading,labelId:u.labelId,descriptionId:u.descriptionId,iconSize:i.iconSize,onClick:i.onToggle},xc({icon:re(()=>[De(e.$slots,"icon",{},void 0,!0)]),_:2},[e.$slots.description||n.description?{name:"description",fn:re(()=>[De(e.$slots,"description",{},()=>[Re(te(n.description),1)],!0)]),key:"0"}:void 0,e.$slots.default?{name:"default",fn:re(()=>[De(e.$slots,"default",{},void 0,!0)]),key:"1"}:void 0]),1032,["id","type","indeterminate","buttonVariant","isChecked","loading","labelId","descriptionId","iconSize","onClick"])]),_:3},16,["id","aria-label","class","style","type"])}const Iu=Ze(qc,[["render",xD],["__scopeId","data-v-81045d2a"]]),bD=Te({__name:"SettingsDatetimeFormat",setup(e){const t=Jn(),n=Z(()=>{let r=ae("logreader","Time format used for displaying the timestamp");return t.localFile&&(r+=" "+ae("logreader",'(Local log files only support the "raw" time format)')),r}),u=Z(()=>t.localFile!==void 0),s=Z(()=>t.dateTimeFormat);function i(r){return t.setSetting("dateTimeFormat",r).catch(o=>{Sn.debug(o),pu(ae("logreader","Could not change date time format."))})}return(r,o)=>(D(),R("fieldset",null,[H("legend",null,te(n.value),1),le(N(Iu),{modelValue:s.value,value:"raw",name:"timestamp_format",type:"radio","onUpdate:modelValue":i},{default:re(()=>[Re(te(N(ae)("logreader","Raw data")),1)]),_:1},8,["modelValue"]),le(N(Iu),{modelValue:s.value,disabled:u.value,value:"local",name:"timestamp_format",type:"radio","onUpdate:modelValue":i},{default:re(()=>[Re(te(N(ae)("logreader","Local time")),1)]),_:1},8,["modelValue","disabled"]),le(N(Iu),{modelValue:s.value,disabled:u.value,value:"utc",name:"timestamp_format",type:"radio","onUpdate:modelValue":i},{default:re(()=>[Re(te(N(ae)("logreader","UTC time")),1)]),_:1},8,["modelValue","disabled"]),le(N(Iu),{modelValue:s.value,disabled:u.value,value:"relative",name:"timestamp_format",type:"radio","onUpdate:modelValue":i},{default:re(()=>[Re(te(N(ae)("logreader","Relative")),1)]),_:1},8,["modelValue","disabled"])]))}}),wD=st(bD,[["__scopeId","data-v-ed1800c8"]]),kD=Te({__name:"SettingsLiveView",setup(e){const t=Jn(),n=Z({get:()=>t.enabled?t.liveLog:!1,set:u=>t.setSetting("liveLog",u).catch(s=>{Sn.debug(s),pu(ae("logreader","Could not change live view setting."))})});return(u,s)=>(D(),R("div",null,[N(t).enabled?me("",!0):(D(),pe(N(Lo),{key:0,type:"info"},{default:re(()=>[Re(te(N(ae)("logreader","Polling is disabled because server is not configured to log to file")),1)]),_:1})),le(N(Iu),{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=i=>n.value=i),disabled:!N(t).enabled},{default:re(()=>[Re(te(N(ae)("logreader","Polling (live view)")),1)]),_:1},8,["modelValue","disabled"])]))}});function Oh(e,t=300){let n;return(...u)=>{clearTimeout(n),n=window.setTimeout(()=>{e.apply(this,u)},t)}}const BD=Te({__name:"SettingsLogLevels",setup(e){const t=Jn(),n=Z(()=>Object.fromEntries(Object.keys(si).map(s=>[s,t.shownLevels.includes(parseInt(s))]))),u=Oh(s=>{const i={...n.value,[s]:!n.value[s]},r=Object.keys(i).filter(o=>i[o]).map(o=>parseInt(o));t.setSetting("shownLevels",r).catch(()=>pu(ae("logreader","Could not set logging levels to show")))},200);return(s,i)=>(D(),R("div",null,[H("fieldset",null,[H("legend",null,te(N(ae)("logreader","Filter logging levels")),1),(D(!0),R(qe,null,Zn(N(si),(r,o)=>(D(),pe(N(Iu),{key:o,modelValue:n.value[o],"onUpdate:modelValue":a=>N(u)(o)},{default:re(()=>[Re(te(r),1)]),_:2},1032,["modelValue","onUpdate:modelValue"]))),128))])]))}}),AD=st(BD,[["__scopeId","data-v-ea32d803"]]),DD=Te({__name:"SettingsSetLogLevel",setup(e){const t=Jn(),n=Z(()=>`${t.logLevel}`);function u(s){const i=parseInt(s);t.setSetting("logLevel",i).catch(r=>{pu(ae("logreader","Could not set logging level")),Sn.error(r)})}return(s,i)=>(D(),R("fieldset",null,[H("legend",null,te(N(ae)("logreader","Set backend loglevel")),1),(D(!0),R(qe,null,Zn(N(si),(r,o)=>(D(),pe(N(Iu),{key:o,modelValue:n.value,value:`${o}`,type:"radio",name:"loglevel","onUpdate:modelValue":u},{default:re(()=>[Re(te(r),1)]),_:2},1032,["modelValue","value"]))),128))]))}}),FD=st(DD,[["__scopeId","data-v-41d2be68"]]),SD=Te({__name:"AppSettingsDialog",props:{open:{type:Boolean}},emits:["update:open"],setup(e,{emit:t}){const n=e,u=t,s=r=>u("update:open",r),i=window.OCP.Accessibility.disableKeyboardShortcuts();return(r,o)=>(D(),pe(N(Ab),{open:n.open,showNavigation:"",name:N(ae)("logreader","Log reader settings"),"onUpdate:open":s},{default:re(()=>[le(N(Vs),{id:"logreader-settings-levels",name:N(ae)("logreader","Filter log levels")},{default:re(()=>[le(AD)]),_:1},8,["name"]),le(N(Vs),{id:"logreader-settings-set-level",name:N(ae)("logreader","Set log level")},{default:re(()=>[le(FD)]),_:1},8,["name"]),le(N(Vs),{id:"logreader-settings-time",name:N(ae)("logreader","Time format")},{default:re(()=>[le(wD)]),_:1},8,["name"]),le(N(Vs),{id:"logreader-settings-live-view",name:N(ae)("logreader","Live view")},{default:re(()=>[le(kD)]),_:1},8,["name"]),le(N(Vs),{id:"logreader-settings-actions",name:N(ae)("logreader","Download/Upload logs")},{default:re(()=>[le(kA)]),_:1},8,["name"]),N(i)?me("",!0):(D(),pe(N(Ib),{key:0},{default:re(()=>[le(N(tw),null,{default:re(()=>[le(N(Gb),{label:N(ae)("logreader","Search log entries"),hotkey:"Control F"},null,8,["label"])]),_:1})]),_:1}))]),_:1},8,["open","name"]))}}),gg=Te({__name:"IntersectionObserver",props:{options:{}},emits:["intersection"],setup(e,{emit:t}){const n=e,u=t,s=be(),i=new IntersectionObserver(r=>{r[0].isIntersecting&&u("intersection")},n.options);return Qt(()=>{s.value&&i.observe(s.value)}),Bn(()=>i.disconnect()),(r,o)=>(D(),R("div",{ref_key:"observable",ref:s},[De(r.$slots,"default")],512))}}),_D={};function Ia(e,t){const n=_D,u=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,s=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Lh(e,u,s)}function Lh(e,t,n){if(ND(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return fg(e.children,t,n)}return Array.isArray(e)?fg(e,t,n):""}function fg(e,t,n){const u=[];let s=-1;for(;++s{const n=(s,i)=>(e.set(i,s),s),u=s=>{if(e.has(s))return e.get(s);const[i,r]=t[s];switch(i){case Pa:case Ih:return n(r,s);case ea:{const o=n([],s);for(const a of r)o.push(u(a));return o}case ta:{const o=n({},s);for(const[a,l]of r)o[u(a)]=u(l);return o}case Kc:return n(new Date(r),s);case Yc:{const{source:o,flags:a}=r;return n(new RegExp(o,a),s)}case Gc:{const o=n(new Map,s);for(const[a,l]of r)o.set(u(a),u(l));return o}case Zc:{const o=n(new Set,s);for(const a of r)o.add(u(a));return o}case Ph:{const{name:o,message:a}=r;return n(new pg[o](a),s)}case Rh:return n(BigInt(r),s);case"BigInt":return n(Object(BigInt(r)),s)}return n(new pg[i](r),s)};return u},hg=e=>TD(new Map,e)(0),Ps="",{toString:zD}={},{keys:OD}=Object,Di=e=>{const t=typeof e;if(t!=="object"||!e)return[Pa,t];const n=zD.call(e).slice(8,-1);switch(n){case"Array":return[ea,Ps];case"Object":return[ta,Ps];case"Date":return[Kc,Ps];case"RegExp":return[Yc,Ps];case"Map":return[Gc,Ps];case"Set":return[Zc,Ps]}return n.includes("Array")?[ea,n]:n.includes("Error")?[Ph,n]:[ta,n]},Zr=([e,t])=>e===Pa&&(t==="function"||t==="symbol"),LD=(e,t,n,u)=>{const s=(r,o)=>{const a=u.push(r)-1;return n.set(o,a),a},i=r=>{if(n.has(r))return n.get(r);let[o,a]=Di(r);switch(o){case Pa:{let c=r;switch(a){case"bigint":o=Rh,c=r.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+a);c=null;break;case"undefined":return s([Ih],r)}return s([o,c],r)}case ea:{if(a)return s([a,[...r]],r);const c=[],d=s([o,c],r);for(const g of r)c.push(i(g));return d}case ta:{if(a)switch(a){case"BigInt":return s([a,r.toString()],r);case"Boolean":case"Number":case"String":return s([a,r.valueOf()],r)}if(t&&"toJSON"in r)return i(r.toJSON());const c=[],d=s([o,c],r);for(const g of OD(r))(e||!Zr(Di(r[g])))&&c.push([i(g),i(r[g])]);return d}case Kc:return s([o,r.toISOString()],r);case Yc:{const{source:c,flags:d}=r;return s([o,{source:c,flags:d}],r)}case Gc:{const c=[],d=s([o,c],r);for(const[g,m]of r)(e||!(Zr(Di(g))||Zr(Di(m))))&&c.push([i(g),i(m)]);return d}case Zc:{const c=[],d=s([o,c],r);for(const g of r)(e||!Zr(Di(g)))&&c.push(i(g));return d}}const{message:l}=r;return s([o,{name:a,message:l}],r)};return i},vg=(e,{json:t,lossy:n}={})=>{const u=[];return LD(!(t||n),!!t,new Map,u)(e),u},hs=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?hg(vg(e,t)):structuredClone(e):(e,t)=>hg(vg(e,t)),jh=(function(e){if(e==null)return RD;if(typeof e=="string")return PD(e);if(typeof e=="object")return ID(e);if(typeof e=="function")return Xc(e);throw new Error("Expected function, string, or array as `test`")});function ID(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let m=Mh,f,p,E;if((!t||i(a,l,c[c.length-1]||void 0))&&(m=XD(n(a,c)),m[0]===J0))return m;if("children"in a&&a.children){const v=a;if(v.children&&m[0]!==ja)for(p=(u?v.children.length:-1)+r,E=c.concat(v);p>-1&&p0&&(i.properties.rel=[...g]),m&&(i.properties.target=m),c){const p=Fi(t.contentProperties,i)||{};i.children.push({type:"element",tagName:"span",properties:hs(p),children:hs(c)})}}}})}}function Fi(e,t){return typeof e=="function"?e(t):e}function nF(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const uF=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,sF=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,iF={};function Eg(e,t){return(iF.jsx?sF:uF).test(e)}const rF=/[ \t\n\f\r]/g;function oF(e){return typeof e=="object"?e.type==="text"?Cg(e.value):!1:Cg(e)}function Cg(e){return e.replace(rF,"")===""}class Gi{constructor(t,n,u){this.normal=n,this.property=t,u&&(this.space=u)}}Gi.prototype.normal={},Gi.prototype.property={},Gi.prototype.space=void 0;function $h(e,t){const n={},u={};for(const s of e)Object.assign(n,s.property),Object.assign(u,s.normal);return new Gi(n,u,t)}function Q0(e){return e.toLowerCase()}class Gt{constructor(t,n){this.attribute=n,this.property=t}}Gt.prototype.attribute="",Gt.prototype.booleanish=!1,Gt.prototype.boolean=!1,Gt.prototype.commaOrSpaceSeparated=!1,Gt.prototype.commaSeparated=!1,Gt.prototype.defined=!1,Gt.prototype.mustUseProperty=!1,Gt.prototype.number=!1,Gt.prototype.overloadedBoolean=!1,Gt.prototype.property="",Gt.prototype.spaceSeparated=!1,Gt.prototype.space=void 0;let aF=0;const Le=As(),vt=As(),ec=As(),ie=As(),Qe=As(),ei=As(),tn=As();function As(){return 2**++aF}const tc=Object.freeze(Object.defineProperty({__proto__:null,boolean:Le,booleanish:vt,commaOrSpaceSeparated:tn,commaSeparated:ei,number:ie,overloadedBoolean:ec,spaceSeparated:Qe},Symbol.toStringTag,{value:"Module"})),Yl=Object.keys(tc);class Qc extends Gt{constructor(t,n,u,s){let i=-1;if(super(t,n),yg(this,"space",s),typeof u=="number")for(;++i4&&n.slice(0,4)==="data"&&gF.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(xg,hF);u="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!xg.test(i)){let r=i.replace(mF,pF);r.charAt(0)!=="-"&&(r="-"+r),t="data"+r}}s=Qc}return new s(u,t)}function pF(e){return"-"+e.toLowerCase()}function hF(e){return e.charAt(1).toUpperCase()}const vF=$h([Vh,lF,Wh,qh,Kh],"html"),ed=$h([Vh,cF,Wh,qh,Kh],"svg");var Rs={},Gl,bg;function EF(){if(bg)return Gl;bg=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,u=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,r=/^[;\s]*/,o=/^\s+|\s+$/g,a=` +`,l="/",c="*",d="",g="comment",m="declaration";function f(E,v){if(typeof E!="string")throw new TypeError("First argument must be a string");if(!E)return[];v=v||{};var C=1,y=1;function k(L){var I=L.match(t);I&&(C+=I.length);var G=L.lastIndexOf(a);y=~G?L.length-G:y+L.length}function j(){var L={line:C,column:y};return function(I){return I.position=new F(L),$(),I}}function F(L){this.start=L,this.end={line:C,column:y},this.source=v.source}F.prototype.content=E;function P(L){var I=new Error(v.source+":"+C+":"+y+": "+L);if(I.reason=L,I.filename=v.source,I.line=C,I.column=y,I.source=E,!v.silent)throw I}function K(L){var I=L.exec(E);if(I){var G=I[0];return k(G),E=E.slice(G.length),I}}function $(){K(n)}function B(L){var I;for(L=L||[];I=T();)I!==!1&&L.push(I);return L}function T(){var L=j();if(!(l!=E.charAt(0)||c!=E.charAt(1))){for(var I=2;d!=E.charAt(I)&&(c!=E.charAt(I)||l!=E.charAt(I+1));)++I;if(I+=2,d===E.charAt(I-1))return P("End of comment missing");var G=E.slice(2,I-2);return y+=2,k(G),E=E.slice(I),y+=2,L({type:g,comment:G})}}function x(){var L=j(),I=K(u);if(I){if(T(),!K(s))return P("property missing ':'");var G=K(i),ue=L({type:m,property:p(I[0].replace(e,d)),value:G?p(G[0].replace(e,d)):d});return K(r),ue}}function z(){var L=[];B(L);for(var I;I=x();)I!==!1&&(L.push(I),B(L));return L}return $(),z()}function p(E){return E?E.replace(o,d):d}return Gl=f,Gl}var wg;function CF(){if(wg)return Rs;wg=1;var e=Rs&&Rs.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Rs,"__esModule",{value:!0}),Rs.default=n;const t=e(EF());function n(u,s){let i=null;if(!u||typeof u!="string")return i;const r=(0,t.default)(u),o=typeof s=="function";return r.forEach(a=>{if(a.type!=="declaration")return;const{property:l,value:c}=a;o?s(l,c,a):c&&(i=i||{},i[l]=c)}),i}return Rs}var Si={},kg;function yF(){if(kg)return Si;kg=1,Object.defineProperty(Si,"__esModule",{value:!0}),Si.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,u=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,i=function(l){return!l||n.test(l)||e.test(l)},r=function(l,c){return c.toUpperCase()},o=function(l,c){return"".concat(c,"-")},a=function(l,c){return c===void 0&&(c={}),i(l)?l:(l=l.toLowerCase(),c.reactCompat?l=l.replace(s,o):l=l.replace(u,o),l.replace(t,r))};return Si.camelCase=a,Si}var _i,Bg;function xF(){if(Bg)return _i;Bg=1;var e=_i&&_i.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},t=e(CF()),n=yF();function u(s,i){var r={};return!s||typeof s!="string"||(0,t.default)(s,function(o,a){o&&a&&(r[(0,n.camelCase)(o,i)]=a)}),r}return u.default=u,_i=u,_i}var bF=xF();const wF=Ar(bF),Yh=Gh("end"),td=Gh("start");function Gh(e){return t;function t(n){const u=n&&n.position&&n.position[e]||{};if(typeof u.line=="number"&&u.line>0&&typeof u.column=="number"&&u.column>0)return{line:u.line,column:u.column,offset:typeof u.offset=="number"&&u.offset>-1?u.offset:void 0}}}function kF(e){const t=td(e),n=Yh(e);if(t&&n)return{start:t,end:n}}function Zi(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Ag(e.position):"start"in e||"end"in e?Ag(e):"line"in e||"column"in e?nc(e):""}function nc(e){return Dg(e&&e.line)+":"+Dg(e&&e.column)}function Ag(e){return nc(e&&e.start)+"-"+nc(e&&e.end)}function Dg(e){return e&&typeof e=="number"?e:1}class Pt extends Error{constructor(t,n,u){super(),typeof n=="string"&&(u=n,n=void 0);let s="",i={},r=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(r=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof u=="string"){const a=u.indexOf(":");a===-1?i.ruleId=u:(i.source=u.slice(0,a),i.ruleId=u.slice(a+1))}if(!i.place&&i.ancestors&&i.ancestors){const a=i.ancestors[i.ancestors.length-1];a&&(i.place=a.position)}const o=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=o?o.line:void 0,this.name=Zi(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=r&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Pt.prototype.file="",Pt.prototype.name="",Pt.prototype.reason="",Pt.prototype.message="",Pt.prototype.stack="",Pt.prototype.column=void 0,Pt.prototype.line=void 0,Pt.prototype.ancestors=void 0,Pt.prototype.cause=void 0,Pt.prototype.fatal=void 0,Pt.prototype.place=void 0,Pt.prototype.ruleId=void 0,Pt.prototype.source=void 0;const nd={}.hasOwnProperty,BF=new Map,AF=/[A-Z]/g,DF=new Set(["table","tbody","thead","tfoot","tr"]),FF=new Set(["td","th"]),Zh="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function SF(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let u;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");u=PF(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");u=IF(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:u,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?ed:vF,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=Xh(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function Xh(e,t,n){if(t.type==="element")return _F(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return NF(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return zF(e,t,n);if(t.type==="mdxjsEsm")return TF(e,t);if(t.type==="root")return OF(e,t,n);if(t.type==="text")return LF(e,t)}function _F(e,t,n){const u=e.schema;let s=u;t.tagName.toLowerCase()==="svg"&&u.space==="html"&&(s=ed,e.schema=s),e.ancestors.push(t);const i=Qh(e,t.tagName,!1),r=RF(e,t);let o=sd(e,t);return DF.has(t.tagName)&&(o=o.filter(function(a){return typeof a=="string"?!oF(a):!0})),Jh(e,r,i,t),ud(r,o),e.ancestors.pop(),e.schema=u,e.create(t,i,r,n)}function NF(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Cr(e,t.position)}function TF(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Cr(e,t.position)}function zF(e,t,n){const u=e.schema;let s=u;t.name==="svg"&&u.space==="html"&&(s=ed,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:Qh(e,t.name,!0),r=jF(e,t),o=sd(e,t);return Jh(e,r,i,t),ud(r,o),e.ancestors.pop(),e.schema=u,e.create(t,i,r,n)}function OF(e,t,n){const u={};return ud(u,sd(e,t)),e.create(t,e.Fragment,u,n)}function LF(e,t){return t.value}function Jh(e,t,n,u){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=u)}function ud(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function IF(e,t,n){return u;function u(s,i,r,o){const a=Array.isArray(r.children)?n:t;return o?a(i,r,o):a(i,r)}}function PF(e,t){return n;function n(u,s,i,r){const o=Array.isArray(i.children),a=td(u);return t(s,i,r,o,{columnNumber:a?a.column-1:void 0,fileName:e,lineNumber:a?a.line:void 0},void 0)}}function RF(e,t){const n={};let u,s;for(s in t.properties)if(s!=="children"&&nd.call(t.properties,s)){const i=MF(e,s,t.properties[s]);if(i){const[r,o]=i;e.tableCellAlignToStyle&&r==="align"&&typeof o=="string"&&FF.has(t.tagName)?u=o:n[r]=o}}if(u){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=u}return n}function jF(e,t){const n={};for(const u of t.attributes)if(u.type==="mdxJsxExpressionAttribute")if(u.data&&u.data.estree&&e.evaluater){const s=u.data.estree.body[0];s.type;const i=s.expression;i.type;const r=i.properties[0];r.type,Object.assign(n,e.evaluater.evaluateExpression(r.argument))}else Cr(e,t.position);else{const s=u.name;let i;if(u.value&&typeof u.value=="object")if(u.value.data&&u.value.data.estree&&e.evaluater){const r=u.value.data.estree.body[0];r.type,i=e.evaluater.evaluateExpression(r.expression)}else Cr(e,t.position);else i=u.value===null?!0:u.value;n[s]=i}return n}function sd(e,t){const n=[];let u=-1;const s=e.passKeys?new Map:BF;for(;++u0?{type:"text",value:k}:void 0),k===!1?d.lastIndex=C+1:(m!==C&&E.push({type:"text",value:a.value.slice(m,C)}),Array.isArray(k)?E.push(...k):k&&E.push(k),m=C+v[0].length,p=!0),!d.global)break;v=d.exec(a.value)}return p?(ms?0:s+t:t=t>s?s:t,n=n>0?n:0,u.length<1e4)r=Array.from(u),r.unshift(t,n),e.splice(...r);else for(n&&e.splice(t,n);i0?(Xn(e,e.length,0,t),e):t}const Sg={}.hasOwnProperty;function e8(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function ti(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const u8=qu(new RegExp("\\p{P}","u")),Hn=qu(/[A-Za-z]/),on=qu(/[\dA-Za-z]/),s8=qu(/[#-'*+\--9=?A-Z^-~]/);function uc(e){return e!==null&&(e<32||e===127)}const sc=qu(/\d/),i8=qu(/[\dA-Fa-f]/),tv=qu(/[!-/:-@[-`{-~]/);function _e(e){return e!==null&&e<-2}function Jt(e){return e!==null&&(e<0||e===32)}function Ye(e){return e===-2||e===-1||e===32}function r8(e){return tv(e)||u8(e)}const o8=qu(/\s/);function qu(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function ci(e){const t=[];let n=-1,u=0,s=0;for(;++n55295&&i<57344){const o=e.charCodeAt(n+1);i<56320&&o>56319&&o<57344?(r=String.fromCharCode(i,o),s=1):r="�"}else r=String.fromCharCode(i);r&&(t.push(e.slice(u,n),encodeURIComponent(r)),u=n+s+1,r=""),s&&(n+=s,s=0)}return t.join("")+e.slice(u)}function tt(e,t,n,u){const s=u?u-1:Number.POSITIVE_INFINITY;let i=0;return r;function r(a){return Ye(a)?(e.enter(n),o(a)):t(a)}function o(a){return Ye(a)&&i++r))return;const P=t.events.length;let K=P,$,B;for(;K--;)if(t.events[K][0]==="exit"&&t.events[K][1].type==="chunkFlow"){if($){B=t.events[K][1].end;break}$=!0}for(v(u),F=P;Fy;){const j=n[k];t.containerState=j[1],j[0].exit.call(t,e)}n.length=y}function C(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function m8(e,t,n){return tt(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ng(e){if(e===null||Jt(e)||o8(e))return 1;if(r8(e))return 2}function rd(e,t,n){const u=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const d={...e[u][1].end},g={...e[n][1].start};Tg(d,-a),Tg(g,a),r={type:a>1?"strongSequence":"emphasisSequence",start:d,end:{...e[u][1].end}},o={type:a>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},i={type:a>1?"strongText":"emphasisText",start:{...e[u][1].end},end:{...e[n][1].start}},s={type:a>1?"strong":"emphasis",start:{...r.start},end:{...o.end}},e[u][1].end={...r.start},e[n][1].start={...o.end},l=[],e[u][1].end.offset-e[u][1].start.offset&&(l=Cn(l,[["enter",e[u][1],t],["exit",e[u][1],t]])),l=Cn(l,[["enter",s,t],["enter",r,t],["exit",r,t],["enter",i,t]]),l=Cn(l,rd(t.parser.constructs.insideSpan.null,e.slice(u+1,n),t)),l=Cn(l,[["exit",i,t],["enter",o,t],["exit",o,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(c=2,l=Cn(l,[["enter",e[n][1],t],["exit",e[n][1],t]])):c=0,Xn(e,u-1,n-u+3,l),n=u+l.length-c-2;break}}for(n=-1;++n0&&Ye(F)?tt(e,C,"linePrefix",i+1)(F):C(F)}function C(F){return F===null||_e(F)?e.check(zg,p,k)(F):(e.enter("codeFlowValue"),y(F))}function y(F){return F===null||_e(F)?(e.exit("codeFlowValue"),C(F)):(e.consume(F),y)}function k(F){return e.exit("codeFenced"),t(F)}function j(F,P,K){let $=0;return B;function B(I){return F.enter("lineEnding"),F.consume(I),F.exit("lineEnding"),T}function T(I){return F.enter("codeFencedFence"),Ye(I)?tt(F,x,"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):x(I)}function x(I){return I===o?(F.enter("codeFencedFenceSequence"),z(I)):K(I)}function z(I){return I===o?($++,F.consume(I),z):$>=r?(F.exit("codeFencedFenceSequence"),Ye(I)?tt(F,L,"whitespace")(I):L(I)):K(I)}function L(I){return I===null||_e(I)?(F.exit("codeFencedFence"),P(I)):K(I)}}}function k8(e,t,n){const u=this;return s;function s(r){return r===null?n(r):(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),i)}function i(r){return u.parser.lazy[u.now().line]?n(r):t(r)}}const Zl={name:"codeIndented",tokenize:A8},B8={partial:!0,tokenize:D8};function A8(e,t,n){const u=this;return s;function s(l){return e.enter("codeIndented"),tt(e,i,"linePrefix",5)(l)}function i(l){const c=u.events[u.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?r(l):n(l)}function r(l){return l===null?a(l):_e(l)?e.attempt(B8,r,a)(l):(e.enter("codeFlowValue"),o(l))}function o(l){return l===null||_e(l)?(e.exit("codeFlowValue"),r(l)):(e.consume(l),o)}function a(l){return e.exit("codeIndented"),t(l)}}function D8(e,t,n){const u=this;return s;function s(r){return u.parser.lazy[u.now().line]?n(r):_e(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),s):tt(e,i,"linePrefix",5)(r)}function i(r){const o=u.events[u.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?t(r):_e(r)?s(r):n(r)}}const F8={name:"codeText",previous:_8,resolve:S8,tokenize:N8};function S8(e){let t=e.length-4,n=3,u,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(u=n;++u=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-u+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-u+this.left.length).reverse())}splice(t,n,u){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return u&&Ni(this.left,u),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Ni(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Ni(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(r):e.interrupt(u.parser.constructs.flow,n,t)(r)}}function rv(e,t,n,u,s,i,r,o,a){const l=a||Number.POSITIVE_INFINITY;let c=0;return d;function d(v){return v===60?(e.enter(u),e.enter(s),e.enter(i),e.consume(v),e.exit(i),g):v===null||v===32||v===41||uc(v)?n(v):(e.enter(u),e.enter(r),e.enter(o),e.enter("chunkString",{contentType:"string"}),p(v))}function g(v){return v===62?(e.enter(i),e.consume(v),e.exit(i),e.exit(s),e.exit(u),t):(e.enter(o),e.enter("chunkString",{contentType:"string"}),m(v))}function m(v){return v===62?(e.exit("chunkString"),e.exit(o),g(v)):v===null||v===60||_e(v)?n(v):(e.consume(v),v===92?f:m)}function f(v){return v===60||v===62||v===92?(e.consume(v),m):m(v)}function p(v){return!c&&(v===null||v===41||Jt(v))?(e.exit("chunkString"),e.exit(o),e.exit(r),e.exit(u),t(v)):c999||m===null||m===91||m===93&&!a||m===94&&!o&&"_hiddenFootnoteSupport"in r.parser.constructs?n(m):m===93?(e.exit(i),e.enter(s),e.consume(m),e.exit(s),e.exit(u),t):_e(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(m))}function d(m){return m===null||m===91||m===93||_e(m)||o++>999?(e.exit("chunkString"),c(m)):(e.consume(m),a||(a=!Ye(m)),m===92?g:d)}function g(m){return m===91||m===92||m===93?(e.consume(m),o++,d):d(m)}}function av(e,t,n,u,s,i){let r;return o;function o(g){return g===34||g===39||g===40?(e.enter(u),e.enter(s),e.consume(g),e.exit(s),r=g===40?41:g,a):n(g)}function a(g){return g===r?(e.enter(s),e.consume(g),e.exit(s),e.exit(u),t):(e.enter(i),l(g))}function l(g){return g===r?(e.exit(i),a(r)):g===null?n(g):_e(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),tt(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(g))}function c(g){return g===r||g===null||_e(g)?(e.exit("chunkString"),l(g)):(e.consume(g),g===92?d:c)}function d(g){return g===r||g===92?(e.consume(g),c):c(g)}}function Xi(e,t){let n;return u;function u(s){return _e(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,u):Ye(s)?tt(e,u,n?"linePrefix":"lineSuffix")(s):t(s)}}const j8={name:"definition",tokenize:$8},M8={partial:!0,tokenize:V8};function $8(e,t,n){const u=this;let s;return i;function i(m){return e.enter("definition"),r(m)}function r(m){return ov.call(u,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(m)}function o(m){return s=ti(u.sliceSerialize(u.events[u.events.length-1][1]).slice(1,-1)),m===58?(e.enter("definitionMarker"),e.consume(m),e.exit("definitionMarker"),a):n(m)}function a(m){return Jt(m)?Xi(e,l)(m):l(m)}function l(m){return rv(e,c,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(m)}function c(m){return e.attempt(M8,d,d)(m)}function d(m){return Ye(m)?tt(e,g,"whitespace")(m):g(m)}function g(m){return m===null||_e(m)?(e.exit("definition"),u.parser.defined.push(s),t(m)):n(m)}}function V8(e,t,n){return u;function u(o){return Jt(o)?Xi(e,s)(o):n(o)}function s(o){return av(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(o)}function i(o){return Ye(o)?tt(e,r,"whitespace")(o):r(o)}function r(o){return o===null||_e(o)?t(o):n(o)}}const U8={name:"hardBreakEscape",tokenize:H8};function H8(e,t,n){return u;function u(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return _e(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const W8={name:"headingAtx",resolve:q8,tokenize:K8};function q8(e,t){let n=e.length-2,u=3,s,i;return e[u][1].type==="whitespace"&&(u+=2),n-2>u&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(u===n-1||n-4>u&&e[n-2][1].type==="whitespace")&&(n-=u+1===n?2:4),n>u&&(s={type:"atxHeadingText",start:e[u][1].start,end:e[n][1].end},i={type:"chunkText",start:e[u][1].start,end:e[n][1].end,contentType:"text"},Xn(e,u,n-u+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function K8(e,t,n){let u=0;return s;function s(c){return e.enter("atxHeading"),i(c)}function i(c){return e.enter("atxHeadingSequence"),r(c)}function r(c){return c===35&&u++<6?(e.consume(c),r):c===null||Jt(c)?(e.exit("atxHeadingSequence"),o(c)):n(c)}function o(c){return c===35?(e.enter("atxHeadingSequence"),a(c)):c===null||_e(c)?(e.exit("atxHeading"),t(c)):Ye(c)?tt(e,o,"whitespace")(c):(e.enter("atxHeadingText"),l(c))}function a(c){return c===35?(e.consume(c),a):(e.exit("atxHeadingSequence"),o(c))}function l(c){return c===null||c===35||Jt(c)?(e.exit("atxHeadingText"),o(c)):(e.consume(c),l)}}const Y8=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Lg=["pre","script","style","textarea"],G8={concrete:!0,name:"htmlFlow",resolveTo:J8,tokenize:Q8},Z8={partial:!0,tokenize:t9},X8={partial:!0,tokenize:e9};function J8(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Q8(e,t,n){const u=this;let s,i,r,o,a;return l;function l(A){return c(A)}function c(A){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(A),d}function d(A){return A===33?(e.consume(A),g):A===47?(e.consume(A),i=!0,p):A===63?(e.consume(A),s=3,u.interrupt?t:b):Hn(A)?(e.consume(A),r=String.fromCharCode(A),E):n(A)}function g(A){return A===45?(e.consume(A),s=2,m):A===91?(e.consume(A),s=5,o=0,f):Hn(A)?(e.consume(A),s=4,u.interrupt?t:b):n(A)}function m(A){return A===45?(e.consume(A),u.interrupt?t:b):n(A)}function f(A){const Je="CDATA[";return A===Je.charCodeAt(o++)?(e.consume(A),o===Je.length?u.interrupt?t:x:f):n(A)}function p(A){return Hn(A)?(e.consume(A),r=String.fromCharCode(A),E):n(A)}function E(A){if(A===null||A===47||A===62||Jt(A)){const Je=A===47,xe=r.toLowerCase();return!Je&&!i&&Lg.includes(xe)?(s=1,u.interrupt?t(A):x(A)):Y8.includes(r.toLowerCase())?(s=6,Je?(e.consume(A),v):u.interrupt?t(A):x(A)):(s=7,u.interrupt&&!u.parser.lazy[u.now().line]?n(A):i?C(A):y(A))}return A===45||on(A)?(e.consume(A),r+=String.fromCharCode(A),E):n(A)}function v(A){return A===62?(e.consume(A),u.interrupt?t:x):n(A)}function C(A){return Ye(A)?(e.consume(A),C):B(A)}function y(A){return A===47?(e.consume(A),B):A===58||A===95||Hn(A)?(e.consume(A),k):Ye(A)?(e.consume(A),y):B(A)}function k(A){return A===45||A===46||A===58||A===95||on(A)?(e.consume(A),k):j(A)}function j(A){return A===61?(e.consume(A),F):Ye(A)?(e.consume(A),j):y(A)}function F(A){return A===null||A===60||A===61||A===62||A===96?n(A):A===34||A===39?(e.consume(A),a=A,P):Ye(A)?(e.consume(A),F):K(A)}function P(A){return A===a?(e.consume(A),a=null,$):A===null||_e(A)?n(A):(e.consume(A),P)}function K(A){return A===null||A===34||A===39||A===47||A===60||A===61||A===62||A===96||Jt(A)?j(A):(e.consume(A),K)}function $(A){return A===47||A===62||Ye(A)?y(A):n(A)}function B(A){return A===62?(e.consume(A),T):n(A)}function T(A){return A===null||_e(A)?x(A):Ye(A)?(e.consume(A),T):n(A)}function x(A){return A===45&&s===2?(e.consume(A),G):A===60&&s===1?(e.consume(A),ue):A===62&&s===4?(e.consume(A),Se):A===63&&s===3?(e.consume(A),b):A===93&&s===5?(e.consume(A),Ee):_e(A)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(Z8,ye,z)(A)):A===null||_e(A)?(e.exit("htmlFlowData"),z(A)):(e.consume(A),x)}function z(A){return e.check(X8,L,ye)(A)}function L(A){return e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),I}function I(A){return A===null||_e(A)?z(A):(e.enter("htmlFlowData"),x(A))}function G(A){return A===45?(e.consume(A),b):x(A)}function ue(A){return A===47?(e.consume(A),r="",oe):x(A)}function oe(A){if(A===62){const Je=r.toLowerCase();return Lg.includes(Je)?(e.consume(A),Se):x(A)}return Hn(A)&&r.length<8?(e.consume(A),r+=String.fromCharCode(A),oe):x(A)}function Ee(A){return A===93?(e.consume(A),b):x(A)}function b(A){return A===62?(e.consume(A),Se):A===45&&s===2?(e.consume(A),b):x(A)}function Se(A){return A===null||_e(A)?(e.exit("htmlFlowData"),ye(A)):(e.consume(A),Se)}function ye(A){return e.exit("htmlFlow"),t(A)}}function e9(e,t,n){const u=this;return s;function s(r){return _e(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),i):n(r)}function i(r){return u.parser.lazy[u.now().line]?n(r):t(r)}}function t9(e,t,n){return u;function u(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Ma,t,n)}}const n9={name:"htmlText",tokenize:u9};function u9(e,t,n){const u=this;let s,i,r;return o;function o(b){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(b),a}function a(b){return b===33?(e.consume(b),l):b===47?(e.consume(b),j):b===63?(e.consume(b),y):Hn(b)?(e.consume(b),K):n(b)}function l(b){return b===45?(e.consume(b),c):b===91?(e.consume(b),i=0,f):Hn(b)?(e.consume(b),C):n(b)}function c(b){return b===45?(e.consume(b),m):n(b)}function d(b){return b===null?n(b):b===45?(e.consume(b),g):_e(b)?(r=d,ue(b)):(e.consume(b),d)}function g(b){return b===45?(e.consume(b),m):d(b)}function m(b){return b===62?G(b):b===45?g(b):d(b)}function f(b){const Se="CDATA[";return b===Se.charCodeAt(i++)?(e.consume(b),i===Se.length?p:f):n(b)}function p(b){return b===null?n(b):b===93?(e.consume(b),E):_e(b)?(r=p,ue(b)):(e.consume(b),p)}function E(b){return b===93?(e.consume(b),v):p(b)}function v(b){return b===62?G(b):b===93?(e.consume(b),v):p(b)}function C(b){return b===null||b===62?G(b):_e(b)?(r=C,ue(b)):(e.consume(b),C)}function y(b){return b===null?n(b):b===63?(e.consume(b),k):_e(b)?(r=y,ue(b)):(e.consume(b),y)}function k(b){return b===62?G(b):y(b)}function j(b){return Hn(b)?(e.consume(b),F):n(b)}function F(b){return b===45||on(b)?(e.consume(b),F):P(b)}function P(b){return _e(b)?(r=P,ue(b)):Ye(b)?(e.consume(b),P):G(b)}function K(b){return b===45||on(b)?(e.consume(b),K):b===47||b===62||Jt(b)?$(b):n(b)}function $(b){return b===47?(e.consume(b),G):b===58||b===95||Hn(b)?(e.consume(b),B):_e(b)?(r=$,ue(b)):Ye(b)?(e.consume(b),$):G(b)}function B(b){return b===45||b===46||b===58||b===95||on(b)?(e.consume(b),B):T(b)}function T(b){return b===61?(e.consume(b),x):_e(b)?(r=T,ue(b)):Ye(b)?(e.consume(b),T):$(b)}function x(b){return b===null||b===60||b===61||b===62||b===96?n(b):b===34||b===39?(e.consume(b),s=b,z):_e(b)?(r=x,ue(b)):Ye(b)?(e.consume(b),x):(e.consume(b),L)}function z(b){return b===s?(e.consume(b),s=void 0,I):b===null?n(b):_e(b)?(r=z,ue(b)):(e.consume(b),z)}function L(b){return b===null||b===34||b===39||b===60||b===61||b===96?n(b):b===47||b===62||Jt(b)?$(b):(e.consume(b),L)}function I(b){return b===47||b===62||Jt(b)?$(b):n(b)}function G(b){return b===62?(e.consume(b),e.exit("htmlTextData"),e.exit("htmlText"),t):n(b)}function ue(b){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),oe}function oe(b){return Ye(b)?tt(e,Ee,"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):Ee(b)}function Ee(b){return e.enter("htmlTextData"),r(b)}}const od={name:"labelEnd",resolveAll:o9,resolveTo:a9,tokenize:l9},s9={tokenize:c9},i9={tokenize:d9},r9={tokenize:m9};function o9(e){let t=-1;const n=[];for(;++t=3&&(l===null||_e(l))?(e.exit("thematicBreak"),t(l)):n(l)}function a(l){return l===s?(e.consume(l),u++,a):(e.exit("thematicBreakSequence"),Ye(l)?tt(e,o,"whitespace")(l):o(l))}}const Yt={continuation:{tokenize:b9},exit:k9,name:"list",tokenize:x9},C9={partial:!0,tokenize:B9},y9={partial:!0,tokenize:w9};function x9(e,t,n){const u=this,s=u.events[u.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,r=0;return o;function o(m){const f=u.containerState.type||(m===42||m===43||m===45?"listUnordered":"listOrdered");if(f==="listUnordered"?!u.containerState.marker||m===u.containerState.marker:sc(m)){if(u.containerState.type||(u.containerState.type=f,e.enter(f,{_container:!0})),f==="listUnordered")return e.enter("listItemPrefix"),m===42||m===45?e.check(go,n,l)(m):l(m);if(!u.interrupt||m===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),a(m)}return n(m)}function a(m){return sc(m)&&++r<10?(e.consume(m),a):(!u.interrupt||r<2)&&(u.containerState.marker?m===u.containerState.marker:m===41||m===46)?(e.exit("listItemValue"),l(m)):n(m)}function l(m){return e.enter("listItemMarker"),e.consume(m),e.exit("listItemMarker"),u.containerState.marker=u.containerState.marker||m,e.check(Ma,u.interrupt?n:c,e.attempt(C9,g,d))}function c(m){return u.containerState.initialBlankLine=!0,i++,g(m)}function d(m){return Ye(m)?(e.enter("listItemPrefixWhitespace"),e.consume(m),e.exit("listItemPrefixWhitespace"),g):n(m)}function g(m){return u.containerState.size=i+u.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(m)}}function b9(e,t,n){const u=this;return u.containerState._closeFlow=void 0,e.check(Ma,s,i);function s(o){return u.containerState.furtherBlankLines=u.containerState.furtherBlankLines||u.containerState.initialBlankLine,tt(e,t,"listItemIndent",u.containerState.size+1)(o)}function i(o){return u.containerState.furtherBlankLines||!Ye(o)?(u.containerState.furtherBlankLines=void 0,u.containerState.initialBlankLine=void 0,r(o)):(u.containerState.furtherBlankLines=void 0,u.containerState.initialBlankLine=void 0,e.attempt(y9,t,r)(o))}function r(o){return u.containerState._closeFlow=!0,u.interrupt=void 0,tt(e,e.attempt(Yt,t,n),"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}function w9(e,t,n){const u=this;return tt(e,s,"listItemIndent",u.containerState.size+1);function s(i){const r=u.events[u.events.length-1];return r&&r[1].type==="listItemIndent"&&r[2].sliceSerialize(r[1],!0).length===u.containerState.size?t(i):n(i)}}function k9(e){e.exit(this.containerState.type)}function B9(e,t,n){const u=this;return tt(e,s,"listItemPrefixWhitespace",u.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const r=u.events[u.events.length-1];return!Ye(i)&&r&&r[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Ig={name:"setextUnderline",resolveTo:A9,tokenize:D9};function A9(e,t){let n=e.length,u,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){u=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const r={type:"setextHeading",start:{...e[u][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",r,t]),e.splice(i+1,0,["exit",e[u][1],t]),e[u][1].end={...e[i][1].end}):e[u][1]=r,e.push(["exit",r,t]),e}function D9(e,t,n){const u=this;let s;return i;function i(l){let c=u.events.length,d;for(;c--;)if(u.events[c][1].type!=="lineEnding"&&u.events[c][1].type!=="linePrefix"&&u.events[c][1].type!=="content"){d=u.events[c][1].type==="paragraph";break}return!u.parser.lazy[u.now().line]&&(u.interrupt||d)?(e.enter("setextHeadingLine"),s=l,r(l)):n(l)}function r(l){return e.enter("setextHeadingLineSequence"),o(l)}function o(l){return l===s?(e.consume(l),o):(e.exit("setextHeadingLineSequence"),Ye(l)?tt(e,a,"lineSuffix")(l):a(l))}function a(l){return l===null||_e(l)?(e.exit("setextHeadingLine"),t(l)):n(l)}}const F9={tokenize:S9};function S9(e){const t=this,n=e.attempt(Ma,u,e.attempt(this.parser.constructs.flowInitial,s,tt(e,e.attempt(this.parser.constructs.flow,s,e.attempt(O8,s)),"linePrefix")));return n;function u(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const _9={resolveAll:cv()},N9=lv("string"),T9=lv("text");function lv(e){return{resolveAll:cv(e==="text"?z9:void 0),tokenize:t};function t(n){const u=this,s=this.parser.constructs[e],i=n.attempt(s,r,o);return r;function r(c){return l(c)?i(c):o(c)}function o(c){if(c===null){n.consume(c);return}return n.enter("data"),n.consume(c),a}function a(c){return l(c)?(n.exit("data"),i(c)):(n.consume(c),a)}function l(c){if(c===null)return!0;const d=s[c];let g=-1;if(d)for(;++g-1){const o=r[0];typeof o=="string"?r[0]=o.slice(u):r.shift()}i>0&&r.push(e[s].slice(0,i))}return r}function q9(e,t){let n=-1;const u=[];let s;for(;++n0){const p=pe.tokenStack[pe.tokenStack.length-1];(p[1]||Og).call(pe,void 0,p[0])}for(se.position={start:Pu(q.length>0?q[0][1].start:{line:1,column:1,offset:0}),end:Pu(q.length>0?q[q.length-2][1].end:{line:1,column:1,offset:0})},m=-1;++m0&&(u.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:u,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function ZS(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function JS(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XS(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",u=String(t.identifier).toUpperCase(),s=hi(u.toLowerCase()),i=e.footnoteOrder.indexOf(u);let r,o=e.footnoteCounts.get(u);o===void 0?(o=0,e.footnoteOrder.push(u),r=e.footnoteOrder.length):r=i+1,o+=1,e.footnoteCounts.set(u,o);const a={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(r)}]};e.patch(t,a);const c={type:"element",tagName:"sup",properties:{},children:[a]};return e.patch(t,c),e.applyData(t,c)}function QS(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function e9(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function av(e,t){const n=t.referenceType;let u="]";if(n==="collapsed"?u+="[]":n==="full"&&(u+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+u}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const r=s[s.length-1];return r&&r.type==="text"?r.value+=u:s.push({type:"text",value:u}),s}function t9(e,t){const n=String(t.identifier).toUpperCase(),u=e.definitionById.get(n);if(!u)return av(e,t);const s={src:hi(u.url||""),alt:t.alt};u.title!==null&&u.title!==void 0&&(s.title=u.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function n9(e,t){const n={src:hi(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const u={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,u),e.applyData(t,u)}function u9(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const u={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,u),e.applyData(t,u)}function s9(e,t){const n=String(t.identifier).toUpperCase(),u=e.definitionById.get(n);if(!u)return av(e,t);const s={href:hi(u.url||"")};u.title!==null&&u.title!==void 0&&(s.title=u.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function i9(e,t){const n={href:hi(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const u={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,u),e.applyData(t,u)}function r9(e,t,n){const u=e.all(t),s=n?o9(n):lv(t),i={},r=[];if(typeof t.checked=="boolean"){const l=u[0];let d;l&&l.type==="element"&&l.tagName==="p"?d=l:(d={type:"element",tagName:"p",properties:{},children:[]},u.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let o=-1;for(;++o1}function a9(e,t){const n={},u=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},o=sd(t.children[1]),a=Uh(t.children[t.children.length-1]);o&&a&&(r.position={start:o,end:a}),s.push(r)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function g9(e,t,n){const u=n?n.children:void 0,s=(u?u.indexOf(t):1)===0?"th":"td",i=n&&n.type==="table"?n.align:void 0,r=i?i.length:t.children.length;let o=-1;const a=[];for(;++o0,!0),u[0]),s=u.index+u[0].length,u=n.exec(t);return i.push($g(t.slice(s),s>0,!1)),i.join("")}function $g(e,t,n){let u=0,s=e.length;if(t){let i=e.codePointAt(u);for(;i===jg||i===Mg;)u++,i=e.codePointAt(u)}if(n){let i=e.codePointAt(s-1);for(;i===jg||i===Mg;)s--,i=e.codePointAt(s-1)}return s>u?e.slice(u,s):""}function h9(e,t){const n={type:"text",value:p9(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function v9(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const E9={blockquote:KS,break:GS,code:YS,delete:ZS,emphasis:JS,footnoteReference:XS,heading:QS,html:e9,imageReference:t9,image:n9,inlineCode:u9,linkReference:s9,link:i9,listItem:r9,list:a9,paragraph:l9,root:c9,strong:d9,table:m9,tableCell:f9,tableRow:g9,text:h9,thematicBreak:v9,toml:eo,yaml:eo,definition:eo,footnoteDefinition:eo};function eo(){}function C9(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function y9(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function x9(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||C9,u=e.options.footnoteBackLabel||y9,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",r=e.options.footnoteLabelProperties||{className:["sr-only"]},o=[];let a=-1;for(;++a0&&h.push({type:"text",value:" "});let x=typeof n=="string"?n:n(a,g);typeof x=="string"&&(x={type:"text",value:x}),h.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(g>1?"-"+g:""),dataFootnoteBackref:"",ariaLabel:typeof u=="string"?u:u(a,g),className:["data-footnote-backref"]},children:Array.isArray(x)?x:[x]})}const b=l[l.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const x=b.children[b.children.length-1];x&&x.type==="text"?x.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...h)}else l.push(...h);const C={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(l,!0)};e.patch(c,C),o.push(C)}if(o.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...ys(r),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`;break}case-2:{r=t?" ":" ";break}case-1:{if(!t&&s)continue;r=" ";break}default:r=String.fromCharCode(i)}s=i===-2,u.push(r)}return u.join("")}function K9(e){const t={constructs:e8([U9,...(e||{}).extensions||[]]),content:n(a8),defined:[],document:n(c8),flow:n(F9),lazy:{},string:n(N9),text:n(T9)};return t;function n(u){return s;function s(i){return H9(t,u,i)}}}function Y9(e){for(;!iv(e););return e}const Pg=/[\0\t\n\r]/g;function G9(){let e=1,t="",n=!0,u;return s;function s(i,r,o){const a=[];let l,c,d,g,m;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(r||void 0).decode(i)),d=0,t="",n&&(i.charCodeAt(0)===65279&&d++,n=void 0);d0){const ut=ce.tokenStack[ce.tokenStack.length-1];(ut[1]||Rg).call(ce,void 0,ut[0])}for(X.position={start:Su(V.length>0?V[0][1].start:{line:1,column:1,offset:0}),end:Su(V.length>0?V[V.length-2][1].end:{line:1,column:1,offset:0})},Oe=-1;++Oe0&&(u.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:u,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function i7(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function r7(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function o7(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",u=String(t.identifier).toUpperCase(),s=ci(u.toLowerCase()),i=e.footnoteOrder.indexOf(u);let r,o=e.footnoteCounts.get(u);o===void 0?(o=0,e.footnoteOrder.push(u),r=e.footnoteOrder.length):r=i+1,o+=1,e.footnoteCounts.set(u,o);const a={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(r)}]};e.patch(t,a);const l={type:"element",tagName:"sup",properties:{},children:[a]};return e.patch(t,l),e.applyData(t,l)}function a7(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function l7(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function gv(e,t){const n=t.referenceType;let u="]";if(n==="collapsed"?u+="[]":n==="full"&&(u+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+u}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const r=s[s.length-1];return r&&r.type==="text"?r.value+=u:s.push({type:"text",value:u}),s}function c7(e,t){const n=String(t.identifier).toUpperCase(),u=e.definitionById.get(n);if(!u)return gv(e,t);const s={src:ci(u.url||""),alt:t.alt};u.title!==null&&u.title!==void 0&&(s.title=u.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function d7(e,t){const n={src:ci(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const u={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,u),e.applyData(t,u)}function m7(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const u={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,u),e.applyData(t,u)}function g7(e,t){const n=String(t.identifier).toUpperCase(),u=e.definitionById.get(n);if(!u)return gv(e,t);const s={href:ci(u.url||"")};u.title!==null&&u.title!==void 0&&(s.title=u.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function f7(e,t){const n={href:ci(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const u={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,u),e.applyData(t,u)}function p7(e,t,n){const u=e.all(t),s=n?h7(n):fv(t),i={},r=[];if(typeof t.checked=="boolean"){const c=u[0];let d;c&&c.type==="element"&&c.tagName==="p"?d=c:(d={type:"element",tagName:"p",properties:{},children:[]},u.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let o=-1;for(;++o1}function v7(e,t){const n={},u=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},o=td(t.children[1]),a=Yh(t.children[t.children.length-1]);o&&a&&(r.position={start:o,end:a}),s.push(r)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function b7(e,t,n){const u=n?n.children:void 0,s=(u?u.indexOf(t):1)===0?"th":"td",i=n&&n.type==="table"?n.align:void 0,r=i?i.length:t.children.length;let o=-1;const a=[];for(;++o0,!0),u[0]),s=u.index+u[0].length,u=n.exec(t);return i.push(Vg(t.slice(s),s>0,!1)),i.join("")}function Vg(e,t,n){let u=0,s=e.length;if(t){let i=e.codePointAt(u);for(;i===Mg||i===$g;)u++,i=e.codePointAt(u)}if(n){let i=e.codePointAt(s-1);for(;i===Mg||i===$g;)s--,i=e.codePointAt(s-1)}return s>u?e.slice(u,s):""}function B7(e,t){const n={type:"text",value:k7(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function A7(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const D7={blockquote:n7,break:u7,code:s7,delete:i7,emphasis:r7,footnoteReference:o7,heading:a7,html:l7,imageReference:c7,image:d7,inlineCode:m7,linkReference:g7,link:f7,listItem:p7,list:v7,paragraph:E7,root:C7,strong:y7,table:x7,tableCell:w7,tableRow:b7,text:B7,thematicBreak:A7,toml:Xr,yaml:Xr,definition:Xr,footnoteDefinition:Xr};function Xr(){}function F7(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function S7(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function _7(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||F7,u=e.options.footnoteBackLabel||S7,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",r=e.options.footnoteLabelProperties||{className:["sr-only"]},o=[];let a=-1;for(;++a0&&f.push({type:"text",value:" "});let C=typeof n=="string"?n:n(a,m);typeof C=="string"&&(C={type:"text",value:C}),f.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(m>1?"-"+m:""),dataFootnoteBackref:"",ariaLabel:typeof u=="string"?u:u(a,m),className:["data-footnote-backref"]},children:Array.isArray(C)?C:[C]})}const E=c[c.length-1];if(E&&E.type==="element"&&E.tagName==="p"){const C=E.children[E.children.length-1];C&&C.type==="text"?C.value+=" ":E.children.push({type:"text",value:" "}),E.children.push(...f)}else c.push(...f);const v={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(c,!0)};e.patch(l,v),o.push(v)}if(o.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...hs(r),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` `},{type:"element",tagName:"ol",properties:{},children:e.wrap(o,!0)},{type:"text",value:` -`}]}}const lc={}.hasOwnProperty,w9={};function b9(e,t){const n=t||w9,u=new Map,s=new Map,i=new Map,r={...E9,...n.handlers},o={all:c,applyData:k9,definitionById:u,footnoteById:s,footnoteCounts:i,footnoteOrder:[],handlers:r,one:a,options:n,patch:B9,wrap:D9};return xr(e,function(l){if(l.type==="definition"||l.type==="footnoteDefinition"){const d=l.type==="definition"?u:s,f=String(l.identifier).toUpperCase();d.has(f)||d.set(f,l)}}),o;function a(l,d){const f=l.type,g=o.handlers[f];if(lc.call(o.handlers,f)&&g)return g(o,l,d);if(o.options.passThrough&&o.options.passThrough.includes(f)){if("children"in l){const{children:h,...E}=l,b=ys(E);return b.children=o.all(l),b}return ys(l)}return(o.options.unknownHandler||A9)(o,l,d)}function c(l){const d=[];if("children"in l){const f=l.children;let g=-1;for(;++g0&&n.push({type:"text",value:` -`}),n}function Vg(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Ug(e,t){const n=b9(e,t),u=n.one(e,void 0),s=x9(n),i=Array.isArray(u)?{type:"root",children:u}:u||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` -`},s),i}function F9(e,t){return e&&"run"in e?async function(n,u){const s=Ug(n,{file:u,...t});await e.run(s,u)}:function(n,u){return Ug(n,{file:u,...e||t})}}function S9(e){xr(e,function(t,n,u){if(n!==void 0&&u&&t.type==="paragraph"&&t.children.every(function(s){return s.type==="text"&&/^\s*$/.test(s.value)}))return u.children.splice(n,1),n})}function _9(e={except:["http","https"]}){return function(t){const n=new Map;xr(t,"definition",function(u,s,i){if(n.set(u.identifier,u.url),i&&typeof s=="number"){const r=u.url;if(r&&r.includes(":")&&!e.except.some(o=>r.startsWith(`${o}:`)))return i.children.splice(s,1),s}}),xr(t,function(u,s,i){if(i&&typeof s=="number"&&(u.type==="link"||u.type==="linkReference")){const r=u.type==="link"?u.url:n.get(u.identifier);if(r&&r.includes(":")&&!e.except.some(o=>r.startsWith(`${o}:`)))return i.children.splice(s,1,...u.children),s}}),S9(t)}}function Hg(e){if(e)throw e}var Ql,Wg;function N9(){if(Wg)return Ql;Wg=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=function(a){return typeof Array.isArray=="function"?Array.isArray(a):t.call(a)==="[object Array]"},i=function(a){if(!a||t.call(a)!=="[object Object]")return!1;var c=e.call(a,"constructor"),l=a.constructor&&a.constructor.prototype&&e.call(a.constructor.prototype,"isPrototypeOf");if(a.constructor&&!c&&!l)return!1;var d;for(d in a);return typeof d>"u"||e.call(a,d)},r=function(a,c){n&&c.name==="__proto__"?n(a,c.name,{enumerable:!0,configurable:!0,value:c.newValue,writable:!0}):a[c.name]=c.newValue},o=function(a,c){if(c==="__proto__")if(e.call(a,c)){if(u)return u(a,c).value}else return;return a[c]};return Ql=function a(){var c,l,d,f,g,h,E=arguments[0],b=1,C=arguments.length,x=!1;for(typeof E=="boolean"&&(x=E,E=arguments[1]||{},b=2),(E==null||typeof E!="object"&&typeof E!="function")&&(E={});br.length;let a;o&&r.push(s);try{a=e.apply(this,r)}catch(c){const l=c;if(o&&n)throw l;return s(l)}o||(a instanceof Promise?a.then(i,s):a instanceof Error?s(a):i(a))}function s(r,...o){n||(n=!0,t(r,...o))}function i(r){s(null,r)}}const Vn={basename:I9,dirname:L9,extname:O9,join:R9,sep:"/"};function I9(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ir(e);let n=0,u=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else u<0&&(i=!0,u=s+1);return u<0?"":e.slice(n,u)}if(t===e)return"";let r=-1,o=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1),o>-1&&(e.codePointAt(s)===t.codePointAt(o--)?o<0&&(u=s):(o=-1,u=r));return n===u?u=r:u<0&&(u=e.length),e.slice(n,u)}function L9(e){if(Ir(e),e.length===0)return".";let t=-1,n=e.length,u;for(;--n;)if(e.codePointAt(n)===47){if(u){t=n;break}}else u||(u=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function O9(e){Ir(e);let t=e.length,n=-1,u=0,s=-1,i=0,r;for(;t--;){const o=e.codePointAt(t);if(o===47){if(r){u=t+1;break}continue}n<0&&(r=!0,n=t+1),o===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===u+1?"":e.slice(s,n)}function R9(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function M9(e,t){let n="",u=0,s=-1,i=0,r=-1,o,a;for(;++r<=e.length;){if(r2){if(a=n.lastIndexOf("/"),a!==n.length-1){a<0?(n="",u=0):(n=n.slice(0,a),u=n.length-1-n.lastIndexOf("/")),s=r,i=0;continue}}else if(n.length>0){n="",u=0,s=r,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",u=2)}else n.length>0?n+="/"+e.slice(s+1,r):n=e.slice(s+1,r),u=r-s-1;s=r,i=0}else o===46&&i>-1?i++:i=-1}return n}function Ir(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const $9={cwd:V9};function V9(){return"/"}function dc(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function U9(e){if(typeof e=="string")e=new URL(e);else if(!dc(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return H9(e)}function H9(e){if(e.hostname!==""){const u=new TypeError('File URL host must be "localhost" or empty on darwin');throw u.code="ERR_INVALID_FILE_URL_HOST",u}const t=e.pathname;let n=-1;for(;++n0){let[g,...h]=l;const E=u[f][1];cc(E)&&cc(g)&&(g=e0(!0,E,g)),u[f]=[c,g,...h]}}}}const Kg=new dd().freeze();function s0(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function i0(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function r0(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Gg(e){if(!cc(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Yg(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function to(e){return Y9(e)?e:new W9(e)}function Y9(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Z9(e){return typeof e=="string"||J9(e)}function J9(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}function Zg(){return oi("files_sharing","sharingToken",null)??document.querySelector('input#sharingToken[type="hidden"]')?.value??null}window._vue_richtext_widgets??={},window._registerWidget??=(e,t,n,u)=>{X9(e,t,n,u)};function X9(e,t,n=()=>{},u){const s={hasInteractiveView:!0,fullWidth:!1,isResizable:!1,...u};if(window._vue_richtext_widgets[e]){Su.error(`[ReferencePicker]: Widget for id ${e} already registered`);return}window._vue_richtext_widgets[e]={id:e,callback:t,onDestroy:n,...s}}function Q9(e,t){const{richObjectType:n,richObject:u,accessible:s,interactive:i}=t;if(n!=="open-graph"){if(!window._vue_richtext_widgets[n]){Su.error("Widget for rich object type "+n+" not registered");return}window._vue_richtext_widgets[n].callback(e,{richObjectType:n,richObject:u,accessible:s,interactive:i})}}function e7(e,t){e!=="open-graph"&&window._vue_richtext_widgets[e]&&window._vue_richtext_widgets[e].onDestroy(t)}function t7(e){return!!window._vue_richtext_widgets[e]}function n7(e){return!!window._vue_richtext_widgets[e]?.hasInteractiveView}function u7(e){return!!window._vue_richtext_widgets[e]?.fullWidth}function s7(e){return!!window._vue_richtext_widgets[e]?.isResizable}function Js(e,t,n){const u={type:String(e)};return n==null&&(typeof t=="string"||Array.isArray(t))?n=t:Object.assign(u,t),Array.isArray(n)?u.children=n:n!=null&&(u.value=String(n)),u}const i7=["href"],r7=Me({__name:"NcRichTextExternalLink",props:{href:{},decorateExternal:{type:Boolean,default:!1}},setup(e){return(t,n)=>(_(),W("a",{href:e.href,rel:"noopener noreferrer",target:"_blank",class:ze([t.$style.externalLink,{[t.$style.externalLink_decorated]:e.decorateExternal}])},[Pe(t.$slots,"default",{},()=>[We(re(e.href),1)])],10,i7))}}),o7="_externalLink_pbE0W",a7="_externalLink_decorated_AvzkD",l7={"material-design-icon":"_material-design-icon_Fq-2a",externalLink:o7,externalLink_decorated:a7},c7={$style:l7},cv=ut(r7,[["__cssModules",c7]]),Jg=/(\s|^)(https?:\/\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\s|$)/ig,Xg=/(\s|\(|^)((https?:\/\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\s|\)|$)/ig;function d7({autolink:e,useMarkdown:t,useExtendedMarkdown:n}){return function(u){n||!t||!e||Yu(u,s=>s.type==="text",(s,i)=>{if(i.some(l=>l.type==="link"||l.type==="linkReference"))return;const r=i.at(-1),o=r.children.indexOf(s)??0,a=dv(s.value),c=typeof a=="string"?[Js("text",a)]:a.map(l=>typeof l=="string"?Js("text",l):Js("link",{url:l.props.href},[Js("text",l.props.href)])).filter(l=>l).flat();return r.children.splice(o,1,...c),[Ua,o+c.length]})}}function dv(e){let t=Xg.exec(e);const n=[];let u=0;for(;t!==null;){let i=t[2],r,o=e.substring(u,t.index+t[1].length);i[0]===" "&&(o+=i[0],i=i.substring(1).trim());const a=i[i.length-1];(a==="."||a===","||a===";"||t[0][0]==="("&&a===")")&&(i=i.substring(0,i.length-1),r=a),n.push(o),n.push({component:cv,props:{href:i.trim(),decorateExternal:!0}}),r&&n.push(r),u=t.index+t[0].length,t=Xg.exec(e)}n.push(e.substring(u));const s=n.map(i=>typeof i=="string"?i:i.props.href).join("");return e===s?n:(Su.error("[NcRichText] Failed to reassemble the chunked text: "+e),e)}function mv(e,t){const n=(l,d)=>l.startsWith(d)?l.slice(d.length):l,u=(l,...d)=>d.reduce((f,g)=>n(f,g),l);if(!e)return null;const s=/^https?:\/\//.test(t),i=/^[a-z][a-z0-9+.-]*:.+/.test(t);if(!s&&i||s&&!t.startsWith(_0())||!s&&!t.startsWith("/"))return null;const r=s?u(t,_0(),"/index.php"):t,o=u(e.options.history.base,Ta(),"/index.php"),a=u(r,o)||"/",c=e.resolve(a);return c.matched.length?c.fullPath:null}Ft(l6);const m7=["aria-label","aria-valuenow","aria-valuemin","aria-valuemax"],g7=["src"],f7={class:"widget-default--details"},p7={class:"widget-default--name"},h7={class:"widget-default--link"},v7=180*1e3,Qg=10,E7=Me({__name:"NcReferenceWidget",props:{reference:{},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},setup(e){const t=e,n=jt(Pa,null),u=`nc-reference-widget-${fn()}`,s=_e(!1),i=An("customWidget"),r=An("customWidgetContent"),o=An("widgetRoot"),{width:a}=L0(o),{height:c}=L0(i);Z5(o,([Be])=>{ku(()=>{s.value=Be.isIntersecting})});const l=_e(!1),d=_e(!1);let f=null;const g=_e(!1),h=_e(null),E=_e(0),b=_e(0),C=_e(100),x=_e(window.innerHeight-120),k=ne(()=>!t.interactiveOptIn&&t.interactive||l.value),S=ne(()=>u7(t.reference.richObjectType)),H=ne(()=>s7(t.reference.richObjectType)),T=ne(()=>t7(t.reference.richObjectType)),U=ne(()=>h.value?{height:`${h.value}px !important`}:null),X=ne(()=>Math.round(h.value??c.value)),K=ne(()=>T.value&&n7(t.reference.richObjectType)),D=ne(()=>!t.reference.accessible),O=ne(()=>[250,550,650,1/0].findIndex(Be=>a.value{if(O.value===0)return{display:"none"};const Be=O.value;return{lineClamp:Be,webkitLineClamp:Be}}),R=ne(()=>{const Be=t.reference.openGraphObject.link;return Be?Be.startsWith("https://")?Be.substring(8):Be.startsWith("http://")?Be.substring(7):Be:""}),M=ne(()=>mv(n,t.reference.openGraphObject.link)),$=ne(()=>M.value?ep:"a"),Q=ne(()=>M.value?{to:M.value}:{href:t.reference.openGraphObject.link,target:"_blank"});qt(s,Be=>{if(!Be){f=setTimeout(()=>{s.value||be()},v7);return}f&&(clearTimeout(f),f=null),d.value||fe()},{immediate:!0}),di(()=>{f&&(clearTimeout(f),f=null),Oe(),be()});function oe(){l.value=!0,fe()}function fe(){if(!r.value||t.reference.richObjectType==="open-graph")return;r.value.innerHTML="";const Be=document.createElement("div");Be.style.width="100%",r.value.appendChild(Be),ku(()=>{Q9(Be,{...t.reference,interactive:k.value}),d.value=!0})}function be(){d.value&&o.value&&(e7(t.reference.richObjectType,o.value),d.value=!1)}function w(){const Be=r.value?.firstElementChild;if(Be){const me=window.getComputedStyle(Be),qe=parseFloat(me.minHeight),at=parseFloat(me.maxHeight);C.value=qe>0?qe:100,x.value=Number.isFinite(at)&&at>0?at:window.innerHeight-120}else C.value=100,x.value=window.innerHeight-120}function De(Be){!H.value||!i.value||(w(),g.value=!0,E.value=Be.clientY,b.value=i.value.getBoundingClientRect().height,window.addEventListener("pointermove",F),window.addEventListener("pointerup",Oe))}function Ie(Be){if(!H.value||!i.value)return;w();const me=(h.value??b.value)+Be;h.value=Math.min(x.value,Math.max(C.value,me))}function F(Be){if(!g.value||!i.value)return;const me=Be.clientY-E.value;h.value=Math.min(x.value,Math.max(C.value,b.value+me))}function Oe(){g.value&&(g.value=!1,window.removeEventListener("pointermove",F),window.removeEventListener("pointerup",Oe))}return(Be,me)=>(_(),W("div",{ref_key:"widgetRoot",ref:o,class:ze({"toggle-interactive":K.value&&!k.value})},[e.reference&&T.value?(_(),W("div",{key:0,id:u,ref_key:"customWidget",ref:i,class:ze(["widget-custom",{"full-width":S.value}]),style:zn(U.value)},[Z("div",{ref_key:"customWidgetContent",ref:r,class:"widget-custom__content"},null,512),H.value?(_(),W("div",{key:0,class:"widget-custom__resize-handle",role:"slider",tabindex:"0","aria-orientation":"vertical","aria-label":I(Ye)("Widget height"),"aria-valuenow":X.value,"aria-valuemin":C.value,"aria-valuemax":x.value,"aria-controls":u,onPointerdown:gn(De,["stop","prevent"]),onKeydown:[me[0]||(me[0]=gr(gn(qe=>Ie(-Qg),["stop","prevent"]),["up"])),me[1]||(me[1]=gr(gn(qe=>Ie(Qg),["stop","prevent"]),["down"]))]},null,40,m7)):ye("",!0)],6)):!D.value&&e.reference&&e.reference.openGraphObject&&!T.value?(_(),we(xu($.value),Ze({key:1},Q.value,{rel:"noopener noreferrer",class:"widget-default"}),{default:he(()=>[e.reference.openGraphObject.thumb?(_(),W("img",{key:0,class:"widget-default--image",src:e.reference.openGraphObject.thumb},null,8,g7)):ye("",!0),Z("div",f7,[Z("p",p7,re(e.reference.openGraphObject.name),1),Z("p",{class:"widget-default--description",style:zn(B.value)},re(e.reference.openGraphObject.description),5),Z("p",h7,re(R.value),1)])]),_:1},16)):ye("",!0),e.interactiveOptIn&&K.value&&!k.value?(_(),we(Ct,{key:2,class:"toggle-interactive--button",onClick:oe},{default:he(()=>[We(re(I(Ye)("Enable interactive view")),1)]),_:1})):ye("",!0)],2))}}),C7=ut(E7,[["__scopeId","data-v-f8edbaf7"]]);Ft(a6);const y7=2e3;function x7(e){const t=_e(!1),n=ne(()=>t.value?Oo:d5),u=ne(()=>t.value?Ye("Copied"):Ye("Copy to clipboard"));async function s(){if(t.value)return;const i=Rt(e);try{await navigator.clipboard.writeText(i)}catch{prompt("",i)}t.value=!0,setTimeout(()=>{t.value=!1},y7)}return{isCopied:t,copy:s,icon:n,altText:u}}const w7={name:"NcReferenceList",components:{NcReferenceWidget:C7},props:{text:{type:String,default:""},referenceData:{type:Array,default:null},limit:{type:Number,default:1},displayFallback:{type:Boolean,default:!1},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},emits:["loaded"],data(){return{references:null,loading:!1}},computed:{isVisible(){return this.loading||this.displayedReferences.length!==0},values(){return this.referenceData?this.referenceData:this.displayFallback&&!this.loading&&!this.references?[this.fallbackReference]:this.references?Object.values(this.references):[]},firstReference(){return this.values[0]??null},displayedReferences(){return this.values.filter(Boolean).slice(0,this.limit)},fallbackReference(){return{accessible:!0,openGraphObject:{id:this.text,link:this.text,name:this.text},richObjectType:"open-graph"}}},watch:{text:"fetch"},created(){this.fetch()},methods:{fetch(){if(this.loading=!0,this.referenceData){this.references=null,this.loading=!1;return}if(!new RegExp(Jg).exec(this.text)){this.references=null,this.loading=!1;return}this.resolve().then(e=>{this.references=e.data.ocs.data.references,this.loading=!1,this.$emit("loaded")}).catch(e=>{Su.error("[NcReferenceList] Failed to extract references",{error:e}),this.loading=!1,this.$emit("loaded")})},resolve(){const e=new RegExp(Jg).exec(this.text.trim()),t=jp()===null;return this.limit===1&&e?t?ln.get(Kr("references/resolvePublic")+`?reference=${encodeURIComponent(e[0])}&sharingToken=${Zg()}`):ln.get(Kr("references/resolve")+`?reference=${encodeURIComponent(e[0])}`):t?ln.post(Kr("references/extractPublic"),{text:this.text,resolve:!0,limit:this.limit,sharingToken:Zg()}):ln.post(Kr("references/extract"),{text:this.text,resolve:!0,limit:this.limit})}}};function b7(e,t,n,u,s,i){const r=hn("NcReferenceWidget");return i.isVisible?(_(),W("div",{key:0,class:ze(["widgets--list",{"icon-loading":s.loading}])},[(_(!0),W(et,null,tu(i.displayedReferences,o=>(_(),we(r,{key:o.openGraphObject?.id,reference:o,interactive:n.interactive,interactiveOptIn:n.interactiveOptIn},null,8,["reference","interactive","interactiveOptIn"]))),128))],2)):ye("",!0)}const o0=ut(w7,[["render",b7],["__scopeId","data-v-8db718e3"]]);function e3(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let u=0,s=n.indexOf(t);for(;s!==-1;)u++,s=n.indexOf(t,s+t.length);return u}const br=qa(/[A-Za-z]/),md=qa(/[\dA-Za-z]/);function B7(e){return e!==null&&(e<32||e===127)}function Xs(e){return e!==null&&e<-2}function sn(e){return e!==null&&(e<0||e===32)}function hu(e){return e===-2||e===-1||e===32}const Wa=qa(new RegExp("\\p{P}|\\p{S}","u")),Ds=qa(/\s/);function qa(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function k7(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const gd=(function(e){if(e==null)return S7;if(typeof e=="function")return Ka(e);if(typeof e=="object")return Array.isArray(e)?A7(e):D7(e);if(typeof e=="string")return F7(e);throw new Error("Expected function, string, or object as test")});function A7(e){const t=[];let n=-1;for(;++n0?{type:"text",value:S}:void 0),S===!1?d.lastIndex=x+1:(g!==x&&b.push({type:"text",value:a.value.slice(g,x)}),Array.isArray(S)?b.push(...S):S&&b.push(S),g=x+C[0].length,E=!0),!d.global)break;C=d.exec(a.value)}return E?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],u=n.indexOf(")");const s=e3(e,"(");let i=e3(e,")");for(;u!==-1&&s>i;)e+=n.slice(0,u+1),n=n.slice(u+1),u=n.indexOf(")"),i++;return[e,n]}function gv(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Ds(n)||Wa(n))&&(!t||n!==47)}function Lr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}fv.peek=t_;function K7(){this.buffer()}function G7(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function Y7(){this.buffer()}function Z7(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function J7(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Lr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function X7(e){this.exit(e)}function Q7(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Lr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function e_(e){this.exit(e)}function t_(){return"["}function fv(e,t,n,u){const s=n.createTracker(u);let i=s.move("[^");const r=n.enter("footnoteReference"),o=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),o(),r(),i+=s.move("]"),i}function n_(){return{enter:{gfmFootnoteCallString:K7,gfmFootnoteCall:G7,gfmFootnoteDefinitionLabelString:Y7,gfmFootnoteDefinition:Z7},exit:{gfmFootnoteCallString:J7,gfmFootnoteCall:X7,gfmFootnoteDefinitionLabelString:Q7,gfmFootnoteDefinition:e_}}}function u_(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:fv},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(u,s,i,r){const o=i.createTracker(r);let a=o.move("[^");const c=i.enter("footnoteDefinition"),l=i.enter("label");return a+=o.move(i.safe(i.associationId(u),{before:a,after:"]"})),l(),a+=o.move("]:"),u.children&&u.children.length>0&&(o.shift(4),a+=o.move((t?` -`:" ")+i.indentLines(i.containerFlow(u,o.current()),t?pv:s_))),c(),a}}function s_(e,t,n){return t===0?e:pv(e,t,n)}function pv(e,t,n){return(n?"":" ")+e}const i_=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];hv.peek=c_;function r_(){return{canContainEols:["delete"],enter:{strikethrough:a_},exit:{strikethrough:l_}}}function o_(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:i_}],handlers:{delete:hv}}}function a_(e){this.enter({type:"delete",children:[]},e)}function l_(e){this.exit(e)}function hv(e,t,n,u){const s=n.createTracker(u),i=n.enter("strikethrough");let r=s.move("~~");return r+=n.containerPhrasing(e,{...s.current(),before:r,after:"~"}),r+=s.move("~~"),i(),r}function c_(){return"~"}function d_(e){return e.length}function m_(e,t){const n=t||{},u=(n.align||[]).concat(),s=n.stringLength||d_,i=[],r=[],o=[],a=[];let c=0,l=-1;for(;++lc&&(c=e[l].length);++Ca[C])&&(a[C]=k)}E.push(x)}r[l]=E,o[l]=b}let d=-1;if(typeof u=="object"&&"length"in u)for(;++da[d]&&(a[d]=x),g[d]=x),f[d]=k}r.splice(1,0,f),o.splice(1,0,g),l=-1;const h=[];for(;++l "),i.shift(2);const r=n.indentLines(n.containerFlow(e,i.current()),p_);return s(),r}function p_(e,t,n){return">"+(n?"":" ")+e}function h_(e,t){return n3(e,t.inConstruct,!0)&&!n3(e,t.notInConstruct,!1)}function n3(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let u=-1;for(;++ur&&(r=i):i=1,s=u+t.length,u=n.indexOf(t,s);return r}function E_(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function C_(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function y_(e,t,n,u){const s=C_(n),i=e.value||"",r=s==="`"?"GraveAccent":"Tilde";if(E_(e,n)){const d=n.enter("codeIndented"),f=n.indentLines(i,x_);return d(),f}const o=n.createTracker(u),a=s.repeat(Math.max(v_(i,s)+1,3)),c=n.enter("codeFenced");let l=o.move(a);if(e.lang){const d=n.enter(`codeFencedLang${r}`);l+=o.move(n.safe(e.lang,{before:l,after:" ",encode:["`"],...o.current()})),d()}if(e.lang&&e.meta){const d=n.enter(`codeFencedMeta${r}`);l+=o.move(" "),l+=o.move(n.safe(e.meta,{before:l,after:` -`,encode:["`"],...o.current()})),d()}return l+=o.move(` -`),i&&(l+=o.move(i+` -`)),l+=o.move(a),c(),l}function x_(e,t,n){return(n?"":" ")+e}function fd(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function w_(e,t,n,u){const s=fd(n),i=s==='"'?"Quote":"Apostrophe",r=n.enter("definition");let o=n.enter("label");const a=n.createTracker(u);let c=a.move("[");return c+=a.move(n.safe(n.associationId(e),{before:c,after:"]",...a.current()})),c+=a.move("]: "),o(),!e.url||/[\0- \u007F]/.test(e.url)?(o=n.enter("destinationLiteral"),c+=a.move("<"),c+=a.move(n.safe(e.url,{before:c,after:">",...a.current()})),c+=a.move(">")):(o=n.enter("destinationRaw"),c+=a.move(n.safe(e.url,{before:c,after:e.title?" ":` -`,...a.current()}))),o(),e.title&&(o=n.enter(`title${i}`),c+=a.move(" "+s),c+=a.move(n.safe(e.title,{before:c,after:s,...a.current()})),c+=a.move(s),o()),r(),c}function b_(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function Br(e){return"&#x"+e.toString(16).toUpperCase()+";"}function ra(e){if(e===null||sn(e)||Ds(e))return 1;if(Wa(e))return 2}function oa(e,t,n){const u=ra(e),s=ra(t);return u===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:u===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}vv.peek=B_;function vv(e,t,n,u){const s=b_(n),i=n.enter("emphasis"),r=n.createTracker(u),o=r.move(s);let a=r.move(n.containerPhrasing(e,{after:s,before:o,...r.current()}));const c=a.charCodeAt(0),l=oa(u.before.charCodeAt(u.before.length-1),c,s);l.inside&&(a=Br(c)+a.slice(1));const d=a.charCodeAt(a.length-1),f=oa(u.after.charCodeAt(0),d,s);f.inside&&(a=a.slice(0,-1)+Br(d));const g=r.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:l.outside},o+a+g}function B_(e,t,n){return n.options.emphasis||"*"}function k_(e,t,n,u){let s,i,r;typeof t=="function"&&typeof n!="function"?(i=void 0,r=t,s=n):(i=t,r=n,s=u),Yu(e,i,o,s);function o(a,c){const l=c[c.length-1],d=l?l.children.indexOf(a):void 0;return r(a,d,l)}}function A_(e,t){let n=!1;return k_(e,function(u){if("value"in u&&/\r?\n|\r/.test(u.value)||u.type==="break")return n=!0,tc}),!!((!e.depth||e.depth<3)&&Ma(e)&&(t.options.setext||n))}function D_(e,t,n,u){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(u);if(A_(e,n)){const l=n.enter("headingSetext"),d=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`}),n}function Ug(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Hg(e,t){const n=T7(e,t),u=n.one(e,void 0),s=_7(n),i=Array.isArray(u)?{type:"root",children:u}:u||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function P7(e,t){return e&&"run"in e?async function(n,u){const s=Hg(n,{file:u,...t});await e.run(s,u)}:function(n,u){return Hg(n,{file:u,...e||t})}}function R7(e){Er(e,function(t,n,u){if(n!==void 0&&u&&t.type==="paragraph"&&t.children.every(function(s){return s.type==="text"&&/^\s*$/.test(s.value)}))return u.children.splice(n,1),n})}function j7(e={except:["http","https"]}){return function(t){const n=new Map;Er(t,"definition",function(u,s,i){if(n.set(u.identifier,u.url),i&&typeof s=="number"){const r=u.url;if(r&&r.includes(":")&&!e.except.some(o=>r.startsWith(`${o}:`)))return i.children.splice(s,1),s}}),Er(t,function(u,s,i){if(i&&typeof s=="number"&&(u.type==="link"||u.type==="linkReference")){const r=u.type==="link"?u.url:n.get(u.identifier);if(r&&r.includes(":")&&!e.except.some(o=>r.startsWith(`${o}:`)))return i.children.splice(s,1,...u.children),s}}),R7(t)}}function Wg(e){if(e)throw e}var Jl,qg;function M7(){if(qg)return Jl;qg=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=function(a){return typeof Array.isArray=="function"?Array.isArray(a):t.call(a)==="[object Array]"},i=function(a){if(!a||t.call(a)!=="[object Object]")return!1;var l=e.call(a,"constructor"),c=a.constructor&&a.constructor.prototype&&e.call(a.constructor.prototype,"isPrototypeOf");if(a.constructor&&!l&&!c)return!1;var d;for(d in a);return typeof d>"u"||e.call(a,d)},r=function(a,l){n&&l.name==="__proto__"?n(a,l.name,{enumerable:!0,configurable:!0,value:l.newValue,writable:!0}):a[l.name]=l.newValue},o=function(a,l){if(l==="__proto__")if(e.call(a,l)){if(u)return u(a,l).value}else return;return a[l]};return Jl=function a(){var l,c,d,g,m,f,p=arguments[0],E=1,v=arguments.length,C=!1;for(typeof p=="boolean"&&(C=p,p=arguments[1]||{},E=2),(p==null||typeof p!="object"&&typeof p!="function")&&(p={});Er.length;let a;o&&r.push(s);try{a=e.apply(this,r)}catch(l){const c=l;if(o&&n)throw c;return s(c)}o||(a instanceof Promise?a.then(i,s):a instanceof Error?s(a):i(a))}function s(r,...o){n||(n=!0,t(r,...o))}function i(r){s(null,r)}}const Rn={basename:H7,dirname:W7,extname:q7,join:K7,sep:"/"};function H7(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Tr(e);let n=0,u=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else u<0&&(i=!0,u=s+1);return u<0?"":e.slice(n,u)}if(t===e)return"";let r=-1,o=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1),o>-1&&(e.codePointAt(s)===t.codePointAt(o--)?o<0&&(u=s):(o=-1,u=r));return n===u?u=r:u<0&&(u=e.length),e.slice(n,u)}function W7(e){if(Tr(e),e.length===0)return".";let t=-1,n=e.length,u;for(;--n;)if(e.codePointAt(n)===47){if(u){t=n;break}}else u||(u=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q7(e){Tr(e);let t=e.length,n=-1,u=0,s=-1,i=0,r;for(;t--;){const o=e.codePointAt(t);if(o===47){if(r){u=t+1;break}continue}n<0&&(r=!0,n=t+1),o===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===u+1?"":e.slice(s,n)}function K7(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function G7(e,t){let n="",u=0,s=-1,i=0,r=-1,o,a;for(;++r<=e.length;){if(r2){if(a=n.lastIndexOf("/"),a!==n.length-1){a<0?(n="",u=0):(n=n.slice(0,a),u=n.length-1-n.lastIndexOf("/")),s=r,i=0;continue}}else if(n.length>0){n="",u=0,s=r,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",u=2)}else n.length>0?n+="/"+e.slice(s+1,r):n=e.slice(s+1,r),u=r-s-1;s=r,i=0}else o===46&&i>-1?i++:i=-1}return n}function Tr(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Z7={cwd:X7};function X7(){return"/"}function ac(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function J7(e){if(typeof e=="string")e=new URL(e);else if(!ac(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return Q7(e)}function Q7(e){if(e.hostname!==""){const u=new TypeError('File URL host must be "localhost" or empty on darwin');throw u.code="ERR_INVALID_FILE_URL_HOST",u}const t=e.pathname;let n=-1;for(;++n0){let[m,...f]=c;const p=u[g][1];oc(p)&&oc(m)&&(m=Ql(!0,p,m)),u[g]=[l,m,...f]}}}}const Yg=new ad().freeze();function u0(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function s0(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function i0(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Gg(e){if(!oc(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Zg(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Jr(e){return sS(e)?e:new eS(e)}function sS(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function iS(e){return typeof e=="string"||rS(e)}function rS(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}function Xg(){return ui("files_sharing","sharingToken",null)??document.querySelector('input#sharingToken[type="hidden"]')?.value??null}window._vue_richtext_widgets??={},window._registerWidget??=(e,t,n,u)=>{oS(e,t,n,u)};function oS(e,t,n=()=>{},u){const s={hasInteractiveView:!0,fullWidth:!1,isResizable:!1,...u};if(window._vue_richtext_widgets[e]){ku.error(`[ReferencePicker]: Widget for id ${e} already registered`);return}window._vue_richtext_widgets[e]={id:e,callback:t,onDestroy:n,...s}}function aS(e,t){const{richObjectType:n,richObject:u,accessible:s,interactive:i}=t;if(n!=="open-graph"){if(!window._vue_richtext_widgets[n]){ku.error("Widget for rich object type "+n+" not registered");return}window._vue_richtext_widgets[n].callback(e,{richObjectType:n,richObject:u,accessible:s,interactive:i})}}function lS(e,t){e!=="open-graph"&&window._vue_richtext_widgets[e]&&window._vue_richtext_widgets[e].onDestroy(t)}function cS(e){return!!window._vue_richtext_widgets[e]}function dS(e){return!!window._vue_richtext_widgets[e]?.hasInteractiveView}function mS(e){return!!window._vue_richtext_widgets[e]?.fullWidth}function gS(e){return!!window._vue_richtext_widgets[e]?.isResizable}function Ks(e,t,n){const u={type:String(e)};return n==null&&(typeof t=="string"||Array.isArray(t))?n=t:Object.assign(u,t),Array.isArray(n)?u.children=n:n!=null&&(u.value=String(n)),u}const fS=["href"],pS=Te({__name:"NcRichTextExternalLink",props:{href:{},decorateExternal:{type:Boolean,default:!1}},setup(e){return(t,n)=>(D(),R("a",{href:e.href,rel:"noopener noreferrer",target:"_blank",class:Ae([t.$style.externalLink,{[t.$style.externalLink_decorated]:e.decorateExternal}])},[De(t.$slots,"default",{},()=>[Re(te(e.href),1)])],10,fS))}}),hS="_externalLink_pbE0W",vS="_externalLink_decorated_AvzkD",ES={"material-design-icon":"_material-design-icon_Fq-2a",externalLink:hS,externalLink_decorated:vS},CS={$style:ES},pv=Ze(pS,[["__cssModules",CS]]),Jg=/(\s|^)(https?:\/\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\s|$)/ig,Qg=/(\s|\(|^)((https?:\/\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\s|\)|$)/ig;function yS({autolink:e,useMarkdown:t,useExtendedMarkdown:n}){return function(u){n||!t||!e||Wu(u,s=>s.type==="text",(s,i)=>{if(i.some(c=>c.type==="link"||c.type==="linkReference"))return;const r=i.at(-1),o=r.children.indexOf(s)??0,a=hv(s.value),l=typeof a=="string"?[Ks("text",a)]:a.map(c=>typeof c=="string"?Ks("text",c):Ks("link",{url:c.props.href},[Ks("text",c.props.href)])).filter(c=>c).flat();return r.children.splice(o,1,...l),[ja,o+l.length]})}}function hv(e){let t=Qg.exec(e);const n=[];let u=0;for(;t!==null;){let i=t[2],r,o=e.substring(u,t.index+t[1].length);i[0]===" "&&(o+=i[0],i=i.substring(1).trim());const a=i[i.length-1];(a==="."||a===","||a===";"||t[0][0]==="("&&a===")")&&(i=i.substring(0,i.length-1),r=a),n.push(o),n.push({component:pv,props:{href:i.trim(),decorateExternal:!0}}),r&&n.push(r),u=t.index+t[0].length,t=Qg.exec(e)}n.push(e.substring(u));const s=n.map(i=>typeof i=="string"?i:i.props.href).join("");return e===s?n:(ku.error("[NcRichText] Failed to reassemble the chunked text: "+e),e)}function vv(e,t){const n=(c,d)=>c.startsWith(d)?c.slice(d.length):c,u=(c,...d)=>d.reduce((g,m)=>n(g,m),c);if(!e)return null;const s=/^https?:\/\//.test(t),i=/^[a-z][a-z0-9+.-]*:.+/.test(t);if(!s&&i||s&&!t.startsWith(F0())||!s&&!t.startsWith("/"))return null;const r=s?u(t,F0(),"/index.php"):t,o=u(e.options.history.base,Fa(),"/index.php"),a=u(r,o)||"/",l=e.resolve(a);return l.matched.length?l.fullPath:null}yt(rx);const xS=["aria-label","aria-valuenow","aria-valuemin","aria-valuemax"],bS=["src"],wS={class:"widget-default--details"},kS={class:"widget-default--name"},BS={class:"widget-default--link"},AS=180*1e3,e3=10,DS=Te({__name:"NcReferenceWidget",props:{reference:{},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},setup(e){const t=e,n=Tt(_a,null),u=`nc-reference-widget-${cn()}`,s=be(!1),i=bn("customWidget"),r=bn("customWidgetContent"),o=bn("widgetRoot"),{width:a}=O0(o),{height:l}=O0(i);K5(o,([xe])=>{yu(()=>{s.value=xe.isIntersecting})});const c=be(!1),d=be(!1);let g=null;const m=be(!1),f=be(null),p=be(0),E=be(0),v=be(100),C=be(window.innerHeight-120),y=Z(()=>!t.interactiveOptIn&&t.interactive||c.value),k=Z(()=>mS(t.reference.richObjectType)),j=Z(()=>gS(t.reference.richObjectType)),F=Z(()=>cS(t.reference.richObjectType)),P=Z(()=>f.value?{height:`${f.value}px !important`}:null),K=Z(()=>Math.round(f.value??l.value)),$=Z(()=>F.value&&dS(t.reference.richObjectType)),B=Z(()=>!t.reference.accessible),T=Z(()=>[250,550,650,1/0].findIndex(xe=>a.value{if(T.value===0)return{display:"none"};const xe=T.value;return{lineClamp:xe,webkitLineClamp:xe}}),z=Z(()=>{const xe=t.reference.openGraphObject.link;return xe?xe.startsWith("https://")?xe.substring(8):xe.startsWith("http://")?xe.substring(7):xe:""}),L=Z(()=>vv(n,t.reference.openGraphObject.link)),I=Z(()=>L.value?Qf:"a"),G=Z(()=>L.value?{to:L.value}:{href:t.reference.openGraphObject.link,target:"_blank"});$t(s,xe=>{if(!xe){g=setTimeout(()=>{s.value||Ee()},AS);return}g&&(clearTimeout(g),g=null),d.value||oe()},{immediate:!0}),ii(()=>{g&&(clearTimeout(g),g=null),Je(),Ee()});function ue(){c.value=!0,oe()}function oe(){if(!r.value||t.reference.richObjectType==="open-graph")return;r.value.innerHTML="";const xe=document.createElement("div");xe.style.width="100%",r.value.appendChild(xe),yu(()=>{aS(xe,{...t.reference,interactive:y.value}),d.value=!0})}function Ee(){d.value&&o.value&&(lS(t.reference.richObjectType,o.value),d.value=!1)}function b(){const xe=r.value?.firstElementChild;if(xe){const he=window.getComputedStyle(xe),Fe=parseFloat(he.minHeight),Ke=parseFloat(he.maxHeight);v.value=Fe>0?Fe:100,C.value=Number.isFinite(Ke)&&Ke>0?Ke:window.innerHeight-120}else v.value=100,C.value=window.innerHeight-120}function Se(xe){!j.value||!i.value||(b(),m.value=!0,p.value=xe.clientY,E.value=i.value.getBoundingClientRect().height,window.addEventListener("pointermove",A),window.addEventListener("pointerup",Je))}function ye(xe){if(!j.value||!i.value)return;b();const he=(f.value??E.value)+xe;f.value=Math.min(C.value,Math.max(v.value,he))}function A(xe){if(!m.value||!i.value)return;const he=xe.clientY-p.value;f.value=Math.min(C.value,Math.max(v.value,E.value+he))}function Je(){m.value&&(m.value=!1,window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",Je))}return(xe,he)=>(D(),R("div",{ref_key:"widgetRoot",ref:o,class:Ae({"toggle-interactive":$.value&&!y.value})},[e.reference&&F.value?(D(),R("div",{key:0,id:u,ref_key:"customWidget",ref:i,class:Ae(["widget-custom",{"full-width":k.value}]),style:_n(P.value)},[H("div",{ref_key:"customWidgetContent",ref:r,class:"widget-custom__content"},null,512),j.value?(D(),R("div",{key:0,class:"widget-custom__resize-handle",role:"slider",tabindex:"0","aria-orientation":"vertical","aria-label":N($e)("Widget height"),"aria-valuenow":K.value,"aria-valuemin":v.value,"aria-valuemax":C.value,"aria-controls":u,onPointerdown:ln(Se,["stop","prevent"]),onKeydown:[he[0]||(he[0]=lr(ln(Fe=>ye(-e3),["stop","prevent"]),["up"])),he[1]||(he[1]=lr(ln(Fe=>ye(e3),["stop","prevent"]),["down"]))]},null,40,xS)):me("",!0)],6)):!B.value&&e.reference&&e.reference.openGraphObject&&!F.value?(D(),pe(hu(I.value),Ve({key:1},G.value,{rel:"noopener noreferrer",class:"widget-default"}),{default:re(()=>[e.reference.openGraphObject.thumb?(D(),R("img",{key:0,class:"widget-default--image",src:e.reference.openGraphObject.thumb},null,8,bS)):me("",!0),H("div",wS,[H("p",kS,te(e.reference.openGraphObject.name),1),H("p",{class:"widget-default--description",style:_n(x.value)},te(e.reference.openGraphObject.description),5),H("p",BS,te(z.value),1)])]),_:1},16)):me("",!0),e.interactiveOptIn&&$.value&&!y.value?(D(),pe(dt,{key:2,class:"toggle-interactive--button",onClick:ue},{default:re(()=>[Re(te(N($e)("Enable interactive view")),1)]),_:1})):me("",!0)],2))}}),FS=Ze(DS,[["__scopeId","data-v-f8edbaf7"]]);yt(ix);const SS=2e3;function _S(e){const t=be(!1),n=Z(()=>t.value?Oo:a5),u=Z(()=>t.value?$e("Copied"):$e("Copy to clipboard"));async function s(){if(t.value)return;const i=Nt(e);try{await navigator.clipboard.writeText(i)}catch{prompt("",i)}t.value=!0,setTimeout(()=>{t.value=!1},SS)}return{isCopied:t,copy:s,icon:n,altText:u}}const NS={name:"NcReferenceList",components:{NcReferenceWidget:FS},props:{text:{type:String,default:""},referenceData:{type:Array,default:null},limit:{type:Number,default:1},displayFallback:{type:Boolean,default:!1},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},emits:["loaded"],data(){return{references:null,loading:!1}},computed:{isVisible(){return this.loading||this.displayedReferences.length!==0},values(){return this.referenceData?this.referenceData:this.displayFallback&&!this.loading&&!this.references?[this.fallbackReference]:this.references?Object.values(this.references):[]},firstReference(){return this.values[0]??null},displayedReferences(){return this.values.filter(Boolean).slice(0,this.limit)},fallbackReference(){return{accessible:!0,openGraphObject:{id:this.text,link:this.text,name:this.text},richObjectType:"open-graph"}}},watch:{text:"fetch"},created(){this.fetch()},methods:{fetch(){if(this.loading=!0,this.referenceData){this.references=null,this.loading=!1;return}if(!new RegExp(Jg).exec(this.text)){this.references=null,this.loading=!1;return}this.resolve().then(e=>{this.references=e.data.ocs.data.references,this.loading=!1,this.$emit("loaded")}).catch(e=>{ku.error("[NcReferenceList] Failed to extract references",{error:e}),this.loading=!1,this.$emit("loaded")})},resolve(){const e=new RegExp(Jg).exec(this.text.trim()),t=Rp()===null;return this.limit===1&&e?t?sn.get(Hr("references/resolvePublic")+`?reference=${encodeURIComponent(e[0])}&sharingToken=${Xg()}`):sn.get(Hr("references/resolve")+`?reference=${encodeURIComponent(e[0])}`):t?sn.post(Hr("references/extractPublic"),{text:this.text,resolve:!0,limit:this.limit,sharingToken:Xg()}):sn.post(Hr("references/extract"),{text:this.text,resolve:!0,limit:this.limit})}}};function TS(e,t,n,u,s,i){const r=mn("NcReferenceWidget");return i.isVisible?(D(),R("div",{key:0,class:Ae(["widgets--list",{"icon-loading":s.loading}])},[(D(!0),R(qe,null,Zn(i.displayedReferences,o=>(D(),pe(r,{key:o.openGraphObject?.id,reference:o,interactive:n.interactive,interactiveOptIn:n.interactiveOptIn},null,8,["reference","interactive","interactiveOptIn"]))),128))],2)):me("",!0)}const r0=Ze(NS,[["render",TS],["__scopeId","data-v-8db718e3"]]);function t3(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let u=0,s=n.indexOf(t);for(;s!==-1;)u++,s=n.indexOf(t,s+t.length);return u}const yr=Va(/[A-Za-z]/),ld=Va(/[\dA-Za-z]/);function zS(e){return e!==null&&(e<32||e===127)}function Ys(e){return e!==null&&e<-2}function en(e){return e!==null&&(e<0||e===32)}function du(e){return e===-2||e===-1||e===32}const $a=Va(new RegExp("\\p{P}|\\p{S}","u")),ks=Va(/\s/);function Va(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function OS(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const cd=(function(e){if(e==null)return RS;if(typeof e=="function")return Ua(e);if(typeof e=="object")return Array.isArray(e)?LS(e):IS(e);if(typeof e=="string")return PS(e);throw new Error("Expected function, string, or object as test")});function LS(e){const t=[];let n=-1;for(;++n0?{type:"text",value:k}:void 0),k===!1?d.lastIndex=C+1:(m!==C&&E.push({type:"text",value:a.value.slice(m,C)}),Array.isArray(k)?E.push(...k):k&&E.push(k),m=C+v[0].length,p=!0),!d.global)break;v=d.exec(a.value)}return p?(m?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],u=n.indexOf(")");const s=t3(e,"(");let i=t3(e,")");for(;u!==-1&&s>i;)e+=n.slice(0,u+1),n=n.slice(u+1),u=n.indexOf(")"),i++;return[e,n]}function Ev(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||ks(n)||$a(n))&&(!t||n!==47)}function zr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}Cv.peek=c_;function n_(){this.buffer()}function u_(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function s_(){this.buffer()}function i_(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function r_(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=zr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function o_(e){this.exit(e)}function a_(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=zr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function l_(e){this.exit(e)}function c_(){return"["}function Cv(e,t,n,u){const s=n.createTracker(u);let i=s.move("[^");const r=n.enter("footnoteReference"),o=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),o(),r(),i+=s.move("]"),i}function d_(){return{enter:{gfmFootnoteCallString:n_,gfmFootnoteCall:u_,gfmFootnoteDefinitionLabelString:s_,gfmFootnoteDefinition:i_},exit:{gfmFootnoteCallString:r_,gfmFootnoteCall:o_,gfmFootnoteDefinitionLabelString:a_,gfmFootnoteDefinition:l_}}}function m_(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:Cv},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(u,s,i,r){const o=i.createTracker(r);let a=o.move("[^");const l=i.enter("footnoteDefinition"),c=i.enter("label");return a+=o.move(i.safe(i.associationId(u),{before:a,after:"]"})),c(),a+=o.move("]:"),u.children&&u.children.length>0&&(o.shift(4),a+=o.move((t?` +`:" ")+i.indentLines(i.containerFlow(u,o.current()),t?yv:g_))),l(),a}}function g_(e,t,n){return t===0?e:yv(e,t,n)}function yv(e,t,n){return(n?"":" ")+e}const f_=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];xv.peek=C_;function p_(){return{canContainEols:["delete"],enter:{strikethrough:v_},exit:{strikethrough:E_}}}function h_(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:f_}],handlers:{delete:xv}}}function v_(e){this.enter({type:"delete",children:[]},e)}function E_(e){this.exit(e)}function xv(e,t,n,u){const s=n.createTracker(u),i=n.enter("strikethrough");let r=s.move("~~");return r+=n.containerPhrasing(e,{...s.current(),before:r,after:"~"}),r+=s.move("~~"),i(),r}function C_(){return"~"}function y_(e){return e.length}function x_(e,t){const n=t||{},u=(n.align||[]).concat(),s=n.stringLength||y_,i=[],r=[],o=[],a=[];let l=0,c=-1;for(;++cl&&(l=e[c].length);++va[v])&&(a[v]=y)}p.push(C)}r[c]=p,o[c]=E}let d=-1;if(typeof u=="object"&&"length"in u)for(;++da[d]&&(a[d]=C),m[d]=C),g[d]=y}r.splice(1,0,g),o.splice(1,0,m),c=-1;const f=[];for(;++c "),i.shift(2);const r=n.indentLines(n.containerFlow(e,i.current()),k_);return s(),r}function k_(e,t,n){return">"+(n?"":" ")+e}function B_(e,t){return u3(e,t.inConstruct,!0)&&!u3(e,t.notInConstruct,!1)}function u3(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let u=-1;for(;++ur&&(r=i):i=1,s=u+t.length,u=n.indexOf(t,s);return r}function D_(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function F_(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function S_(e,t,n,u){const s=F_(n),i=e.value||"",r=s==="`"?"GraveAccent":"Tilde";if(D_(e,n)){const d=n.enter("codeIndented"),g=n.indentLines(i,__);return d(),g}const o=n.createTracker(u),a=s.repeat(Math.max(A_(i,s)+1,3)),l=n.enter("codeFenced");let c=o.move(a);if(e.lang){const d=n.enter(`codeFencedLang${r}`);c+=o.move(n.safe(e.lang,{before:c,after:" ",encode:["`"],...o.current()})),d()}if(e.lang&&e.meta){const d=n.enter(`codeFencedMeta${r}`);c+=o.move(" "),c+=o.move(n.safe(e.meta,{before:c,after:` +`,encode:["`"],...o.current()})),d()}return c+=o.move(` +`),i&&(c+=o.move(i+` +`)),c+=o.move(a),l(),c}function __(e,t,n){return(n?"":" ")+e}function dd(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function N_(e,t,n,u){const s=dd(n),i=s==='"'?"Quote":"Apostrophe",r=n.enter("definition");let o=n.enter("label");const a=n.createTracker(u);let l=a.move("[");return l+=a.move(n.safe(n.associationId(e),{before:l,after:"]",...a.current()})),l+=a.move("]: "),o(),!e.url||/[\0- \u007F]/.test(e.url)?(o=n.enter("destinationLiteral"),l+=a.move("<"),l+=a.move(n.safe(e.url,{before:l,after:">",...a.current()})),l+=a.move(">")):(o=n.enter("destinationRaw"),l+=a.move(n.safe(e.url,{before:l,after:e.title?" ":` +`,...a.current()}))),o(),e.title&&(o=n.enter(`title${i}`),l+=a.move(" "+s),l+=a.move(n.safe(e.title,{before:l,after:s,...a.current()})),l+=a.move(s),o()),r(),l}function T_(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function xr(e){return"&#x"+e.toString(16).toUpperCase()+";"}function na(e){if(e===null||en(e)||ks(e))return 1;if($a(e))return 2}function ua(e,t,n){const u=na(e),s=na(t);return u===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:u===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}bv.peek=z_;function bv(e,t,n,u){const s=T_(n),i=n.enter("emphasis"),r=n.createTracker(u),o=r.move(s);let a=r.move(n.containerPhrasing(e,{after:s,before:o,...r.current()}));const l=a.charCodeAt(0),c=ua(u.before.charCodeAt(u.before.length-1),l,s);c.inside&&(a=xr(l)+a.slice(1));const d=a.charCodeAt(a.length-1),g=ua(u.after.charCodeAt(0),d,s);g.inside&&(a=a.slice(0,-1)+xr(d));const m=r.move(s);return i(),n.attentionEncodeSurroundingInfo={after:g.outside,before:c.outside},o+a+m}function z_(e,t,n){return n.options.emphasis||"*"}function O_(e,t,n,u){let s,i,r;typeof t=="function"&&typeof n!="function"?(i=void 0,r=t,s=n):(i=t,r=n,s=u),Wu(e,i,o,s);function o(a,l){const c=l[l.length-1],d=c?c.children.indexOf(a):void 0;return r(a,d,c)}}function L_(e,t){let n=!1;return O_(e,function(u){if("value"in u&&/\r?\n|\r/.test(u.value)||u.type==="break")return n=!0,J0}),!!((!e.depth||e.depth<3)&&Ia(e)&&(t.options.setext||n))}function I_(e,t,n,u){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(u);if(L_(e,n)){const c=n.enter("headingSetext"),d=n.enter("phrasing"),g=n.containerPhrasing(e,{...i.current(),before:` `,after:` -`});return d(),l(),f+` -`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` -`))+1))}const r="#".repeat(s),o=n.enter("headingAtx"),a=n.enter("phrasing");i.move(r+" ");let c=n.containerPhrasing(e,{before:"# ",after:` -`,...i.current()});return/^[\t ]/.test(c)&&(c=Br(c.charCodeAt(0))+c.slice(1)),c=c?r+" "+c:r,n.options.closeAtx&&(c+=" "+r),a(),o(),c}Ev.peek=F_;function Ev(e){return e.value||""}function F_(){return"<"}Cv.peek=S_;function Cv(e,t,n,u){const s=fd(n),i=s==='"'?"Quote":"Apostrophe",r=n.enter("image");let o=n.enter("label");const a=n.createTracker(u);let c=a.move("![");return c+=a.move(n.safe(e.alt,{before:c,after:"]",...a.current()})),c+=a.move("]("),o(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(o=n.enter("destinationLiteral"),c+=a.move("<"),c+=a.move(n.safe(e.url,{before:c,after:">",...a.current()})),c+=a.move(">")):(o=n.enter("destinationRaw"),c+=a.move(n.safe(e.url,{before:c,after:e.title?" ":")",...a.current()}))),o(),e.title&&(o=n.enter(`title${i}`),c+=a.move(" "+s),c+=a.move(n.safe(e.title,{before:c,after:s,...a.current()})),c+=a.move(s),o()),c+=a.move(")"),r(),c}function S_(){return"!"}yv.peek=__;function yv(e,t,n,u){const s=e.referenceType,i=n.enter("imageReference");let r=n.enter("label");const o=n.createTracker(u);let a=o.move("![");const c=n.safe(e.alt,{before:a,after:"]",...o.current()});a+=o.move(c+"]["),r();const l=n.stack;n.stack=[],r=n.enter("reference");const d=n.safe(n.associationId(e),{before:a,after:"]",...o.current()});return r(),n.stack=l,i(),s==="full"||!c||c!==d?a+=o.move(d+"]"):s==="shortcut"?a=a.slice(0,-1):a+=o.move("]"),a}function __(){return"!"}xv.peek=N_;function xv(e,t,n){let u=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(u);)s+="`";for(/[^ \r\n]/.test(u)&&(/^[ \r\n]/.test(u)&&/[ \r\n]$/.test(u)||/^`|`$/.test(u))&&(u=" "+u+" ");++i\u007F]/.test(e.url))}bv.peek=T_;function bv(e,t,n,u){const s=fd(n),i=s==='"'?"Quote":"Apostrophe",r=n.createTracker(u);let o,a;if(wv(e,n)){const l=n.stack;n.stack=[],o=n.enter("autolink");let d=r.move("<");return d+=r.move(n.containerPhrasing(e,{before:d,after:">",...r.current()})),d+=r.move(">"),o(),n.stack=l,d}o=n.enter("link"),a=n.enter("label");let c=r.move("[");return c+=r.move(n.containerPhrasing(e,{before:c,after:"](",...r.current()})),c+=r.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=r.move("<"),c+=r.move(n.safe(e.url,{before:c,after:">",...r.current()})),c+=r.move(">")):(a=n.enter("destinationRaw"),c+=r.move(n.safe(e.url,{before:c,after:e.title?" ":")",...r.current()}))),a(),e.title&&(a=n.enter(`title${i}`),c+=r.move(" "+s),c+=r.move(n.safe(e.title,{before:c,after:s,...r.current()})),c+=r.move(s),a()),c+=r.move(")"),o(),c}function T_(e,t,n){return wv(e,n)?"<":"["}Bv.peek=z_;function Bv(e,t,n,u){const s=e.referenceType,i=n.enter("linkReference");let r=n.enter("label");const o=n.createTracker(u);let a=o.move("[");const c=n.containerPhrasing(e,{before:a,after:"]",...o.current()});a+=o.move(c+"]["),r();const l=n.stack;n.stack=[],r=n.enter("reference");const d=n.safe(n.associationId(e),{before:a,after:"]",...o.current()});return r(),n.stack=l,i(),s==="full"||!c||c!==d?a+=o.move(d+"]"):s==="shortcut"?a=a.slice(0,-1):a+=o.move("]"),a}function z_(){return"["}function pd(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function P_(e){const t=pd(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function I_(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function kv(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function L_(e,t,n,u){const s=n.enter("list"),i=n.bulletCurrent;let r=e.ordered?I_(n):pd(n);const o=e.ordered?r==="."?")":".":P_(n);let a=t&&n.bulletLastUsed?r===n.bulletLastUsed:!1;if(!e.ordered){const l=e.children?e.children[0]:void 0;if((r==="*"||r==="-")&&l&&(!l.children||!l.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(a=!0),kv(n)===r&&l){let d=-1;for(;++d-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let r=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(r=Math.ceil(r/4)*4);const o=n.createTracker(u);o.move(i+" ".repeat(r-i.length)),o.shift(r);const a=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,o.current()),l);return a(),c;function l(d,f,g){return f?(g?"":" ".repeat(r))+d:(g?i:i+" ".repeat(r-i.length))+d}}function j_(e,t,n,u){const s=n.enter("paragraph"),i=n.enter("phrasing"),r=n.containerPhrasing(e,u);return i(),s(),r}const M_=gd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function $_(e,t,n,u){return(e.children.some(function(s){return M_(s)})?n.containerPhrasing:n.containerFlow).call(n,e,u)}function V_(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Av.peek=U_;function Av(e,t,n,u){const s=V_(n),i=n.enter("strong"),r=n.createTracker(u),o=r.move(s+s);let a=r.move(n.containerPhrasing(e,{after:s,before:o,...r.current()}));const c=a.charCodeAt(0),l=oa(u.before.charCodeAt(u.before.length-1),c,s);l.inside&&(a=Br(c)+a.slice(1));const d=a.charCodeAt(a.length-1),f=oa(u.after.charCodeAt(0),d,s);f.inside&&(a=a.slice(0,-1)+Br(d));const g=r.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:l.outside},o+a+g}function U_(e,t,n){return n.options.strong||"*"}function H_(e,t,n,u){return n.safe(e.value,u)}function W_(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function q_(e,t,n){const u=(kv(n)+(n.options.ruleSpaces?" ":"")).repeat(W_(n));return n.options.ruleSpaces?u.slice(0,-1):u}const Dv={blockquote:f_,break:u3,code:y_,definition:w_,emphasis:vv,hardBreak:u3,heading:D_,html:Ev,image:Cv,imageReference:yv,inlineCode:xv,link:bv,linkReference:Bv,list:L_,listItem:R_,paragraph:j_,root:$_,strong:Av,text:H_,thematicBreak:q_};function K_(){return{enter:{table:G_,tableData:s3,tableHeader:s3,tableRow:Z_},exit:{codeText:J_,table:Y_,tableData:d0,tableHeader:d0,tableRow:d0}}}function G_(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function Y_(e){this.exit(e),this.data.inTable=void 0}function Z_(e){this.enter({type:"tableRow",children:[]},e)}function d0(e){this.exit(e)}function s3(e){this.enter({type:"tableCell",children:[]},e)}function J_(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,X_));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function X_(e,t){return t==="|"?t:e}function Q_(e){const t=e||{},n=t.tableCellPadding,u=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:r,tableCell:a,tableRow:o}};function r(g,h,E,b){return c(l(g,E,b),g.align)}function o(g,h,E,b){const C=d(g,E,b),x=c([C]);return x.slice(0,x.indexOf(` -`))}function a(g,h,E,b){const C=E.enter("tableCell"),x=E.enter("phrasing"),k=E.containerPhrasing(g,{...b,before:i,after:i});return x(),C(),k}function c(g,h){return m_(g,{align:h,alignDelimiters:u,padding:n,stringLength:s})}function l(g,h,E){const b=g.children;let C=-1;const x=[],k=h.enter("table");for(;++Cs?0:s+t:t=t>s?s:t,n=n>0?n:0,u.length<1e4)r=Array.from(u),r.unshift(t,n),e.splice(...r);else for(n&&e.splice(t,n);i0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function yN(e,t,n){const u=[];let s=-1;for(;++s999||d===93&&!r||d===null||d===91||sn(d))return n(d);if(d===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Lr(u.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(d)}return sn(d)||(r=!0),i++,e.consume(d),d===92?l:c}function l(d){return d===91||d===92||d===93?(e.consume(d),i++,c):c(d)}}function FN(e,t,n){const u=this,s=u.parser.gfmFootnotes||(u.parser.gfmFootnotes=[]);let i,r=0,o;return a;function a(h){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(h),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(h){return h===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(h),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",l):n(h)}function l(h){if(r>999||h===93&&!o||h===null||h===91||sn(h))return n(h);if(h===93){e.exit("chunkString");const E=e.exit("gfmFootnoteDefinitionLabelString");return i=Lr(u.sliceSerialize(E)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(h),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return sn(h)||(o=!0),r++,e.consume(h),h===92?d:l}function d(h){return h===91||h===92||h===93?(e.consume(h),r++,l):l(h)}function f(h){return h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),s.includes(i)||s.push(i),vu(e,g,"gfmFootnoteDefinitionWhitespace")):n(h)}function g(h){return t(h)}}function SN(e,t,n){return e.check(xN,t,e.attempt(bN,t,n))}function _N(e){e.exit("gfmFootnoteDefinition")}function NN(e,t,n){const u=this;return vu(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const r=u.events[u.events.length-1];return r&&r[1].type==="gfmFootnoteDefinitionIndent"&&r[2].sliceSerialize(r[1],!0).length===4?t(i):n(i)}}function TN(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:s,resolveAll:u};return t==null&&(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function u(i,r){let o=-1;for(;++o1?o(g):(i.consume(g),l++,f);if(l<2&&!t)return o(g);const E=i.exit("strikethroughSequenceTemporary"),b=ra(g);return E._open=!b||b===2&&!!h,E._close=!h||h===2&&!!b,r(g)}}}class zN{constructor(){this.map=[]}add(t,n,u){PN(this,t,n,u)}consume(t){if(this.map.sort(function(i,r){return i[0]-r[0]}),this.map.length===0)return;let n=this.map.length;const u=[];for(;n>0;)n-=1,u.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];u.push(t.slice()),t.length=0;let s=u.pop();for(;s;){for(const i of s)t.push(i);s=u.pop()}this.map.length=0}}function PN(e,t,n,u){let s=0;if(!(n===0&&u.length===0)){for(;s-1;){const M=u.events[O][1].type;if(M==="lineEnding"||M==="linePrefix")O--;else break}const B=O>-1?u.events[O][1].type:null,R=B==="tableHead"||B==="tableRow"?T:a;return R===T&&u.parser.lazy[u.now().line]?n(D):R(D)}function a(D){return e.enter("tableHead"),e.enter("tableRow"),c(D)}function c(D){return D===124||(r=!0,i+=1),l(D)}function l(D){return D===null?n(D):Xs(D)?i>1?(i=0,u.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(D),e.exit("lineEnding"),g):n(D):hu(D)?vu(e,l,"whitespace")(D):(i+=1,r&&(r=!1,s+=1),D===124?(e.enter("tableCellDivider"),e.consume(D),e.exit("tableCellDivider"),r=!0,l):(e.enter("data"),d(D)))}function d(D){return D===null||D===124||sn(D)?(e.exit("data"),l(D)):(e.consume(D),D===92?f:d)}function f(D){return D===92||D===124?(e.consume(D),d):d(D)}function g(D){return u.interrupt=!1,u.parser.lazy[u.now().line]?n(D):(e.enter("tableDelimiterRow"),r=!1,hu(D)?vu(e,h,"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(D):h(D))}function h(D){return D===45||D===58?b(D):D===124?(r=!0,e.enter("tableCellDivider"),e.consume(D),e.exit("tableCellDivider"),E):H(D)}function E(D){return hu(D)?vu(e,b,"whitespace")(D):b(D)}function b(D){return D===58?(i+=1,r=!0,e.enter("tableDelimiterMarker"),e.consume(D),e.exit("tableDelimiterMarker"),C):D===45?(i+=1,C(D)):D===null||Xs(D)?S(D):H(D)}function C(D){return D===45?(e.enter("tableDelimiterFiller"),x(D)):H(D)}function x(D){return D===45?(e.consume(D),x):D===58?(r=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(D),e.exit("tableDelimiterMarker"),k):(e.exit("tableDelimiterFiller"),k(D))}function k(D){return hu(D)?vu(e,S,"whitespace")(D):S(D)}function S(D){return D===124?h(D):D===null||Xs(D)?!r||s!==i?H(D):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(D)):H(D)}function H(D){return n(D)}function T(D){return e.enter("tableRow"),U(D)}function U(D){return D===124?(e.enter("tableCellDivider"),e.consume(D),e.exit("tableCellDivider"),U):D===null||Xs(D)?(e.exit("tableRow"),t(D)):hu(D)?vu(e,U,"whitespace")(D):(e.enter("data"),X(D))}function X(D){return D===null||D===124||sn(D)?(e.exit("data"),U(D)):(e.consume(D),D===92?K:X)}function K(D){return D===92||D===124?(e.consume(D),X):X(D)}}function RN(e,t){let n=-1,u=!0,s=0,i=[0,0,0,0],r=[0,0,0,0],o=!1,a=0,c,l,d;const f=new zN;for(;++nn[2]+1){const h=n[2]+1,E=n[3]-n[2]-1;e.add(h,E,[])}}e.add(n[3]+1,0,[["exit",d,t]])}return s!==void 0&&(i.end=Object.assign({},Ys(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function l3(e,t,n,u,s){const i=[],r=Ys(t.events,n);s&&(s.end=Object.assign({},r),i.push(["exit",s,t])),u.end=Object.assign({},r),i.push(["exit",u,t]),e.add(n+1,0,i)}function Ys(e,t){const n=e[t],u=n[0]==="enter"?"start":"end";return n[1][u]}const jN={name:"tasklistCheck",tokenize:$N};function MN(){return{text:{91:jN}}}function $N(e,t,n){const u=this;return s;function s(a){return u.previous!==null||!u._gfmTasklistFirstContentOfListItem?n(a):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),i)}function i(a){return sn(a)?(e.enter("taskListCheckValueUnchecked"),e.consume(a),e.exit("taskListCheckValueUnchecked"),r):a===88||a===120?(e.enter("taskListCheckValueChecked"),e.consume(a),e.exit("taskListCheckValueChecked"),r):n(a)}function r(a){return a===93?(e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),o):n(a)}function o(a){return Xs(a)?t(a):hu(a)?e.check({tokenize:VN},t,n)(a):n(a)}}function VN(e,t,n){return vu(e,u,"whitespace");function u(s){return s===null?n(s):t(s)}}function UN(e){return rN([dN(),BN(),TN(e),LN(),MN()])}const HN={};function WN(e){const t=this,n=e||HN,u=t.data(),s=u.micromarkExtensions||(u.micromarkExtensions=[]),i=u.fromMarkdownExtensions||(u.fromMarkdownExtensions=[]),r=u.toMarkdownExtensions||(u.toMarkdownExtensions=[]);s.push(UN(n)),i.push(sN()),r.push(iN(n))}const qN=Me({__name:"NcRichTextCopyButton",props:{contentId:{}},setup(e){const{copy:t,icon:n,altText:u}=x7(()=>document.getElementById(e.contentId).textContent);return(s,i)=>(_(),we(Ct,{variant:"tertiary",size:"small","aria-label":I(u),title:I(u),onClick:I(t)},{icon:he(()=>[Ee(It,{path:I(n),inline:""},null,8,["path"])]),_:1},8,["aria-label","title","onClick"]))}});function KN(e){return e.type==="text"}const GN=function(e){Yu(e,KN,(t,n)=>{const u=n.at(-1),s=u.children.indexOf(t),i=t.value.split(/(\{[a-z\-_.0-9]+\})/ig).map(r=>{const o=r.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!o)return Js("text",r);const[,a]=o;return Js("element",{tagName:`#${a}`,children:[]})});u.children.splice(s,1,...i)})},YN=()=>GN;function ZN(e){return["code","inlineCode"].includes(e.type)}const JN=function(){return function(e){Yu(e,ZN,(t,n)=>{const u=n.at(-1),s=u.children.indexOf(t);return u.children.splice(s,1,{...t,value:""}),[Ua,s+1]})}};function XN(e){return["text","code","inlineCode"].includes(e.type)}const QN=function(){return function(e){Yu(e,XN,(t,n)=>{const u=n.at(-1),s=u.children.indexOf(t);return u.children.splice(s,1,{...t,value:t.value.replace(/</gmi,"<").replace(/>/gmi,">")}),[Ua,s+1]})}},eT=["http","https","mailto","tel"],gc=_e(null);async function tT(){const e=await ob(()=>import("./index-9lOtR4zZ.chunk.mjs"),[],import.meta.url);gc.value=e.default}const nT={name:"NcRichText",components:{NcReferenceList:o0},props:{text:{type:String,default:""},arguments:{type:Object,default:()=>({})},referenceLimit:{type:Number,default:0},referenceInteractive:{type:Boolean,default:!0},referenceInteractiveOptIn:{type:Boolean,default:!1},references:{type:Array,default:null},useMarkdown:{type:Boolean,default:!1},useExtendedMarkdown:{type:Boolean,default:!1},interactive:{type:Boolean,default:!1},autolink:{type:Boolean,default:!0}},emits:["interactTodo"],data(){return{parentId:fn()}},methods:{renderPlaintext(){const e=this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map(t=>{const n=t.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!n)return this.prepareTextNode(t);const u=n[1],s=this.arguments[u];if(typeof s=="object"){const{component:i,props:r}=s;return Ke(typeof i=="string"?hn(i):i,{...r,class:"rich-text--component"})}return s?Ke("span",{class:"rich-text--fallback"},s):t});return Ke("div",{class:"rich-text--wrapper"},[Ke("div",{},e.flat()),this.referenceLimit>0?Ke("div",{class:"rich-text--reference-widget"},[Ke(o0,{text:this.text,referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},renderMarkdown(){const e=Kg().use(Rg).use(d7,{autolink:this.autolink,useMarkdown:this.useMarkdown,useExtendedMarkdown:this.useExtendedMarkdown}).use(QN).use(this.useExtendedMarkdown?WN:void 0).use(H8).use(_9,{except:eT}).use(F9,{handlers:{component(t,n){return t(n,n.component,{value:n.value})}}}).use(this.useExtendedMarkdown?gc.value:void 0).use(YN).use(qD,{target:"_blank",rel:["noopener noreferrer"]}).use(L8,{Fragment:et,jsx:this.createElement,jsxs:this.createElement,elementAttributeNameCase:"html",prefix:!1}).processSync(this.text.replace(/<[^>]+>/g,t=>t.replace(/")).result;return Ke("div",{class:"rich-text--wrapper rich-text--wrapper-markdown"},[e,this.referenceLimit>0?Ke("div",{class:"rich-text--reference-widget"},[Ke(o0,{text:this.prepareReferenceSource(this.text),referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},prepareTextNode(e){return this.autolink&&(e=dv(e)),Array.isArray(e)?e.map(t=>{if(typeof t=="string")return t;const{component:n,props:u}=t;return Ke(n,{...u,class:"rich-text--component"})}):e},prepareReferenceSource(e){if(!this.useMarkdown&&!this.useExtendedMarkdown)return e;const t=Kg();return t.compiler=n=>Ma(n),t.use(Rg).use(JN).processSync(e.replace(/\s/g," ")).value},createElement(e,t,n){n&&(t.key=n);const u=t.children??[];if(delete t.children,!String(e).startsWith("#")){["h1","h2","h3","h4","h5","h6"].includes(String(e))&&(e=`h${Math.min(+String(e)[1]+3,6)}`);let i=null;if(this.useExtendedMarkdown){if(String(e)==="code"&&!gc.value&&t?.class?.includes("language")&&tT(),String(e)==="pre"&&u&&String(u.type)==="code"){const r=this.parentId+"-code-block-"+fn();return Ke("p",{class:"rich-text__code-block"},[Ke(e,{...t,id:r},u),Ke(qN,{class:"rich-text__code-block-button",contentId:r})])}if(String(e)==="li"&&Array.isArray(u)&&u.length!==0&&u[0].type==="input"&&u[0].props.type==="checkbox"){const[r,,...o]=u,a=o.findIndex(f=>["ul","ol","li","blockquote","pre"].includes(f.type));a!==-1&&(i=o[a],o.splice(a));const c=this.parentId+"-markdown-input-"+fn(),l={...r.props};delete l.checked;const d=Ke($u,{...l,modelValue:r.props.checked,id:c,disabled:!this.interactive,"onUpdate:modelValue":()=>{this.$emit("interactTodo",c)}},{default:()=>o});return Ke(e,t,[d,i])}}if(String(e)==="a"){const r=mv(this.$router,t.href);return r?(delete t.href,delete t.target,Ke(ep,{...t,to:r},{default:()=>u})):/^(https?:\/\/|tel:|mailto:)/.test(t.href)?(t.href=t.href.trim(),Ke(cv,t,u)):(delete t.href,delete t.target,Ke("span",t,u))}return Ke(e,t,u)}const s=this.arguments[e.slice(1)];return s?s.component?Ke(typeof s.component=="string"?hn(s.component):s.component,{...t,...s.props,class:"rich-text--component"},{default:()=>u}):Ke("span",{...t},[s]):Ke("span",{...t,class:"rich-text--fallback"},[`{${e.slice(1)}}`])}},render(){return this.useMarkdown||this.useExtendedMarkdown?this.renderMarkdown():this.renderPlaintext()}},uT=ut(nT,[["__scopeId","data-v-80e57a29"]]);window._vue_richtext_custom_picker_elements??={},window._registerCustomPickerElement??=sT;function sT(e,t,n=()=>{},u="large"){if(window._vue_richtext_custom_picker_elements[e]){Su.error(`Custom reference picker element for id ${e} already registered`);return}window._vue_richtext_custom_picker_elements[e]={id:e,callback:t,onDestroy:n,size:u}}const iT={mounted(e,{instance:t}){if(t.appendToBody){document.body.appendChild(e);const{height:n,top:u,left:s,width:i}=t.$refs.toggle.getBoundingClientRect(),r=window.scrollX||window.pageXOffset,o=window.scrollY||window.pageYOffset;e.unbindPosition=t.calculatePosition(e,t,{width:i+"px",left:r+s+"px",top:o+u+n+"px"})}},unmounted(e,{instance:t}){t.appendToBody&&(e.unbindPosition&&typeof e.unbindPosition=="function"&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}},rT={props:{loading:{type:Boolean,default:!1}},data(){return{mutableLoading:!1}},watch:{search(){this.$emit("search",this.search,this.toggleLoading)},loading(e){this.mutableLoading=e}},methods:{toggleLoading(e=null){return e==null?this.mutableLoading=!this.mutableLoading:this.mutableLoading=e}}},oT={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(e){this.autoscroll&&e&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){const e=this.$refs.dropdownMenu?.children[this.typeAheadPointer]||!1;if(e){const t=this.getDropdownViewport(),{top:n,bottom:u,height:s}=e.getBoundingClientRect();if(nt.bottom)return this.$refs.dropdownMenu.scrollTop=e.offsetTop-(t.height-s)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},aT={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){if(this.resetFocusOnOptionsChange){for(let e=0;e=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown(){for(let e=this.typeAheadPointer+1;e{t[n]=e[n]}),JSON.stringify(t)}let cT=0;function dT(){return++cT}const vd=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n},mT={},gT={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"};function fT(e,t){return _(),W("svg",gT,[...t[0]||(t[0]=[Z("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1)])])}const pT=vd(mT,[["render",fT]]),hT={},vT={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"};function ET(e,t){return _(),W("svg",vT,[...t[0]||(t[0]=[Z("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1)])])}const CT=vd(hT,[["render",ET]]),c3={Deselect:pT,OpenIndicator:CT},yT={components:{...c3},directives:{appendToBody:iT},mixins:[oT,aT,rT],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},ariaLabelCombobox:{type:String,default:"Search for options"},ariaLabelListbox:{type:String,default:"Options"},ariaLabelClearSelected:{type:String,default:"Clear selected"},ariaLabelDeselectOption:{type:Function,default:e=>`Deselect ${e}`},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:e=>e},selectable:{type:Function,default:()=>!0},getOptionLabel:{type:Function,default(e){return typeof e=="object"?Object.hasOwn(e,this.label)?e[this.label]:im(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}. -https://vue-select.org/api/props.html#getoptionlabel`):e}},getOptionKey:{type:Function,default(e){if(typeof e!="object")return e;try{return Object.hasOwn(e,"id")?e.id:lT(e)}catch{return im()}}},onTab:{type:Function,default(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(e,t,n){return(t||"").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1}},filter:{type:Function,default(e,t){return e.filter(n=>{let u=this.getOptionLabel(n);return typeof u=="number"&&(u=u.toString()),this.filterBy(n,u,t)})}},createOption:{type:Function,default(e){return typeof this.optionList[0]=="object"?{[this.label]:e}:e}},resetFocusOnOptionsChange:{type:Boolean,default:!0},resetOnOptionsChange:{default:!1,validator:e=>["function","boolean"].includes(typeof e)},clearSearchOnBlur:{type:Function,default({clearSearchOnSelect:e,multiple:t}){return e&&!t}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:e=>e},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(e,t,{width:n,top:u,left:s}){e.style.top=u,e.style.left=s,e.style.width=n}},dropdownShouldOpen:{type:Function,default({noDrop:e,open:t,mutableLoading:n}){return e?!1:t&&!n}},keyboardFocusBorder:{type:Boolean,default:!1},uid:{type:[String,Number],default:()=>dT()}},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],data(){return{search:"",open:!1,isComposing:!1,isKeyboardNavigation:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let e=this.modelValue;return this.isTrackingValues&&(e=this.$data._value),e!=null&&e!==""?[].concat(e):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:{id:this.inputId,disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,role:"combobox","aria-autocomplete":"list","aria-label":this.ariaLabelCombobox,"aria-controls":`vs-${this.uid}__listbox`,"aria-owns":`vs-${this.uid}__listbox`,"aria-expanded":this.dropdownOpen.toString(),ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search,...this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs-${this.uid}__option-${this.typeAheadPointer}`}:{}},events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:t=>this.search=t.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:e,listFooter:e,header:{...e,deselect:this.deselect},footer:{...e,deselect:this.deselect}}},childComponents(){return{...c3,...this.components}},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const e=u=>this.limit!==null?u.slice(0,this.limit):u,t=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e(t);const n=this.search.length?this.filter(t,this.search,this):t;if(this.taggable&&this.search.length)try{const u=this.createOption(this.search);this.optionExists(u)||n.unshift(u)}catch{}return e(n)},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(e,t){const n=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(e,t,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&n()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple(){this.clearSelection()},open(e){this.$emit(e?"open":"close")},search(e){e.length&&(this.open=!0)}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(e){Array.isArray(e)?this.$data._value=e.map(t=>this.findOptionFromReducedValue(t)):this.$data._value=this.findOptionFromReducedValue(e)},select(e){this.$emit("option:selecting",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&(this.$emit("option:created",e),this.pushTag(e)),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit("option:selected",e)),this.onAfterSelect(e)},deselect(e){this.$emit("option:deselecting",e),this.updateValue(this.selectedValue.filter(t=>!this.optionComparator(t,e))),this.$emit("option:deselected",e)},keyboardDeselect(e,t){this.deselect(e);const n=this.deselectButtons?.[t+1],u=this.deselectButtons?.[t-1],s=n??u;s?s.focus():this.searchEl.focus()},clearSelection(){this.updateValue(this.multiple?[]:null),this.searchEl.focus()},onAfterSelect(){this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=""),this.noDrop&&this.multiple&&this.$nextTick(()=>this.$refs.search.focus())},updateValue(e){typeof this.modelValue>"u"&&(this.$data._value=e),e!==null&&(Array.isArray(e)?e=e.map(t=>this.reduce(t)):e=this.reduce(e)),this.$emit("update:modelValue",e)},toggleDropdown(e){const t=e.target!==this.searchEl;t&&e.preventDefault();const n=[...this.deselectButtons||[],...this.$refs.clearButton?[this.$refs.clearButton]:[]];if(this.searchEl===void 0||n.filter(Boolean).some(u=>u.contains(e.target)||u===e.target)){e.preventDefault();return}this.open&&t?(this.open=!1,this.searchEl.blur()):this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(e){return this.selectedValue.some(t=>this.optionComparator(t,e))},isOptionDeselectable(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},hasKeyboardFocusBorder(e){return this.keyboardFocusBorder&&this.isKeyboardNavigation?e===this.typeAheadPointer:!1},optionComparator(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue(e){const t=u=>JSON.stringify(this.reduce(u))===JSON.stringify(e),n=[...this.options,...this.pushedTags].filter(t);return n.length===1?n[0]:n.find(u=>this.optionComparator(u,this.$data._value))||e},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let e=null;this.multiple&&(e=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(e)}},optionExists(e){return this.optionList.some(t=>this.optionComparator(t,e))},optionAriaSelected(e){return this.selectable(e)?String(this.isOptionSelected(e)):null},normalizeOptionForSlot(e){return typeof e=="object"?e:{[this.label]:e}},pushTag(e){this.pushedTags.push(e)},onEscape(){this.search.length?this.search="":this.open=!1},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:e,multiple:t}=this;this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=""),this.closeSearchOptions();return}this.search.length===0&&this.options.length===0&&this.closeSearchOptions()},onSearchFocus(){this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onMouseMove(e,t){this.isKeyboardNavigation=!1,this.selectable(e)&&(this.typeAheadPointer=t)},onSearchKeyDown(e){const t=s=>{if(s.preventDefault(),!this.open){this.open=!0;return}return!this.isComposing&&this.typeAheadSelect()},n={8:()=>this.maybeDeleteValue(),9:()=>this.onTab(),27:()=>this.onEscape(),38:s=>{if(s.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadUp()},40:s=>{if(s.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadDown()}};this.selectOnKeyCodes.forEach(s=>n[s]=t);const u=this.mapKeydown(n,this);if(typeof u[e.keyCode]=="function")return u[e.keyCode](e)},onSearchKeyPress(e){!this.open&&e.keyCode===32&&(e.preventDefault(),this.open=!0)}}},xT=["id","dir"],wT={ref:"toggle",class:"vs__dropdown-toggle"},bT=["disabled","title","aria-label","onMousedown","onKeydown"],BT={ref:"actions",class:"vs__actions"},kT=["disabled","title","aria-label"],AT={class:"vs__spinner"},DT=["id","aria-label","aria-multiselectable"],FT=["id","aria-selected","onMousemove","onClick"],ST={key:0,class:"vs__no-options"},_T=["id","aria-label"];function NT(e,t,n,u,s,i){const r=wE("append-to-body");return _(),W("div",{id:`v-select-${n.uid}`,dir:n.dir,class:ze(["v-select",i.stateClasses])},[Pe(e.$slots,"header",yn(an(i.scope.header))),Z("div",wT,[Z("div",{ref:"selectedOptions",class:"vs__selected-options",onMousedown:t[0]||(t[0]=(...o)=>i.toggleDropdown&&i.toggleDropdown(...o))},[(_(!0),W(et,null,tu(i.selectedValue,(o,a)=>Pe(e.$slots,"selected-option-container",{option:i.normalizeOptionForSlot(o),deselect:i.deselect,multiple:n.multiple,disabled:n.disabled},()=>[(_(),W("span",{key:n.getOptionKey(o),class:"vs__selected"},[Pe(e.$slots,"selected-option",Ze({ref_for:!0},i.normalizeOptionForSlot(o)),()=>[We(re(n.getOptionLabel(o)),1)]),n.multiple?(_(),W("button",{key:0,ref_for:!0,ref:c=>s.deselectButtons[a]=c,disabled:n.disabled,type:"button",class:"vs__deselect",title:n.ariaLabelDeselectOption(n.getOptionLabel(o)),"aria-label":n.ariaLabelDeselectOption(n.getOptionLabel(o)),onMousedown:gn(c=>i.deselect(o),["stop"]),onKeydown:gr(c=>i.keyboardDeselect(o,a),["enter"])},[(_(),we(xu(i.childComponents.Deselect)))],40,bT)):ye("",!0)]))])),256)),Pe(e.$slots,"search",yn(an(i.scope.search)),()=>[Z("input",Ze({class:"vs__search"},i.scope.search.attributes,Do(i.scope.search.events,!0)),null,16)])],544),Z("div",BT,[Mu(Z("button",{ref:"clearButton",disabled:n.disabled,type:"button",class:"vs__clear",title:n.ariaLabelClearSelected,"aria-label":n.ariaLabelClearSelected,onClick:t[1]||(t[1]=(...o)=>i.clearSelection&&i.clearSelection(...o))},[(_(),we(xu(i.childComponents.Deselect)))],8,kT),[[gs,i.showClearButton]]),n.noDrop?ye("",!0):(_(),W("button",{key:0,ref:"openIndicatorButton",class:"vs__open-indicator-button",type:"button",tabindex:"-1","aria-hidden":"true",onMousedown:t[2]||(t[2]=(...o)=>i.toggleDropdown&&i.toggleDropdown(...o))},[Pe(e.$slots,"open-indicator",yn(an(i.scope.openIndicator)),()=>[(_(),we(xu(i.childComponents.OpenIndicator),yn(an(i.scope.openIndicator.attributes)),null,16))])],544)),Pe(e.$slots,"spinner",yn(an(i.scope.spinner)),()=>[Mu(Z("div",AT," Loading... ",512),[[gs,e.mutableLoading]])])],512)],512),Ee(Hs,{name:n.transition},{default:he(()=>[i.dropdownOpen?Mu((_(),W("ul",{id:`vs-${n.uid}__listbox`,ref:"dropdownMenu",key:`vs-${n.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox","aria-label":n.ariaLabelListbox,"aria-multiselectable":n.multiple?"true":null,tabindex:"-1",onMousedown:t[3]||(t[3]=gn((...o)=>i.onMousedown&&i.onMousedown(...o),["prevent"])),onMouseup:t[4]||(t[4]=(...o)=>i.onMouseUp&&i.onMouseUp(...o))},[Pe(e.$slots,"list-header",yn(an(i.scope.listHeader))),(_(!0),W(et,null,tu(i.filteredOptions,(o,a)=>(_(),W("li",{id:`vs-${n.uid}__option-${a}`,key:n.getOptionKey(o),role:"option",class:ze(["vs__dropdown-option",{"vs__dropdown-option--deselect":i.isOptionDeselectable(o)&&a===e.typeAheadPointer,"vs__dropdown-option--selected":i.isOptionSelected(o),"vs__dropdown-option--highlight":a===e.typeAheadPointer,"vs__dropdown-option--kb-focus":i.hasKeyboardFocusBorder(a),"vs__dropdown-option--disabled":!n.selectable(o)}]),"aria-selected":i.optionAriaSelected(o),onMousemove:c=>i.onMouseMove(o,a),onClick:gn(c=>n.selectable(o)?i.select(o):null,["prevent","stop"])},[Pe(e.$slots,"option",Ze({ref_for:!0},i.normalizeOptionForSlot(o)),()=>[We(re(n.getOptionLabel(o)),1)])],42,FT))),128)),i.filteredOptions.length===0?(_(),W("li",ST,[Pe(e.$slots,"no-options",yn(an(i.scope.noOptions)),()=>[t[5]||(t[5]=We(" Sorry, no matching options. ",-1))])])):ye("",!0),Pe(e.$slots,"list-footer",yn(an(i.scope.listFooter)))],40,DT)),[[r]]):(_(),W("ul",{key:1,id:`vs-${n.uid}__listbox`,role:"listbox","aria-label":n.ariaLabelListbox,style:{display:"none",visibility:"hidden"}},null,8,_T))]),_:3},8,["name"]),Pe(e.$slots,"footer",yn(an(i.scope.footer)))],10,xT)}const d3=vd(yT,[["render",NT]]),TT={class:"input-field__main-wrapper"},zT=["id","aria-describedby","disabled","placeholder","type","value"],PT=["for"],IT={class:"input-field__icon input-field__icon--leading"},LT={key:2,class:"input-field__icon input-field__icon--trailing"},OT=["id"],RT=Me({inheritAttrs:!1,__name:"NcInputField",props:qu({class:{default:""},inputClass:{default:""},id:{default:()=>fn()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:qu(["trailingButtonClick"],["update:modelValue"]),setup(e,{expose:t,emit:n}){const u=ri(e,"modelValue"),s=e,i=n;t({focus:f,select:g});const r=BE(),o=An("input"),a=ne(()=>s.showTrailingButton||s.success),c=ne(()=>{if(s.placeholder)return s.placeholder;if(s.label)return Lo?s.label:""}),l=ne(()=>s.label||s.labelOutside),d=ne(()=>{const E=[];return s.helperText&&E.push(`${s.id}-helper-text`),r["aria-describedby"]&&E.push(String(r["aria-describedby"])),E.join(" ")||void 0});function f(E){o.value.focus(E)}function g(){o.value.select()}function h(E){const b=E.target;u.value=s.type==="number"&&typeof u.value=="number"?parseFloat(b.value):b.value}return(E,b)=>(_(),W("div",{class:ze(["input-field",[{"input-field--disabled":e.disabled,"input-field--error":e.error,"input-field--label-outside":e.labelOutside||!l.value,"input-field--leading-icon":!!E.$slots.icon,"input-field--trailing-icon":a.value,"input-field--pill":e.pill,"input-field--success":e.success,"input-field--legacy":I(Lo)},E.$props.class]])},[Z("div",TT,[Z("input",Ze(E.$attrs,{id:e.id,ref:"input","aria-describedby":d.value,"aria-live":"polite",class:["input-field__input",e.inputClass],disabled:e.disabled,placeholder:c.value,type:e.type,value:u.value.toString(),onInput:h}),null,16,zT),!e.labelOutside&&l.value?(_(),W("label",{key:0,class:"input-field__label",for:e.id},re(e.label),9,PT)):ye("",!0),Mu(Z("div",IT,[Pe(E.$slots,"icon",{},void 0,!0)],512),[[gs,!!E.$slots.icon]]),e.showTrailingButton?(_(),we(Ct,{key:1,class:"input-field__trailing-button","aria-label":e.trailingButtonLabel,disabled:e.disabled,variant:"tertiary-no-background",onClick:b[0]||(b[0]=C=>i("trailingButtonClick",C))},{icon:he(()=>[Pe(E.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):e.success||e.error?(_(),W("div",LT,[e.success?(_(),we(It,{key:0,path:I(Oo)},null,8,["path"])):(_(),we(It,{key:1,path:I(Km)},null,8,["path"]))])):ye("",!0)]),e.helperText?(_(),W("p",{key:0,id:`${e.id}-helper-text`,class:"input-field__helper-text-message"},[e.success?(_(),we(It,{key:0,class:"input-field__helper-text-message__icon",path:I(Oo),inline:""},null,8,["path"])):e.error?(_(),we(It,{key:1,class:"input-field__helper-text-message__icon",path:I(Km),inline:""},null,8,["path"])):ye("",!0),We(" "+re(e.helperText),1)],8,OT)):ye("",!0)],2))}}),m3=ut(RT,[["__scopeId","data-v-feb04bef"]]);Ft(o6,v6);const jT=Me({__name:"NcTextField",props:qu({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},type:{},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:t}){const n=ri(e,"modelValue"),u=e;t({focus:a,select:c});const s=An("inputField"),i={arrowEnd:Ye("Save changes"),close:Ye("Clear text"),undo:Ye("Undo changes")},r=new Set(Object.keys(m3.props)),o=ne(()=>{const l=Object.fromEntries(Object.entries(u).filter(([d])=>r.has(d)));return l.trailingButtonLabel??=i[u.trailingButtonIcon],l});function a(l){s.value.focus(l)}function c(){s.value.select()}return(l,d)=>(_(),we(I(m3),Ze(o.value,{ref:"inputField",modelValue:n.value,"onUpdate:modelValue":d[0]||(d[0]=f=>n.value=f)}),Bc({_:2},[l.$slots.icon?{name:"icon",fn:he(()=>[Pe(l.$slots,"icon")]),key:"0"}:void 0,e.type!=="search"?{name:"trailing-button-icon",fn:he(()=>[e.trailingButtonIcon==="arrowEnd"?(_(),we(I(It),{key:0,directional:"",path:I(a5)},null,8,["path"])):(_(),we(I(It),{key:1,path:e.trailingButtonIcon==="undo"?I(p5):I(P0)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}});Ft(r6),{...d3.props,...d3.mixins.reduce((e,t)=>({...e,...t.props}),{}),ariaLabelClearSelected:Ye("Clear selected"),ariaLabelListbox:Ye("Options")},Ft(s6),Ye("Any link"),QC("core","filetypes/link.svg"),window._vue_richtext_reference_providers??=oi("core","reference-provider-list",[]),window._vue_richtext_reference_provider_timestamps??=oi("core","reference-provider-timestamps",{}),Ft(Ym,p6),Ft(c6),Ft(d6,Ym,f6),Ft(i6,ip);const MT={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$T=["aria-hidden","aria-label"],VT=["fill","width","height"],UT={d:"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"},HT={key:0};function WT(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon content-copy-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",UT,[n.title?(_(),W("title",HT,re(n.title),1)):ye("",!0)])],8,VT))],16,$T)}const aa=gt(MT,[["render",WT]]),qT={class:"trace__position"},KT={class:"trace__file"},GT={key:0,class:"trace__line"},YT={class:"trace__function"},ZT=["textContent"],JT=["textContent"],XT=Me({__name:"TraceLine",props:{line:{}},setup(e){const t=e,n=ne(()=>`${t.line.class}${t.line.type}${t.line.function}`),u=ne(()=>(t.line.args||[]).length===0?"()":`( +`});return d(),c(),g+` +`+(s===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` +`))+1))}const r="#".repeat(s),o=n.enter("headingAtx"),a=n.enter("phrasing");i.move(r+" ");let l=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(l)&&(l=xr(l.charCodeAt(0))+l.slice(1)),l=l?r+" "+l:r,n.options.closeAtx&&(l+=" "+r),a(),o(),l}wv.peek=P_;function wv(e){return e.value||""}function P_(){return"<"}kv.peek=R_;function kv(e,t,n,u){const s=dd(n),i=s==='"'?"Quote":"Apostrophe",r=n.enter("image");let o=n.enter("label");const a=n.createTracker(u);let l=a.move("![");return l+=a.move(n.safe(e.alt,{before:l,after:"]",...a.current()})),l+=a.move("]("),o(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(o=n.enter("destinationLiteral"),l+=a.move("<"),l+=a.move(n.safe(e.url,{before:l,after:">",...a.current()})),l+=a.move(">")):(o=n.enter("destinationRaw"),l+=a.move(n.safe(e.url,{before:l,after:e.title?" ":")",...a.current()}))),o(),e.title&&(o=n.enter(`title${i}`),l+=a.move(" "+s),l+=a.move(n.safe(e.title,{before:l,after:s,...a.current()})),l+=a.move(s),o()),l+=a.move(")"),r(),l}function R_(){return"!"}Bv.peek=j_;function Bv(e,t,n,u){const s=e.referenceType,i=n.enter("imageReference");let r=n.enter("label");const o=n.createTracker(u);let a=o.move("![");const l=n.safe(e.alt,{before:a,after:"]",...o.current()});a+=o.move(l+"]["),r();const c=n.stack;n.stack=[],r=n.enter("reference");const d=n.safe(n.associationId(e),{before:a,after:"]",...o.current()});return r(),n.stack=c,i(),s==="full"||!l||l!==d?a+=o.move(d+"]"):s==="shortcut"?a=a.slice(0,-1):a+=o.move("]"),a}function j_(){return"!"}Av.peek=M_;function Av(e,t,n){let u=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(u);)s+="`";for(/[^ \r\n]/.test(u)&&(/^[ \r\n]/.test(u)&&/[ \r\n]$/.test(u)||/^`|`$/.test(u))&&(u=" "+u+" ");++i\u007F]/.test(e.url))}Fv.peek=$_;function Fv(e,t,n,u){const s=dd(n),i=s==='"'?"Quote":"Apostrophe",r=n.createTracker(u);let o,a;if(Dv(e,n)){const c=n.stack;n.stack=[],o=n.enter("autolink");let d=r.move("<");return d+=r.move(n.containerPhrasing(e,{before:d,after:">",...r.current()})),d+=r.move(">"),o(),n.stack=c,d}o=n.enter("link"),a=n.enter("label");let l=r.move("[");return l+=r.move(n.containerPhrasing(e,{before:l,after:"](",...r.current()})),l+=r.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),l+=r.move("<"),l+=r.move(n.safe(e.url,{before:l,after:">",...r.current()})),l+=r.move(">")):(a=n.enter("destinationRaw"),l+=r.move(n.safe(e.url,{before:l,after:e.title?" ":")",...r.current()}))),a(),e.title&&(a=n.enter(`title${i}`),l+=r.move(" "+s),l+=r.move(n.safe(e.title,{before:l,after:s,...r.current()})),l+=r.move(s),a()),l+=r.move(")"),o(),l}function $_(e,t,n){return Dv(e,n)?"<":"["}Sv.peek=V_;function Sv(e,t,n,u){const s=e.referenceType,i=n.enter("linkReference");let r=n.enter("label");const o=n.createTracker(u);let a=o.move("[");const l=n.containerPhrasing(e,{before:a,after:"]",...o.current()});a+=o.move(l+"]["),r();const c=n.stack;n.stack=[],r=n.enter("reference");const d=n.safe(n.associationId(e),{before:a,after:"]",...o.current()});return r(),n.stack=c,i(),s==="full"||!l||l!==d?a+=o.move(d+"]"):s==="shortcut"?a=a.slice(0,-1):a+=o.move("]"),a}function V_(){return"["}function md(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function U_(e){const t=md(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function H_(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function _v(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function W_(e,t,n,u){const s=n.enter("list"),i=n.bulletCurrent;let r=e.ordered?H_(n):md(n);const o=e.ordered?r==="."?")":".":U_(n);let a=t&&n.bulletLastUsed?r===n.bulletLastUsed:!1;if(!e.ordered){const c=e.children?e.children[0]:void 0;if((r==="*"||r==="-")&&c&&(!c.children||!c.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(a=!0),_v(n)===r&&c){let d=-1;for(;++d-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let r=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(r=Math.ceil(r/4)*4);const o=n.createTracker(u);o.move(i+" ".repeat(r-i.length)),o.shift(r);const a=n.enter("listItem"),l=n.indentLines(n.containerFlow(e,o.current()),c);return a(),l;function c(d,g,m){return g?(m?"":" ".repeat(r))+d:(m?i:i+" ".repeat(r-i.length))+d}}function Y_(e,t,n,u){const s=n.enter("paragraph"),i=n.enter("phrasing"),r=n.containerPhrasing(e,u);return i(),s(),r}const G_=cd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Z_(e,t,n,u){return(e.children.some(function(s){return G_(s)})?n.containerPhrasing:n.containerFlow).call(n,e,u)}function X_(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Nv.peek=J_;function Nv(e,t,n,u){const s=X_(n),i=n.enter("strong"),r=n.createTracker(u),o=r.move(s+s);let a=r.move(n.containerPhrasing(e,{after:s,before:o,...r.current()}));const l=a.charCodeAt(0),c=ua(u.before.charCodeAt(u.before.length-1),l,s);c.inside&&(a=xr(l)+a.slice(1));const d=a.charCodeAt(a.length-1),g=ua(u.after.charCodeAt(0),d,s);g.inside&&(a=a.slice(0,-1)+xr(d));const m=r.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:g.outside,before:c.outside},o+a+m}function J_(e,t,n){return n.options.strong||"*"}function Q_(e,t,n,u){return n.safe(e.value,u)}function eN(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function tN(e,t,n){const u=(_v(n)+(n.options.ruleSpaces?" ":"")).repeat(eN(n));return n.options.ruleSpaces?u.slice(0,-1):u}const Tv={blockquote:w_,break:s3,code:S_,definition:N_,emphasis:bv,hardBreak:s3,heading:I_,html:wv,image:kv,imageReference:Bv,inlineCode:Av,link:Fv,linkReference:Sv,list:W_,listItem:K_,paragraph:Y_,root:Z_,strong:Nv,text:Q_,thematicBreak:tN};function nN(){return{enter:{table:uN,tableData:i3,tableHeader:i3,tableRow:iN},exit:{codeText:rN,table:sN,tableData:c0,tableHeader:c0,tableRow:c0}}}function uN(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function sN(e){this.exit(e),this.data.inTable=void 0}function iN(e){this.enter({type:"tableRow",children:[]},e)}function c0(e){this.exit(e)}function i3(e){this.enter({type:"tableCell",children:[]},e)}function rN(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,oN));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function oN(e,t){return t==="|"?t:e}function aN(e){const t=e||{},n=t.tableCellPadding,u=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:g,table:r,tableCell:a,tableRow:o}};function r(m,f,p,E){return l(c(m,p,E),m.align)}function o(m,f,p,E){const v=d(m,p,E),C=l([v]);return C.slice(0,C.indexOf(` +`))}function a(m,f,p,E){const v=p.enter("tableCell"),C=p.enter("phrasing"),y=p.containerPhrasing(m,{...E,before:i,after:i});return C(),v(),y}function l(m,f){return x_(m,{align:f,alignDelimiters:u,padding:n,stringLength:s})}function c(m,f,p){const E=m.children;let v=-1;const C=[],y=f.enter("table");for(;++vs?0:s+t:t=t>s?s:t,n=n>0?n:0,u.length<1e4)r=Array.from(u),r.unshift(t,n),e.splice(...r);else for(n&&e.splice(t,n);i0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function SN(e,t,n){const u=[];let s=-1;for(;++s999||d===93&&!r||d===null||d===91||en(d))return n(d);if(d===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return s.includes(zr(u.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(d)}return en(d)||(r=!0),i++,e.consume(d),d===92?c:l}function c(d){return d===91||d===92||d===93?(e.consume(d),i++,l):l(d)}}function PN(e,t,n){const u=this,s=u.parser.gfmFootnotes||(u.parser.gfmFootnotes=[]);let i,r=0,o;return a;function a(f){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(f),e.exit("gfmFootnoteDefinitionLabelMarker"),l}function l(f){return f===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(f),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",c):n(f)}function c(f){if(r>999||f===93&&!o||f===null||f===91||en(f))return n(f);if(f===93){e.exit("chunkString");const p=e.exit("gfmFootnoteDefinitionLabelString");return i=zr(u.sliceSerialize(p)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(f),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return en(f)||(o=!0),r++,e.consume(f),f===92?d:c}function d(f){return f===91||f===92||f===93?(e.consume(f),r++,c):c(f)}function g(f){return f===58?(e.enter("definitionMarker"),e.consume(f),e.exit("definitionMarker"),s.includes(i)||s.push(i),mu(e,m,"gfmFootnoteDefinitionWhitespace")):n(f)}function m(f){return t(f)}}function RN(e,t,n){return e.check(_N,t,e.attempt(TN,t,n))}function jN(e){e.exit("gfmFootnoteDefinition")}function MN(e,t,n){const u=this;return mu(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const r=u.events[u.events.length-1];return r&&r[1].type==="gfmFootnoteDefinitionIndent"&&r[2].sliceSerialize(r[1],!0).length===4?t(i):n(i)}}function $N(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:s,resolveAll:u};return t==null&&(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function u(i,r){let o=-1;for(;++o1?o(m):(i.consume(m),c++,g);if(c<2&&!t)return o(m);const p=i.exit("strikethroughSequenceTemporary"),E=na(m);return p._open=!E||E===2&&!!f,p._close=!f||f===2&&!!E,r(m)}}}class VN{constructor(){this.map=[]}add(t,n,u){UN(this,t,n,u)}consume(t){if(this.map.sort(function(i,r){return i[0]-r[0]}),this.map.length===0)return;let n=this.map.length;const u=[];for(;n>0;)n-=1,u.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];u.push(t.slice()),t.length=0;let s=u.pop();for(;s;){for(const i of s)t.push(i);s=u.pop()}this.map.length=0}}function UN(e,t,n,u){let s=0;if(!(n===0&&u.length===0)){for(;s-1;){const L=u.events[T][1].type;if(L==="lineEnding"||L==="linePrefix")T--;else break}const x=T>-1?u.events[T][1].type:null,z=x==="tableHead"||x==="tableRow"?F:a;return z===F&&u.parser.lazy[u.now().line]?n(B):z(B)}function a(B){return e.enter("tableHead"),e.enter("tableRow"),l(B)}function l(B){return B===124||(r=!0,i+=1),c(B)}function c(B){return B===null?n(B):Ys(B)?i>1?(i=0,u.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(B),e.exit("lineEnding"),m):n(B):du(B)?mu(e,c,"whitespace")(B):(i+=1,r&&(r=!1,s+=1),B===124?(e.enter("tableCellDivider"),e.consume(B),e.exit("tableCellDivider"),r=!0,c):(e.enter("data"),d(B)))}function d(B){return B===null||B===124||en(B)?(e.exit("data"),c(B)):(e.consume(B),B===92?g:d)}function g(B){return B===92||B===124?(e.consume(B),d):d(B)}function m(B){return u.interrupt=!1,u.parser.lazy[u.now().line]?n(B):(e.enter("tableDelimiterRow"),r=!1,du(B)?mu(e,f,"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(B):f(B))}function f(B){return B===45||B===58?E(B):B===124?(r=!0,e.enter("tableCellDivider"),e.consume(B),e.exit("tableCellDivider"),p):j(B)}function p(B){return du(B)?mu(e,E,"whitespace")(B):E(B)}function E(B){return B===58?(i+=1,r=!0,e.enter("tableDelimiterMarker"),e.consume(B),e.exit("tableDelimiterMarker"),v):B===45?(i+=1,v(B)):B===null||Ys(B)?k(B):j(B)}function v(B){return B===45?(e.enter("tableDelimiterFiller"),C(B)):j(B)}function C(B){return B===45?(e.consume(B),C):B===58?(r=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(B),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(B))}function y(B){return du(B)?mu(e,k,"whitespace")(B):k(B)}function k(B){return B===124?f(B):B===null||Ys(B)?!r||s!==i?j(B):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(B)):j(B)}function j(B){return n(B)}function F(B){return e.enter("tableRow"),P(B)}function P(B){return B===124?(e.enter("tableCellDivider"),e.consume(B),e.exit("tableCellDivider"),P):B===null||Ys(B)?(e.exit("tableRow"),t(B)):du(B)?mu(e,P,"whitespace")(B):(e.enter("data"),K(B))}function K(B){return B===null||B===124||en(B)?(e.exit("data"),P(B)):(e.consume(B),B===92?$:K)}function $(B){return B===92||B===124?(e.consume(B),K):K(B)}}function KN(e,t){let n=-1,u=!0,s=0,i=[0,0,0,0],r=[0,0,0,0],o=!1,a=0,l,c,d;const g=new VN;for(;++nn[2]+1){const f=n[2]+1,p=n[3]-n[2]-1;e.add(f,p,[])}}e.add(n[3]+1,0,[["exit",d,t]])}return s!==void 0&&(i.end=Object.assign({},Ws(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function c3(e,t,n,u,s){const i=[],r=Ws(t.events,n);s&&(s.end=Object.assign({},r),i.push(["exit",s,t])),u.end=Object.assign({},r),i.push(["exit",u,t]),e.add(n+1,0,i)}function Ws(e,t){const n=e[t],u=n[0]==="enter"?"start":"end";return n[1][u]}const YN={name:"tasklistCheck",tokenize:ZN};function GN(){return{text:{91:YN}}}function ZN(e,t,n){const u=this;return s;function s(a){return u.previous!==null||!u._gfmTasklistFirstContentOfListItem?n(a):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),i)}function i(a){return en(a)?(e.enter("taskListCheckValueUnchecked"),e.consume(a),e.exit("taskListCheckValueUnchecked"),r):a===88||a===120?(e.enter("taskListCheckValueChecked"),e.consume(a),e.exit("taskListCheckValueChecked"),r):n(a)}function r(a){return a===93?(e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),o):n(a)}function o(a){return Ys(a)?t(a):du(a)?e.check({tokenize:XN},t,n)(a):n(a)}}function XN(e,t,n){return mu(e,u,"whitespace");function u(s){return s===null?n(s):t(s)}}function JN(e){return pN([yN(),zN(),$N(e),WN(),GN()])}const QN={};function eT(e){const t=this,n=e||QN,u=t.data(),s=u.micromarkExtensions||(u.micromarkExtensions=[]),i=u.fromMarkdownExtensions||(u.fromMarkdownExtensions=[]),r=u.toMarkdownExtensions||(u.toMarkdownExtensions=[]);s.push(JN(n)),i.push(gN()),r.push(fN(n))}const tT=Te({__name:"NcRichTextCopyButton",props:{contentId:{}},setup(e){const{copy:t,icon:n,altText:u}=_S(()=>document.getElementById(e.contentId).textContent);return(s,i)=>(D(),pe(dt,{variant:"tertiary",size:"small","aria-label":N(u),title:N(u),onClick:N(t)},{icon:re(()=>[le(St,{path:N(n),inline:""},null,8,["path"])]),_:1},8,["aria-label","title","onClick"]))}});function nT(e){return e.type==="text"}const uT=function(e){Wu(e,nT,(t,n)=>{const u=n.at(-1),s=u.children.indexOf(t),i=t.value.split(/(\{[a-z\-_.0-9]+\})/ig).map(r=>{const o=r.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!o)return Ks("text",r);const[,a]=o;return Ks("element",{tagName:`#${a}`,children:[]})});u.children.splice(s,1,...i)})},sT=()=>uT;function iT(e){return["code","inlineCode"].includes(e.type)}const rT=function(){return function(e){Wu(e,iT,(t,n)=>{const u=n.at(-1),s=u.children.indexOf(t);return u.children.splice(s,1,{...t,value:""}),[ja,s+1]})}};function oT(e){return["text","code","inlineCode"].includes(e.type)}const aT=function(){return function(e){Wu(e,oT,(t,n)=>{const u=n.at(-1),s=u.children.indexOf(t);return u.children.splice(s,1,{...t,value:t.value.replace(/</gmi,"<").replace(/>/gmi,">")}),[ja,s+1]})}},lT=["http","https","mailto","tel"],cc=be(null);async function cT(){const e=await sw(()=>import("./index-9lOtR4zZ.chunk.mjs"),[],import.meta.url);cc.value=e.default}const dT={name:"NcRichText",components:{NcReferenceList:r0},props:{text:{type:String,default:""},arguments:{type:Object,default:()=>({})},referenceLimit:{type:Number,default:0},referenceInteractive:{type:Boolean,default:!0},referenceInteractiveOptIn:{type:Boolean,default:!1},references:{type:Array,default:null},useMarkdown:{type:Boolean,default:!1},useExtendedMarkdown:{type:Boolean,default:!1},interactive:{type:Boolean,default:!1},autolink:{type:Boolean,default:!0}},emits:["interactTodo"],data(){return{parentId:cn()}},methods:{renderPlaintext(){const e=this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map(t=>{const n=t.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!n)return this.prepareTextNode(t);const u=n[1],s=this.arguments[u];if(typeof s=="object"){const{component:i,props:r}=s;return je(typeof i=="string"?mn(i):i,{...r,class:"rich-text--component"})}return s?je("span",{class:"rich-text--fallback"},s):t});return je("div",{class:"rich-text--wrapper"},[je("div",{},e.flat()),this.referenceLimit>0?je("div",{class:"rich-text--reference-widget"},[je(r0,{text:this.text,referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},renderMarkdown(){const e=Yg().use(jg).use(yS,{autolink:this.autolink,useMarkdown:this.useMarkdown,useExtendedMarkdown:this.useExtendedMarkdown}).use(aT).use(this.useExtendedMarkdown?eT:void 0).use(QF).use(j7,{except:lT}).use(P7,{handlers:{component(t,n){return t(n,n.component,{value:n.value})}}}).use(this.useExtendedMarkdown?cc.value:void 0).use(sT).use(tF,{target:"_blank",rel:["noopener noreferrer"]}).use(WF,{Fragment:qe,jsx:this.createElement,jsxs:this.createElement,elementAttributeNameCase:"html",prefix:!1}).processSync(this.text.replace(/<[^>]+>/g,t=>t.replace(/")).result;return je("div",{class:"rich-text--wrapper rich-text--wrapper-markdown"},[e,this.referenceLimit>0?je("div",{class:"rich-text--reference-widget"},[je(r0,{text:this.prepareReferenceSource(this.text),referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},prepareTextNode(e){return this.autolink&&(e=hv(e)),Array.isArray(e)?e.map(t=>{if(typeof t=="string")return t;const{component:n,props:u}=t;return je(n,{...u,class:"rich-text--component"})}):e},prepareReferenceSource(e){if(!this.useMarkdown&&!this.useExtendedMarkdown)return e;const t=Yg();return t.compiler=n=>Ia(n),t.use(jg).use(rT).processSync(e.replace(/\s/g," ")).value},createElement(e,t,n){n&&(t.key=n);const u=t.children??[];if(delete t.children,!String(e).startsWith("#")){["h1","h2","h3","h4","h5","h6"].includes(String(e))&&(e=`h${Math.min(+String(e)[1]+3,6)}`);let i=null;if(this.useExtendedMarkdown){if(String(e)==="code"&&!cc.value&&t?.class?.includes("language")&&cT(),String(e)==="pre"&&u&&String(u.type)==="code"){const r=this.parentId+"-code-block-"+cn();return je("p",{class:"rich-text__code-block"},[je(e,{...t,id:r},u),je(tT,{class:"rich-text__code-block-button",contentId:r})])}if(String(e)==="li"&&Array.isArray(u)&&u.length!==0&&u[0].type==="input"&&u[0].props.type==="checkbox"){const[r,,...o]=u,a=o.findIndex(g=>["ul","ol","li","blockquote","pre"].includes(g.type));a!==-1&&(i=o[a],o.splice(a));const l=this.parentId+"-markdown-input-"+cn(),c={...r.props};delete c.checked;const d=je(Iu,{...c,modelValue:r.props.checked,id:l,disabled:!this.interactive,"onUpdate:modelValue":()=>{this.$emit("interactTodo",l)}},{default:()=>o});return je(e,t,[d,i])}}if(String(e)==="a"){const r=vv(this.$router,t.href);return r?(delete t.href,delete t.target,je(Qf,{...t,to:r},{default:()=>u})):/^(https?:\/\/|tel:|mailto:)/.test(t.href)?(t.href=t.href.trim(),je(pv,t,u)):(delete t.href,delete t.target,je("span",t,u))}return je(e,t,u)}const s=this.arguments[e.slice(1)];return s?s.component?je(typeof s.component=="string"?mn(s.component):s.component,{...t,...s.props,class:"rich-text--component"},{default:()=>u}):je("span",{...t},[s]):je("span",{...t,class:"rich-text--fallback"},[`{${e.slice(1)}}`])}},render(){return this.useMarkdown||this.useExtendedMarkdown?this.renderMarkdown():this.renderPlaintext()}},mT=Ze(dT,[["__scopeId","data-v-80e57a29"]]);window._vue_richtext_custom_picker_elements??={},window._registerCustomPickerElement??=gT;function gT(e,t,n=()=>{},u="large"){if(window._vue_richtext_custom_picker_elements[e]){ku.error(`Custom reference picker element for id ${e} already registered`);return}window._vue_richtext_custom_picker_elements[e]={id:e,callback:t,onDestroy:n,size:u}}const fT={mounted(e,{instance:t}){if(t.appendToBody){document.body.appendChild(e);const{height:n,top:u,left:s,width:i}=t.$refs.toggle.getBoundingClientRect(),r=window.scrollX||window.pageXOffset,o=window.scrollY||window.pageYOffset;e.unbindPosition=t.calculatePosition(e,t,{width:i+"px",left:r+s+"px",top:o+u+n+"px"})}},unmounted(e,{instance:t}){t.appendToBody&&(e.unbindPosition&&typeof e.unbindPosition=="function"&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}},pT={props:{loading:{type:Boolean,default:!1}},data(){return{mutableLoading:!1}},watch:{search(){this.$emit("search",this.search,this.toggleLoading)},loading(e){this.mutableLoading=e}},methods:{toggleLoading(e=null){return e==null?this.mutableLoading=!this.mutableLoading:this.mutableLoading=e}}},hT={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(e){this.autoscroll&&e&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){const e=this.$refs.dropdownMenu?.children[this.typeAheadPointer]||!1;if(e){const t=this.getDropdownViewport(),{top:n,bottom:u,height:s}=e.getBoundingClientRect();if(nt.bottom)return this.$refs.dropdownMenu.scrollTop=e.offsetTop-(t.height-s)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},vT={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){if(this.resetFocusOnOptionsChange){for(let e=0;e=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown(){for(let e=this.typeAheadPointer+1;e{t[n]=e[n]}),JSON.stringify(t)}let CT=0;function yT(){return++CT}const fd=(e,t)=>{const n=e.__vccOpts||e;for(const[u,s]of t)n[u]=s;return n},xT={},bT={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"};function wT(e,t){return D(),R("svg",bT,[...t[0]||(t[0]=[H("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1)])])}const kT=fd(xT,[["render",wT]]),BT={},AT={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"};function DT(e,t){return D(),R("svg",AT,[...t[0]||(t[0]=[H("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1)])])}const FT=fd(BT,[["render",DT]]),d3={Deselect:kT,OpenIndicator:FT},ST={components:{...d3},directives:{appendToBody:fT},mixins:[hT,vT,pT],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},ariaLabelCombobox:{type:String,default:"Search for options"},ariaLabelListbox:{type:String,default:"Options"},ariaLabelClearSelected:{type:String,default:"Clear selected"},ariaLabelDeselectOption:{type:Function,default:e=>`Deselect ${e}`},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:e=>e},selectable:{type:Function,default:()=>!0},getOptionLabel:{type:Function,default(e){return typeof e=="object"?Object.hasOwn(e,this.label)?e[this.label]:sm(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}. +https://vue-select.org/api/props.html#getoptionlabel`):e}},getOptionKey:{type:Function,default(e){if(typeof e!="object")return e;try{return Object.hasOwn(e,"id")?e.id:ET(e)}catch{return sm()}}},onTab:{type:Function,default(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(e,t,n){return(t||"").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1}},filter:{type:Function,default(e,t){return e.filter(n=>{let u=this.getOptionLabel(n);return typeof u=="number"&&(u=u.toString()),this.filterBy(n,u,t)})}},createOption:{type:Function,default(e){return typeof this.optionList[0]=="object"?{[this.label]:e}:e}},resetFocusOnOptionsChange:{type:Boolean,default:!0},resetOnOptionsChange:{default:!1,validator:e=>["function","boolean"].includes(typeof e)},clearSearchOnBlur:{type:Function,default({clearSearchOnSelect:e,multiple:t}){return e&&!t}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:e=>e},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(e,t,{width:n,top:u,left:s}){e.style.top=u,e.style.left=s,e.style.width=n}},dropdownShouldOpen:{type:Function,default({noDrop:e,open:t,mutableLoading:n}){return e?!1:t&&!n}},keyboardFocusBorder:{type:Boolean,default:!1},uid:{type:[String,Number],default:()=>yT()}},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],data(){return{search:"",open:!1,isComposing:!1,isKeyboardNavigation:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let e=this.modelValue;return this.isTrackingValues&&(e=this.$data._value),e!=null&&e!==""?[].concat(e):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:{id:this.inputId,disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,role:"combobox","aria-autocomplete":"list","aria-label":this.ariaLabelCombobox,"aria-controls":`vs-${this.uid}__listbox`,"aria-owns":`vs-${this.uid}__listbox`,"aria-expanded":this.dropdownOpen.toString(),ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search,...this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs-${this.uid}__option-${this.typeAheadPointer}`}:{}},events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:t=>this.search=t.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:e,listFooter:e,header:{...e,deselect:this.deselect},footer:{...e,deselect:this.deselect}}},childComponents(){return{...d3,...this.components}},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const e=u=>this.limit!==null?u.slice(0,this.limit):u,t=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e(t);const n=this.search.length?this.filter(t,this.search,this):t;if(this.taggable&&this.search.length)try{const u=this.createOption(this.search);this.optionExists(u)||n.unshift(u)}catch{}return e(n)},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(e,t){const n=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(e,t,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&n()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple(){this.clearSelection()},open(e){this.$emit(e?"open":"close")},search(e){e.length&&(this.open=!0)}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(e){Array.isArray(e)?this.$data._value=e.map(t=>this.findOptionFromReducedValue(t)):this.$data._value=this.findOptionFromReducedValue(e)},select(e){this.$emit("option:selecting",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&(this.$emit("option:created",e),this.pushTag(e)),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit("option:selected",e)),this.onAfterSelect(e)},deselect(e){this.$emit("option:deselecting",e),this.updateValue(this.selectedValue.filter(t=>!this.optionComparator(t,e))),this.$emit("option:deselected",e)},keyboardDeselect(e,t){this.deselect(e);const n=this.deselectButtons?.[t+1],u=this.deselectButtons?.[t-1],s=n??u;s?s.focus():this.searchEl.focus()},clearSelection(){this.updateValue(this.multiple?[]:null),this.searchEl.focus()},onAfterSelect(){this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=""),this.noDrop&&this.multiple&&this.$nextTick(()=>this.$refs.search.focus())},updateValue(e){typeof this.modelValue>"u"&&(this.$data._value=e),e!==null&&(Array.isArray(e)?e=e.map(t=>this.reduce(t)):e=this.reduce(e)),this.$emit("update:modelValue",e)},toggleDropdown(e){const t=e.target!==this.searchEl;t&&e.preventDefault();const n=[...this.deselectButtons||[],...this.$refs.clearButton?[this.$refs.clearButton]:[]];if(this.searchEl===void 0||n.filter(Boolean).some(u=>u.contains(e.target)||u===e.target)){e.preventDefault();return}this.open&&t?(this.open=!1,this.searchEl.blur()):this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(e){return this.selectedValue.some(t=>this.optionComparator(t,e))},isOptionDeselectable(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},hasKeyboardFocusBorder(e){return this.keyboardFocusBorder&&this.isKeyboardNavigation?e===this.typeAheadPointer:!1},optionComparator(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue(e){const t=u=>JSON.stringify(this.reduce(u))===JSON.stringify(e),n=[...this.options,...this.pushedTags].filter(t);return n.length===1?n[0]:n.find(u=>this.optionComparator(u,this.$data._value))||e},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let e=null;this.multiple&&(e=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(e)}},optionExists(e){return this.optionList.some(t=>this.optionComparator(t,e))},optionAriaSelected(e){return this.selectable(e)?String(this.isOptionSelected(e)):null},normalizeOptionForSlot(e){return typeof e=="object"?e:{[this.label]:e}},pushTag(e){this.pushedTags.push(e)},onEscape(){this.search.length?this.search="":this.open=!1},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:e,multiple:t}=this;this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=""),this.closeSearchOptions();return}this.search.length===0&&this.options.length===0&&this.closeSearchOptions()},onSearchFocus(){this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onMouseMove(e,t){this.isKeyboardNavigation=!1,this.selectable(e)&&(this.typeAheadPointer=t)},onSearchKeyDown(e){const t=s=>{if(s.preventDefault(),!this.open){this.open=!0;return}return!this.isComposing&&this.typeAheadSelect()},n={8:()=>this.maybeDeleteValue(),9:()=>this.onTab(),27:()=>this.onEscape(),38:s=>{if(s.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadUp()},40:s=>{if(s.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadDown()}};this.selectOnKeyCodes.forEach(s=>n[s]=t);const u=this.mapKeydown(n,this);if(typeof u[e.keyCode]=="function")return u[e.keyCode](e)},onSearchKeyPress(e){!this.open&&e.keyCode===32&&(e.preventDefault(),this.open=!0)}}},_T=["id","dir"],NT={ref:"toggle",class:"vs__dropdown-toggle"},TT=["disabled","title","aria-label","onMousedown","onKeydown"],zT={ref:"actions",class:"vs__actions"},OT=["disabled","title","aria-label"],LT={class:"vs__spinner"},IT=["id","aria-label","aria-multiselectable"],PT=["id","aria-selected","onMousemove","onClick"],RT={key:0,class:"vs__no-options"},jT=["id","aria-label"];function MT(e,t,n,u,s,i){const r=DE("append-to-body");return D(),R("div",{id:`v-select-${n.uid}`,dir:n.dir,class:Ae(["v-select",i.stateClasses])},[De(e.$slots,"header",vn(un(i.scope.header))),H("div",NT,[H("div",{ref:"selectedOptions",class:"vs__selected-options",onMousedown:t[0]||(t[0]=(...o)=>i.toggleDropdown&&i.toggleDropdown(...o))},[(D(!0),R(qe,null,Zn(i.selectedValue,(o,a)=>De(e.$slots,"selected-option-container",{option:i.normalizeOptionForSlot(o),deselect:i.deselect,multiple:n.multiple,disabled:n.disabled},()=>[(D(),R("span",{key:n.getOptionKey(o),class:"vs__selected"},[De(e.$slots,"selected-option",Ve({ref_for:!0},i.normalizeOptionForSlot(o)),()=>[Re(te(n.getOptionLabel(o)),1)]),n.multiple?(D(),R("button",{key:0,ref_for:!0,ref:l=>s.deselectButtons[a]=l,disabled:n.disabled,type:"button",class:"vs__deselect",title:n.ariaLabelDeselectOption(n.getOptionLabel(o)),"aria-label":n.ariaLabelDeselectOption(n.getOptionLabel(o)),onMousedown:ln(l=>i.deselect(o),["stop"]),onKeydown:lr(l=>i.keyboardDeselect(o,a),["enter"])},[(D(),pe(hu(i.childComponents.Deselect)))],40,TT)):me("",!0)]))])),256)),De(e.$slots,"search",vn(un(i.scope.search)),()=>[H("input",Ve({class:"vs__search"},i.scope.search.attributes,ko(i.scope.search.events,!0)),null,16)])],544),H("div",zT,[Lu(H("button",{ref:"clearButton",disabled:n.disabled,type:"button",class:"vs__clear",title:n.ariaLabelClearSelected,"aria-label":n.ariaLabelClearSelected,onClick:t[1]||(t[1]=(...o)=>i.clearSelection&&i.clearSelection(...o))},[(D(),pe(hu(i.childComponents.Deselect)))],8,OT),[[ls,i.showClearButton]]),n.noDrop?me("",!0):(D(),R("button",{key:0,ref:"openIndicatorButton",class:"vs__open-indicator-button",type:"button",tabindex:"-1","aria-hidden":"true",onMousedown:t[2]||(t[2]=(...o)=>i.toggleDropdown&&i.toggleDropdown(...o))},[De(e.$slots,"open-indicator",vn(un(i.scope.openIndicator)),()=>[(D(),pe(hu(i.childComponents.OpenIndicator),vn(un(i.scope.openIndicator.attributes)),null,16))])],544)),De(e.$slots,"spinner",vn(un(i.scope.spinner)),()=>[Lu(H("div",LT," Loading... ",512),[[ls,e.mutableLoading]])])],512)],512),le(Ms,{name:n.transition},{default:re(()=>[i.dropdownOpen?Lu((D(),R("ul",{id:`vs-${n.uid}__listbox`,ref:"dropdownMenu",key:`vs-${n.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox","aria-label":n.ariaLabelListbox,"aria-multiselectable":n.multiple?"true":null,tabindex:"-1",onMousedown:t[3]||(t[3]=ln((...o)=>i.onMousedown&&i.onMousedown(...o),["prevent"])),onMouseup:t[4]||(t[4]=(...o)=>i.onMouseUp&&i.onMouseUp(...o))},[De(e.$slots,"list-header",vn(un(i.scope.listHeader))),(D(!0),R(qe,null,Zn(i.filteredOptions,(o,a)=>(D(),R("li",{id:`vs-${n.uid}__option-${a}`,key:n.getOptionKey(o),role:"option",class:Ae(["vs__dropdown-option",{"vs__dropdown-option--deselect":i.isOptionDeselectable(o)&&a===e.typeAheadPointer,"vs__dropdown-option--selected":i.isOptionSelected(o),"vs__dropdown-option--highlight":a===e.typeAheadPointer,"vs__dropdown-option--kb-focus":i.hasKeyboardFocusBorder(a),"vs__dropdown-option--disabled":!n.selectable(o)}]),"aria-selected":i.optionAriaSelected(o),onMousemove:l=>i.onMouseMove(o,a),onClick:ln(l=>n.selectable(o)?i.select(o):null,["prevent","stop"])},[De(e.$slots,"option",Ve({ref_for:!0},i.normalizeOptionForSlot(o)),()=>[Re(te(n.getOptionLabel(o)),1)])],42,PT))),128)),i.filteredOptions.length===0?(D(),R("li",RT,[De(e.$slots,"no-options",vn(un(i.scope.noOptions)),()=>[t[5]||(t[5]=Re(" Sorry, no matching options. ",-1))])])):me("",!0),De(e.$slots,"list-footer",vn(un(i.scope.listFooter)))],40,IT)),[[r]]):(D(),R("ul",{key:1,id:`vs-${n.uid}__listbox`,role:"listbox","aria-label":n.ariaLabelListbox,style:{display:"none",visibility:"hidden"}},null,8,jT))]),_:3},8,["name"]),De(e.$slots,"footer",vn(un(i.scope.footer)))],10,_T)}const m3=fd(ST,[["render",MT]]),$T={class:"input-field__main-wrapper"},VT=["id","aria-describedby","disabled","placeholder","type","value"],UT=["for"],HT={class:"input-field__icon input-field__icon--leading"},WT={key:2,class:"input-field__icon input-field__icon--trailing"},qT=["id"],KT=Te({inheritAttrs:!1,__name:"NcInputField",props:$u({class:{default:""},inputClass:{default:""},id:{default:()=>cn()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:$u(["trailingButtonClick"],["update:modelValue"]),setup(e,{expose:t,emit:n}){const u=ni(e,"modelValue"),s=e,i=n;t({focus:g,select:m});const r=SE(),o=bn("input"),a=Z(()=>s.showTrailingButton||s.success),l=Z(()=>{if(s.placeholder)return s.placeholder;if(s.label)return zo?s.label:""}),c=Z(()=>s.label||s.labelOutside),d=Z(()=>{const p=[];return s.helperText&&p.push(`${s.id}-helper-text`),r["aria-describedby"]&&p.push(String(r["aria-describedby"])),p.join(" ")||void 0});function g(p){o.value.focus(p)}function m(){o.value.select()}function f(p){const E=p.target;u.value=s.type==="number"&&typeof u.value=="number"?parseFloat(E.value):E.value}return(p,E)=>(D(),R("div",{class:Ae(["input-field",[{"input-field--disabled":e.disabled,"input-field--error":e.error,"input-field--label-outside":e.labelOutside||!c.value,"input-field--leading-icon":!!p.$slots.icon,"input-field--trailing-icon":a.value,"input-field--pill":e.pill,"input-field--success":e.success,"input-field--legacy":N(zo)},p.$props.class]])},[H("div",$T,[H("input",Ve(p.$attrs,{id:e.id,ref:"input","aria-describedby":d.value,"aria-live":"polite",class:["input-field__input",e.inputClass],disabled:e.disabled,placeholder:l.value,type:e.type,value:u.value.toString(),onInput:f}),null,16,VT),!e.labelOutside&&c.value?(D(),R("label",{key:0,class:"input-field__label",for:e.id},te(e.label),9,UT)):me("",!0),Lu(H("div",HT,[De(p.$slots,"icon",{},void 0,!0)],512),[[ls,!!p.$slots.icon]]),e.showTrailingButton?(D(),pe(dt,{key:1,class:"input-field__trailing-button","aria-label":e.trailingButtonLabel,disabled:e.disabled,variant:"tertiary-no-background",onClick:E[0]||(E[0]=v=>i("trailingButtonClick",v))},{icon:re(()=>[De(p.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):e.success||e.error?(D(),R("div",WT,[e.success?(D(),pe(St,{key:0,path:N(Oo)},null,8,["path"])):(D(),pe(St,{key:1,path:N(Wm)},null,8,["path"]))])):me("",!0)]),e.helperText?(D(),R("p",{key:0,id:`${e.id}-helper-text`,class:"input-field__helper-text-message"},[e.success?(D(),pe(St,{key:0,class:"input-field__helper-text-message__icon",path:N(Oo),inline:""},null,8,["path"])):e.error?(D(),pe(St,{key:1,class:"input-field__helper-text-message__icon",path:N(Wm),inline:""},null,8,["path"])):me("",!0),Re(" "+te(e.helperText),1)],8,qT)):me("",!0)],2))}}),g3=Ze(KT,[["__scopeId","data-v-feb04bef"]]);yt(sx,fx);const YT=Te({__name:"NcTextField",props:$u({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},type:{},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:t}){const n=ni(e,"modelValue"),u=e;t({focus:a,select:l});const s=bn("inputField"),i={arrowEnd:$e("Save changes"),close:$e("Clear text"),undo:$e("Undo changes")},r=new Set(Object.keys(g3.props)),o=Z(()=>{const c=Object.fromEntries(Object.entries(u).filter(([d])=>r.has(d)));return c.trailingButtonLabel??=i[u.trailingButtonIcon],c});function a(c){s.value.focus(c)}function l(){s.value.select()}return(c,d)=>(D(),pe(N(g3),Ve(o.value,{ref:"inputField",modelValue:n.value,"onUpdate:modelValue":d[0]||(d[0]=g=>n.value=g)}),xc({_:2},[c.$slots.icon?{name:"icon",fn:re(()=>[De(c.$slots,"icon")]),key:"0"}:void 0,e.type!=="search"?{name:"trailing-button-icon",fn:re(()=>[e.trailingButtonIcon==="arrowEnd"?(D(),pe(N(St),{key:0,directional:"",path:N(i5)},null,8,["path"])):(D(),pe(N(St),{key:1,path:e.trailingButtonIcon==="undo"?N(m5):N(T0)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}});yt(ux),{...m3.props,...m3.mixins.reduce((e,t)=>({...e,...t.props}),{}),ariaLabelClearSelected:$e("Clear selected"),ariaLabelListbox:$e("Options")},yt(tx),$e("Any link"),ZC("core","filetypes/link.svg"),window._vue_richtext_reference_providers??=ui("core","reference-provider-list",[]),window._vue_richtext_reference_provider_timestamps??=ui("core","reference-provider-timestamps",{}),yt(Km,mx),yt(ox),yt(ax,Km,dx),yt(nx,sp);const GT={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ZT=["aria-hidden","aria-label"],XT=["fill","width","height"],JT={d:"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"},QT={key:0};function ez(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon content-copy-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",JT,[n.title?(D(),R("title",QT,te(n.title),1)):me("",!0)])],8,XT))],16,ZT)}const sa=st(GT,[["render",ez]]),tz={class:"trace__position"},nz={class:"trace__file"},uz={key:0,class:"trace__line"},sz={class:"trace__function"},iz=["textContent"],rz=["textContent"],oz=Te({__name:"TraceLine",props:{line:{}},setup(e){const t=e,n=Z(()=>`${t.line.class}${t.line.type}${t.line.function}`),u=Z(()=>(t.line.args||[]).length===0?"()":`( `+(t.line.args||[]).map(s=>JSON.stringify(s,void 0,2).split(` `).map(i=>` ${i}`).join(` `)).join(`, `)+` -)`);return(s,i)=>(_(),W("li",null,[Z("div",qT,[Z("span",KT,re(e.line.file),1),e.line.line?(_(),W("span",GT,re(I(ve)("logreader","Line {line}",{line:e.line.line})),1)):ye("",!0)]),Z("pre",YT,[Z("code",{class:"trace__function_name",textContent:re(n.value)},null,8,ZT),Z("code",{class:"trace__function_arguments",textContent:re(u.value)},null,8,JT)])]))}}),QT=gt(XT,[["__scopeId","data-v-fc2bb3ab"]]),ez={class:"stack-trace"},tz=Me({__name:"StackTrace",props:{trace:{}},setup(e){const t=e;return(n,u)=>(_(),W("ol",ez,[(_(!0),W(et,null,tu(t.trace,(s,i)=>(_(),we(QT,{key:i,line:s},null,8,["line"]))),128))]))}}),nz=gt(tz,[["__scopeId","data-v-2dba9c9f"]]),uz={class:"exception_wrapper"},sz={class:"exception"},iz={class:"exception__title"},rz={class:"exception__message"},oz=Me({__name:"LogException",props:{isPrevious:{type:Boolean,default:!1},isExpanded:{type:Boolean,default:!1},exception:{}},setup(e){const t=e,n=ne(()=>t.exception.Exception.split("\\").pop()||"?"),u=ne(()=>t.exception.Message&&t.exception.Message!=="--"?t.exception.Message:t.exception.CustomMessage),s=ne(()=>t.isPrevious?ve("logreader","Caused by {exception}",{exception:n.value}):n.value);return(i,r)=>{const o=hn("LogException",!0);return _(),W("span",uz,[Z("div",sz,[Z("span",iz,re(s.value),1),Z("span",rz,re(u.value),1)]),t.isExpanded?(_(),we(nz,{key:0,trace:t.exception.Trace,class:"exception__trace"},null,8,["trace"])):ye("",!0),t.isExpanded&&t.exception.Previous?(_(),we(o,{key:1,isPrevious:!0,exception:t.exception.Previous},null,8,["exception"])):ye("",!0)])}}}),Pv=gt(oz,[["__scopeId","data-v-0523e99e"]]);async function la(e){try{return await window.navigator.clipboard.writeText(e),!0}catch{window.prompt(ve("logreader","Could not copy to clipboard, please copy manually:"),e)}return!1}function Iv(e){const t=uu(e),n=u=>Intl.DateTimeFormat(Xf(),{dateStyle:"medium",timeStyle:"medium",timeZone:t.dateTimeFormat==="utc"?"UTC":void 0}).format(new Date(u));return{formatTime:n,formatLogEntry:u=>`[${u.app}] ${ci[u.level]}: ${u.message} +)`);return(s,i)=>(D(),R("li",null,[H("div",tz,[H("span",nz,te(e.line.file),1),e.line.line?(D(),R("span",uz,te(N(ae)("logreader","Line {line}",{line:e.line.line})),1)):me("",!0)]),H("pre",sz,[H("code",{class:"trace__function_name",textContent:te(n.value)},null,8,iz),H("code",{class:"trace__function_arguments",textContent:te(u.value)},null,8,rz)])]))}}),az=st(oz,[["__scopeId","data-v-fc2bb3ab"]]),lz={class:"stack-trace"},cz=Te({__name:"StackTrace",props:{trace:{}},setup(e){const t=e;return(n,u)=>(D(),R("ol",lz,[(D(!0),R(qe,null,Zn(t.trace,(s,i)=>(D(),pe(az,{key:i,line:s},null,8,["line"]))),128))]))}}),dz=st(cz,[["__scopeId","data-v-2dba9c9f"]]),mz={class:"exception_wrapper"},gz={class:"exception"},fz={class:"exception__title"},pz={class:"exception__message"},hz=Te({__name:"LogException",props:{isPrevious:{type:Boolean,default:!1},isExpanded:{type:Boolean,default:!1},exception:{}},setup(e){const t=e,n=Z(()=>t.exception.Exception.split("\\").pop()||"?"),u=Z(()=>t.exception.Message&&t.exception.Message!=="--"?t.exception.Message:t.exception.CustomMessage),s=Z(()=>t.isPrevious?ae("logreader","Caused by {exception}",{exception:n.value}):n.value);return(i,r)=>{const o=mn("LogException",!0);return D(),R("span",mz,[H("div",gz,[H("span",fz,te(s.value),1),H("span",pz,te(u.value),1)]),t.isExpanded?(D(),pe(dz,{key:0,trace:t.exception.Trace,class:"exception__trace"},null,8,["trace"])):me("",!0),t.isExpanded&&t.exception.Previous?(D(),pe(o,{key:1,isPrevious:!0,exception:t.exception.Previous},null,8,["exception"])):me("",!0)])}}}),jv=st(hz,[["__scopeId","data-v-0523e99e"]]);async function ia(e){try{return await window.navigator.clipboard.writeText(e),!0}catch{window.prompt(ae("logreader","Could not copy to clipboard, please copy manually:"),e)}return!1}function Mv(e){const t=Jn(e),n=u=>Intl.DateTimeFormat(Xf(),{dateStyle:"medium",timeStyle:"medium",timeZone:t.dateTimeFormat==="utc"?"UTC":void 0}).format(new Date(u));return{formatTime:n,formatLogEntry:u=>`[${u.app}] ${si[u.level]}: ${u.message} `+(u.method?` ${u.method} ${u.url} -`:"")+ve("logreader",` from {address} by {user} at {time} -`,{address:u.remoteAddr||"?",user:u.user||"?",time:n(u.time)})}}const az={class:"log-details"},lz={class:"log-details__actions"},cz={class:"log-details__raw"},dz=Me({__name:"LogDetailsModal",props:{open:{type:Boolean},currentEntry:{},logEntries:{}},emits:["update:currentEntry","update:open"],setup(e,{emit:t}){const n=e,u=t,{formatTime:s,formatLogEntry:i}=Iv(),r=_e(!!n.currentEntry.exception);ba(()=>{r.value=!!n.currentEntry.exception});const o=ne(()=>n.logEntries.findIndex(h=>h===n.currentEntry)),a=ne(()=>"```json\n"+JSON.stringify(n.currentEntry,null,2)+"\n```"),c=ne(()=>ci[n.currentEntry.level]),l=ne(()=>s(n.currentEntry.time)),d=ne(()=>["log-details__info",`log-details__info--${Dh[n.currentEntry.level]}`]);async function f(){await la(JSON.stringify(n.currentEntry))&&Qo(ve("logreader","Log entry successfully copied"))}async function g(){await la(i(n.currentEntry))&&Qo(ve("logreader","Log entry successfully copied"))}return(h,E)=>(_(),we(I(Yp),{show:e.open,size:"large",hasPrevious:o.value>0,hasNext:o.valueu("update:currentEntry",e.logEntries[o.value+1])),onPrevious:E[2]||(E[2]=b=>u("update:currentEntry",e.logEntries[o.value-1])),"onUpdate:show":E[3]||(E[3]=b=>u("update:open",!1))},{default:he(()=>[Z("div",az,[Z("dl",{class:ze(d.value)},[Z("dt",null,re(I(ve)("logreader","Level")),1),Z("dd",null,re(c.value),1),Z("dt",null,re(I(ve)("logreader","App")),1),Z("dd",null,re(e.currentEntry?.app||I(ve)("logreader","No app in context")),1),Z("dt",null,re(I(ve)("logreader","Time")),1),Z("dd",null,re(l.value),1)],2),Z("div",lz,[Ee(I(Ct),{"aria-label":I(ve)("logreader","Copy raw entry"),variant:"tertiary",onClick:f},{icon:he(()=>[Ee(aa)]),default:he(()=>[We(" "+re(I(ve)("logreader","Copy raw entry")),1)]),_:1},8,["aria-label"]),Ee(I(Ct),{"aria-label":I(ve)("logreader","Copy formatted entry"),variant:"tertiary",onClick:g},{icon:he(()=>[Ee(aa)]),default:he(()=>[We(" "+re(I(ve)("logreader","Copy formatted entry")),1)]),_:1},8,["aria-label"]),e.currentEntry.exception?(_(),we(I(Ct),{key:0,class:"log-details__btn",onClick:E[0]||(E[0]=b=>r.value=!r.value)},{default:he(()=>[We(re(r.value?I(ve)("logreader","Hide exception details"):I(ve)("logreader","View exception details")),1)]),_:1})):ye("",!0)]),e.currentEntry.exception?(_(),W(et,{key:0},[Ee(Pv,{exception:e.currentEntry.exception,class:"log-details__exception",isExpanded:r.value},null,8,["exception","isExpanded"]),E[4]||(E[4]=Z("hr",null,null,-1))],64)):ye("",!0),Z("figure",cz,[Z("figcaption",null,re(I(ve)("logreader","Raw log entry")),1),Ee(I(uT),{class:"log-details__raw-text",text:a.value,useExtendedMarkdown:""},null,8,["text"])])])]),_:1},8,["show","hasPrevious","hasNext"]))}}),mz=gt(dz,[["__scopeId","data-v-5b582951"]]),gz={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},fz=["aria-hidden","aria-label"],pz=["fill","width","height"],hz={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},vz={key:0};function Ez(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon magnify-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",hz,[n.title?(_(),W("title",vz,re(n.title),1)):ye("",!0)])],8,pz))],16,fz)}const Cz=gt(gz,[["render",Ez]]),yz=Me({__name:"LogSearch",setup(e){const t=ja(),n=_e(),u=ne(()=>t.query);function s(i){t.searchLogs(String(i))}return G0("f",()=>{n.value?.focus(),n.value?.select()},{ctrl:!0,prevent:!0}),(i,r)=>(_(),we(I(jT),{ref_key:"searchField",ref:n,class:"log-search__input",modelValue:u.value,labelOutside:"","aria-label":I(ve)("logreader","Search log entries"),placeholder:I(ve)("logreader","Search log entries"),showTrailingButton:!!u.value,trailingButtonIcon:"close","onUpdate:modelValue":s,onTrailingButtonClick:r[0]||(r[0]=o=>s(""))},{icon:he(()=>[Ee(Cz,{size:20})]),_:1},8,["modelValue","aria-label","placeholder","showTrailingButton"]))}}),xz=gt(yz,[["__scopeId","data-v-e1650646"]]),wz={name:"SortIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},bz=["aria-hidden","aria-label"],Bz=["fill","width","height"],kz={d:"M18 21L14 17H17V7H14L18 3L22 7H19V17H22M2 19V17H12V19M2 13V11H9V13M2 7V5H6V7H2Z"},Az={key:0};function Dz(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon sort-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",kz,[n.title?(_(),W("title",Az,re(n.title),1)):ye("",!0)])],8,Bz))],16,bz)}const Fz=gt(wz,[["render",Dz]]),Sz={name:"SortAscendingIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},_z=["aria-hidden","aria-label"],Nz=["fill","width","height"],Tz={d:"M19 17H22L18 21L14 17H17V3H19M2 17H12V19H2M6 5V7H2V5M2 11H9V13H2V11Z"},zz={key:0};function Pz(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon sort-ascending-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",Tz,[n.title?(_(),W("title",zz,re(n.title),1)):ye("",!0)])],8,Nz))],16,_z)}const Iz=gt(Sz,[["render",Pz]]),Lz={name:"SortDescendingIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Oz=["aria-hidden","aria-label"],Rz=["fill","width","height"],jz={d:"M19 7H22L18 3L14 7H17V21H19M2 17H12V19H2M6 5V7H2V5M2 11H9V13H2V11Z"},Mz={key:0};function $z(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon sort-descending-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",jz,[n.title?(_(),W("title",Mz,re(n.title),1)):ye("",!0)])],8,Rz))],16,Oz)}const Vz=gt(Lz,[["render",$z]]),Uz=["aria-sort"],Hz={class:"log-table-header__wrapper"},Wz=["title"],qz=Me({__name:"LogTableHeader",props:{sortable:{type:Boolean,default:!0},sorted:{default:""},name:{}},emits:["update:sorted"],setup(e,{emit:t}){const n=e,u=t,s=ne(()=>n.sorted||void 0),i=ne(()=>n.sorted==="ascending"?Iz:n.sorted==="descending"?Vz:Fz);function r(){switch(n.sorted){case"ascending":{u("update:sorted","descending");break}case"descending":{u("update:sorted","");break}case"":{u("update:sorted","ascending");break}}}return(o,a)=>(_(),W("th",{"aria-sort":s.value},[Z("div",Hz,[e.sortable?(_(),we(I(Ct),{key:0,variant:n.sorted?"secondary":"tertiary-no-background","aria-label":e.name,"aria-pressed":!!n.sorted,wide:!0,onClick:gn(r,["stop"])},{icon:he(()=>[(_(),we(xu(i.value),{size:20}))]),default:he(()=>[We(" "+re(e.name),1)]),_:1},8,["variant","aria-label","aria-pressed"])):(_(),W("span",{key:1,title:e.name,class:"log-table-header__text"},re(e.name),9,Wz)),Pe(o.$slots,"default",{},void 0,!0)])],8,Uz))}}),uo=gt(qz,[["__scopeId","data-v-49a6a55f"]]),Kz={beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?.()[0].children?.trim?.()||""}}},Gz={mixins:[Kz],props:{icon:{type:String,default:""},name:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:null}},inject:{closeMenu:{from:Vp}},emits:["click"],created(){"ariaHidden"in this.$attrs},computed:{isIconUrl(){try{return!!new URL(this.icon,this.icon.startsWith("/")?window.location.origin:void 0)}catch{return!1}}},methods:{onClick(e){this.$emit("click",e),this.closeAfterClick&&this.closeMenu(!1)}}},Yz={name:"NcActionButton",components:{NcIconSvgWrapper:It},mixins:[Gz],inject:{isInSemanticMenu:{from:$p,default:!1}},props:{disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:e=>["button","checkbox","radio","reset","submit"].includes(e)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},emits:["update:modelValue"],setup(){return{mdiCheck:Oo,mdiChevronRight:np}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const e={};return this.isInSemanticMenu?(e.role="menuitem",this.type==="radio"?(e.role="menuitemradio",e["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(e.role="menuitemcheckbox",e["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(e["aria-pressed"]=this.modelValue?"true":"false"),e}},methods:{handleClick(e){this.onClick(e),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}},Zz=["role"],Jz=["aria-label","disabled","title","type"],Xz={class:"action-button__longtext-wrapper"},Qz={key:0,class:"action-button__name"},eP=["textContent"],tP={key:2,class:"action-button__text"},nP=["textContent"],uP={key:2,class:"action-button__pressed-icon material-design-icon"};function sP(e,t,n,u,s,i){const r=hn("NcIconSvgWrapper");return _(),W("li",{class:ze(["action",{"action--disabled":n.disabled}]),role:i.isInSemanticMenu&&"presentation"},[Z("button",Ze({"aria-label":e.ariaLabel,class:["action-button button-vue",{"action-button--active":i.isChecked,focusable:i.isFocusable}],disabled:n.disabled,title:e.title,type:i.nativeType},i.buttonAttributes,{onClick:t[0]||(t[0]=(...o)=>i.handleClick&&i.handleClick(...o))}),[Pe(e.$slots,"icon",{},()=>[Z("span",{class:ze([[e.isIconUrl?"action-button__icon--url":e.icon],"action-button__icon"]),style:zn({backgroundImage:e.isIconUrl?`url(${e.icon})`:null}),"aria-hidden":"true"},null,6)],!0),Z("span",Xz,[e.name?(_(),W("strong",Qz,re(e.name),1)):ye("",!0),e.isLongText?(_(),W("span",{key:1,class:"action-button__longtext",textContent:re(e.text)},null,8,eP)):(_(),W("span",tP,re(e.text),1)),n.description?(_(),W("span",{key:3,class:"action-button__description",textContent:re(n.description)},null,8,nP)):ye("",!0)]),n.isMenu?(_(),we(r,{key:0,class:"action-button__menu-icon",directional:"",path:u.mdiChevronRight},null,8,["path"])):i.isChecked?(_(),we(r,{key:1,path:u.mdiCheck,class:"action-button__pressed-icon"},null,8,["path"])):i.isChecked===!1?(_(),W("span",uP)):ye("",!0),ye("",!0)],16,Jz)],10,Zz)}const m0=ut(Yz,[["render",sP],["__scopeId","data-v-6c2daf4e"]]),iP=["data-timestamp","title","textContent"],rP=Me({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(e){const t=e,n=ne(()=>({format:t.format})),u=ne(()=>({ignoreSeconds:t.ignoreSeconds,relativeTime:t.relativeTime||"long",update:t.relativeTime!==!1})),s=jx(xo(()=>t.timestamp),n),i=Rx(xo(()=>t.timestamp),u),r=ne(()=>t.relativeTime?i.value:s.value);return(o,a)=>(_(),W("span",{class:"nc-datetime",dir:"auto","data-timestamp":e.timestamp,title:I(s),textContent:re(r.value)},null,8,iP))}}),oP={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},aP=["aria-hidden","aria-label"],lP=["fill","width","height"],cP={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},dP={key:0};function mP(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",cP,[n.title?(_(),W("title",dP,re(n.title),1)):ye("",!0)])],8,lP))],16,aP)}const gP=gt(oP,[["render",mP]]),fP={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pP=["aria-hidden","aria-label"],hP=["fill","width","height"],vP={d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},EP={key:0};function CP(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chevron-up-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",vP,[n.title?(_(),W("title",EP,re(n.title),1)):ye("",!0)])],8,hP))],16,pP)}const yP=gt(fP,[["render",CP]]),xP={name:"ViewListIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},wP=["aria-hidden","aria-label"],bP=["fill","width","height"],BP={d:"M9,5V9H21V5M9,19H21V15H9M9,14H21V10H9M4,9H8V5H4M4,19H8V15H4M4,14H8V10H4V14Z"},kP={key:0};function AP(e,t,n,u,s,i){return _(),W("span",Ze(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon view-list-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(_(),W("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[Z("path",BP,[n.title?(_(),W("title",kP,re(n.title),1)):ye("",!0)])],8,bP))],16,wP)}const DP=gt(xP,[["render",AP]]),FP=["title"],SP={class:"row-message__text"},_P=["title"],NP={class:"row-message__action"},TP={key:0},zP=Me({__name:"LogTableRow",props:{row:{},timeFormat:{default:"local"}},emits:["showDetails"],setup(e,{emit:t}){const n=e,u=t,s=uu(),i=ne(()=>s.dateTimeFormat==="raw"),r=ne(()=>s.dateTimeFormat==="relative"),o=ne(()=>({dateStyle:"medium",timeStyle:"medium",timeZone:s.dateTimeFormat==="utc"?"UTC":void 0})),{formatLogEntry:a}=Iv(),c=ne(()=>Date.parse(n.row.time)),l=_e(!1),d=ne(()=>!n.row.exception||n.row.message!==n.row.exception.Message&&l.value),f=ne(()=>ci[n.row.level]),g=ne(()=>["logging-level",`logging-level--${Dh[n.row.level]}`]),h=_e();async function E(){await la(JSON.stringify(n.row))&&Qo(ve("logreader","Log entry successfully copied"))}async function b(){await la(a(n.row))&&Qo(ve("logreader","Log entry successfully copied"))}function C(){l.value?ku(()=>{const x=h.value?.scrollHeight||0;h.value&&(h.value.style.height=`${x}px`)}):h.value!==void 0&&(h.value.style.height="")}return of(()=>C),qt(l,()=>C),(x,k)=>(_(),W("tr",{ref_key:"tableRowElement",ref:h,class:ze({expanded:l.value})},[Z("td",{class:ze(g.value)},[Z("span",null,re(f.value),1)],2),Z("td",{title:e.row.app},[Z("span",null,re(e.row.app),1)],8,FP),Z("td",{class:"row-message",onClick:k[1]||(k[1]=S=>l.value=!l.value)},[Z("div",{class:ze(["row-message__container",{"row-message__container--expanded":l.value}])},[Z("div",SP,[e.row.exception?(_(),we(Pv,{key:0,exception:e.row.exception},null,8,["exception"])):ye("",!0),d.value?(_(),W("div",{key:1,class:"row-message__text_message",title:e.row.message},re(e.row.message),9,_P)):ye("",!0)]),Z("div",NP,[Ee(I(Ct),{variant:"tertiary-no-background","aria-label":l.value?I(ve)("logreader","Collapse row"):I(ve)("logreader","Expand row"),onClick:k[0]||(k[0]=gn(S=>l.value=!l.value,["stop"]))},{icon:he(()=>[l.value?(_(),we(yP,{key:0,size:20})):(_(),we(gP,{key:1,size:20}))]),_:1},8,["aria-label"])])],2)]),Z("td",null,[i.value?(_(),W("span",TP,re(e.row.time),1)):(_(),we(I(rP),{key:I(s).dateTimeFormat,timestamp:c.value,relativeTime:r.value&&"long",format:o.value},null,8,["timestamp","relativeTime","format"]))]),Z("td",null,[Ee(I(Hp),{placement:"left-start"},{default:he(()=>[Ee(I(m0),{closeAfterClick:"",onClick:k[2]||(k[2]=S=>u("showDetails",e.row))},{icon:he(()=>[Ee(DP)]),default:he(()=>[We(" "+re(I(ve)("logreader","Show details")),1)]),_:1}),Ee(I(m0),{closeAfterClick:"",onClick:E},{icon:he(()=>[Ee(aa)]),default:he(()=>[We(" "+re(I(ve)("logreader","Copy raw entry")),1)]),_:1}),Ee(I(m0),{closeAfterClick:"",onClick:b},{icon:he(()=>[Ee(aa)]),default:he(()=>[We(" "+re(I(ve)("logreader","Copy formatted entry")),1)]),_:1})]),_:1})])],2))}}),PP=gt(zP,[["__scopeId","data-v-7322af27"]]),IP={class:"log-table"},LP={role:"rowgroup",class:"log-table__header"},OP={class:"hidden-visually"},RP={key:0,class:"log-table__load-more"},jP={key:1},MP={role:"rowgroup",class:"log-table__footer"},$P={key:0,class:"log-table__load-more"},VP={key:1},g3=3,UP=Me({__name:"LogTable",props:{rows:{}},setup(e){const t=e,n=uu(),u=ja(),s=_e(""),i=_e(""),r=_e("descending"),o=ne(()=>t.rows.filter(K=>n.shownLevels.includes(K.level))),a=_e(!1),c=_e(t.rows[0]);function l(K){c.value=K,a.value=!0}const d=_e(),f=_e();async function g(){const K=u.entries.length;await u.loadMore(),ku(()=>{if(r.value==="ascending"){const D=u.entries.length-K+1,O=f.value?.querySelector(`tr:nth-of-type(${D})`);O&&O.scrollIntoView({block:"start"})}})}const h=ne(()=>{const K=[...o.value],D=(M,$)=>M.level-$.level,O=(M,$)=>M.app.localeCompare($.app),B=(M,$)=>M.time.localeCompare($.time,"en"),R=(M,$,Q,oe)=>$==="ascending"?M(Q,oe):$==="descending"?M(oe,Q):0;return K.sort((M,$)=>R(D,s.value,M,$)||R(O,i.value,M,$)||R(B,r.value,M,$)),K}),E=_e(null),b=_e(0),C=ne(()=>Math.max(0,b.value-g3)),x=_e(0),k=_e(44),S=_e(42),H=ne(()=>Math.ceil((x.value-k.value)/S.value)+g3*2),T=ne(()=>h.value.slice(C.value,C.value+H.value)),U=ne(()=>{const K=C.value+H.value>h.value.length,D=h.value.length-C.value-H.value,O=Math.min(h.value.length-C.value,D);return{paddingTop:`${C.value*S.value}px`,paddingBottom:K?0:`${O*S.value}px`}});un(()=>{E.value=new ResizeObserver(Sh(()=>{x.value=d.value?.clientHeight??0,k.value=d.value?.querySelector("thead.log-table__header")?.clientHeight??44,S.value=d.value?.querySelector("tr.log-table__row:not(.expanded)")?.clientHeight??42,Tn.debug("ResizeObserver for virtual list updated",{rendered:T.value.length,total:o.value.length}),X()},100)),E.value.observe(d.value),d.value.addEventListener("scroll",X)}),di(()=>{E.value&&E.value.disconnect()});function X(){b.value=Math.max(0,Math.round(d.value.scrollTop/S.value))}return(K,D)=>(_(),W("div",IP,[c.value?(_(),we(mz,{key:0,open:a.value,"onUpdate:open":D[0]||(D[0]=O=>a.value=O),currentEntry:c.value,"onUpdate:currentEntry":D[1]||(D[1]=O=>c.value=O),logEntries:h.value},null,8,["open","currentEntry","logEntries"])):ye("",!0),Z("table",{ref_key:"tableRoot",ref:d,class:"log-table__table"},[Z("thead",LP,[Z("tr",null,[Ee(uo,{sorted:s.value,"onUpdate:sorted":D[2]||(D[2]=O=>s.value=O),name:I(ve)("logreader","Level")},null,8,["sorted","name"]),Ee(uo,{sorted:i.value,"onUpdate:sorted":D[3]||(D[3]=O=>i.value=O),name:I(ve)("logreader","Application")},null,8,["sorted","name"]),Ee(uo,{name:I(ve)("logreader","Message"),sortable:!1},{default:he(()=>[Ee(xz)]),_:1},8,["name"]),Ee(uo,{sorted:r.value,"onUpdate:sorted":D[4]||(D[4]=O=>r.value=O),name:I(ve)("logreader","Time")},null,8,["sorted","name"]),Z("th",null,[Z("span",OP,re(I(ve)("logreader","Log entry actions")),1)])])]),Z("tbody",{ref_key:"tableBody",ref:f,style:zn(U.value),class:"log-table__body"},[r.value==="ascending"?(_(),W("tr",RP,[Z("td",null,[I(u).hasRemainingEntries?(_(),we(mg,{key:0,onIntersection:g},{default:he(()=>[We(re(I(ve)("logreader","Loading older log entries")),1)]),_:1})):(_(),W("span",jP,re(I(ve)("logreader","No older log entries available")),1))])])):ye("",!0),(_(!0),W(et,null,tu(T.value,O=>(_(),we(PP,{key:O.id,row:O,class:"log-table__row",onShowDetails:l},null,8,["row"]))),128))],4),Z("tfoot",MP,[r.value!=="ascending"?(_(),W("tr",$P,[Z("td",null,[I(u).hasRemainingEntries?(_(),we(mg,{key:0,onIntersection:g},{default:he(()=>[We(re(I(ve)("logreader","Loading older log entries")),1)]),_:1})):(_(),W("span",VP,re(I(ve)("logreader","No older log entries available")),1))])])):ye("",!0)])],512)]))}}),HP=gt(UP,[["__scopeId","data-v-9efae768"]]),WP={class:"logreader-container"},qP={class:"logreader-container__header"},KP={class:"info-note__content"},GP=["innerHTML"],YP=Me({__name:"App",setup(e){const t=_e(!1),n=uu(),u=ja(),s=ne(()=>u.entries);function i(){n.localFile=void 0,u.allEntries=[],u.loadMore()}function r(a){if(a.preventDefault(),a.clipboardData){const c=a.clipboardData.getData("text");u.loadText(c)}}un(()=>window.addEventListener("paste",r)),Sn(()=>window.removeEventListener("paste",r)),ba(()=>{n.liveLog&&n.isEnabled?u.startPolling():u.stopPolling()}),un(()=>{u.loadMore()}),Sn(()=>{u.stopPolling()});const o=ve("logreader","If you feel this is an error, please verify {setting} in your {config} and check the Nextcloud Administration Manual.",{setting:"log_type",config:"config.php"},0,{sanitize:!1,escape:!1});return(a,c)=>(_(),W("div",WP,[Z("div",qP,[Z("h2",null,re(I(ve)("logreader","Log reader")),1),Ee(I(Ct),{"aria-label":I(ve)("logreader","Open log reader settings"),class:"settings-toggle",variant:"tertiary",onClick:c[0]||(c[0]=l=>t.value=!0)},{icon:he(()=>[Ee(N5,{size:20})]),default:he(()=>[We(" "+re(I(ve)("logreader","Log reader settings")),1)]),_:1},8,["aria-label"])]),I(n).localFile?(_(),we(I(Ro),{key:0,type:"info",class:"info-note"},{default:he(()=>[Z("div",KP,[Z("p",null,re(I(ve)("logreader","Currently the log file {file} is shown",{file:I(n).localFileName})),1),Ee(I(Ct),{variant:"secondary",onClick:i},{default:he(()=>[We(re(I(ve)("logreader","Show server log")),1)]),_:1})])]),_:1})):I(n).liveLog?ye("",!0):(_(),we(I(Ro),{key:1,type:"info",class:"info-note"},{default:he(()=>[Z("p",null,re(I(ve)("logreader","Live view is disabled")),1)]),_:1})),I(n).enabled?(_(),we(HP,{key:2,rows:s.value},null,8,["rows"])):(_(),we(I(i5),{key:3,name:I(ve)("logreader","No log file")},{icon:he(()=>[Ee(R5,{size:20})]),description:he(()=>[We(re(I(ve)("logreader","File-based logging must be enabled to access logs from the Web UI."))+" ",1),c[2]||(c[2]=Z("br",null,null,-1)),Z("span",{innerHTML:I(o)},null,8,GP)]),_:1},8,["name"])),Ee(yD,{open:t.value,"onUpdate:open":c[1]||(c[1]=l=>t.value=l)},null,8,["open"])]))}}),ZP=gt(YP,[["__scopeId","data-v-f059c38e"]]),JP=KC();Io(ZP).use(JP).mount("#logreader-root");export{Ph as a,td as c,Sr as g,xr as v}; +`:"")+ae("logreader",` from {address} by {user} at {time} +`,{address:u.remoteAddr||"?",user:u.user||"?",time:n(u.time)})}}const vz={class:"log-details"},Ez={class:"log-details__actions"},Cz={class:"log-details__raw"},yz=Te({__name:"LogDetailsModal",props:{open:{type:Boolean},currentEntry:{},logEntries:{}},emits:["update:currentEntry","update:open"],setup(e,{emit:t}){const n=e,u=t,{formatTime:s,formatLogEntry:i}=Mv(),r=be(!!n.currentEntry.exception);Ca(()=>{r.value=!!n.currentEntry.exception});const o=Z(()=>n.logEntries.findIndex(f=>f===n.currentEntry)),a=Z(()=>"```json\n"+JSON.stringify(n.currentEntry,null,2)+"\n```"),l=Z(()=>si[n.currentEntry.level]),c=Z(()=>s(n.currentEntry.time)),d=Z(()=>["log-details__info",`log-details__info--${Th[n.currentEntry.level]}`]);async function g(){await ia(JSON.stringify(n.currentEntry))&&Zo(ae("logreader","Log entry successfully copied"))}async function m(){await ia(i(n.currentEntry))&&Zo(ae("logreader","Log entry successfully copied"))}return(f,p)=>(D(),pe(N(Yp),{show:e.open,size:"large",hasPrevious:o.value>0,hasNext:o.valueu("update:currentEntry",e.logEntries[o.value+1])),onPrevious:p[2]||(p[2]=E=>u("update:currentEntry",e.logEntries[o.value-1])),"onUpdate:show":p[3]||(p[3]=E=>u("update:open",!1))},{default:re(()=>[H("div",vz,[H("dl",{class:Ae(d.value)},[H("dt",null,te(N(ae)("logreader","Level")),1),H("dd",null,te(l.value),1),H("dt",null,te(N(ae)("logreader","App")),1),H("dd",null,te(e.currentEntry?.app||N(ae)("logreader","No app in context")),1),H("dt",null,te(N(ae)("logreader","Time")),1),H("dd",null,te(c.value),1)],2),H("div",Ez,[le(N(dt),{"aria-label":N(ae)("logreader","Copy raw entry"),variant:"tertiary",onClick:g},{icon:re(()=>[le(sa)]),default:re(()=>[Re(" "+te(N(ae)("logreader","Copy raw entry")),1)]),_:1},8,["aria-label"]),le(N(dt),{"aria-label":N(ae)("logreader","Copy formatted entry"),variant:"tertiary",onClick:m},{icon:re(()=>[le(sa)]),default:re(()=>[Re(" "+te(N(ae)("logreader","Copy formatted entry")),1)]),_:1},8,["aria-label"]),e.currentEntry.exception?(D(),pe(N(dt),{key:0,class:"log-details__btn",onClick:p[0]||(p[0]=E=>r.value=!r.value)},{default:re(()=>[Re(te(r.value?N(ae)("logreader","Hide exception details"):N(ae)("logreader","View exception details")),1)]),_:1})):me("",!0)]),e.currentEntry.exception?(D(),R(qe,{key:0},[le(jv,{exception:e.currentEntry.exception,class:"log-details__exception",isExpanded:r.value},null,8,["exception","isExpanded"]),p[4]||(p[4]=H("hr",null,null,-1))],64)):me("",!0),H("figure",Cz,[H("figcaption",null,te(N(ae)("logreader","Raw log entry")),1),le(N(mT),{class:"log-details__raw-text",text:a.value,useExtendedMarkdown:""},null,8,["text"])])])]),_:1},8,["show","hasPrevious","hasNext"]))}}),xz=st(yz,[["__scopeId","data-v-5b582951"]]),bz={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},wz=["aria-hidden","aria-label"],kz=["fill","width","height"],Bz={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},Az={key:0};function Dz(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon magnify-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",Bz,[n.title?(D(),R("title",Az,te(n.title),1)):me("",!0)])],8,kz))],16,wz)}const Fz=st(bz,[["render",Dz]]),Sz=Te({__name:"LogSearch",setup(e){const t=La(),n=be(),u=Z(()=>t.query);function s(i){t.searchLogs(String(i))}return q0("f",()=>{n.value?.focus(),n.value?.select()},{ctrl:!0,prevent:!0}),(i,r)=>(D(),pe(N(YT),{ref_key:"searchField",ref:n,class:"log-search__input",modelValue:u.value,labelOutside:"","aria-label":N(ae)("logreader","Search log entries"),placeholder:N(ae)("logreader","Search log entries"),showTrailingButton:!!u.value,trailingButtonIcon:"close","onUpdate:modelValue":s,onTrailingButtonClick:r[0]||(r[0]=o=>s(""))},{icon:re(()=>[le(Fz,{size:20})]),_:1},8,["modelValue","aria-label","placeholder","showTrailingButton"]))}}),_z=st(Sz,[["__scopeId","data-v-e1650646"]]),Nz={name:"SortIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Tz=["aria-hidden","aria-label"],zz=["fill","width","height"],Oz={d:"M18 21L14 17H17V7H14L18 3L22 7H19V17H22M2 19V17H12V19M2 13V11H9V13M2 7V5H6V7H2Z"},Lz={key:0};function Iz(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon sort-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",Oz,[n.title?(D(),R("title",Lz,te(n.title),1)):me("",!0)])],8,zz))],16,Tz)}const Pz=st(Nz,[["render",Iz]]),Rz={name:"SortAscendingIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jz=["aria-hidden","aria-label"],Mz=["fill","width","height"],$z={d:"M19 17H22L18 21L14 17H17V3H19M2 17H12V19H2M6 5V7H2V5M2 11H9V13H2V11Z"},Vz={key:0};function Uz(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon sort-ascending-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",$z,[n.title?(D(),R("title",Vz,te(n.title),1)):me("",!0)])],8,Mz))],16,jz)}const Hz=st(Rz,[["render",Uz]]),Wz={name:"SortDescendingIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},qz=["aria-hidden","aria-label"],Kz=["fill","width","height"],Yz={d:"M19 7H22L18 3L14 7H17V21H19M2 17H12V19H2M6 5V7H2V5M2 11H9V13H2V11Z"},Gz={key:0};function Zz(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon sort-descending-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",Yz,[n.title?(D(),R("title",Gz,te(n.title),1)):me("",!0)])],8,Kz))],16,qz)}const Xz=st(Wz,[["render",Zz]]),Jz=["aria-sort"],Qz={class:"log-table-header__wrapper"},eO=["title"],tO=Te({__name:"LogTableHeader",props:{sortable:{type:Boolean,default:!0},sorted:{default:""},name:{}},emits:["update:sorted"],setup(e,{emit:t}){const n=e,u=t,s=Z(()=>n.sorted||void 0),i=Z(()=>n.sorted==="ascending"?Hz:n.sorted==="descending"?Xz:Pz);function r(){switch(n.sorted){case"ascending":{u("update:sorted","descending");break}case"descending":{u("update:sorted","");break}case"":{u("update:sorted","ascending");break}}}return(o,a)=>(D(),R("th",{"aria-sort":s.value},[H("div",Qz,[e.sortable?(D(),pe(N(dt),{key:0,variant:n.sorted?"secondary":"tertiary-no-background","aria-label":e.name,"aria-pressed":!!n.sorted,wide:!0,onClick:ln(r,["stop"])},{icon:re(()=>[(D(),pe(hu(i.value),{size:20}))]),default:re(()=>[Re(" "+te(e.name),1)]),_:1},8,["variant","aria-label","aria-pressed"])):(D(),R("span",{key:1,title:e.name,class:"log-table-header__text"},te(e.name),9,eO)),De(o.$slots,"default",{},void 0,!0)])],8,Jz))}}),eo=st(tO,[["__scopeId","data-v-49a6a55f"]]),nO={beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?.()[0].children?.trim?.()||""}}},uO={mixins:[nO],props:{icon:{type:String,default:""},name:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:null}},inject:{closeMenu:{from:$p}},emits:["click"],created(){"ariaHidden"in this.$attrs},computed:{isIconUrl(){try{return!!new URL(this.icon,this.icon.startsWith("/")?window.location.origin:void 0)}catch{return!1}}},methods:{onClick(e){this.$emit("click",e),this.closeAfterClick&&this.closeMenu(!1)}}},sO={name:"NcActionButton",components:{NcIconSvgWrapper:St},mixins:[uO],inject:{isInSemanticMenu:{from:Mp,default:!1}},props:{disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:e=>["button","checkbox","radio","reset","submit"].includes(e)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},emits:["update:modelValue"],setup(){return{mdiCheck:Oo,mdiChevronRight:tp}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const e={};return this.isInSemanticMenu?(e.role="menuitem",this.type==="radio"?(e.role="menuitemradio",e["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(e.role="menuitemcheckbox",e["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(e["aria-pressed"]=this.modelValue?"true":"false"),e}},methods:{handleClick(e){this.onClick(e),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}},iO=["role"],rO=["aria-label","disabled","title","type"],oO={class:"action-button__longtext-wrapper"},aO={key:0,class:"action-button__name"},lO=["textContent"],cO={key:2,class:"action-button__text"},dO=["textContent"],mO={key:2,class:"action-button__pressed-icon material-design-icon"};function gO(e,t,n,u,s,i){const r=mn("NcIconSvgWrapper");return D(),R("li",{class:Ae(["action",{"action--disabled":n.disabled}]),role:i.isInSemanticMenu&&"presentation"},[H("button",Ve({"aria-label":e.ariaLabel,class:["action-button button-vue",{"action-button--active":i.isChecked,focusable:i.isFocusable}],disabled:n.disabled,title:e.title,type:i.nativeType},i.buttonAttributes,{onClick:t[0]||(t[0]=(...o)=>i.handleClick&&i.handleClick(...o))}),[De(e.$slots,"icon",{},()=>[H("span",{class:Ae([[e.isIconUrl?"action-button__icon--url":e.icon],"action-button__icon"]),style:_n({backgroundImage:e.isIconUrl?`url(${e.icon})`:null}),"aria-hidden":"true"},null,6)],!0),H("span",oO,[e.name?(D(),R("strong",aO,te(e.name),1)):me("",!0),e.isLongText?(D(),R("span",{key:1,class:"action-button__longtext",textContent:te(e.text)},null,8,lO)):(D(),R("span",cO,te(e.text),1)),n.description?(D(),R("span",{key:3,class:"action-button__description",textContent:te(n.description)},null,8,dO)):me("",!0)]),n.isMenu?(D(),pe(r,{key:0,class:"action-button__menu-icon",directional:"",path:u.mdiChevronRight},null,8,["path"])):i.isChecked?(D(),pe(r,{key:1,path:u.mdiCheck,class:"action-button__pressed-icon"},null,8,["path"])):i.isChecked===!1?(D(),R("span",mO)):me("",!0),me("",!0)],16,rO)],10,iO)}const d0=Ze(sO,[["render",gO],["__scopeId","data-v-6c2daf4e"]]),fO=["data-timestamp","title","textContent"],pO=Te({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(e){const t=e,n=Z(()=>({format:t.format})),u=Z(()=>({ignoreSeconds:t.ignoreSeconds,relativeTime:t.relativeTime||"long",update:t.relativeTime!==!1})),s=I2(Eo(()=>t.timestamp),n),i=L2(Eo(()=>t.timestamp),u),r=Z(()=>t.relativeTime?i.value:s.value);return(o,a)=>(D(),R("span",{class:"nc-datetime",dir:"auto","data-timestamp":e.timestamp,title:N(s),textContent:te(r.value)},null,8,fO))}}),hO={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vO=["aria-hidden","aria-label"],EO=["fill","width","height"],CO={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},yO={key:0};function xO(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",CO,[n.title?(D(),R("title",yO,te(n.title),1)):me("",!0)])],8,EO))],16,vO)}const bO=st(hO,[["render",xO]]),wO={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},kO=["aria-hidden","aria-label"],BO=["fill","width","height"],AO={d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},DO={key:0};function FO(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chevron-up-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",AO,[n.title?(D(),R("title",DO,te(n.title),1)):me("",!0)])],8,BO))],16,kO)}const SO=st(wO,[["render",FO]]),_O={name:"ViewListIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},NO=["aria-hidden","aria-label"],TO=["fill","width","height"],zO={d:"M9,5V9H21V5M9,19H21V15H9M9,14H21V10H9M4,9H8V5H4M4,19H8V15H4M4,14H8V10H4V14Z"},OO={key:0};function LO(e,t,n,u,s,i){return D(),R("span",Ve(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon view-list-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(D(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[H("path",zO,[n.title?(D(),R("title",OO,te(n.title),1)):me("",!0)])],8,TO))],16,NO)}const IO=st(_O,[["render",LO]]),PO=["title"],RO={class:"row-message__text"},jO=["title"],MO={class:"row-message__action"},$O={key:0},VO=Te({__name:"LogTableRow",props:{row:{},timeFormat:{default:"local"}},emits:["showDetails"],setup(e,{emit:t}){const n=e,u=t,s=Jn(),i=Z(()=>s.dateTimeFormat==="raw"),r=Z(()=>s.dateTimeFormat==="relative"),o=Z(()=>({dateStyle:"medium",timeStyle:"medium",timeZone:s.dateTimeFormat==="utc"?"UTC":void 0})),{formatLogEntry:a}=Mv(),l=Z(()=>Date.parse(n.row.time)),c=be(!1),d=Z(()=>!n.row.exception||n.row.message!==n.row.exception.Message&&c.value),g=Z(()=>si[n.row.level]),m=Z(()=>["logging-level",`logging-level--${Th[n.row.level]}`]),f=be();async function p(){await ia(JSON.stringify(n.row))&&Zo(ae("logreader","Log entry successfully copied"))}async function E(){await ia(a(n.row))&&Zo(ae("logreader","Log entry successfully copied"))}function v(){c.value?yu(()=>{const C=f.value?.scrollHeight||0;f.value&&(f.value.style.height=`${C}px`)}):f.value!==void 0&&(f.value.style.height="")}return af(()=>v),$t(c,()=>v),(C,y)=>(D(),R("tr",{ref_key:"tableRowElement",ref:f,class:Ae({expanded:c.value})},[H("td",{class:Ae(m.value)},[H("span",null,te(g.value),1)],2),H("td",{title:e.row.app},[H("span",null,te(e.row.app),1)],8,PO),H("td",{class:"row-message",onClick:y[1]||(y[1]=k=>c.value=!c.value)},[H("div",{class:Ae(["row-message__container",{"row-message__container--expanded":c.value}])},[H("div",RO,[e.row.exception?(D(),pe(jv,{key:0,exception:e.row.exception},null,8,["exception"])):me("",!0),d.value?(D(),R("div",{key:1,class:"row-message__text_message",title:e.row.message},te(e.row.message),9,jO)):me("",!0)]),H("div",MO,[le(N(dt),{variant:"tertiary-no-background","aria-label":c.value?N(ae)("logreader","Collapse row"):N(ae)("logreader","Expand row"),onClick:y[0]||(y[0]=ln(k=>c.value=!c.value,["stop"]))},{icon:re(()=>[c.value?(D(),pe(SO,{key:0,size:20})):(D(),pe(bO,{key:1,size:20}))]),_:1},8,["aria-label"])])],2)]),H("td",null,[i.value?(D(),R("span",$O,te(e.row.time),1)):(D(),pe(N(pO),{key:N(s).dateTimeFormat,timestamp:l.value,relativeTime:r.value&&"long",format:o.value},null,8,["timestamp","relativeTime","format"]))]),H("td",null,[le(N(Up),{placement:"left-start"},{default:re(()=>[le(N(d0),{closeAfterClick:"",onClick:y[2]||(y[2]=k=>u("showDetails",e.row))},{icon:re(()=>[le(IO)]),default:re(()=>[Re(" "+te(N(ae)("logreader","Show details")),1)]),_:1}),le(N(d0),{closeAfterClick:"",onClick:p},{icon:re(()=>[le(sa)]),default:re(()=>[Re(" "+te(N(ae)("logreader","Copy raw entry")),1)]),_:1}),le(N(d0),{closeAfterClick:"",onClick:E},{icon:re(()=>[le(sa)]),default:re(()=>[Re(" "+te(N(ae)("logreader","Copy formatted entry")),1)]),_:1})]),_:1})])],2))}}),UO=st(VO,[["__scopeId","data-v-7322af27"]]),HO={class:"log-table"},WO={role:"rowgroup",class:"log-table__header"},qO={class:"hidden-visually"},KO={key:0,class:"log-table__load-more"},YO={key:1},GO={role:"rowgroup",class:"log-table__footer"},ZO={key:0,class:"log-table__load-more"},XO={key:1},f3=3,JO=Te({__name:"LogTable",props:{rows:{}},setup(e){const t=e,n=Jn(),u=La(),s=be(""),i=be(""),r=be("descending"),o=Z(()=>t.rows.filter($=>n.shownLevels.includes($.level))),a=be(!1),l=be(t.rows[0]);function c($){l.value=$,a.value=!0}const d=be(),g=be();async function m(){const $=u.entries.length;await u.loadMore(),yu(()=>{if(r.value==="ascending"){const B=u.entries.length-$+1,T=g.value?.querySelector(`tr:nth-of-type(${B})`);T&&T.scrollIntoView({block:"start"})}})}const f=Z(()=>{const $=[...o.value],B=(L,I)=>L.level-I.level,T=(L,I)=>L.app.localeCompare(I.app),x=(L,I)=>L.time.localeCompare(I.time,"en"),z=(L,I,G,ue)=>I==="ascending"?L(G,ue):I==="descending"?L(ue,G):0;return $.sort((L,I)=>z(B,s.value,L,I)||z(T,i.value,L,I)||z(x,r.value,L,I)),$}),p=be(null),E=be(0),v=Z(()=>Math.max(0,E.value-f3)),C=be(0),y=be(44),k=be(42),j=Z(()=>Math.ceil((C.value-y.value)/k.value)+f3*2),F=Z(()=>f.value.slice(v.value,v.value+j.value)),P=Z(()=>{const $=v.value+j.value>f.value.length,B=f.value.length-v.value-j.value,T=Math.min(f.value.length-v.value,B);return{paddingTop:`${v.value*k.value}px`,paddingBottom:$?0:`${T*k.value}px`}});Qt(()=>{p.value=new ResizeObserver(Oh(()=>{C.value=d.value?.clientHeight??0,y.value=d.value?.querySelector("thead.log-table__header")?.clientHeight??44,k.value=d.value?.querySelector("tr.log-table__row:not(.expanded)")?.clientHeight??42,Sn.debug("ResizeObserver for virtual list updated",{rendered:F.value.length,total:o.value.length}),K()},100)),p.value.observe(d.value),d.value.addEventListener("scroll",K)}),ii(()=>{p.value&&p.value.disconnect()});function K(){E.value=Math.max(0,Math.round(d.value.scrollTop/k.value))}return($,B)=>(D(),R("div",HO,[l.value?(D(),pe(xz,{key:0,open:a.value,"onUpdate:open":B[0]||(B[0]=T=>a.value=T),currentEntry:l.value,"onUpdate:currentEntry":B[1]||(B[1]=T=>l.value=T),logEntries:f.value},null,8,["open","currentEntry","logEntries"])):me("",!0),H("table",{ref_key:"tableRoot",ref:d,class:"log-table__table"},[H("thead",WO,[H("tr",null,[le(eo,{sorted:s.value,"onUpdate:sorted":B[2]||(B[2]=T=>s.value=T),name:N(ae)("logreader","Level")},null,8,["sorted","name"]),le(eo,{sorted:i.value,"onUpdate:sorted":B[3]||(B[3]=T=>i.value=T),name:N(ae)("logreader","Application")},null,8,["sorted","name"]),le(eo,{name:N(ae)("logreader","Message"),sortable:!1},{default:re(()=>[le(_z)]),_:1},8,["name"]),le(eo,{sorted:r.value,"onUpdate:sorted":B[4]||(B[4]=T=>r.value=T),name:N(ae)("logreader","Time")},null,8,["sorted","name"]),H("th",null,[H("span",qO,te(N(ae)("logreader","Log entry actions")),1)])])]),H("tbody",{ref_key:"tableBody",ref:g,style:_n(P.value),class:"log-table__body"},[r.value==="ascending"?(D(),R("tr",KO,[H("td",null,[N(u).hasRemainingEntries?(D(),pe(gg,{key:0,onIntersection:m},{default:re(()=>[Re(te(N(ae)("logreader","Loading older log entries")),1)]),_:1})):(D(),R("span",YO,te(N(ae)("logreader","No older log entries available")),1))])])):me("",!0),(D(!0),R(qe,null,Zn(F.value,T=>(D(),pe(UO,{key:T.id,row:T,class:"log-table__row",onShowDetails:c},null,8,["row"]))),128))],4),H("tfoot",GO,[r.value!=="ascending"?(D(),R("tr",ZO,[H("td",null,[N(u).hasRemainingEntries?(D(),pe(gg,{key:0,onIntersection:m},{default:re(()=>[Re(te(N(ae)("logreader","Loading older log entries")),1)]),_:1})):(D(),R("span",XO,te(N(ae)("logreader","No older log entries available")),1))])])):me("",!0)])],512)]))}}),QO=st(JO,[["__scopeId","data-v-9efae768"]]),eL={class:"logreader-container"},tL={class:"logreader-container__header"},nL={class:"info-note__content"},uL=["innerHTML"],sL=Te({__name:"App",setup(e){const t=be(!1),n=Jn(),u=La(),s=Z(()=>u.entries);function i(){n.localFile=void 0,u.allEntries=[],u.loadMore()}function r(a){if(a.preventDefault(),a.clipboardData){const l=a.clipboardData.getData("text");u.loadText(l)}}Qt(()=>window.addEventListener("paste",r)),Bn(()=>window.removeEventListener("paste",r)),Ca(()=>{n.liveLog&&n.isEnabled?u.startPolling():u.stopPolling()}),Qt(()=>{u.loadMore()}),Bn(()=>{u.stopPolling()});const o=ae("logreader","If you feel this is an error, please verify {setting} in your {config} and check the Nextcloud Administration Manual.",{setting:"log_type",config:"config.php"},0,{sanitize:!1,escape:!1});return(a,l)=>(D(),R("div",eL,[H("div",tL,[H("h2",null,te(N(ae)("logreader","Log reader")),1),le(N(dt),{"aria-label":N(ae)("logreader","Open log reader settings"),class:"settings-toggle",variant:"tertiary",onClick:l[0]||(l[0]=c=>t.value=!0)},{icon:re(()=>[le(F5,{size:20})]),default:re(()=>[Re(" "+te(N(ae)("logreader","Log reader settings")),1)]),_:1},8,["aria-label"])]),N(n).localFile?(D(),pe(N(Lo),{key:0,type:"info",class:"info-note"},{default:re(()=>[H("div",nL,[H("p",null,te(N(ae)("logreader","Currently the log file {file} is shown",{file:N(n).localFileName})),1),le(N(dt),{variant:"secondary",onClick:i},{default:re(()=>[Re(te(N(ae)("logreader","Show server log")),1)]),_:1})])]),_:1})):N(n).liveLog?me("",!0):(D(),pe(N(Lo),{key:1,type:"info",class:"info-note"},{default:re(()=>[H("p",null,te(N(ae)("logreader","Live view is disabled")),1)]),_:1})),N(n).enabled?(D(),pe(QO,{key:2,rows:s.value},null,8,["rows"])):(D(),pe(N(n5),{key:3,name:N(ae)("logreader","No log file")},{icon:re(()=>[le(L5,{size:20})]),description:re(()=>[Re(te(N(ae)("logreader","File-based logging must be enabled to access logs from the Web UI."))+" ",1),l[2]||(l[2]=H("br",null,null,-1)),H("span",{innerHTML:N(o)},null,8,uL)]),_:1},8,["name"])),le(SD,{open:t.value,"onUpdate:open":l[1]||(l[1]=c=>t.value=c)},null,8,["open"])]))}}),iL=st(sL,[["__scopeId","data-v-f059c38e"]]),rL=HC();To(iL).use(rL).mount("#logreader-root");export{jh as a,Jc as c,Ar as g,Er as v}; //# sourceMappingURL=logreader-main.mjs.map diff --git a/js/logreader-main.mjs.license b/js/logreader-main.mjs.license index 4a33ca67..568799ec 100644 --- a/js/logreader-main.mjs.license +++ b/js/logreader-main.mjs.license @@ -109,7 +109,7 @@ This file is generated from multiple sources. Included packages: - version: 14.4.0 - license: MIT - axios - - version: 1.18.1 + - version: 1.20.0 - license: MIT - bail - version: 2.0.2 diff --git a/js/logreader-main.mjs.map b/js/logreader-main.mjs.map index cf135769..065db497 100644 --- a/js/logreader-main.mjs.map +++ b/js/logreader-main.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"gCAAMA,GAAS,YAAc,QAAU,KCMvC,SAASC,GAAQC,EAAK,CACpB,MAAMC,EAAsB,OAAO,OAAO,IAAI,EAC9C,UAAWC,KAAOF,EAAI,MAAM,GAAG,EAAGC,EAAIC,CAAG,EAAI,EAC7C,OAAQC,GAAQA,KAAOF,CACzB,CAEA,MAAMG,GAA4E,GAC5EC,GAA4E,GAC5EC,GAAO,IAAM,CACnB,EACMC,GAAK,IAAM,GACXC,GAAQN,GAAQA,EAAI,WAAW,CAAC,IAAM,KAAOA,EAAI,WAAW,CAAC,IAAM,MACxEA,EAAI,WAAW,CAAC,EAAI,KAAOA,EAAI,WAAW,CAAC,EAAI,IAC1CO,GAAmBP,GAAQA,EAAI,WAAW,WAAW,EACrDQ,GAAS,OAAO,OAChBC,GAAS,CAACC,EAAKC,IAAO,CAC1B,MAAMC,EAAIF,EAAI,QAAQC,CAAE,EACpBC,EAAI,IACNF,EAAI,OAAOE,EAAG,CAAC,CAEnB,EACMC,GAAiB,OAAO,UAAU,eAClCC,GAAS,CAACb,EAAKD,IAAQa,GAAe,KAAKZ,EAAKD,CAAG,EACnDe,GAAU,MAAM,QAChBC,GAASf,GAAQgB,GAAahB,CAAG,IAAM,eACvCiB,GAASjB,GAAQgB,GAAahB,CAAG,IAAM,eACvCkB,GAAUlB,GAAQgB,GAAahB,CAAG,IAAM,gBAExCmB,GAAcnB,GAAQ,OAAOA,GAAQ,WACrCoB,GAAYpB,GAAQ,OAAOA,GAAQ,SACnCqB,GAAYrB,GAAQ,OAAOA,GAAQ,SACnCsB,GAAYtB,GAAQA,IAAQ,MAAQ,OAAOA,GAAQ,SACnDuB,GAAavB,IACTsB,GAAStB,CAAG,GAAKmB,GAAWnB,CAAG,IAAMmB,GAAWnB,EAAI,IAAI,GAAKmB,GAAWnB,EAAI,KAAK,EAErFwB,GAAiB,OAAO,UAAU,SAClCR,GAAgBS,GAAUD,GAAe,KAAKC,CAAK,EACnDC,GAAaD,GACVT,GAAaS,CAAK,EAAE,MAAM,EAAG,EAAE,EAElCE,GAAiB3B,GAAQgB,GAAahB,CAAG,IAAM,kBAC/C4B,GAAgB7B,GAAQqB,GAASrB,CAAG,GAAKA,IAAQ,OAASA,EAAI,CAAC,IAAM,KAAO,GAAK,SAASA,EAAK,EAAE,IAAMA,EACvG8B,GAAiCjC,GAErC,qIACF,EAIMkC,GAAuBC,GAAO,CAClC,MAAMC,EAAwB,OAAO,OAAO,IAAI,EAChD,OAASnC,GACKmC,EAAMnC,CAAG,IACNmC,EAAMnC,CAAG,EAAIkC,EAAGlC,CAAG,GAEtC,EACMoC,GAAa,OACbC,GAAWJ,GACdjC,GACQA,EAAI,QAAQoC,GAAaE,GAAMA,EAAE,MAAM,CAAC,EAAE,aAAa,CAElE,EACMC,GAAc,aACdC,GAAYP,GACfjC,GAAQA,EAAI,QAAQuC,GAAa,KAAK,EAAE,aAC3C,EACME,GAAaR,GAAqBjC,GAC/BA,EAAI,OAAO,CAAC,EAAE,cAAgBA,EAAI,MAAM,CAAC,CACjD,EACK0C,GAAeT,GAClBjC,GACWA,EAAM,KAAKyC,GAAWzC,CAAG,CAAC,GAAK,EAG7C,EACM2C,GAAa,CAACf,EAAOgB,IAAa,CAAC,OAAO,GAAGhB,EAAOgB,CAAQ,EAC5DC,GAAiB,CAACC,KAAQC,IAAQ,CACtC,QAASjC,EAAI,EAAGA,EAAIgC,EAAI,OAAQhC,IAC9BgC,EAAIhC,CAAC,EAAE,GAAGiC,CAAG,CAEjB,EACMC,GAAM,CAACC,EAAK/C,EAAK0B,EAAOsB,EAAW,KAAU,CACjD,OAAO,eAAeD,EAAK/C,EAAK,CAC9B,aAAc,GACd,WAAY,GACZ,SAAAgD,EACA,MAAAtB,CAAA,CACD,CACH,EACMuB,GAAiBhD,GAAQ,CAC7B,MAAMiD,EAAI,WAAWjD,CAAG,EACxB,OAAO,MAAMiD,CAAC,EAAIjD,EAAMiD,CAC1B,EACMC,GAAYlD,GAAQ,CACxB,MAAMiD,EAAI7B,GAASpB,CAAG,EAAI,OAAOA,CAAG,EAAI,IACxC,OAAO,MAAMiD,CAAC,EAAIjD,EAAMiD,CAC1B,EACA,IAAIE,GACJ,MAAMC,GAAgB,IACbD,KAAgBA,GAAc,OAAO,WAAe,IAAc,WAAa,OAAO,KAAS,IAAc,KAAO,OAAO,OAAW,IAAc,OAAS,OAAOxD,GAAW,IAAcA,GAAS,IAiJ/M,SAAS0D,GAAe5B,EAAO,CAC7B,GAAIX,GAAQW,CAAK,EAAG,CAClB,MAAM6B,EAAM,GACZ,QAAS3C,EAAI,EAAGA,EAAIc,EAAM,OAAQd,IAAK,CACrC,MAAM4C,EAAO9B,EAAMd,CAAC,EACd6C,EAAapC,GAASmC,CAAI,EAAIE,GAAiBF,CAAI,EAAIF,GAAeE,CAAI,EAChF,GAAIC,EACF,UAAWzD,KAAOyD,EAChBF,EAAIvD,CAAG,EAAIyD,EAAWzD,CAAG,CAG/B,CACA,OAAOuD,CACT,SAAWlC,GAASK,CAAK,GAAKH,GAASG,CAAK,EAC1C,OAAOA,CAEX,CACA,MAAMiC,GAAkB,gBAClBC,GAAsB,UACtBC,GAAiB,+DACvB,SAASH,GAAiBI,EAAS,CACjC,MAAMC,EAAM,GACZ,OAAAD,EAAQ,QAAQD,GAAiBG,GAAUA,EAAM,WAAW,IAAI,EAAI,GAAKA,CAAK,EAAE,MAAML,EAAe,EAAE,QAASH,GAAS,CACvH,GAAIA,EAAM,CACR,MAAMS,EAAMT,EAAK,MAAMI,EAAmB,EAC1CK,EAAI,OAAS,IAAMF,EAAIE,EAAI,CAAC,EAAE,MAAM,EAAIA,EAAI,CAAC,EAAE,OACjD,CACF,CAAC,EACMF,CACT,CAcA,SAASG,GAAexC,EAAO,CAC7B,IAAI6B,EAAM,GACV,GAAIlC,GAASK,CAAK,EAChB6B,EAAM7B,UACGX,GAAQW,CAAK,EACtB,QAASd,EAAI,EAAGA,EAAIc,EAAM,OAAQd,IAAK,CACrC,MAAM6C,EAAaS,GAAexC,EAAMd,CAAC,CAAC,EACtC6C,IACFF,GAAOE,EAAa,IAExB,SACSlC,GAASG,CAAK,EACvB,UAAWyC,KAAQzC,EACbA,EAAMyC,CAAI,IACZZ,GAAOY,EAAO,KAIpB,OAAOZ,EAAI,MACb,CACA,SAASa,GAAeC,EAAO,CAC7B,GAAI,CAACA,EAAO,OAAO,KACnB,GAAI,CAAE,MAAOC,EAAO,MAAAC,CAAA,EAAUF,EAC9B,OAAIC,GAAS,CAACjD,GAASiD,CAAK,IAC1BD,EAAM,MAAQH,GAAeI,CAAK,GAEhCC,IACFF,EAAM,MAAQf,GAAeiB,CAAK,GAE7BF,CACT,CAWA,MAAMG,GAAsB,8EACtBC,MAA+CD,EAAmB,EAIxE,SAASE,GAAmBhD,EAAO,CACjC,MAAO,CAAC,CAACA,GAASA,IAAU,EAC9B,CA4FA,SAASiD,GAAmBC,EAAGC,EAAGC,EAAM,CACtC,GAAIF,EAAE,SAAWC,EAAE,OAAQ,MAAO,GAClC,IAAIE,EAAQ,GACZ,QAASnE,EAAI,EAAGmE,GAASnE,EAAIgE,EAAE,OAAQhE,IACrCmE,EAAQC,GAAWJ,EAAEhE,CAAC,EAAGiE,EAAEjE,CAAC,EAAGkE,CAAI,EAErC,OAAOC,CACT,CACA,SAASE,GAAwBL,EAAGC,EAAGC,EAAM,CAC3C,GAAIF,EAAE,OAASC,EAAE,KAAM,MAAO,GAC9B,MAAMK,EAAa,MAAM,KAAKL,CAAC,EACzBM,EAAU,IAAI,WAAWD,EAAW,MAAM,EAChD,UAAW1B,KAAQoB,EAAG,CACpB,IAAIQ,EAAQ,GACZ,QAASxE,EAAI,EAAGA,EAAIsE,EAAW,OAAQtE,IACrC,GAAI,CAACuE,EAAQvE,CAAC,GAAKoE,GAAWxB,EAAM0B,EAAWtE,CAAC,EAAGkE,CAAI,EAAG,CACxDM,EAAQxE,EACR,KACF,CAEF,GAAIwE,EAAQ,EAAG,MAAO,GACtBD,EAAQC,CAAK,EAAI,CACnB,CACA,MAAO,EACT,CACA,SAASC,GAAoBT,EAAGC,EAAGC,EAAM,CACvC,IAAIQ,EAAatE,GAAM4D,CAAC,EACpBW,EAAavE,GAAM6D,CAAC,EAMxB,GALIS,GAAcC,IAGlBD,EAAapE,GAAM0D,CAAC,EACpBW,EAAarE,GAAM2D,CAAC,EAChBS,GAAcC,GAChB,OAAOD,GAAcC,EAAaN,GAAwBL,EAAGC,EAAGC,CAAI,EAAI,GAE1E,MAAMU,EAAa,OAAO,KAAKZ,CAAC,EAAE,OAC5Ba,EAAa,OAAO,KAAKZ,CAAC,EAAE,OAClC,GAAIW,IAAeC,EACjB,MAAO,GAET,UAAWzF,KAAO4E,EAAG,CACnB,MAAMc,EAAUd,EAAE,eAAe5E,CAAG,EAC9B2F,EAAUd,EAAE,eAAe7E,CAAG,EACpC,GAAI0F,GAAW,CAACC,GAAW,CAACD,GAAWC,GAAW,CAACX,GAAWJ,EAAE5E,CAAG,EAAG6E,EAAE7E,CAAG,EAAG8E,CAAI,EAChF,MAAO,EAEX,CACA,OAAO,OAAOF,CAAC,IAAM,OAAOC,CAAC,CAC/B,CACA,SAASe,GAAmBhB,EAAGC,EAAGC,EAAMe,EAAS,CAC1Cf,IACHA,EAAO,CAAiB,IAAI,IAAuB,IAAI,GAAK,GAE9D,KAAM,CAACgB,EAAOC,CAAK,EAAIjB,EACvB,GAAIgB,EAAM,IAAIlB,CAAC,GAAKmB,EAAM,IAAIlB,CAAC,EAC7B,OAAOiB,EAAM,IAAIlB,CAAC,IAAMC,GAAKkB,EAAM,IAAIlB,CAAC,IAAMD,EAEhDkB,EAAM,IAAIlB,EAAGC,CAAC,EACdkB,EAAM,IAAIlB,EAAGD,CAAC,EACd,MAAMG,EAAQc,EAAQjB,EAAGC,EAAGC,CAAI,EAChC,OAAAgB,EAAM,OAAOlB,CAAC,EACdmB,EAAM,OAAOlB,CAAC,EACPE,CACT,CACA,SAASC,GAAWJ,EAAGC,EAAGC,EAAM,CAC9B,GAAIF,IAAMC,EAAG,MAAO,GACpB,IAAIS,EAAanE,GAAOyD,CAAC,EACrBW,EAAapE,GAAO0D,CAAC,EACzB,OAAIS,GAAcC,EACTD,GAAcC,EAAaX,EAAE,YAAcC,EAAE,UAAY,IAElES,EAAahE,GAASsD,CAAC,EACvBW,EAAajE,GAASuD,CAAC,EACnBS,GAAcC,EACTX,IAAMC,GAEfS,EAAavE,GAAQ6D,CAAC,EACtBW,EAAaxE,GAAQ8D,CAAC,EAClBS,GAAcC,EACTD,GAAcC,EAAaK,GAAmBhB,EAAGC,EAAGC,EAAMH,EAAkB,EAAI,IAEzFW,EAAa/D,GAASqD,CAAC,EACvBW,EAAahE,GAASsD,CAAC,EACnBS,GAAcC,EACZ,CAACD,GAAc,CAACC,EACX,GAEFK,GAAmBhB,EAAGC,EAAGC,EAAMO,EAAmB,EAEpD,OAAOT,CAAC,IAAM,OAAOC,CAAC,IAC/B,CAKA,MAAMmB,GAAS/F,GACN,CAAC,EAAEA,GAAOA,EAAI,YAAiB,IAElCgG,GAAmBhG,GAChBoB,GAASpB,CAAG,EAAIA,EAAMA,GAAO,KAAO,GAAKc,GAAQd,CAAG,GAAKsB,GAAStB,CAAG,IAAMA,EAAI,WAAawB,IAAkB,CAACL,GAAWnB,EAAI,QAAQ,GAAK+F,GAAM/F,CAAG,EAAIgG,GAAgBhG,EAAI,KAAK,EAAI,KAAK,UAAUA,EAAKiG,GAAU,CAAC,EAAI,OAAOjG,CAAG,EAErOiG,GAAW,CAACC,EAAMlG,IAClB+F,GAAM/F,CAAG,EACJiG,GAASC,EAAMlG,EAAI,KAAK,EACtBe,GAAMf,CAAG,EACX,CACL,CAAC,OAAOA,EAAI,IAAI,GAAG,EAAG,CAAC,GAAGA,EAAI,SAAS,EAAE,OACvC,CAACmG,EAAS,CAACpG,EAAKqG,CAAI,EAAGzF,KACrBwF,EAAQE,GAAgBtG,EAAKY,CAAC,EAAI,KAAK,EAAIyF,EACpCD,GAET,EAAC,CACH,EAEOlF,GAAMjB,CAAG,EACX,CACL,CAAC,OAAOA,EAAI,IAAI,GAAG,EAAG,CAAC,GAAGA,EAAI,QAAQ,EAAE,IAAKsG,GAAMD,GAAgBC,CAAC,CAAC,GAE9DjF,GAASrB,CAAG,EACdqG,GAAgBrG,CAAG,EACjBsB,GAAStB,CAAG,GAAK,CAACc,GAAQd,CAAG,GAAK,CAAC2B,GAAc3B,CAAG,EACtD,OAAOA,CAAG,EAEZA,EAEHqG,GAAkB,CAACC,EAAG3F,EAAI,KAAO,CACrC,IAAI4F,EACJ,OAGElF,GAASiF,CAAC,EAAI,WAAWC,EAAKD,EAAE,cAAgB,KAAOC,EAAK5F,CAAC,IAAM2F,CAEvE,EAEA,SAASE,GAAqB/E,EAAO,CACnC,OAAIA,GAAS,KACJ,UAEL,OAAOA,GAAU,SACZA,IAAU,GAAK,IAAMA,EAUvB,OAAOA,CAAK,CACrB,CC7jBA,IAAIgF,GACJ,MAAMC,EAAY,CAEhB,YAAYC,EAAW,GAAO,CAC5B,KAAK,SAAWA,EAIhB,KAAK,QAAU,GAIf,KAAK,IAAM,EAIX,KAAK,QAAU,GAIf,KAAK,SAAW,GAChB,KAAK,UAAY,GACjB,KAAK,WAAa,GAClB,KAAK,SAAW,GACZ,CAACA,GAAYF,KACXA,GAAkB,QACpB,KAAK,OAASA,GACd,KAAK,OAASA,GAAkB,SAAWA,GAAkB,OAAS,KAAK,KACzE,MACE,IAEJ,KAAK,QAAU,GACf,KAAK,WAAa,IAGxB,CACA,IAAI,QAAS,CACX,OAAO,KAAK,OACd,CACA,OAAQ,CACN,GAAI,KAAK,QAAS,CAChB,KAAK,UAAY,GACjB,IAAI9F,EAAGiG,EACP,GAAI,KAAK,OAAQ,CACf,MAAMC,EAAS,KAAK,OAAO,QAC3B,IAAKlG,EAAI,EAAGiG,EAAIC,EAAO,OAAQlG,EAAIiG,EAAGjG,IACpCkG,EAAOlG,CAAC,EAAE,OAEd,CACA,IAAKA,EAAI,EAAGiG,EAAI,KAAK,QAAQ,OAAQjG,EAAIiG,EAAGjG,IAC1C,KAAK,QAAQA,CAAC,EAAE,OAEpB,CACF,CAIA,QAAS,CACP,GAAI,KAAK,SACH,KAAK,UAAW,CAClB,KAAK,UAAY,GACjB,IAAIA,EAAGiG,EACP,GAAI,KAAK,OAAQ,CACf,MAAMC,EAAS,KAAK,OAAO,QAC3B,IAAKlG,EAAI,EAAGiG,EAAIC,EAAO,OAAQlG,EAAIiG,EAAGjG,IACpCkG,EAAOlG,CAAC,EAAE,QAEd,CACA,MAAMmG,EAAU,KAAK,QAAQ,QAC7B,IAAKnG,EAAI,EAAGiG,EAAIE,EAAQ,OAAQnG,EAAIiG,EAAGjG,IACrCmG,EAAQnG,CAAC,EAAE,QAEf,CAEJ,CACA,IAAIoB,EAAI,CACN,GAAI,KAAK,QAAS,CAChB,MAAMgF,EAAqBN,GAC3B,GAAI,CACF,OAAAA,GAAoB,KACb1E,EAAA,CACT,SACE0E,GAAoBM,CACtB,CACF,CAGF,CAKA,IAAK,CACC,EAAE,KAAK,MAAQ,IACjB,KAAK,UAAYN,GACjBA,GAAoB,KAExB,CAKA,KAAM,CACJ,GAAI,KAAK,IAAM,GAAK,EAAE,KAAK,MAAQ,EAAG,CACpC,GAAIA,KAAsB,KACxBA,GAAoB,KAAK,cACpB,CACL,IAAIO,EAAUP,GACd,KAAOO,GAAS,CACd,GAAIA,EAAQ,YAAc,KAAM,CAC9BA,EAAQ,UAAY,KAAK,UACzB,KACF,CACAA,EAAUA,EAAQ,SACpB,CACF,CACA,KAAK,UAAY,MACnB,CACF,CACA,KAAKC,EAAY,CACf,GAAI,KAAK,QAAS,CAChB,KAAK,QAAU,GACf,IAAItG,EAAGiG,EACP,IAAKjG,EAAI,EAAGiG,EAAI,KAAK,QAAQ,OAAQjG,EAAIiG,EAAGjG,IAC1C,KAAK,QAAQA,CAAC,EAAE,OAGlB,IADA,KAAK,QAAQ,OAAS,EACjBA,EAAI,EAAGiG,EAAI,KAAK,SAAS,OAAQjG,EAAIiG,EAAGjG,IAC3C,KAAK,SAASA,CAAC,IAGjB,GADA,KAAK,SAAS,OAAS,EACnB,KAAK,OAAQ,CACf,MAAMkG,EAAS,KAAK,OAAO,QAC3B,IAAKlG,EAAI,EAAGiG,EAAIC,EAAO,OAAQlG,EAAIiG,EAAGjG,IACpCkG,EAAOlG,CAAC,EAAE,KAAK,EAAI,EAErB,KAAK,OAAO,OAAS,CACvB,CACA,GAAI,CAAC,KAAK,UAAY,KAAK,QAAU,CAACsG,EAAY,CAChD,MAAMC,EAAO,KAAK,OAAO,OAAO,MAC5BA,GAAQA,IAAS,OACnB,KAAK,OAAO,OAAO,KAAK,KAAK,EAAIA,EACjCA,EAAK,MAAQ,KAAK,MAEtB,CACA,KAAK,OAAS,MAChB,CACF,CACF,CACA,SAASC,GAAYR,EAAU,CAC7B,OAAO,IAAID,GAAYC,CAAQ,CACjC,CACA,SAASS,IAAkB,CACzB,OAAOX,EACT,CACA,SAASY,GAAetF,EAAIuF,EAAe,GAAO,CAC5Cb,IACFA,GAAkB,SAAS,KAAK1E,CAAE,CAMtC,CAEA,IAAIwF,GAmBJ,MAAMC,OAAyC,QAC/C,MAAMC,EAAe,CACnB,YAAY1F,EAAI,CACd,KAAK,GAAKA,EAIV,KAAK,KAAO,OAIZ,KAAK,SAAW,OAIhB,KAAK,MAAQ,EAIb,KAAK,KAAO,OAIZ,KAAK,QAAU,OACf,KAAK,UAAY,OACb0E,KACEA,GAAkB,OACpBA,GAAkB,QAAQ,KAAK,IAAI,EAEnC,KAAK,OAAS,GAGpB,CACA,OAAQ,CACN,KAAK,OAAS,EAChB,CACA,QAAS,CACH,KAAK,MAAQ,KACf,KAAK,OAAS,IACVe,GAAmB,IAAI,IAAI,IAC7BA,GAAmB,OAAO,IAAI,EAC9B,KAAK,WAGX,CAIA,QAAS,CACH,KAAK,MAAQ,GAAK,EAAE,KAAK,MAAQ,KAG/B,KAAK,MAAQ,GACjBE,GAAM,IAAI,CAEd,CACA,KAAM,CACJ,GAAI,EAAE,KAAK,MAAQ,GACjB,OAAO,KAAK,KAEd,KAAK,OAAS,EACdC,GAAc,IAAI,EAClBC,GAAY,IAAI,EAChB,MAAMC,EAAaN,GACbO,EAAkBC,GACxBR,GAAY,KACZQ,GAAc,GACd,GAAI,CACF,OAAO,KAAK,IACd,SAMEC,GAAY,IAAI,EAChBT,GAAYM,EACZE,GAAcD,EACd,KAAK,OAAS,EAChB,CACF,CACA,MAAO,CACL,GAAI,KAAK,MAAQ,EAAG,CAClB,QAASG,EAAO,KAAK,KAAMA,EAAMA,EAAOA,EAAK,QAC3CC,GAAUD,CAAI,EAEhB,KAAK,KAAO,KAAK,SAAW,OAC5BN,GAAc,IAAI,EAClB,KAAK,QAAU,KAAK,SACpB,KAAK,OAAS,EAChB,CACF,CACA,SAAU,CACJ,KAAK,MAAQ,GACfH,GAAmB,IAAI,IAAI,EAClB,KAAK,UACd,KAAK,YAEL,KAAK,YAET,CAIA,YAAa,CACPW,GAAQ,IAAI,GACd,KAAK,KAET,CACA,IAAI,OAAQ,CACV,OAAOA,GAAQ,IAAI,CACrB,CACF,CACA,IAAIC,GAAa,EACbC,GACAC,GACJ,SAASZ,GAAMa,EAAKC,EAAa,GAAO,CAEtC,GADAD,EAAI,OAAS,EACTC,EAAY,CACdD,EAAI,KAAOD,GACXA,GAAkBC,EAClB,MACF,CACAA,EAAI,KAAOF,GACXA,GAAaE,CACf,CACA,SAASE,IAAa,CACpBL,IACF,CACA,SAASM,IAAW,CAClB,GAAI,EAAEN,GAAa,EACjB,OAEF,GAAIE,GAAiB,CACnB,IAAIK,EAAIL,GAER,IADAA,GAAkB,OACXK,GAAG,CACR,MAAMC,EAAOD,EAAE,KACfA,EAAE,KAAO,OACTA,EAAE,OAAS,GACXA,EAAIC,CACN,CACF,CACA,IAAIC,EACJ,KAAOR,IAAY,CACjB,IAAIM,EAAIN,GAER,IADAA,GAAa,OACNM,GAAG,CACR,MAAMC,EAAOD,EAAE,KAGf,GAFAA,EAAE,KAAO,OACTA,EAAE,OAAS,GACPA,EAAE,MAAQ,EACZ,GAAI,CAEFA,EAAE,SACJ,OAASG,EAAK,CACPD,IAAOA,EAAQC,EACtB,CAEFH,EAAIC,CACN,CACF,CACA,GAAIC,EAAO,MAAMA,CACnB,CACA,SAASjB,GAAYW,EAAK,CACxB,QAASN,EAAOM,EAAI,KAAMN,EAAMA,EAAOA,EAAK,QAC1CA,EAAK,QAAU,GACfA,EAAK,eAAiBA,EAAK,IAAI,WAC/BA,EAAK,IAAI,WAAaA,CAE1B,CACA,SAASD,GAAYO,EAAK,CACxB,IAAIQ,EACAC,EAAOT,EAAI,SACXN,EAAOe,EACX,KAAOf,GAAM,CACX,MAAMgB,EAAOhB,EAAK,QACdA,EAAK,UAAY,IACfA,IAASe,IAAMA,EAAOC,GAC1Bf,GAAUD,CAAI,EACdiB,GAAUjB,CAAI,GAEdc,EAAOd,EAETA,EAAK,IAAI,WAAaA,EAAK,eAC3BA,EAAK,eAAiB,OACtBA,EAAOgB,CACT,CACAV,EAAI,KAAOQ,EACXR,EAAI,SAAWS,CACjB,CACA,SAASb,GAAQI,EAAK,CACpB,QAASN,EAAOM,EAAI,KAAMN,EAAMA,EAAOA,EAAK,QAC1C,GAAIA,EAAK,IAAI,UAAYA,EAAK,SAAWA,EAAK,IAAI,WAAakB,GAAgBlB,EAAK,IAAI,QAAQ,GAAKA,EAAK,IAAI,UAAYA,EAAK,SAC7H,MAAO,GAGX,MAAI,EAAAM,EAAI,MAIV,CACA,SAASY,GAAgBC,EAAU,CASjC,GARIA,EAAS,MAAQ,GAAK,EAAEA,EAAS,MAAQ,MAG7CA,EAAS,OAAS,IACdA,EAAS,gBAAkBC,MAG/BD,EAAS,cAAgBC,GACrB,CAACD,EAAS,OAASA,EAAS,MAAQ,MAAQ,CAACA,EAAS,MAAQ,CAACA,EAAS,QAAU,CAACjB,GAAQiB,CAAQ,IACrG,OAEFA,EAAS,OAAS,EAClB,MAAME,EAAMF,EAAS,IACfG,EAAUhC,GACVO,EAAkBC,GACxBR,GAAY6B,EACZrB,GAAc,GACd,GAAI,CACFH,GAAYwB,CAAQ,EACpB,MAAM3H,EAAQ2H,EAAS,GAAGA,EAAS,MAAM,GACrCE,EAAI,UAAY,GAAK9G,GAAWf,EAAO2H,EAAS,MAAM,KACxDA,EAAS,OAAS,IAClBA,EAAS,OAAS3H,EAClB6H,EAAI,UAER,OAASR,EAAK,CACZ,MAAAQ,EAAI,UACER,CACR,SACEvB,GAAYgC,EACZxB,GAAcD,EACdE,GAAYoB,CAAQ,EACpBA,EAAS,OAAS,EACpB,CACF,CACA,SAASlB,GAAUD,EAAMuB,EAAO,GAAO,CACrC,KAAM,CAAE,IAAAF,EAAK,QAAAC,EAAS,QAAAE,CAAA,EAAYxB,EAYlC,GAXIsB,IACFA,EAAQ,QAAUE,EAClBxB,EAAK,QAAU,QAEbwB,IACFA,EAAQ,QAAUF,EAClBtB,EAAK,QAAU,QAKbqB,EAAI,OAASrB,IACfqB,EAAI,KAAOC,EACP,CAACA,GAAWD,EAAI,UAAU,CAC5BA,EAAI,SAAS,OAAS,GACtB,QAAS1C,EAAI0C,EAAI,SAAS,KAAM1C,EAAGA,EAAIA,EAAE,QACvCsB,GAAUtB,EAAG,EAAI,CAErB,CAEE,CAAC4C,GAAQ,CAAC,EAAEF,EAAI,IAAMA,EAAI,KAC5BA,EAAI,IAAI,OAAOA,EAAI,GAAG,CAE1B,CACA,SAASJ,GAAUjB,EAAM,CACvB,KAAM,CAAE,QAAAyB,EAAS,QAAAC,CAAA,EAAY1B,EACzByB,IACFA,EAAQ,QAAUC,EAClB1B,EAAK,QAAU,QAEb0B,IACFA,EAAQ,QAAUD,EAClBzB,EAAK,QAAU,OAEnB,CAsBA,IAAIF,GAAc,GAClB,MAAM6B,GAAa,GACnB,SAASC,IAAgB,CACvBD,GAAW,KAAK7B,EAAW,EAC3BA,GAAc,EAChB,CAKA,SAAS+B,IAAgB,CACvB,MAAM5C,EAAO0C,GAAW,MACxB7B,GAAcb,IAAS,OAAS,GAAOA,CACzC,CAUA,SAASS,GAAc,EAAG,CACxB,KAAM,CAAE,QAAAoC,GAAY,EAEpB,GADA,EAAE,QAAU,OACRA,EAAS,CACX,MAAMR,EAAUhC,GAChBA,GAAY,OACZ,GAAI,CACFwC,EAAA,CACF,SACExC,GAAYgC,CACd,CACF,CACF,CAEA,IAAIF,GAAgB,EACpB,MAAMW,EAAK,CACT,YAAYzB,EAAKe,EAAK,CACpB,KAAK,IAAMf,EACX,KAAK,IAAMe,EACX,KAAK,QAAUA,EAAI,QACnB,KAAK,QAAU,KAAK,QAAU,KAAK,QAAU,KAAK,QAAU,KAAK,eAAiB,MACpF,CACF,CACA,MAAMW,EAAI,CAER,YAAYb,EAAU,CACpB,KAAK,SAAWA,EAChB,KAAK,QAAU,EAIf,KAAK,WAAa,OAIlB,KAAK,KAAO,OAIZ,KAAK,IAAM,OACX,KAAK,IAAM,OAIX,KAAK,GAAK,EAIV,KAAK,SAAW,EAIlB,CACA,MAAMc,EAAW,CACf,GAAI,CAAC3C,IAAa,CAACQ,IAAeR,KAAc,KAAK,SACnD,OAEF,IAAIU,EAAO,KAAK,WAChB,GAAIA,IAAS,QAAUA,EAAK,MAAQV,GAClCU,EAAO,KAAK,WAAa,IAAI+B,GAAKzC,GAAW,IAAI,EAC5CA,GAAU,MAGbU,EAAK,QAAUV,GAAU,SACzBA,GAAU,SAAS,QAAUU,EAC7BV,GAAU,SAAWU,GAJrBV,GAAU,KAAOA,GAAU,SAAWU,EAMxCkC,GAAOlC,CAAI,UACFA,EAAK,UAAY,KAC1BA,EAAK,QAAU,KAAK,QAChBA,EAAK,SAAS,CAChB,MAAMW,EAAOX,EAAK,QAClBW,EAAK,QAAUX,EAAK,QAChBA,EAAK,UACPA,EAAK,QAAQ,QAAUW,GAEzBX,EAAK,QAAUV,GAAU,SACzBU,EAAK,QAAU,OACfV,GAAU,SAAS,QAAUU,EAC7BV,GAAU,SAAWU,EACjBV,GAAU,OAASU,IACrBV,GAAU,KAAOqB,EAErB,CAYF,OAAOX,CACT,CACA,QAAQiC,EAAW,CACjB,KAAK,UACLb,KACA,KAAK,OAAOa,CAAS,CACvB,CACA,OAAOA,EAAW,CAChBzB,GAAA,EACA,GAAI,CAeF,QAASR,EAAO,KAAK,KAAMA,EAAMA,EAAOA,EAAK,QACvCA,EAAK,IAAI,UAEXA,EAAK,IAAI,IAAI,QAGnB,SACES,GAAA,CACF,CACF,CACF,CACA,SAASyB,GAAOlC,EAAM,CAEpB,GADAA,EAAK,IAAI,KACLA,EAAK,IAAI,MAAQ,EAAG,CACtB,MAAMmB,EAAWnB,EAAK,IAAI,SAC1B,GAAImB,GAAY,CAACnB,EAAK,IAAI,KAAM,CAC9BmB,EAAS,OAAS,GAClB,QAASxC,EAAIwC,EAAS,KAAMxC,EAAGA,EAAIA,EAAE,QACnCuD,GAAOvD,CAAC,CAEZ,CACA,MAAMwD,EAAcnC,EAAK,IAAI,KACzBmC,IAAgBnC,IAClBA,EAAK,QAAUmC,EACXA,MAAyB,QAAUnC,IAKzCA,EAAK,IAAI,KAAOA,CAClB,CACF,CACA,MAAMoC,OAAgC,QAChCC,GAA8B,OAC6B,EACjE,EACMC,GAAsC,OACuB,EACnE,EACMC,GAAoC,OACsB,EAChE,EACA,SAASC,GAAMC,EAAQC,EAAM5K,EAAK,CAChC,GAAIgI,IAAeR,GAAW,CAC5B,IAAIqD,EAAUP,GAAU,IAAIK,CAAM,EAC7BE,GACHP,GAAU,IAAIK,EAAQE,EAA0B,IAAI,GAAK,EAE3D,IAAItB,EAAMsB,EAAQ,IAAI7K,CAAG,EACpBuJ,IACHsB,EAAQ,IAAI7K,EAAKuJ,EAAM,IAAIW,EAAK,EAChCX,EAAI,IAAMsB,EACVtB,EAAI,IAAMvJ,GASVuJ,EAAI,OAER,CACF,CACA,SAASuB,GAAQH,EAAQC,EAAM5K,EAAK+K,EAAUrI,EAAUsI,EAAW,CACjE,MAAMH,EAAUP,GAAU,IAAIK,CAAM,EACpC,GAAI,CAACE,EAAS,CACZvB,KACA,MACF,CACA,MAAM2B,EAAO1B,GAAQ,CACfA,GAWAA,EAAI,SAGV,EAEA,GADAb,GAAA,EACIkC,IAAS,QACXC,EAAQ,QAAQI,CAAG,MACd,CACL,MAAMC,EAAgBnK,GAAQ4J,CAAM,EAC9BQ,EAAeD,GAAiBrJ,GAAa7B,CAAG,EACtD,GAAIkL,GAAiBlL,IAAQ,SAAU,CACrC,MAAMoL,EAAY,OAAOL,CAAQ,EACjCF,EAAQ,QAAQ,CAACtB,EAAK8B,IAAS,EACzBA,IAAS,UAAYA,IAASZ,IAAqB,CAACnJ,GAAS+J,CAAI,GAAKA,GAAQD,IAChFH,EAAI1B,CAAG,CAEX,CAAC,CACH,KAOE,SANIvJ,IAAQ,QAAU6K,EAAQ,IAAI,MAAM,IACtCI,EAAIJ,EAAQ,IAAI7K,CAAG,CAAC,EAElBmL,GACFF,EAAIJ,EAAQ,IAAIJ,EAAiB,CAAC,EAE5BG,EAAA,CACN,IAAK,MACEM,EAKMC,GACTF,EAAIJ,EAAQ,IAAI,QAAQ,CAAC,GALzBI,EAAIJ,EAAQ,IAAIN,EAAW,CAAC,EACxBvJ,GAAM2J,CAAM,GACdM,EAAIJ,EAAQ,IAAIL,EAAmB,CAAC,GAKxC,MACF,IAAK,SACEU,IACHD,EAAIJ,EAAQ,IAAIN,EAAW,CAAC,EACxBvJ,GAAM2J,CAAM,GACdM,EAAIJ,EAAQ,IAAIL,EAAmB,CAAC,GAGxC,MACF,IAAK,MACCxJ,GAAM2J,CAAM,GACdM,EAAIJ,EAAQ,IAAIN,EAAW,CAAC,EAE9B,MAGR,CACA5B,GAAA,CACF,CACA,SAAS2C,GAAmBC,EAAQvL,EAAK,CACvC,MAAMwL,EAASlB,GAAU,IAAIiB,CAAM,EACnC,OAAOC,GAAUA,EAAO,IAAIxL,CAAG,CACjC,CAEA,SAASyL,GAAkBC,EAAO,CAChC,MAAMC,KAAYD,CAAK,EAGvB,OAFIC,IAAQD,IACZhB,GAAMiB,EAAK,UAAWlB,EAAiB,EACnCmB,GAAUF,CAAK,GAAUC,EACxBE,GAAWH,CAAK,EACdI,GAAWJ,CAAK,EAAIC,EAAI,IAAKnI,GAASuI,GAAWC,GAAWxI,CAAI,CAAC,CAAC,EAAImI,EAAI,IAAII,EAAU,EADhEJ,EAAI,IAAIK,EAAU,CAEnD,CACA,SAASC,GAAiBvL,EAAK,CAC7B,OAAAgK,GAAMhK,EAAMwL,GAAMxL,CAAG,EAAG,UAAW+J,EAAiB,EAC7C/J,CACT,CACA,SAASyL,GAAUxB,EAAQnH,EAAM,CAC/B,OAAIqI,GAAWlB,CAAM,EACSoB,GAArBD,GAAWnB,CAAM,EAAeqB,GAAWxI,CAAI,EAAgBA,CAAf,EAElDwI,GAAWxI,CAAI,CACxB,CACA,MAAM4I,GAAwB,CAC5B,UAAW,KACX,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAOC,GAAS,KAAM,OAAO,SAAW7I,GAAS2I,GAAU,KAAM3I,CAAI,CAAC,CACxE,EACA,UAAU8I,EAAM,CACd,OAAOb,GAAkB,IAAI,EAAE,OAC7B,GAAGa,EAAK,IAAKC,GAAMxL,GAAQwL,CAAC,EAAId,GAAkBc,CAAC,EAAIA,CAAC,EAE5D,EACA,SAAU,CACR,OAAOF,GAAS,KAAM,UAAY3K,IAChCA,EAAM,CAAC,EAAIyK,GAAU,KAAMzK,EAAM,CAAC,CAAC,EAC5BA,EACR,CACH,EACA,MAAMM,EAAIwK,EAAS,CACjB,OAAOC,GAAM,KAAM,QAASzK,EAAIwK,EAAS,OAAQ,SAAS,CAC5D,EACA,OAAOxK,EAAIwK,EAAS,CAClB,OAAOC,GACL,KACA,SACAzK,EACAwK,EACCjG,GAAMA,EAAE,IAAK/C,GAAS2I,GAAU,KAAM3I,CAAI,CAAC,EAC5C,UAEJ,EACA,KAAKxB,EAAIwK,EAAS,CAChB,OAAOC,GACL,KACA,OACAzK,EACAwK,EACChJ,GAAS2I,GAAU,KAAM3I,CAAI,EAC9B,UAEJ,EACA,UAAUxB,EAAIwK,EAAS,CACrB,OAAOC,GAAM,KAAM,YAAazK,EAAIwK,EAAS,OAAQ,SAAS,CAChE,EACA,SAASxK,EAAIwK,EAAS,CACpB,OAAOC,GACL,KACA,WACAzK,EACAwK,EACChJ,GAAS2I,GAAU,KAAM3I,CAAI,EAC9B,UAEJ,EACA,cAAcxB,EAAIwK,EAAS,CACzB,OAAOC,GAAM,KAAM,gBAAiBzK,EAAIwK,EAAS,OAAQ,SAAS,CACpE,EAEA,QAAQxK,EAAIwK,EAAS,CACnB,OAAOC,GAAM,KAAM,UAAWzK,EAAIwK,EAAS,OAAQ,SAAS,CAC9D,EACA,YAAYF,EAAM,CAChB,OAAOI,GAAY,KAAM,WAAYJ,CAAI,CAC3C,EACA,WAAWA,EAAM,CACf,OAAOI,GAAY,KAAM,UAAWJ,CAAI,CAC1C,EACA,KAAKK,EAAW,CACd,OAAOlB,GAAkB,IAAI,EAAE,KAAKkB,CAAS,CAC/C,EAEA,eAAeL,EAAM,CACnB,OAAOI,GAAY,KAAM,cAAeJ,CAAI,CAC9C,EACA,IAAItK,EAAIwK,EAAS,CACf,OAAOC,GAAM,KAAM,MAAOzK,EAAIwK,EAAS,OAAQ,SAAS,CAC1D,EACA,KAAM,CACJ,OAAOI,GAAW,KAAM,KAAK,CAC/B,EACA,QAAQN,EAAM,CACZ,OAAOM,GAAW,KAAM,OAAQN,CAAI,CACtC,EACA,OAAOtK,KAAOsK,EAAM,CAClB,OAAOO,GAAO,KAAM,SAAU7K,EAAIsK,CAAI,CACxC,EACA,YAAYtK,KAAOsK,EAAM,CACvB,OAAOO,GAAO,KAAM,cAAe7K,EAAIsK,CAAI,CAC7C,EACA,OAAQ,CACN,OAAOM,GAAW,KAAM,OAAO,CACjC,EAEA,KAAK5K,EAAIwK,EAAS,CAChB,OAAOC,GAAM,KAAM,OAAQzK,EAAIwK,EAAS,OAAQ,SAAS,CAC3D,EACA,UAAUF,EAAM,CACd,OAAOM,GAAW,KAAM,SAAUN,CAAI,CACxC,EACA,YAAa,CACX,OAAOb,GAAkB,IAAI,EAAE,YACjC,EACA,SAASqB,EAAU,CACjB,OAAOrB,GAAkB,IAAI,EAAE,SAASqB,CAAQ,CAClD,EACA,aAAaR,EAAM,CACjB,OAAOb,GAAkB,IAAI,EAAE,UAAU,GAAGa,CAAI,CAClD,EACA,WAAWA,EAAM,CACf,OAAOM,GAAW,KAAM,UAAWN,CAAI,CACzC,EACA,QAAS,CACP,OAAOD,GAAS,KAAM,SAAW7I,GAAS2I,GAAU,KAAM3I,CAAI,CAAC,CACjE,CACF,EACA,SAAS6I,GAASU,EAAMC,EAAQC,EAAW,CACzC,MAAMvM,EAAMuL,GAAiBc,CAAI,EAC3BG,EAAOxM,EAAIsM,CAAM,IACvB,OAAItM,IAAQqM,GAAQ,CAACnB,GAAUmB,CAAI,IACjCG,EAAK,MAAQA,EAAK,KAClBA,EAAK,KAAO,IAAM,CAChB,MAAMC,EAASD,EAAK,QACpB,OAAKC,EAAO,OACVA,EAAO,MAAQF,EAAUE,EAAO,KAAK,GAEhCA,CACT,GAEKD,CACT,CACA,MAAME,GAAa,MAAM,UACzB,SAASX,GAAMM,EAAMC,EAAQhL,EAAIwK,EAASa,EAAcf,EAAM,CAC5D,MAAM5L,EAAMuL,GAAiBc,CAAI,EAC3BO,EAAY5M,IAAQqM,GAAQ,IAAWA,CAAI,EAC3CQ,EAAW7M,EAAIsM,CAAM,EAC3B,GAAIO,IAAaH,GAAWJ,CAAM,EAAG,CACnC,MAAMQ,EAAUD,EAAS,MAAMR,EAAMT,CAAI,EACzC,OAAOgB,EAAYtB,GAAWwB,CAAO,EAAIA,CAC3C,CACA,IAAIC,EAAYzL,EACZtB,IAAQqM,IACNO,EACFG,EAAY,SAASjK,EAAM4B,EAAO,CAChC,OAAOpD,EAAG,KAAK,KAAMmK,GAAUY,EAAMvJ,CAAI,EAAG4B,EAAO2H,CAAI,CACzD,EACS/K,EAAG,OAAS,IACrByL,EAAY,SAASjK,EAAM4B,EAAO,CAChC,OAAOpD,EAAG,KAAK,KAAMwB,EAAM4B,EAAO2H,CAAI,CACxC,IAGJ,MAAMI,EAASI,EAAS,KAAK7M,EAAK+M,EAAWjB,CAAO,EACpD,OAAOc,GAAaD,EAAeA,EAAaF,CAAM,EAAIA,CAC5D,CACA,SAASN,GAAOE,EAAMC,EAAQhL,EAAIsK,EAAM,CACtC,MAAM5L,EAAMuL,GAAiBc,CAAI,EAC3BO,EAAY5M,IAAQqM,GAAQ,IAAWA,CAAI,EACjD,IAAIU,EAAYzL,EACZ0L,EAAyB,GACzBhN,IAAQqM,IACNO,GACFI,EAAyBpB,EAAK,SAAW,EACzCmB,EAAY,SAASE,EAAKnK,EAAM4B,EAAO,CACrC,OAAIsI,IACFA,EAAyB,GACzBC,EAAMxB,GAAUY,EAAMY,CAAG,GAEpB3L,EAAG,KAAK,KAAM2L,EAAKxB,GAAUY,EAAMvJ,CAAI,EAAG4B,EAAO2H,CAAI,CAC9D,GACS/K,EAAG,OAAS,IACrByL,EAAY,SAASE,EAAKnK,EAAM4B,EAAO,CACrC,OAAOpD,EAAG,KAAK,KAAM2L,EAAKnK,EAAM4B,EAAO2H,CAAI,CAC7C,IAGJ,MAAMI,EAASzM,EAAIsM,CAAM,EAAES,EAAW,GAAGnB,CAAI,EAC7C,OAAOoB,EAAyBvB,GAAUY,EAAMI,CAAM,EAAIA,CAC5D,CACA,SAAST,GAAYK,EAAMC,EAAQV,EAAM,CACvC,MAAM5L,KAAYqM,CAAI,EACtBrC,GAAMhK,EAAK,UAAW+J,EAAiB,EACvC,MAAMlH,EAAM7C,EAAIsM,CAAM,EAAE,GAAGV,CAAI,EAC/B,OAAK/I,IAAQ,IAAMA,IAAQ,QAAkB+I,EAAK,CAAC,CAAC,GAClDA,EAAK,CAAC,EAAIJ,GAAMI,EAAK,CAAC,CAAC,EAChB5L,EAAIsM,CAAM,EAAE,GAAGV,CAAI,GAErB/I,CACT,CACA,SAASqJ,GAAWG,EAAMC,EAAQV,EAAO,GAAI,CAC3CxC,GAAA,EACApB,GAAA,EACA,MAAMnF,KAAYwJ,CAAI,EAAEC,CAAM,EAAE,MAAMD,EAAMT,CAAI,EAChD,OAAA3D,GAAA,EACAoB,GAAA,EACOxG,CACT,CAEA,MAAMqK,MAA6C,6BAA6B,EAC1EC,GAAiB,IAAI,IACT,OAAO,oBAAoB,MAAM,EAAE,OAAQ7N,GAAQA,IAAQ,aAAeA,IAAQ,QAAQ,EAAE,IAAKA,GAAQ,OAAOA,CAAG,CAAC,EAAE,OAAOsB,EAAQ,CACvJ,EACA,SAAST,GAAeb,EAAK,CACtBsB,GAAStB,CAAG,IAAGA,EAAM,OAAOA,CAAG,GACpC,MAAM+C,KAAY,IAAI,EACtB,OAAA2H,GAAM3H,EAAK,MAAO/C,CAAG,EACd+C,EAAI,eAAe/C,CAAG,CAC/B,CACA,MAAM8N,EAAoB,CACxB,YAAYC,EAAc,GAAOC,EAAa,GAAO,CACnD,KAAK,YAAcD,EACnB,KAAK,WAAaC,CACpB,CACA,IAAIrD,EAAQ3K,EAAKiO,EAAU,CACzB,GAAIjO,IAAQ,WAAY,OAAO2K,EAAO,SACtC,MAAMuD,EAAc,KAAK,YAAaC,EAAa,KAAK,WACxD,GAAInO,IAAQ,iBACV,MAAO,CAACkO,EACV,GAAWlO,IAAQ,iBACjB,OAAOkO,EACT,GAAWlO,IAAQ,gBACjB,OAAOmO,EACT,GAAWnO,IAAQ,UACjB,OAAIiO,KAAcC,EAAcC,EAAaC,GAAqBC,GAAcF,EAAaG,GAAqBC,IAAa,IAAI5D,CAAM,GAEzI,OAAO,eAAeA,CAAM,IAAM,OAAO,eAAesD,CAAQ,EACvDtD,EAET,OAEF,MAAMO,EAAgBnK,GAAQ4J,CAAM,EACpC,GAAI,CAACuD,EAAa,CAChB,IAAIlM,EACJ,GAAIkJ,IAAkBlJ,EAAKoK,GAAsBpM,CAAG,GAClD,OAAOgC,EAET,GAAIhC,IAAQ,iBACV,OAAOa,EAEX,CACA,MAAM0C,EAAM,QAAQ,IAClBoH,EACA3K,EAIAgG,GAAM2E,CAAM,EAAIA,EAASsD,CAAA,EAQ3B,IANI3M,GAAStB,CAAG,EAAI6N,GAAe,IAAI7N,CAAG,EAAI4N,GAAmB5N,CAAG,KAG/DkO,GACHxD,GAAMC,EAAQ,MAAO3K,CAAG,EAEtBmO,GACF,OAAO5K,EAET,GAAIyC,GAAMzC,CAAG,EAAG,CACd,MAAM7B,EAAQwJ,GAAiBrJ,GAAa7B,CAAG,EAAIuD,EAAMA,EAAI,MAC7D,OAAO2K,GAAe3M,GAASG,CAAK,EAAI8M,GAAS9M,CAAK,EAAIA,CAC5D,CACA,OAAIH,GAASgC,CAAG,EACP2K,EAAcM,GAASjL,CAAG,KAAaA,CAAG,EAE5CA,CACT,CACF,CACA,MAAMkL,WAA+BX,EAAoB,CACvD,YAAYK,EAAa,GAAO,CAC9B,MAAM,GAAOA,CAAU,CACzB,CACA,IAAIxD,EAAQ3K,EAAK0B,EAAOuM,EAAU,CAChC,IAAIvL,EAAWiI,EAAO3K,CAAG,EACzB,MAAM0O,EAAwB3N,GAAQ4J,CAAM,GAAK9I,GAAa7B,CAAG,EACjE,GAAI,CAAC,KAAK,WAAY,CACpB,MAAM2O,KAAgCjM,CAAQ,EAK9C,GAJI,CAACkJ,GAAUlK,CAAK,GAAK,CAACmK,GAAWnK,CAAK,IACxCgB,KAAiBA,CAAQ,EACzBhB,KAAcA,CAAK,GAEjB,CAACgN,GAAyB1I,GAAMtD,CAAQ,GAAK,CAACsD,GAAMtE,CAAK,EAC3D,OAAIiN,IASFjM,EAAS,MAAQhB,GACV,EAGb,CACA,MAAMkN,EAASF,EAAwB,OAAO1O,CAAG,EAAI2K,EAAO,OAAS7J,GAAO6J,EAAQ3K,CAAG,EACjFmN,EAAS,QAAQ,IACrBxC,EACA3K,EACA0B,EACAsE,GAAM2E,CAAM,EAAIA,EAASsD,CAAA,EAE3B,OAAItD,IAAWuB,GAAM+B,CAAQ,GAAKd,IAC3ByB,EAEMnM,GAAWf,EAAOgB,CAAQ,GACnCoI,GAAQH,EAAQ,MAAO3K,EAAK0B,CAAe,EAF3CoJ,GAAQH,EAAQ,MAAO3K,EAAK0B,CAAK,GAK9ByL,CACT,CACA,eAAexC,EAAQ3K,EAAK,CAC1B,MAAM4O,EAAS9N,GAAO6J,EAAQ3K,CAAG,EAChB2K,EAAO3K,CAAG,EAC3B,MAAMmN,EAAS,QAAQ,eAAexC,EAAQ3K,CAAG,EACjD,OAAImN,GAAUyB,GACZ9D,GAAQH,EAAQ,SAAU3K,EAAK,MAAgB,EAE1CmN,CACT,CACA,IAAIxC,EAAQ3K,EAAK,CACf,MAAMmN,EAAS,QAAQ,IAAIxC,EAAQ3K,CAAG,EACtC,OAAI,CAACsB,GAAStB,CAAG,GAAK,CAAC6N,GAAe,IAAI7N,CAAG,IAC3C0K,GAAMC,EAAQ,MAAO3K,CAAG,EAEnBmN,CACT,CACA,QAAQxC,EAAQ,CACd,OAAAD,GACEC,EACA,UACA5J,GAAQ4J,CAAM,EAAI,SAAWJ,EAAA,EAExB,QAAQ,QAAQI,CAAM,CAC/B,CACF,CACA,MAAMkE,WAAgCf,EAAoB,CACxD,YAAYK,EAAa,GAAO,CAC9B,MAAM,GAAMA,CAAU,CACxB,CACA,IAAIxD,EAAQ3K,EAAK,CAOf,MAAO,EACT,CACA,eAAe2K,EAAQ3K,EAAK,CAO1B,MAAO,EACT,CACF,CACA,MAAM8O,OAAsCL,GACtCM,OAAuCF,GACvCG,GAA0C,IAAIP,GAAuB,EAAI,EACzEQ,GAA0C,IAAIJ,GAAwB,EAAI,EAE1EK,GAAaxN,GAAUA,EACvByN,GAAY5I,GAAM,QAAQ,eAAeA,CAAC,EAChD,SAAS6I,GAAqBpC,EAAQkB,EAAaC,EAAY,CAC7D,OAAO,YAAY7B,EAAM,CACvB,MAAM3B,EAAS,KAAK,QACd0E,KAAkB1E,CAAM,EACxB2E,EAActO,GAAMqO,CAAS,EAC7BE,EAASvC,IAAW,WAAaA,IAAW,OAAO,UAAYsC,EAC/DE,EAAYxC,IAAW,QAAUsC,EACjCG,EAAgB9E,EAAOqC,CAAM,EAAE,GAAGV,CAAI,EACtCoD,EAAOvB,EAAae,GAAYhB,EAAcnC,GAAaC,GACjE,OAACkC,GAAexD,GACd2E,EACA,UACAG,EAAYhF,GAAsBD,EAAA,EAE7B/J,GAEL,OAAO,OAAOiP,CAAa,EAC3B,CAEE,MAAO,CACL,KAAM,CAAE,MAAA/N,EAAO,KAAAiO,GAASF,EAAc,OACtC,OAAOE,EAAO,CAAE,MAAAjO,EAAO,KAAAiO,GAAS,CAC9B,MAAOJ,EAAS,CAACG,EAAKhO,EAAM,CAAC,CAAC,EAAGgO,EAAKhO,EAAM,CAAC,CAAC,CAAC,EAAIgO,EAAKhO,CAAK,EAC7D,KAAAiO,CAAA,CAEJ,EACF,CAEJ,CACF,CACA,SAASC,GAAqBhF,EAAM,CAClC,OAAO,YAAY0B,EAAM,CAQvB,OAAO1B,IAAS,SAAW,GAAQA,IAAS,QAAU,OAAS,IACjE,CACF,CACA,SAASiF,GAAuBrB,EAAUsB,EAAS,CACjD,MAAMC,EAAmB,CACvB,IAAI/P,EAAK,CACP,MAAM2K,EAAS,KAAK,QACd0E,KAAkB1E,CAAM,EACxBqF,KAAehQ,CAAG,EACnBwO,IACC/L,GAAWzC,EAAKgQ,CAAM,GACxBtF,GAAM2E,EAAW,MAAOrP,CAAG,EAE7B0K,GAAM2E,EAAW,MAAOW,CAAM,GAEhC,KAAM,CAAE,IAAAC,CAAA,EAAQd,GAASE,CAAS,EAC5BK,EAAOI,EAAUZ,GAAYV,EAAWzC,GAAaC,GAC3D,GAAIiE,EAAI,KAAKZ,EAAWrP,CAAG,EACzB,OAAO0P,EAAK/E,EAAO,IAAI3K,CAAG,CAAC,EAC7B,GAAWiQ,EAAI,KAAKZ,EAAWW,CAAM,EACnC,OAAON,EAAK/E,EAAO,IAAIqF,CAAM,CAAC,EACrBrF,IAAW0E,GACpB1E,EAAO,IAAI3K,CAAG,CAElB,EACA,IAAI,MAAO,CACT,MAAM2K,EAAS,KAAK,QACpB,OAAC6D,GAAY9D,GAAMwB,GAAMvB,CAAM,EAAG,UAAWJ,EAAW,EACjDI,EAAO,IAChB,EACA,IAAI3K,EAAK,CACP,MAAM2K,EAAS,KAAK,QACd0E,KAAkB1E,CAAM,EACxBqF,KAAehQ,CAAG,EACxB,OAAKwO,IACC/L,GAAWzC,EAAKgQ,CAAM,GACxBtF,GAAM2E,EAAW,MAAOrP,CAAG,EAE7B0K,GAAM2E,EAAW,MAAOW,CAAM,GAEzBhQ,IAAQgQ,EAASrF,EAAO,IAAI3K,CAAG,EAAI2K,EAAO,IAAI3K,CAAG,GAAK2K,EAAO,IAAIqF,CAAM,CAChF,EACA,QAAQE,EAAU1D,EAAS,CACzB,MAAM2D,EAAW,KACXxF,EAASwF,EAAS,QAClBd,KAAkB1E,CAAM,EACxB+E,EAAOI,EAAUZ,GAAYV,EAAWzC,GAAaC,GAC3D,OAACwC,GAAY9D,GAAM2E,EAAW,UAAW9E,EAAW,EAC7CI,EAAO,QAAQ,CAACjJ,EAAO1B,IACrBkQ,EAAS,KAAK1D,EAASkD,EAAKhO,CAAK,EAAGgO,EAAK1P,CAAG,EAAGmQ,CAAQ,CAC/D,CACH,GAEF3P,UACEuP,EACAvB,EAAW,CACT,IAAKoB,GAAqB,KAAK,EAC/B,IAAKA,GAAqB,KAAK,EAC/B,OAAQA,GAAqB,QAAQ,EACrC,MAAOA,GAAqB,OAAO,GACjC,CACF,IAAIlO,EAAO,CACT,MAAMiJ,KAAe,IAAI,EACnByF,EAAQjB,GAASxE,CAAM,EACvB0F,KAAiB3O,CAAK,EACtB4O,EAAa,CAACR,GAAW,CAAClE,GAAUlK,CAAK,GAAK,CAACmK,GAAWnK,CAAK,EAAI2O,EAAW3O,EAEpF,OADe0O,EAAM,IAAI,KAAKzF,EAAQ2F,CAAU,GAAK7N,GAAWf,EAAO4O,CAAU,GAAKF,EAAM,IAAI,KAAKzF,EAAQjJ,CAAK,GAAKe,GAAW4N,EAAUC,CAAU,GAAKF,EAAM,IAAI,KAAKzF,EAAQ0F,CAAQ,IAExL1F,EAAO,IAAI2F,CAAU,EACrBxF,GAAQH,EAAQ,MAAO2F,EAAYA,CAAU,GAExC,IACT,EACA,IAAItQ,EAAK0B,EAAO,CACV,CAACoO,GAAW,CAAClE,GAAUlK,CAAK,GAAK,CAACmK,GAAWnK,CAAK,IACpDA,KAAcA,CAAK,GAErB,MAAMiJ,KAAe,IAAI,EACnB,CAAE,IAAAsF,EAAK,IAAAM,GAAQpB,GAASxE,CAAM,EACpC,IAAIiE,EAASqB,EAAI,KAAKtF,EAAQ3K,CAAG,EAC5B4O,IACH5O,KAAYA,CAAG,EACf4O,EAASqB,EAAI,KAAKtF,EAAQ3K,CAAG,GAI/B,MAAM0C,EAAW6N,EAAI,KAAK5F,EAAQ3K,CAAG,EACrC,OAAA2K,EAAO,IAAI3K,EAAK0B,CAAK,EAChBkN,EAEMnM,GAAWf,EAAOgB,CAAQ,GACnCoI,GAAQH,EAAQ,MAAO3K,EAAK0B,CAAe,EAF3CoJ,GAAQH,EAAQ,MAAO3K,EAAK0B,CAAK,EAI5B,IACT,EACA,OAAO1B,EAAK,CACV,MAAM2K,KAAe,IAAI,EACnB,CAAE,IAAAsF,EAAK,IAAAM,GAAQpB,GAASxE,CAAM,EACpC,IAAIiE,EAASqB,EAAI,KAAKtF,EAAQ3K,CAAG,EAC5B4O,IACH5O,KAAYA,CAAG,EACf4O,EAASqB,EAAI,KAAKtF,EAAQ3K,CAAG,GAIduQ,GAAMA,EAAI,KAAK5F,EAAQ3K,CAAG,EAC3C,MAAMmN,EAASxC,EAAO,OAAO3K,CAAG,EAChC,OAAI4O,GACF9D,GAAQH,EAAQ,SAAU3K,EAAK,MAAgB,EAE1CmN,CACT,EACA,OAAQ,CACN,MAAMxC,KAAe,IAAI,EACnB6F,EAAW7F,EAAO,OAAS,EAE3BwC,EAASxC,EAAO,QACtB,OAAI6F,GACF1F,GACEH,EACA,QACA,OACA,MAEF,EAEKwC,CACT,EACF,EAEsB,CACtB,OACA,SACA,UACA,OAAO,UAEO,QAASH,GAAW,CAClC+C,EAAiB/C,CAAM,EAAIoC,GAAqBpC,EAAQwB,EAAUsB,CAAO,CAC3E,CAAC,EACMC,CACT,CACA,SAASU,GAA4BvC,EAAa4B,EAAS,CACzD,MAAMC,EAAmBF,GAAuB3B,EAAa4B,CAAO,EACpE,MAAO,CAACnF,EAAQ3K,EAAKiO,IACfjO,IAAQ,iBACH,CAACkO,EACClO,IAAQ,iBACVkO,EACElO,IAAQ,UACV2K,EAEF,QAAQ,IACb7J,GAAOiP,EAAkB/P,CAAG,GAAKA,KAAO2K,EAASoF,EAAmBpF,EACpE3K,EACAiO,CAAA,CAGN,CACA,MAAMyC,GAA4B,CAChC,IAAqBD,GAA4B,GAAO,EAAK,CAC/D,EACME,GAA4B,CAChC,IAAqBF,GAA4B,GAAO,EAAI,CAC9D,EACMG,GAA6B,CACjC,IAAqBH,GAA4B,GAAM,EAAK,CAC9D,EACMI,GAAoC,CACxC,IAAqBJ,GAA4B,GAAM,EAAI,CAC7D,EAWMlC,OAAkC,QAClCD,OAAyC,QACzCD,OAAkC,QAClCD,OAAyC,QAC/C,SAAS0C,GAAcC,EAAS,CAC9B,OAAQA,EAAA,CACN,IAAK,SACL,IAAK,QACH,MAAO,GACT,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACH,MAAO,GACT,QACE,MAAO,GAEb,CAEA,SAASC,GAASrG,EAAQ,CACxB,OAAoBkB,GAAWlB,CAAM,EAC5BA,EAEFsG,GACLtG,EACA,GACAmE,GACA4B,GACAnC,EAAA,CAEJ,CAEA,SAAS2C,GAAgBvG,EAAQ,CAC/B,OAAOsG,GACLtG,EACA,GACAqE,GACA2B,GACArC,EAAA,CAEJ,CAEA,SAASE,GAAS7D,EAAQ,CACxB,OAAOsG,GACLtG,EACA,GACAoE,GACA6B,GACAvC,EAAA,CAEJ,CAEA,SAAS8C,GAAgBxG,EAAQ,CAC/B,OAAOsG,GACLtG,EACA,GACAsE,GACA4B,GACAzC,EAAA,CAEJ,CACA,SAAS6C,GAAqBtG,EAAQuD,EAAakD,EAAcC,EAAoBC,EAAU,CAc7F,GAbI,CAAC/P,GAASoJ,CAAM,GAUhBA,EAAO,SAAc,EAAEuD,GAAevD,EAAO,iBAG7CA,EAAO,UAAe,CAAC,OAAO,aAAaA,CAAM,EACnD,OAAOA,EAET,MAAM4G,EAAgBD,EAAS,IAAI3G,CAAM,EACzC,GAAI4G,EACF,OAAOA,EAET,MAAMC,EAAaV,GAAcnP,GAAUgJ,CAAM,CAAC,EAClD,GAAI6G,IAAe,EACjB,OAAO7G,EAET,MAAM8G,EAAQ,IAAI,MAChB9G,EACA6G,IAAe,EAAqBH,EAAqBD,CAAA,EAE3D,OAAAE,EAAS,IAAI3G,EAAQ8G,CAAK,EACnBA,CACT,CAEA,SAAS3F,GAAWpK,EAAO,CACzB,OAAoBmK,GAAWnK,CAAK,EACXoK,GAAWpK,EAAM,OAAU,EAE7C,CAAC,EAAEA,GAASA,EAAM,eAC3B,CAEA,SAASmK,GAAWnK,EAAO,CACzB,MAAO,CAAC,EAAEA,GAASA,EAAM,eAC3B,CAEA,SAASkK,GAAUlK,EAAO,CACxB,MAAO,CAAC,EAAEA,GAASA,EAAM,cAC3B,CAEA,SAASgQ,GAAQhQ,EAAO,CACtB,OAAOA,EAAQ,CAAC,CAACA,EAAM,QAAa,EACtC,CAEA,SAASwK,GAAMiE,EAAU,CACvB,MAAMxE,EAAMwE,GAAYA,EAAS,QACjC,OAAOxE,EAAsBO,GAAMP,CAAG,EAAIwE,CAC5C,CACA,SAASwB,GAAQjQ,EAAO,CACtB,MAAI,CAACZ,GAAOY,EAAO,UAAU,GAAK,OAAO,aAAaA,CAAK,GACzDoB,GAAIpB,EAAO,WAAY,EAAI,EAEtBA,CACT,CACA,MAAMsK,GAActK,GAAUH,GAASG,CAAK,EAAoBsP,GAAStP,CAAK,EAAIA,EAC5EqK,GAAcrK,GAAUH,GAASG,CAAK,EAAoB8M,GAAS9M,CAAK,EAAIA,EAGlF,SAASsE,GAAM4L,EAAG,CAChB,OAAOA,EAAIA,EAAE,YAAiB,GAAO,EACvC,CAEA,SAASC,GAAInQ,EAAO,CAClB,OAAOoQ,GAAUpQ,EAAO,EAAK,CAC/B,CAEA,SAASqQ,GAAWrQ,EAAO,CACzB,OAAOoQ,GAAUpQ,EAAO,EAAI,CAC9B,CACA,SAASoQ,GAAUzB,EAAUP,EAAS,CACpC,OAAoB9J,GAAMqK,CAAQ,EACzBA,EAEF,IAAI2B,GAAQ3B,EAAUP,CAAO,CACtC,CACA,MAAMkC,EAAQ,CACZ,YAAYtQ,EAAOyM,EAAY,CAC7B,KAAK,IAAM,IAAIjE,GACf,KAAK,UAAe,GACpB,KAAK,cAAmB,GACxB,KAAK,UAAYiE,EAAazM,EAAQwK,GAAMxK,CAAK,EACjD,KAAK,OAASyM,EAAazM,EAAQsK,GAAWtK,CAAK,EACnD,KAAK,cAAmByM,CAC1B,CACA,IAAI,OAAQ,CAQR,YAAK,IAAI,QAEJ,KAAK,MACd,CACA,IAAI,MAAMpD,EAAU,CAClB,MAAMrI,EAAW,KAAK,UAChBuP,EAAiB,KAAK,kBAA8BlH,CAAQ,MAAgBA,CAAQ,EAC1FA,EAAWkH,EAAiBlH,EAAWmB,GAAMnB,CAAQ,EACjDtI,GAAWsI,EAAUrI,CAAQ,IAC/B,KAAK,UAAYqI,EACjB,KAAK,OAASkH,EAAiBlH,EAAWiB,GAAWjB,CAAQ,EAU3D,KAAK,IAAI,UAGf,CACF,CAeA,SAASmH,EAAMC,EAAM,CACnB,OAAuBnM,GAAMmM,CAAI,EAAIA,EAAK,MAAQA,CACpD,CACA,SAASC,GAAQC,EAAQ,CACvB,OAAOjR,GAAWiR,CAAM,EAAIA,EAAA,EAAWH,EAAMG,CAAM,CACrD,CACA,MAAMC,GAAwB,CAC5B,IAAK,CAAC3H,EAAQ3K,EAAKiO,IAAajO,IAAQ,UAAY2K,EAASuH,EAAM,QAAQ,IAAIvH,EAAQ3K,EAAKiO,CAAQ,CAAC,EACrG,IAAK,CAACtD,EAAQ3K,EAAK0B,EAAOuM,IAAa,CACrC,MAAMvL,EAAWiI,EAAO3K,CAAG,EAC3B,UAA0B0C,CAAQ,GAAK,CAAiBsD,GAAMtE,CAAK,GACjEgB,EAAS,MAAQhB,EACV,IAEA,QAAQ,IAAIiJ,EAAQ3K,EAAK0B,EAAOuM,CAAQ,CAEnD,CACF,EACA,SAASsE,GAAUC,EAAgB,CACjC,UAAkBA,CAAc,EAAIA,EAAiB,IAAI,MAAMA,EAAgBF,EAAqB,CACtG,CACA,MAAMG,EAAc,CAClB,YAAYC,EAAS,CACnB,KAAK,UAAe,GACpB,KAAK,OAAS,OACd,MAAMnJ,EAAM,KAAK,IAAM,IAAIW,GACrB,CAAE,IAAAqG,EAAK,IAAAoC,CAAA,EAAQD,EAAQnJ,EAAI,MAAM,KAAKA,CAAG,EAAGA,EAAI,QAAQ,KAAKA,CAAG,CAAC,EACvE,KAAK,KAAOgH,EACZ,KAAK,KAAOoC,CACd,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,OAAS,KAAK,MAC5B,CACA,IAAI,MAAMC,EAAQ,CAChB,KAAK,KAAKA,CAAM,CAClB,CACF,CACA,SAASC,GAAUH,EAAS,CAC1B,OAAO,IAAID,GAAcC,CAAO,CAClC,CAEA,SAASI,GAAOvH,EAAQ,CAItB,MAAMxH,EAAMhD,GAAQwK,CAAM,EAAI,IAAI,MAAMA,EAAO,MAAM,EAAI,GACzD,UAAWvL,KAAOuL,EAChBxH,EAAI/D,CAAG,EAAI+S,GAAcxH,EAAQvL,CAAG,EAEtC,OAAO+D,CACT,CACA,MAAMiP,EAAc,CAClB,YAAYC,EAASjT,EAAKkT,EAAe,CACvC,KAAK,QAAUD,EACf,KAAK,cAAgBC,EACrB,KAAK,UAAe,GACpB,KAAK,OAAS,OACd,KAAK,KAAO5R,GAAStB,CAAG,EAAIA,EAAM,OAAOA,CAAG,EAC5C,KAAK,QAAaiT,CAAO,EACzB,IAAInD,EAAU,GACV/M,EAAMkQ,EACV,GAAI,CAAClS,GAAQkS,CAAO,GAAK3R,GAAS,KAAK,IAAI,GAAK,CAACO,GAAa,KAAK,IAAI,EACrE,GACEiO,EAAU,CAAC4B,GAAQ3O,CAAG,MAAeA,CAAG,QACjC+M,IAAY/M,EAAMA,EAAI,UAEjC,KAAK,SAAW+M,CAClB,CACA,IAAI,OAAQ,CACV,IAAI7P,EAAM,KAAK,QAAQ,KAAK,IAAI,EAChC,OAAI,KAAK,WACPA,EAAMiS,EAAMjS,CAAG,GAEV,KAAK,OAASA,IAAQ,OAAS,KAAK,cAAgBA,CAC7D,CACA,IAAI,MAAM2S,EAAQ,CAChB,GAAI,KAAK,UAA4B5M,GAAM,KAAK,KAAK,KAAK,IAAI,CAAC,EAAG,CAChE,MAAMmN,EAAY,KAAK,QAAQ,KAAK,IAAI,EACxC,GAAoBnN,GAAMmN,CAAS,EAAG,CACpCA,EAAU,MAAQP,EAClB,MACF,CACF,CACA,KAAK,QAAQ,KAAK,IAAI,EAAIA,CAC5B,CACA,IAAI,KAAM,CACR,OAAOtH,GAAmB,KAAK,KAAM,KAAK,IAAI,CAChD,CACF,CACA,MAAM8H,EAAc,CAClB,YAAYC,EAAS,CACnB,KAAK,QAAUA,EACf,KAAK,UAAe,GACpB,KAAK,eAAoB,GACzB,KAAK,OAAS,MAChB,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,OAAS,KAAK,SAC5B,CACF,CAEA,SAASC,GAAMjB,EAAQrS,EAAKuT,EAAc,CACxC,OAAoBvN,GAAMqM,CAAM,EACvBA,EACEjR,GAAWiR,CAAM,EACnB,IAAIe,GAAcf,CAAM,EACtB9Q,GAAS8Q,CAAM,GAAK,UAAU,OAAS,EACzCU,GAAcV,EAAQrS,EAAKuT,CAAY,KAEnBlB,CAAM,CAErC,CACA,SAASU,GAAcV,EAAQrS,EAAKuT,EAAc,CAChD,OAAO,IAAIP,GAAcX,EAAQrS,EAAKuT,CAAY,CACpD,CAEA,MAAMC,EAAgB,CACpB,YAAYxR,EAAIyR,EAAQC,EAAO,CAC7B,KAAK,GAAK1R,EACV,KAAK,OAASyR,EAId,KAAK,OAAS,OAId,KAAK,IAAM,IAAIvJ,GAAI,IAAI,EAIvB,KAAK,UAAY,GAMjB,KAAK,KAAO,OAIZ,KAAK,SAAW,OAIhB,KAAK,MAAQ,GAIb,KAAK,cAAgBZ,GAAgB,EAIrC,KAAK,KAAO,OAEZ,KAAK,OAAS,KACd,KAAK,eAAoB,CAACmK,EAC1B,KAAK,MAAQC,CACf,CAIA,QAAS,CAEP,GADA,KAAK,OAAS,GACV,EAAE,KAAK,MAAQ,IACnBlM,KAAc,KACZ,OAAAG,GAAM,KAAM,EAAI,EACT,EAEX,CACA,IAAI,OAAQ,CACV,MAAMO,EAID,KAAK,IAAI,QACd,OAAAkB,GAAgB,IAAI,EAChBlB,IACFA,EAAK,QAAU,KAAK,IAAI,SAEnB,KAAK,MACd,CACA,IAAI,MAAM6C,EAAU,CACd,KAAK,QACP,KAAK,OAAOA,CAAQ,CAIxB,CACF,CAEA,SAAS1B,GAASsK,EAAiBC,EAAcF,EAAQ,GAAO,CAC9D,IAAIG,EACAJ,EACJ,OAAIrS,GAAWuS,CAAe,EAC5BE,EAASF,GAETE,EAASF,EAAgB,IACzBF,EAASE,EAAgB,KAEd,IAAIH,GAAgBK,EAAQJ,EAAQC,CAAK,CAMxD,CA8BA,MAAMI,GAAwB,GACxBC,OAAiC,QACvC,IAAIC,GAIJ,SAASC,GAAiBC,EAAW3M,EAAe,GAAO4M,EAAQH,GAAe,CAChF,GAAIG,EAAO,CACT,IAAIC,EAAWL,GAAW,IAAII,CAAK,EAC9BC,GAAUL,GAAW,IAAII,EAAOC,EAAW,EAAE,EAClDA,EAAS,KAAKF,CAAS,CACzB,CAKF,CACA,SAASG,GAAMhC,EAAQiC,EAAIC,EAAUrU,GAAW,CAC9C,KAAM,CAAE,UAAAsU,EAAW,KAAAC,EAAM,KAAAC,EAAM,UAAAC,EAAW,WAAAC,EAAY,KAAAC,GAASN,EAQzDO,EAAkBC,GAClBN,EAAaM,EACbnJ,GAAUmJ,CAAO,GAAKN,IAAS,IAASA,IAAS,EAC5CO,GAASD,EAAS,CAAC,EACrBC,GAASD,CAAO,EAEzB,IAAIE,EACApB,EACA7J,EACAkL,EACAC,EAAe,GACfC,EAAgB,GA+CpB,GA9CIpP,GAAMqM,CAAM,GACdwB,EAAS,IAAMxB,EAAO,MACtB8C,KAAyB9C,CAAM,GACtBvG,GAAWuG,CAAM,GAC1BwB,EAAS,IAAMiB,EAAezC,CAAM,EACpC8C,EAAe,IACNpU,GAAQsR,CAAM,GACvB+C,EAAgB,GAChBD,EAAe9C,EAAO,KAAMgD,MAAiBA,CAAC,GAAKzJ,GAAUyJ,CAAC,CAAC,EAC/DxB,EAAS,IAAMxB,EAAO,IAAKgD,GAAM,CAC/B,GAAIrP,GAAMqP,CAAC,EACT,OAAOA,EAAE,MACX,GAAWvJ,GAAWuJ,CAAC,EACrB,OAAOP,EAAeO,CAAC,EACzB,GAAWjU,GAAWiU,CAAC,EACrB,OAAOR,EAAOA,EAAKQ,EAAG,CAAC,EAAIA,EAAA,CAI/B,CAAC,GACQjU,GAAWiR,CAAM,EACtBiC,EACFT,EAASgB,EAAO,IAAMA,EAAKxC,EAAQ,CAAC,EAAIA,EAExCwB,EAAS,IAAM,CACb,GAAI7J,EAAS,CACXF,GAAA,EACA,GAAI,CACFE,EAAA,CACF,SACED,GAAA,CACF,CACF,CACA,MAAMuL,EAAgBtB,GACtBA,GAAgBiB,EAChB,GAAI,CACF,OAAOJ,EAAOA,EAAKxC,EAAQ,EAAG,CAAC6C,CAAY,CAAC,EAAI7C,EAAO6C,CAAY,CACrE,SACElB,GAAgBsB,CAClB,CACF,EAGFzB,EAASzT,GAGPkU,GAAMG,EAAM,CACd,MAAMc,EAAa1B,EACb2B,EAAQf,IAAS,GAAO,IAAWA,EACzCZ,EAAS,IAAMmB,GAASO,EAAA,EAAcC,CAAK,CAC7C,CACA,MAAMC,EAAQpO,GAAA,EACRqO,EAAc,IAAM,CACxBT,EAAO,OACHQ,GAASA,EAAM,QACjBhV,GAAOgV,EAAM,QAASR,CAAM,CAEhC,EACA,GAAIP,GAAQJ,EAAI,CACd,MAAMqB,EAAMrB,EACZA,EAAK,IAAIhI,IAAS,CAChB,MAAM/I,EAAMoS,EAAI,GAAGrJ,CAAI,EACvB,OAAAoJ,EAAA,EACOnS,CACT,CACF,CACA,IAAIb,EAAW0S,EAAgB,IAAI,MAAM/C,EAAO,MAAM,EAAE,KAAKyB,EAAqB,EAAIA,GACtF,MAAM8B,EAAOC,GAAsB,CACjC,GAAI,IAAEZ,EAAO,MAAQ,IAAM,CAACA,EAAO,OAAS,CAACY,GAG7C,GAAIvB,EAAI,CACN,MAAMvJ,EAAWkK,EAAO,MACxB,GAAIY,GAAqBpB,GAAQU,IAAiBC,EAAgBrK,EAAS,KAAK,CAACxE,EAAG3F,IAAM6B,GAAW8D,EAAG7D,EAAS9B,CAAC,CAAC,CAAC,EAAI6B,GAAWsI,EAAUrI,CAAQ,GAAI,CACnJsH,GACFA,EAAA,EAEF,MAAM8L,EAAiB9B,GACvBA,GAAgBiB,EAChB,GAAI,CACF,MAAM3I,EAAO,CACXvB,EAEArI,IAAaoR,GAAwB,OAASsB,GAAiB1S,EAAS,CAAC,IAAMoR,GAAwB,GAAKpR,EAC5GwS,CAAA,EAEFxS,EAAWqI,EACX8J,EAAOA,EAAKP,EAAI,EAAGhI,CAAI,EAErBgI,EAAG,GAAGhI,CAAI,CAEd,SACE0H,GAAgB8B,CAClB,CACF,CACF,MACEb,EAAO,KAEX,EACA,OAAIL,GACFA,EAAWgB,CAAG,EAEhBX,EAAS,IAAIvN,GAAemM,CAAM,EAClCoB,EAAO,UAAYN,EAAY,IAAMA,EAAUiB,EAAK,EAAK,EAAIA,EAC7DV,EAAgBlT,GAAOiS,GAAiBjS,EAAI,GAAOiT,CAAM,EACzDjL,EAAUiL,EAAO,OAAS,IAAM,CAC9B,MAAMb,EAAWL,GAAW,IAAIkB,CAAM,EACtC,GAAIb,EAAU,CACZ,GAAIS,EACFA,EAAKT,EAAU,CAAC,iBAEL2B,KAAY3B,EAAU2B,EAAA,EAEnChC,GAAW,OAAOkB,CAAM,CAC1B,CACF,EAKIX,EACEE,EACFoB,EAAI,EAAI,EAERlT,EAAWuS,EAAO,MAEXN,EACTA,EAAUiB,EAAI,KAAK,KAAM,EAAI,EAAG,EAAI,EAEpCX,EAAO,MAETS,EAAY,MAAQT,EAAO,MAAM,KAAKA,CAAM,EAC5CS,EAAY,OAAST,EAAO,OAAO,KAAKA,CAAM,EAC9CS,EAAY,KAAOA,EACZA,CACT,CACA,SAASV,GAAStT,EAAO8T,EAAQ,IAAU1Q,EAAM,CAK/C,GAJI0Q,GAAS,GAAK,CAACjU,GAASG,CAAK,GAAKA,EAAM,WAG5CoD,EAAOA,OAA4B,KAC9BA,EAAK,IAAIpD,CAAK,GAAK,IAAM8T,GAC5B,OAAO9T,EAIT,GAFAoD,EAAK,IAAIpD,EAAO8T,CAAK,EACrBA,IACIxP,GAAMtE,CAAK,EACbsT,GAAStT,EAAM,MAAO8T,EAAO1Q,CAAI,UACxB/D,GAAQW,CAAK,EACtB,QAASd,EAAI,EAAGA,EAAIc,EAAM,OAAQd,IAChCoU,GAAStT,EAAMd,CAAC,EAAG4U,EAAO1Q,CAAI,UAEvB5D,GAAMQ,CAAK,GAAKV,GAAMU,CAAK,EACpCA,EAAM,QAAS6E,GAAM,CACnByO,GAASzO,EAAGiP,EAAO1Q,CAAI,CACzB,CAAC,UACQlD,GAAcF,CAAK,EAAG,CAC/B,UAAW1B,KAAO0B,EAChBsT,GAAStT,EAAM1B,CAAG,EAAGwV,EAAO1Q,CAAI,EAElC,UAAW9E,KAAO,OAAO,sBAAsB0B,CAAK,EAC9C,OAAO,UAAU,qBAAqB,KAAKA,EAAO1B,CAAG,GACvDgV,GAAStT,EAAM1B,CAAG,EAAGwV,EAAO1Q,CAAI,CAGtC,CACA,OAAOpD,CACT,CC3xDA,SAASsU,GAAsBhU,EAAIiU,EAAUrL,EAAM0B,EAAM,CACvD,GAAI,CACF,OAAOA,EAAOtK,EAAG,GAAGsK,CAAI,EAAItK,EAAA,CAC9B,OAAS+G,EAAK,CACZmN,GAAYnN,EAAKkN,EAAUrL,CAAI,CACjC,CACF,CACA,SAASuL,GAA2BnU,EAAIiU,EAAUrL,EAAM0B,EAAM,CAC5D,GAAIlL,GAAWY,CAAE,EAAG,CAClB,MAAMuB,EAAMyS,GAAsBhU,EAAIiU,EAAUrL,EAAM0B,CAAI,EAC1D,OAAI/I,GAAO/B,GAAU+B,CAAG,GACtBA,EAAI,MAAOwF,GAAQ,CACjBmN,GAAYnN,EAAKkN,EAAUrL,CAAI,CACjC,CAAC,EAEIrH,CACT,CACA,GAAIxC,GAAQiB,CAAE,EAAG,CACf,MAAMoU,EAAS,GACf,QAASxV,EAAI,EAAGA,EAAIoB,EAAG,OAAQpB,IAC7BwV,EAAO,KAAKD,GAA2BnU,EAAGpB,CAAC,EAAGqV,EAAUrL,EAAM0B,CAAI,CAAC,EAErE,OAAO8J,CACT,CAKF,CACA,SAASF,GAAYnN,EAAKkN,EAAUrL,EAAMyL,EAAa,GAAM,CAC3D,MAAMC,EAAeL,EAAWA,EAAS,MAAQ,KAC3C,CAAE,aAAAM,EAAc,gCAAAC,CAAA,EAAoCP,GAAYA,EAAS,WAAW,QAAU/V,GACpG,GAAI+V,EAAU,CACZ,IAAIQ,EAAMR,EAAS,OACnB,MAAMS,EAAkBT,EAAS,MAC3BU,EAAmF,8CAA8C/L,CAAI,GAC3I,KAAO6L,GAAK,CACV,MAAMG,EAAqBH,EAAI,GAC/B,GAAIG,GACF,QAAShW,EAAI,EAAGA,EAAIgW,EAAmB,OAAQhW,IAC7C,GAAIgW,EAAmBhW,CAAC,EAAEmI,EAAK2N,EAAiBC,CAAS,IAAM,GAC7D,OAINF,EAAMA,EAAI,MACZ,CACA,GAAIF,EAAc,CAChBzM,GAAA,EACAkM,GAAsBO,EAAc,KAAM,GAAI,CAC5CxN,EACA2N,EACAC,CAAA,CACD,EACD5M,GAAA,EACA,MACF,CACF,CACA8M,GAAS9N,EAAK6B,EAAM0L,EAAcD,EAAYG,CAA+B,CAC/E,CACA,SAASK,GAAS9N,EAAK6B,EAAM0L,EAAcD,EAAa,GAAMS,EAAc,GAAO,IAetEA,EACT,MAAM/N,EAEN,QAAQ,MAAMA,CAAG,CAErB,CAEA,MAAMgO,GAAQ,GACd,IAAIC,GAAa,GACjB,MAAMC,GAAsB,GAC5B,IAAIC,GAAqB,KACrBC,GAAiB,EACrB,MAAMC,WAA0C,UAChD,IAAIC,GAAsB,KAE1B,SAASC,GAAStV,EAAI,CACpB,MAAMuV,EAAIF,IAAuBD,GACjC,OAAOpV,EAAKuV,EAAE,KAAK,KAAOvV,EAAG,KAAK,IAAI,EAAIA,CAAE,EAAIuV,CAClD,CACA,SAASC,GAAmBC,EAAI,CAC9B,IAAIC,EAAQV,GAAa,EACrBW,EAAMZ,GAAM,OAChB,KAAOW,EAAQC,GAAK,CAClB,MAAMC,EAASF,EAAQC,IAAQ,EACzBE,EAAYd,GAAMa,CAAM,EACxBE,EAAcC,GAAMF,CAAS,EAC/BC,EAAcL,GAAMK,IAAgBL,GAAMI,EAAU,MAAQ,EAC9DH,EAAQE,EAAS,EAEjBD,EAAMC,CAEV,CACA,OAAOF,CACT,CACA,SAASM,GAASpC,EAAK,CACrB,GAAI,EAAEA,EAAI,MAAQ,GAAI,CACpB,MAAMqC,EAAQF,GAAMnC,CAAG,EACjBsC,EAAUnB,GAAMA,GAAM,OAAS,CAAC,EAClC,CAACmB,GACL,EAAEtC,EAAI,MAAQ,IAAMqC,GAASF,GAAMG,CAAO,EACxCnB,GAAM,KAAKnB,CAAG,EAEdmB,GAAM,OAAOS,GAAmBS,CAAK,EAAG,EAAGrC,CAAG,EAEhDA,EAAI,OAAS,EACbuC,GAAA,CACF,CACF,CACA,SAASA,IAAa,CACfd,KACHA,GAAsBD,GAAgB,KAAKgB,EAAS,EAExD,CACA,SAASC,GAAiB/D,EAAI,CAC5B,GAAI,CAACvT,GAAQuT,CAAE,EACT4C,IAAsB5C,EAAG,KAAO,GAClC4C,GAAmB,OAAOC,GAAiB,EAAG,EAAG7C,CAAE,EACxCA,EAAG,MAAQ,IACtB2C,GAAoB,KAAK3C,CAAE,EAC3BA,EAAG,OAAS,OAGd,SAAS1T,EAAI,EAAGA,EAAI0T,EAAG,OAAQ1T,IAC7BqW,GAAoB,KAAK3C,EAAG1T,CAAC,CAAC,EAGlCuX,GAAA,CACF,CACA,SAASG,GAAiBrC,EAAUnR,EAAMlE,EAAIoW,GAAa,EAAG,CAI5D,KAAOpW,EAAImW,GAAM,OAAQnW,IAAK,CAC5B,MAAM0T,EAAKyC,GAAMnW,CAAC,EAClB,GAAI0T,GAAMA,EAAG,MAAQ,EAAG,CACtB,GAAI2B,GAAY3B,EAAG,KAAO2B,EAAS,IACjC,SAKFc,GAAM,OAAOnW,EAAG,CAAC,EACjBA,IACI0T,EAAG,MAAQ,IACbA,EAAG,OAAS,IAEdA,EAAA,EACMA,EAAG,MAAQ,IACfA,EAAG,OAAS,GAEhB,CACF,CACF,CACA,SAASiE,GAAkBzT,EAAM,CAC/B,GAAImS,GAAoB,OAAQ,CAC9B,MAAMuB,EAAU,CAAC,GAAG,IAAI,IAAIvB,EAAmB,CAAC,EAAE,KAChD,CAACrS,EAAGC,IAAMkT,GAAMnT,CAAC,EAAImT,GAAMlT,CAAC,GAG9B,GADAoS,GAAoB,OAAS,EACzBC,GAAoB,CACtB,QAAStW,EAAI,EAAGA,EAAI4X,EAAQ,OAAQ5X,IAClCsW,GAAmB,KAAKsB,EAAQ5X,CAAC,CAAC,EAEpC,MACF,CAKA,IAJAsW,GAAqBsB,EAIhBrB,GAAiB,EAAGA,GAAiBD,GAAmB,OAAQC,KAAkB,CACrF,MAAM7C,EAAK4C,GAAmBC,EAAc,EAIxC7C,EAAG,MAAQ,IACbA,EAAG,OAAS,IAERA,EAAG,MAAQ,GAAIA,EAAA,EACrBA,EAAG,OAAS,EACd,CACA4C,GAAqB,KACrBC,GAAiB,CACnB,CACF,CACA,MAAMY,GAASnC,GAAQA,EAAI,IAAM,KAAOA,EAAI,MAAQ,EAAI,GAAK,IAAWA,EAAI,GAC5E,SAASwC,GAAUtT,EAAM,CAKvB,GAAI,CACF,IAAKkS,GAAa,EAAGA,GAAaD,GAAM,OAAQC,KAAc,CAC5D,MAAMpB,EAAMmB,GAAMC,EAAU,EACxBpB,GAAO,EAAEA,EAAI,MAAQ,KAInBA,EAAI,MAAQ,IACdA,EAAI,OAAS,IAEfI,GACEJ,EACAA,EAAI,EACJA,EAAI,EAAI,GAAK,IAETA,EAAI,MAAQ,IAChBA,EAAI,OAAS,IAGnB,CACF,SACE,KAAOoB,GAAaD,GAAM,OAAQC,KAAc,CAC9C,MAAMpB,EAAMmB,GAAMC,EAAU,EACxBpB,IACFA,EAAI,OAAS,GAEjB,CACAoB,GAAa,GACbD,GAAM,OAAS,EACfwB,GAAsB,EACtBlB,GAAsB,MAClBN,GAAM,QAAUE,GAAoB,SACtCmB,GAAc,CAElB,CACF,CAkPA,IAAIK,GAA2B,KAC3BC,GAAiB,KACrB,SAASC,GAA4B1C,EAAU,CAC7C,MAAM/M,EAAOuP,GACb,OAAAA,GAA2BxC,EAC3ByC,GAAiBzC,GAAYA,EAAS,KAAK,WAAa,KACjD/M,CACT,CACA,SAAS0P,GAAYnB,EAAI,CACvBiB,GAAiBjB,CACnB,CACA,SAASoB,IAAa,CACpBH,GAAiB,IACnB,CACA,MAAMI,GAAeC,GAAQC,GAC7B,SAASA,GAAQhX,EAAIiX,EAAMR,GAA0BS,EAAiB,CAEpE,GADI,CAACD,GACDjX,EAAG,GACL,OAAOA,EAET,MAAMmX,EAAsB,IAAI7M,IAAS,CACnC6M,EAAoB,IACtBC,GAAiB,EAAE,EAErB,MAAMC,EAAeV,GAA4BM,CAAG,EAC9CK,EAAgBC,GAAW,OACjC,IAAIhW,EACJ,GAAI,CACFA,EAAMvB,EAAG,GAAGsK,CAAI,CAClB,SACE,QAAS1L,EAAI2Y,GAAW,OAAQ3Y,EAAI0Y,EAAe1Y,IAAK4Y,GAAA,EACxDb,GAA4BU,CAAY,EACpCF,EAAoB,IACtBC,GAAiB,CAAC,CAEtB,CAIA,OAAO7V,CACT,EACA,OAAA4V,EAAoB,GAAK,GACzBA,EAAoB,GAAK,GACzBA,EAAoB,GAAK,GAClBA,CACT,CAOA,SAASM,GAAeC,EAAOC,EAAY,CACzC,GAAIlB,KAA6B,KAE/B,OAAOiB,EAET,MAAMzD,EAAW2D,GAA2BnB,EAAwB,EAC9DoB,EAAWH,EAAM,OAASA,EAAM,KAAO,IAC7C,QAAS9Y,EAAI,EAAGA,EAAI+Y,EAAW,OAAQ/Y,IAAK,CAC1C,GAAI,CAACkZ,EAAKpY,EAAOmB,EAAKkX,EAAY7Z,EAAS,EAAIyZ,EAAW/Y,CAAC,EACvDkZ,IACE1Y,GAAW0Y,CAAG,IAChBA,EAAM,CACJ,QAASA,EACT,QAASA,CAAA,GAGTA,EAAI,MACN9E,GAAStT,CAAK,EAEhBmY,EAAS,KAAK,CACZ,IAAAC,EACA,SAAA7D,EACA,MAAAvU,EACA,SAAU,OACV,IAAAmB,EACA,UAAAkX,CAAA,CACD,EAEL,CACA,OAAOL,CACT,CACA,SAASM,GAAoBN,EAAOO,EAAWhE,EAAU9R,EAAM,CAC7D,MAAM0V,EAAWH,EAAM,KACjBQ,EAAcD,GAAaA,EAAU,KAC3C,QAASrZ,EAAI,EAAGA,EAAIiZ,EAAS,OAAQjZ,IAAK,CACxC,MAAMuZ,EAAUN,EAASjZ,CAAC,EACtBsZ,IACFC,EAAQ,SAAWD,EAAYtZ,CAAC,EAAE,OAEpC,IAAIwZ,EAAOD,EAAQ,IAAIhW,CAAI,EACvBiW,IACFtQ,GAAA,EACAqM,GAA2BiE,EAAMnE,EAAU,EAAG,CAC5CyD,EAAM,GACNS,EACAT,EACAO,CAAA,CACD,EACDlQ,GAAA,EAEJ,CACF,CAEA,SAASsQ,GAAQra,EAAK0B,EAAO,CAM3B,GAAI4Y,GAAiB,CACnB,IAAIC,EAAWD,GAAgB,SAC/B,MAAME,EAAiBF,GAAgB,QAAUA,GAAgB,OAAO,SACpEE,IAAmBD,IACrBA,EAAWD,GAAgB,SAAW,OAAO,OAAOE,CAAc,GAEpED,EAASva,CAAG,EAAI0B,CAClB,CACF,CACA,SAAS+Y,GAAOza,EAAKuT,EAAcmH,EAAwB,GAAO,CAChE,MAAMzE,EAAW0E,GAAA,EACjB,GAAI1E,GAAY2E,GAAY,CAC1B,IAAIL,EAAWK,GAAaA,GAAW,SAAS,SAAW3E,EAAWA,EAAS,QAAU,MAAQA,EAAS,GAAKA,EAAS,MAAM,YAAcA,EAAS,MAAM,WAAW,SAAWA,EAAS,OAAO,SAAW,OAC5M,GAAIsE,GAAYva,KAAOua,EACrB,OAAOA,EAASva,CAAG,EACrB,GAAW,UAAU,OAAS,EAC5B,OAAO0a,GAAyBtZ,GAAWmS,CAAY,EAAIA,EAAa,KAAK0C,GAAYA,EAAS,KAAK,EAAI1C,CAI/G,CAGF,CACA,SAASsH,IAAsB,CAC7B,MAAO,CAAC,EAAEF,GAAA,GAAwBC,GACpC,CAEA,MAAME,GAAgC,OAAO,IAAI,OAAO,EAClDC,GAAgB,IAENN,GAAOK,EAAa,EAUpC,SAASE,GAAY/F,EAAQV,EAAS,CACpC,OAAO0G,GAAQhG,EAAQ,KAAMV,CAAO,CACtC,CAQA,SAAS2G,GAAgBjG,EAAQV,EAAS,CACxC,OAAO0G,GACLhG,EACA,KACqF,CAAE,MAAO,OAAO,CAEzG,CACA,SAASZ,GAAMhC,EAAQiC,EAAIC,EAAS,CAMlC,OAAO0G,GAAQ5I,EAAQiC,EAAIC,CAAO,CACpC,CACA,SAAS0G,GAAQ5I,EAAQiC,EAAIC,EAAUrU,GAAW,CAChD,KAAM,CAAE,UAAAsU,EAAW,KAAAC,EAAM,MAAA0G,EAAO,KAAAzG,GAASH,EAkBnC6G,EAAmB5a,GAAO,GAAI+T,CAAO,EAErC8G,EAAkB/G,GAAME,GAAa,CAACF,GAAM6G,IAAU,OAC5D,IAAIG,EACJ,GAAIC,IACF,GAAIJ,IAAU,OAAQ,CACpB,MAAMlC,EAAM8B,GAAA,EACZO,EAAarC,EAAI,mBAAqBA,EAAI,iBAAmB,GAC/D,SAAW,CAACoC,EAAiB,CAC3B,MAAMG,EAAkB,IAAM,CAC9B,EACA,OAAAA,EAAgB,KAAOpb,GACvBob,EAAgB,OAASpb,GACzBob,EAAgB,MAAQpb,GACjBob,CACT,EAEF,MAAMvF,EAAWqE,GACjBc,EAAiB,KAAO,CAACpZ,EAAI4I,EAAM0B,IAAS6J,GAA2BnU,EAAIiU,EAAUrL,EAAM0B,CAAI,EAC/F,IAAImP,EAAQ,GACRN,IAAU,OACZC,EAAiB,UAAaxF,GAAQ,CACpC8F,GAAsB9F,EAAKK,GAAYA,EAAS,QAAQ,CAC1D,EACSkF,IAAU,SACnBM,EAAQ,GACRL,EAAiB,UAAY,CAACxF,EAAK+F,IAAe,CAC5CA,EACF/F,EAAA,EAEAoC,GAASpC,CAAG,CAEhB,GAEFwF,EAAiB,WAAcxF,GAAQ,CACjCtB,IACFsB,EAAI,OAAS,GAEX6F,IACF7F,EAAI,OAAS,EACTK,IACFL,EAAI,GAAKK,EAAS,IAClBL,EAAI,EAAIK,GAGd,EACA,MAAMP,EAAckG,GAAQvJ,EAAQiC,EAAI8G,CAAgB,EACxD,OAAIG,KACED,EACFA,EAAW,KAAK5F,CAAW,EAClB2F,GACT3F,EAAA,GAGGA,CACT,CACA,SAASmG,GAAcxJ,EAAQ3Q,EAAO6S,EAAS,CAC7C,MAAMuH,EAAa,KAAK,MAClBjI,EAASxS,GAASgR,CAAM,EAAIA,EAAO,SAAS,GAAG,EAAI0J,GAAiBD,EAAYzJ,CAAM,EAAI,IAAMyJ,EAAWzJ,CAAM,EAAIA,EAAO,KAAKyJ,EAAYA,CAAU,EAC7J,IAAIxH,EACAlT,GAAWM,CAAK,EAClB4S,EAAK5S,GAEL4S,EAAK5S,EAAM,QACX6S,EAAU7S,GAEZ,MAAMsa,EAAQC,GAAmB,IAAI,EAC/B1Y,EAAM0X,GAAQpH,EAAQS,EAAG,KAAKwH,CAAU,EAAGvH,CAAO,EACxD,OAAAyH,EAAA,EACOzY,CACT,CACA,SAASwY,GAAiB9C,EAAKiD,EAAM,CACnC,MAAMC,EAAWD,EAAK,MAAM,GAAG,EAC/B,MAAO,IAAM,CACX,IAAIzF,EAAMwC,EACV,QAASrY,EAAI,EAAGA,EAAIub,EAAS,QAAU1F,EAAK7V,IAC1C6V,EAAMA,EAAI0F,EAASvb,CAAC,CAAC,EAEvB,OAAO6V,CACT,CACF,CAEA,MAAM2F,OAAoC,QACpCC,UAAwC,MAAM,EAC9CC,GAAc1R,GAASA,EAAK,aAC5B2R,GAAsBlY,GAAUA,IAAUA,EAAM,UAAYA,EAAM,WAAa,IAC/EmY,GAAsBnY,GAAUA,IAAUA,EAAM,OAASA,EAAM,QAAU,IACzEoY,GAAe9R,GAAW,OAAO,WAAe,KAAeA,aAAkB,WACjF+R,GAAkB/R,GAAW,OAAO,eAAkB,YAAcA,aAAkB,cACtFgS,GAAgB,CAACtY,EAAOuY,IAAW,CACvC,MAAMC,EAAiBxY,GAASA,EAAM,GACtC,OAAIhD,GAASwb,CAAc,EACpBD,EAMYA,EAAOC,CAAc,EAF7B,KAcFA,CAEX,EACMC,GAAe,CACnB,KAAM,WACN,aAAc,GACd,QAAQC,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,EAAWC,EAAW,CACjH,KAAM,CACJ,GAAIC,EACJ,GAAIC,EACJ,IAAKC,EACL,EAAG,CAAE,OAAAC,EAAQ,cAAAC,EAAe,WAAAC,EAAY,cAAAC,EAAe,WAAAC,CAAA,CAAW,EAChER,EACES,EAAW1B,GAAmBS,EAAG,KAAK,EAC5C,GAAI,CAAE,gBAAAkB,GAAoBlB,EAK1B,MAAMmB,EAAQ,CAACzE,EAAO0E,EAAYC,IAAY,CACxC3E,EAAM,UAAY,IACpB+D,EACE/D,EAAM,SACN0E,EACAC,EACAlB,EACAC,EACAC,EACAC,EACAC,CAAA,CAGN,EACMe,EAAgB,CAAC5E,EAAQsD,IAAO,CACpC,MAAMuB,EAAYhC,GAAmB7C,EAAM,KAAK,EAC1C/O,EAAS+O,EAAM,OAASiD,GAAcjD,EAAM,MAAOmE,CAAa,EAChEW,EAAeC,GAAc9T,EAAQ+O,EAAOoE,EAAYF,CAAM,EAChEjT,IACE0S,IAAc,OAASZ,GAAY9R,CAAM,EAC3C0S,EAAY,MACHA,IAAc,UAAYX,GAAe/R,CAAM,IACxD0S,EAAY,UAEVF,GAAmBA,EAAgB,OACpCA,EAAgB,GAAG,mBAAqBA,EAAgB,GAAG,iBAAmC,IAAI,MAAQ,IAAIxS,CAAM,EAElH4T,IACHJ,EAAMzE,EAAO/O,EAAQ6T,CAAY,EACjCE,GAAchF,EAAO,EAAK,GAKhC,EACMiF,EAAqBjF,GAAU,CACnC,MAAMkF,EAAW,IAAM,CACrB,GAAIxC,GAAc,IAAI1C,CAAK,IAAMkF,EAEjC,IADAxC,GAAc,OAAO1C,CAAK,EACtB6C,GAAmB7C,EAAM,KAAK,EAAG,CACnC,MAAMmF,EAAiBb,EAAWtE,EAAM,EAAE,GAAKuD,EAC/CkB,EAAMzE,EAAOmF,EAAgBnF,EAAM,MAAM,EACzCgF,GAAchF,EAAO,EAAI,CAC3B,CACA4E,EAAc5E,CAAK,EACrB,EACA0C,GAAc,IAAI1C,EAAOkF,CAAQ,EACjClD,GAAsBkD,EAAUxB,CAAc,CAChD,EACA,GAAIL,GAAM,KAAM,CACd,MAAM+B,EAAc9B,EAAG,GAAmFc,EAAW,EAAE,EACjHiB,EAAa/B,EAAG,OAAqFc,EAAW,EAAE,EAGxH,GAFAF,EAAOkB,EAAa7B,EAAWC,CAAM,EACrCU,EAAOmB,EAAY9B,EAAWC,CAAM,EAChCV,GAAmBQ,EAAG,KAAK,GAAKI,GAAkBA,EAAe,cAAe,CAClFuB,EAAkB3B,CAAE,EACpB,MACF,CACIiB,IACFE,EAAMnB,EAAIC,EAAW8B,CAAU,EAC/BL,GAAc1B,EAAI,EAAI,GAExBsB,EAAA,CACF,KAAO,CACLtB,EAAG,GAAKD,EAAG,GACX,MAAMgC,EAAa/B,EAAG,OAASD,EAAG,OAC5BiC,EAAe5C,GAAc,IAAIW,CAAE,EACzC,GAAIiC,EAAc,CAChBA,EAAa,OAAS,EACtB5C,GAAc,OAAOW,CAAE,EACvB4B,EAAkB3B,CAAE,EACpB,MACF,CACAA,EAAG,YAAcD,EAAG,YACpB,MAAMpS,EAASqS,EAAG,OAASD,EAAG,OACxByB,EAAexB,EAAG,aAAeD,EAAG,aACpCkC,EAAc1C,GAAmBQ,EAAG,KAAK,EACzCmC,EAAmBD,EAAchC,EAAYtS,EAC7CwU,EAAgBF,EAAcF,EAAaP,EA8BjD,GA7BInB,IAAc,OAASZ,GAAY9R,CAAM,EAC3C0S,EAAY,OACHA,IAAc,UAAYX,GAAe/R,CAAM,KACxD0S,EAAY,UAEVa,GACFP,EACEZ,EAAG,gBACHmB,EACAgB,EACA/B,EACAC,EACAC,EACAC,CAAA,EAEF8B,GAAuBrC,EAAIC,EAAI,EAA0C,GAC/DO,GACVG,EACEX,EACAC,EACAkC,EACAC,EACAhC,EACAC,EACAC,EACAC,EACA,IAGAW,EACGgB,EASCjC,EAAG,OAASD,EAAG,OAASC,EAAG,MAAM,KAAOD,EAAG,MAAM,KACnDC,EAAG,MAAM,GAAKD,EAAG,MAAM,IATzBsC,GACErC,EACAC,EACA8B,EACAvB,EACA,YAQCR,EAAG,OAASA,EAAG,MAAM,OAASD,EAAG,OAASA,EAAG,MAAM,IAAK,CAC3D,MAAMuC,EAAa3C,GAAcK,EAAG,MAAOa,CAAa,EACpDyB,IACFtC,EAAG,OAASsC,EACZD,GACErC,EACAsC,EACA,KACA9B,EACA,GASN,MAAWyB,GACTI,GACErC,EACArS,EACA6T,EACAhB,EACA,GAINkB,GAAc1B,EAAIiB,CAAQ,CAC5B,CACF,EACA,OAAOvE,EAAOyD,EAAiBC,EAAgB,CAAE,GAAImC,EAAS,EAAG,CAAE,OAAQC,CAAA,CAAW,EAAKC,EAAU,CACnG,KAAM,CACJ,UAAAC,EACA,SAAAC,EACA,OAAAzC,EACA,YAAA0C,EACA,aAAApB,EACA,OAAA7T,EACA,MAAAtG,CAAA,EACEqV,EACEuE,EAAW1B,GAAmBlY,CAAK,EACnCwb,EAAeJ,GAAY,CAACxB,EAC5Be,EAAe5C,GAAc,IAAI1C,CAAK,EAU5C,GATIsF,IACFA,EAAa,OAAS,EACtB5C,GAAc,OAAO1C,CAAK,GAExB/O,IACF6U,EAAWI,CAAW,EACtBJ,EAAWhB,CAAY,GAEzBiB,GAAYD,EAAWtC,CAAM,EACzB,CAAC8B,IAAiBf,GAAYtT,IAAW+U,EAAY,GACvD,QAAS9e,EAAI,EAAGA,EAAI+e,EAAS,OAAQ/e,IAAK,CACxC,MAAMkf,EAAQH,EAAS/e,CAAC,EACxB2e,EACEO,EACA3C,EACAC,EACAyC,EACA,CAAC,CAACC,EAAM,gBAEZ,CAEJ,EACA,KAAMT,GACN,QAASU,EACX,EACA,SAASV,GAAa3F,EAAOuD,EAAW+C,EAAc,CAAE,EAAG,CAAE,OAAApC,CAAA,EAAU,EAAGqC,GAAQC,EAAW,EAAG,CAC1FA,IAAa,GACftC,EAAOlE,EAAM,aAAcuD,EAAW+C,CAAY,EAEpD,KAAM,CAAE,GAAArf,EAAI,OAAAuc,EAAQ,UAAAwC,EAAW,SAAAC,EAAU,MAAAtb,GAAUqV,EAC7CyG,EAAYD,IAAa,EAI/B,GAHIC,GACFvC,EAAOjd,EAAIsc,EAAW+C,CAAY,EAEhC,CAAC5D,GAAc,IAAI1C,CAAK,IAAM,CAACyG,GAAa5D,GAAmBlY,CAAK,IAClEqb,EAAY,GACd,QAAS9e,EAAI,EAAGA,EAAI+e,EAAS,OAAQ/e,IACnCqf,EACEN,EAAS/e,CAAC,EACVqc,EACA+C,EACA,GAKJG,GACFvC,EAAOV,EAAQD,EAAW+C,CAAY,CAE1C,CACA,SAASD,GAAgBK,EAAM1G,EAAOyD,EAAiBC,EAAgBE,EAAcC,EAAW,CAC9F,EAAG,CAAE,YAAA8C,EAAa,WAAArC,EAAY,cAAAH,EAAe,OAAAD,EAAQ,WAAAE,CAAA,CACvD,EAAGwC,EAAiB,CAClB,SAASC,EAAcC,EAASC,EAAY,CAC1C,IAAIjC,EAAeiC,EACnB,KAAOjC,GAAc,CACnB,GAAIA,GAAgBA,EAAa,WAAa,GAC5C,GAAIA,EAAa,OAAS,wBACxB9E,EAAM,YAAc8E,UACXA,EAAa,OAAS,kBAAmB,CAClD9E,EAAM,aAAe8E,EACrBgC,EAAQ,KAAO9G,EAAM,cAAgB2G,EAAY3G,EAAM,YAAY,EACnE,KACF,EAEF8E,EAAe6B,EAAY7B,CAAY,CACzC,CACF,CACA,SAASkC,EAAwBC,EAAOC,EAAQ,CAC9CA,EAAO,OAASN,EACdD,EAAYM,CAAK,EACjBC,EACA5C,EAAW2C,CAAK,EAChBxD,EACAC,EACAE,EACAC,CAAA,CAEJ,CACA,MAAM5S,EAAS+O,EAAM,OAASiD,GAC5BjD,EAAM,MACNmE,CAAA,EAEII,EAAW1B,GAAmB7C,EAAM,KAAK,EAC/C,GAAI/O,EAAQ,CACV,MAAM8V,EAAa9V,EAAO,MAAQA,EAAO,WACrC+O,EAAM,UAAY,KAChBuE,GACFyC,EAAwBN,EAAM1G,CAAK,EACnC6G,EAAc5V,EAAQ8V,CAAU,EAC3B/G,EAAM,cACT+E,GACE9T,EACA+O,EACAoE,EACAF,EAGAI,EAAWoC,CAAI,IAAMzV,EAASyV,EAAO,QAIzC1G,EAAM,OAAS2G,EAAYD,CAAI,EAC/BG,EAAc5V,EAAQ8V,CAAU,EAC3B/G,EAAM,cACT+E,GAAc9T,EAAQ+O,EAAOoE,EAAYF,CAAM,EAEjD0C,EACEG,GAAcJ,EAAYI,CAAU,EACpC/G,EACA/O,EACAwS,EACAC,EACAE,EACAC,CAAA,IAINmB,GAAchF,EAAOuE,CAAQ,CAC/B,MAAWA,GACLvE,EAAM,UAAY,KACpBgH,EAAwBN,EAAM1G,CAAK,EACnCA,EAAM,YAAc0G,EACpB1G,EAAM,aAAe2G,EAAYD,CAAI,GAGzC,OAAO1G,EAAM,QAAU2G,EAAY3G,EAAM,MAAM,CACjD,CACA,MAAMmH,GAAW/D,GACjB,SAAS4B,GAAchF,EAAOoH,EAAY,CACxC,MAAM7H,EAAMS,EAAM,IAClB,GAAIT,GAAOA,EAAI,GAAI,CACjB,IAAImH,EAAMlD,EAQV,IAPI4D,GACFV,EAAO1G,EAAM,GACbwD,EAASxD,EAAM,SAEf0G,EAAO1G,EAAM,YACbwD,EAASxD,EAAM,cAEV0G,GAAQA,IAASlD,GAClBkD,EAAK,WAAa,KAAQ,aAAa,eAAgBnH,EAAI,GAAG,EAClEmH,EAAOA,EAAK,YAEdnH,EAAI,IACN,CACF,CACA,SAASwF,GAAc9T,EAAQ+O,EAAOoE,EAAYF,EAAQV,EAAS,KAAM,CACvE,MAAM0C,EAAclG,EAAM,YAAcoE,EAAW,EAAE,EAC/CU,EAAe9E,EAAM,aAAeoE,EAAW,EAAE,EACvD,OAAA8B,EAAYvD,EAAc,EAAImC,EAC1B7T,IACFiT,EAAOgC,EAAajV,EAAQuS,CAAM,EAClCU,EAAOY,EAAc7T,EAAQuS,CAAM,GAE9BsB,CACT,CAEA,MAAMuC,UAAoC,UAAU,EAC9CC,UAAoC,UAAU,EACpD,SAASC,IAAqB,CAC5B,MAAMC,EAAQ,CACZ,UAAW,GACX,UAAW,GACX,aAAc,GACd,kBAAmC,GAAI,EAEzC,OAAAC,GAAU,IAAM,CACdD,EAAM,UAAY,EACpB,CAAC,EACDE,GAAgB,IAAM,CACpBF,EAAM,aAAe,EACvB,CAAC,EACMA,CACT,CACA,MAAMG,GAA0B,CAAC,SAAU,KAAK,EAC1CC,GAAgC,CACpC,KAAM,OACN,OAAQ,QACR,UAAW,QAEX,cAAeD,GACf,QAASA,GACT,aAAcA,GACd,iBAAkBA,GAElB,cAAeA,GACf,QAASA,GACT,aAAcA,GACd,iBAAkBA,GAElB,eAAgBA,GAChB,SAAUA,GACV,cAAeA,GACf,kBAAmBA,EACrB,EACME,GAAuBtL,GAAa,CACxC,MAAMuL,EAAUvL,EAAS,QACzB,OAAOuL,EAAQ,UAAYD,GAAoBC,EAAQ,SAAS,EAAIA,CACtE,EACMC,GAAqB,CACzB,KAAM,iBACN,MAAOH,GACP,MAAMjd,EAAO,CAAE,MAAAqd,GAAS,CACtB,MAAMzL,EAAW0E,GAAA,EACXuG,EAAQD,GAAA,EACd,MAAO,IAAM,CACX,MAAMtB,EAAW+B,EAAM,SAAWC,GAAyBD,EAAM,UAAW,EAAI,EAC1E5B,EAAQH,GAAYA,EAAS,OAASiC,GAAoBjC,CAAQ,EAGtE1J,EAAS,QAAU4L,KAAuB,OAE5C,GAAI,CAAC/B,EACH,OAEF,MAAMgC,EAAW5V,GAAM7H,CAAK,EACtB,CAAE,KAAA0d,GAASD,EAIjB,GAAIZ,EAAM,UACR,OAAOc,GAAiBlC,CAAK,EAE/B,MAAMmC,EAAaC,GAAgBpC,CAAK,EACxC,GAAI,CAACmC,EACH,OAAOD,GAAiBlC,CAAK,EAE/B,IAAIqC,EAAaC,GACfH,EACAH,EACAZ,EACAjL,EAECoM,GAAUF,EAAaE,CAAA,EAEtBJ,EAAW,OAASK,IACtBC,GAAmBN,EAAYE,CAAU,EAE3C,IAAIK,EAAgBvM,EAAS,SAAWiM,GAAgBjM,EAAS,OAAO,EACxE,GAAIuM,GAAiBA,EAAc,OAASF,IAAW,CAACG,GAAgBD,EAAeP,CAAU,GAAKV,GAAoBtL,CAAQ,EAAE,OAASqM,GAAS,CACpJ,IAAII,EAAeN,GACjBI,EACAV,EACAZ,EACAjL,CAAA,EAGF,GADAsM,GAAmBC,EAAeE,CAAY,EAC1CX,IAAS,UAAYE,EAAW,OAASK,GAC3C,OAAApB,EAAM,UAAY,GAClBwB,EAAa,WAAa,IAAM,CAC9BxB,EAAM,UAAY,GACZjL,EAAS,IAAI,MAAQ,GACzBA,EAAS,SAEX,OAAOyM,EAAa,WACpBF,EAAgB,MAClB,EACOR,GAAiBlC,CAAK,EACpBiC,IAAS,UAAYE,EAAW,OAASK,GAClDI,EAAa,WAAa,CAAC/hB,EAAIgiB,EAAaC,IAAiB,CAC3D,MAAMC,EAAqBC,GACzB5B,EACAsB,CAAA,EAEFK,EAAmB,OAAOL,EAAc,GAAG,CAAC,EAAIA,EAChD7hB,EAAGogB,EAAU,EAAI,IAAM,CACrB4B,EAAA,EACAhiB,EAAGogB,EAAU,EAAI,OACjB,OAAOoB,EAAW,aAClBK,EAAgB,MAClB,EACAL,EAAW,aAAe,IAAM,CAC9BS,EAAA,EACA,OAAOT,EAAW,aAClBK,EAAgB,MAClB,CACF,EAEAA,EAAgB,MAEpB,MAAWA,IACTA,EAAgB,QAElB,OAAO1C,CACT,CACF,CACF,EACA,SAAS8B,GAAoBjC,EAAU,CACrC,IAAIG,EAAQH,EAAS,CAAC,EACtB,GAAIA,EAAS,OAAS,GAEpB,UAAWvd,KAAKud,EACd,GAAIvd,EAAE,OAASkgB,GAAS,CAOtBxC,EAAQ1d,EAEwC,KAClD,EAGJ,OAAO0d,CACT,CACA,MAAMiD,GAAiBtB,GACvB,SAASqB,GAAuB5B,EAAOxH,EAAO,CAC5C,KAAM,CAAE,cAAAsJ,GAAkB9B,EAC1B,IAAI2B,EAAqBG,EAAc,IAAItJ,EAAM,IAAI,EACrD,OAAKmJ,IACHA,EAAqC,OAAO,OAAO,IAAI,EACvDG,EAAc,IAAItJ,EAAM,KAAMmJ,CAAkB,GAE3CA,CACT,CACA,SAAST,GAAuB1I,EAAOrV,EAAO6c,EAAOjL,EAAUgN,EAAW,CACxE,KAAM,CACJ,OAAAC,EACA,KAAAnB,EACA,UAAAoB,EAAY,GACZ,cAAAC,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,SAAAC,EACA,cAAAC,EACA,kBAAAC,CAAA,EACE1f,EACErE,EAAM,OAAO0Z,EAAM,GAAG,EACtBmJ,EAAqBC,GAAuB5B,EAAOxH,CAAK,EACxDsK,EAAW,CAAC5J,EAAM9N,IAAS,CAC/B8N,GAAQjE,GACNiE,EACAnE,EACA,EACA3J,CAAA,CAEJ,EACM2X,EAAgB,CAAC7J,EAAM9N,IAAS,CACpC,MAAMqD,EAAOrD,EAAK,CAAC,EACnB0X,EAAS5J,EAAM9N,CAAI,EACfvL,GAAQqZ,CAAI,EACVA,EAAK,MAAO8J,GAAUA,EAAM,QAAU,CAAC,GAAGvU,EAAA,EACrCyK,EAAK,QAAU,GACxBzK,EAAA,CAEJ,EACM0S,EAAQ,CACZ,KAAAN,EACA,UAAAoB,EACA,YAAYxiB,EAAI,CACd,IAAIyZ,EAAOgJ,EACX,GAAI,CAAClC,EAAM,UACT,GAAIgC,EACF9I,EAAOwJ,GAAkBR,cAKzBziB,EAAGogB,EAAU,GACfpgB,EAAGogB,EAAU,EACX,IAIJ,MAAMoD,EAAetB,EAAmB7iB,CAAG,EACvCmkB,GAAgB1B,GAAgB/I,EAAOyK,CAAY,GAAKA,EAAa,GAAGpD,EAAU,GACpFoD,EAAa,GAAGpD,EAAU,IAE5BiD,EAAS5J,EAAM,CAACzZ,CAAE,CAAC,CACrB,EACA,MAAMA,EAAI,CACR,GAAsBkiB,EAAmB7iB,CAAG,IAAM0Z,EAAO,OACzD,IAAIU,EAAOiJ,EACPe,EAAYd,EACZe,EAAad,EACjB,GAAI,CAACrC,EAAM,UACT,GAAIgC,EACF9I,EAAOyJ,GAAYR,EACnBe,EAAYN,GAAiBR,EAC7Be,EAAaN,GAAqBR,MAElC,QAGJ,IAAIe,EAAS,GACb3jB,EAAGqgB,EAAU,EAAKuD,GAAc,CAC1BD,IACJA,EAAS,GACLC,EACFP,EAASK,EAAY,CAAC1jB,CAAE,CAAC,EAEzBqjB,EAASI,EAAW,CAACzjB,CAAE,CAAC,EAEtB0hB,EAAM,cACRA,EAAM,eAER1hB,EAAGqgB,EAAU,EAAI,OACnB,EACA,MAAMrR,EAAOhP,EAAGqgB,EAAU,EAAE,KAAK,KAAM,EAAK,EACxC5G,EACF6J,EAAc7J,EAAM,CAACzZ,EAAIgP,CAAI,CAAC,EAE9BA,EAAA,CAEJ,EACA,MAAMhP,EAAIF,EAAQ,CAChB,MAAM4K,EAAO,OAAOqO,EAAM,GAAG,EAO7B,GANI/Y,EAAGqgB,EAAU,GACfrgB,EAAGqgB,EAAU,EACX,IAIAE,EAAM,aACR,OAAOzgB,IAETujB,EAASR,EAAe,CAAC7iB,CAAE,CAAC,EAC5B,IAAI2jB,EAAS,GACb3jB,EAAGogB,EAAU,EAAKwD,GAAc,CAC1BD,IACJA,EAAS,GACT7jB,IACI8jB,EACFP,EAASL,EAAkB,CAAChjB,CAAE,CAAC,EAE/BqjB,EAASN,EAAc,CAAC/iB,CAAE,CAAC,EAE7BA,EAAGogB,EAAU,EAAI,OACb8B,EAAmBxX,CAAI,IAAMqO,GAC/B,OAAOmJ,EAAmBxX,CAAI,EAElC,EACA,MAAMsE,EAAOhP,EAAGogB,EAAU,EAAE,KAAK,KAAM,EAAK,EAC5C8B,EAAmBxX,CAAI,EAAIqO,EACvB+J,EACFQ,EAAcR,EAAS,CAAC9iB,EAAIgP,CAAI,CAAC,EAEjCA,EAAA,CAEJ,EACA,MAAMiR,EAAQ,CACZ,MAAM4D,EAASpC,GACbxB,EACAvc,EACA6c,EACAjL,EACAgN,CAAA,EAEF,OAAIA,KAAqBuB,CAAM,EACxBA,CACT,GAEF,OAAOnC,CACT,CACA,SAASL,GAAiBtI,EAAO,CAC/B,GAAI+K,GAAY/K,CAAK,EACnB,OAAAA,EAAQgL,GAAWhL,CAAK,EACxBA,EAAM,SAAW,KACVA,CAEX,CACA,SAASwI,GAAgBxI,EAAO,CAC9B,GAAI,CAAC+K,GAAY/K,CAAK,EACpB,OAAI4C,GAAW5C,EAAM,IAAI,GAAKA,EAAM,SAC3BkI,GAAoBlI,EAAM,QAAQ,EAEpCA,EAET,GAAIA,EAAM,UACR,OAAOA,EAAM,UAAU,QAEzB,KAAM,CAAE,UAAAgG,EAAW,SAAAC,CAAA,EAAajG,EAChC,GAAIiG,EAAU,CACZ,GAAID,EAAY,GACd,OAAOC,EAAS,CAAC,EAEnB,GAAID,EAAY,IAAMte,GAAWue,EAAS,OAAO,EAC/C,OAAOA,EAAS,SAEpB,CACF,CACA,SAAS4C,GAAmB7I,EAAO2I,EAAO,CACxC,GAAI3I,EAAM,UAAY,GAAKA,EAAM,UAAW,CAC1CA,EAAM,WAAa2I,EACnB,MAAMb,EAAU9H,EAAM,UAAU,QAChC6I,GACEjG,GAAWkF,EAAQ,IAAI,GAAIU,GAAgBV,CAAO,GAAKA,EACvDa,CAAA,CAEJ,MAAW3I,EAAM,UAAY,KAC3BA,EAAM,UAAU,WAAa2I,EAAM,MAAM3I,EAAM,SAAS,EACxDA,EAAM,WAAW,WAAa2I,EAAM,MAAM3I,EAAM,UAAU,GAE1DA,EAAM,WAAa2I,CAEvB,CACA,SAASV,GAAyBhC,EAAUgF,EAAc,GAAOC,EAAW,CAC1E,IAAI7gB,EAAM,GACN8gB,EAAqB,EACzB,QAASjkB,EAAI,EAAGA,EAAI+e,EAAS,OAAQ/e,IAAK,CACxC,IAAIkf,EAAQH,EAAS/e,CAAC,EACtB,MAAMZ,EAAM4kB,GAAa,KAAO9E,EAAM,IAAM,OAAO8E,CAAS,EAAI,OAAO9E,EAAM,KAAO,KAAOA,EAAM,IAAMlf,CAAC,EACpGkf,EAAM,OAASgF,IACbhF,EAAM,UAAY,KAAK+E,IAC3B9gB,EAAMA,EAAI,OACR4d,GAAyB7B,EAAM,SAAU6E,EAAa3kB,CAAG,KAElD2kB,GAAe7E,EAAM,OAASwC,KACvCve,EAAI,KAAK/D,GAAO,KAAO0kB,GAAW5E,EAAO,CAAE,IAAA9f,EAAK,EAAI8f,CAAK,CAE7D,CACA,GAAI+E,EAAqB,EACvB,QAASjkB,EAAI,EAAGA,EAAImD,EAAI,OAAQnD,IAC9BmD,EAAInD,CAAC,EAAE,UAAY,GAGvB,OAAOmD,CACT,CAGA,SAASghB,GAAgBxQ,EAASyQ,EAAc,CAC9C,OAAO5jB,GAAWmT,CAAO,EAGA/T,GAAO,CAAE,KAAM+T,EAAQ,MAAQyQ,EAAc,CAAE,MAAOzQ,EAAS,EACpFA,CACN,CAaA,SAAS0Q,GAAkBhP,EAAU,CACnCA,EAAS,IAAM,CAACA,EAAS,IAAI,CAAC,EAAIA,EAAS,IAAI,CAAC,IAAM,IAAK,EAAG,CAAC,CACjE,CAGA,SAASiP,GAAellB,EAAK,CAC3B,MAAMY,EAAI+Z,GAAA,EACJ/I,EAAIG,GAAW,IAAI,EACzB,GAAInR,EAAG,CACL,MAAMukB,EAAOvkB,EAAE,OAASV,GAAYU,EAAE,KAAO,GAAKA,EAAE,KAIlD,OAAO,eAAeukB,EAAMnlB,EAAK,CAC/B,WAAY,GACZ,IAAK,IAAM4R,EAAE,MACb,IAAM3R,GAAQ2R,EAAE,MAAQ3R,CAAA,CACzB,CAEL,CASA,OAJsE2R,CAKxE,CACA,SAASwT,GAAiBD,EAAMnlB,EAAK,CACnC,IAAIqlB,EACJ,MAAO,CAAC,GAAGA,EAAO,OAAO,yBAAyBF,EAAMnlB,CAAG,IAAM,CAACqlB,EAAK,aACzE,CAEA,MAAMC,OAAuC,QAC7C,SAASC,GAAOC,EAAQC,EAAWrI,EAAgB1D,EAAOgM,EAAY,GAAO,CAC3E,GAAI3kB,GAAQykB,CAAM,EAAG,CACnBA,EAAO,QACL,CAAC5T,EAAGhR,IAAM2kB,GACR3T,EACA6T,IAAc1kB,GAAQ0kB,CAAS,EAAIA,EAAU7kB,CAAC,EAAI6kB,GAClDrI,EACA1D,EACAgM,CAAA,CACF,EAEF,MACF,CACA,GAAIC,GAAejM,CAAK,GAAK,CAACgM,EAAW,CACnChM,EAAM,UAAY,KAAOA,EAAM,KAAK,iBAAmBA,EAAM,UAAU,QAAQ,WACjF6L,GAAOC,EAAQC,EAAWrI,EAAgB1D,EAAM,UAAU,OAAO,EAEnE,MACF,CACA,MAAMkM,EAAWlM,EAAM,UAAY,EAAIE,GAA2BF,EAAM,SAAS,EAAIA,EAAM,GACrFhY,EAAQgkB,EAAY,KAAOE,EAC3B,CAAE,EAAGzR,EAAO,EAAGtC,GAAQ2T,EAOvBK,EAASJ,GAAaA,EAAU,EAChCN,EAAOhR,EAAM,OAASjU,GAAYiU,EAAM,KAAO,GAAKA,EAAM,KAC1D2R,EAAa3R,EAAM,WACnB4R,EAAgB7Z,GAAM4Z,CAAU,EAChCE,EAAiBF,IAAe5lB,GAAYG,GAAML,GAWlDolB,GAAiBD,EAAMnlB,CAAG,EACrB,GAEFc,GAAOilB,EAAe/lB,CAAG,EAE5BimB,EAAY,CAAC9T,EAAMnS,IAInB,EAAAA,GAAOolB,GAAiBD,EAAMnlB,CAAG,GAKvC,GAAI6lB,GAAU,MAAQA,IAAWhU,GAE/B,GADAqU,GAAwBT,CAAS,EAC7BpkB,GAASwkB,CAAM,EACjBV,EAAKU,CAAM,EAAI,KACXG,EAAeH,CAAM,IACvBC,EAAWD,CAAM,EAAI,cAEd7f,GAAM6f,CAAM,EAAG,CACxB,MAAMM,EAAgBV,EAClBQ,EAAUJ,EAAQM,EAAc,CAAC,IACnCN,EAAO,MAAQ,MAEbM,EAAc,IAAGhB,EAAKgB,EAAc,CAAC,EAAI,KAC/C,EAEF,GAAI/kB,GAAWyQ,CAAG,EAChBmE,GAAsBnE,EAAKsC,EAAO,GAAI,CAACzS,EAAOyjB,CAAI,CAAC,MAC9C,CACL,MAAMiB,EAAY/kB,GAASwQ,CAAG,EACxBwU,EAASrgB,GAAM6L,CAAG,EACxB,GAAIuU,GAAaC,EAAQ,CACvB,MAAMC,EAAQ,IAAM,CAClB,GAAId,EAAO,EAAG,CACZ,MAAMe,EAAWH,EAAYJ,EAAenU,CAAG,EAAIiU,EAAWjU,CAAG,EAAIsT,EAAKtT,CAAG,EAAIoU,EAAa,GAAK,CAACT,EAAO,EAAI3T,EAAI,MAAQsT,EAAKK,EAAO,CAAC,EACxI,GAAIE,EACF3kB,GAAQwlB,CAAQ,GAAK9lB,GAAO8lB,EAAUX,CAAQ,UAEzC7kB,GAAQwlB,CAAQ,EAaTA,EAAS,SAASX,CAAQ,GACpCW,EAAS,KAAKX,CAAQ,UAblBQ,EACFjB,EAAKtT,CAAG,EAAI,CAAC+T,CAAQ,EACjBI,EAAenU,CAAG,IACpBiU,EAAWjU,CAAG,EAAIsT,EAAKtT,CAAG,OAEvB,CACL,MAAMe,EAAS,CAACgT,CAAQ,EACpBK,EAAUpU,EAAK2T,EAAO,CAAC,IACzB3T,EAAI,MAAQe,GAEV4S,EAAO,IAAGL,EAAKK,EAAO,CAAC,EAAI5S,EACjC,CAKN,MAAWwT,GACTjB,EAAKtT,CAAG,EAAInQ,EACRskB,EAAenU,CAAG,IACpBiU,EAAWjU,CAAG,EAAInQ,IAEX2kB,IACLJ,EAAUpU,EAAK2T,EAAO,CAAC,IACzB3T,EAAI,MAAQnQ,GAEV8jB,EAAO,IAAGL,EAAKK,EAAO,CAAC,EAAI9jB,GAInC,EACA,GAAIA,EAAO,CACT,MAAMkU,EAAM,IAAM,CAChB0Q,EAAA,EACAhB,GAAiB,OAAOE,CAAM,CAChC,EACA5P,EAAI,GAAK,GACT0P,GAAiB,IAAIE,EAAQ5P,CAAG,EAChC8F,GAAsB9F,EAAKwH,CAAc,CAC3C,MACE8I,GAAwBV,CAAM,EAC9Bc,EAAA,CAEJ,CAGF,CACF,CACA,SAASJ,GAAwBV,EAAQ,CACvC,MAAMgB,EAAgBlB,GAAiB,IAAIE,CAAM,EAC7CgB,IACFA,EAAc,OAAS,EACvBlB,GAAiB,OAAOE,CAAM,EAElC,CA8rB4BniB,KAAgB,oBACjBA,GAAA,EAAgB,mBA0F3C,MAAMsiB,GAAkB/kB,GAAM,CAAC,CAACA,EAAE,KAAK,cA0LjC6jB,GAAe/K,GAAUA,EAAM,KAAK,cAgO1C,SAAS+M,GAAYrM,EAAMzP,EAAQ,CACjC+b,GAAsBtM,EAAM,IAAKzP,CAAM,CACzC,CACA,SAASgc,GAAcvM,EAAMzP,EAAQ,CACnC+b,GAAsBtM,EAAM,KAAMzP,CAAM,CAC1C,CACA,SAAS+b,GAAsBtM,EAAMxP,EAAMD,EAAS2P,GAAiB,CACnE,MAAMsM,EAAcxM,EAAK,QAAUA,EAAK,MAAQ,IAAM,CACpD,IAAInT,EAAU0D,EACd,KAAO1D,GAAS,CACd,GAAIA,EAAQ,cACV,OAEFA,EAAUA,EAAQ,MACpB,CACA,OAAOmT,EAAA,CACT,GAEA,GADAyM,GAAWjc,EAAMgc,EAAajc,CAAM,EAChCA,EAAQ,CACV,IAAI1D,EAAU0D,EAAO,OACrB,KAAO1D,GAAWA,EAAQ,QACpBwd,GAAYxd,EAAQ,OAAO,KAAK,GAClC6f,GAAsBF,EAAahc,EAAMD,EAAQ1D,CAAO,EAE1DA,EAAUA,EAAQ,MAEtB,CACF,CACA,SAAS6f,GAAsB1M,EAAMxP,EAAMD,EAAQoc,EAAe,CAChE,MAAMC,EAAWH,GACfjc,EACAwP,EACA2M,EACA,IAGFE,GAAY,IAAM,CAChBxmB,GAAOsmB,EAAcnc,CAAI,EAAGoc,CAAQ,CACtC,EAAGrc,CAAM,CACX,CASA,SAASkc,GAAWjc,EAAMwP,EAAMzP,EAAS2P,GAAiB4M,EAAU,GAAO,CACzE,GAAIvc,EAAQ,CACV,MAAM0X,EAAQ1X,EAAOC,CAAI,IAAMD,EAAOC,CAAI,EAAI,IACxCgc,EAAcxM,EAAK,QAAUA,EAAK,MAAQ,IAAI9N,IAAS,CAC3DxC,GAAA,EACA,MAAMkS,EAAQC,GAAmBtR,CAAM,EACjCpH,EAAM4S,GAA2BiE,EAAMzP,EAAQC,EAAM0B,CAAI,EAC/D,OAAA0P,EAAA,EACAjS,GAAA,EACOxG,CACT,GACA,OAAI2jB,EACF7E,EAAM,QAAQuE,CAAW,EAEzBvE,EAAM,KAAKuE,CAAW,EAEjBA,CACT,CAMF,CACA,MAAMO,GAAcC,GAAc,CAAChN,EAAMzP,EAAS2P,KAAoB,EAChE,CAACiB,IAAyB6L,IAAc,OAC1CP,GAAWO,EAAW,IAAI9a,IAAS8N,EAAK,GAAG9N,CAAI,EAAG3B,CAAM,CAE5D,EACM0c,GAAgBF,GAAW,IAAI,EAC/BhG,GAAYgG,GAAW,GAAG,EAC1BG,GAAiBH,GACrB,IACF,EACMI,GAAYJ,GAAW,GAAG,EAC1B/F,GAAkB+F,GACtB,KACF,EACMF,GAAcE,GAAW,IAAI,EAC7BK,GAAmBL,GACvB,IACF,EACMM,GAAoBN,GAAW,KAAK,EACpCO,GAAkBP,GAAW,KAAK,EACxC,SAASQ,GAAgBvN,EAAMzP,EAAS2P,GAAiB,CACvDuM,GAAW,KAAMzM,EAAMzP,CAAM,CAC/B,CAEA,MAAMid,GAAa,aACbC,GAAa,aACnB,SAASC,GAAiB3jB,EAAM4jB,EAAoB,CAClD,OAAOC,GAAaJ,GAAYzjB,EAAM,GAAM4jB,CAAkB,GAAK5jB,CACrE,CACA,MAAM8jB,GAAyC,OAAO,IAAI,OAAO,EACjE,SAASC,GAAwBC,EAAW,CAC1C,OAAI9mB,GAAS8mB,CAAS,EACbH,GAAaJ,GAAYO,EAAW,EAAK,GAAKA,EAE9CA,GAAaF,EAExB,CACA,SAASG,GAAiBjkB,EAAM,CAC9B,OAAO6jB,GAAaH,GAAY1jB,CAAI,CACtC,CACA,SAAS6jB,GAAapd,EAAMzG,EAAMkkB,EAAc,GAAMN,EAAqB,GAAO,CAChF,MAAM9R,EAAWwC,IAA4B6B,GAC7C,GAAIrE,EAAU,CACZ,MAAMqS,EAAYrS,EAAS,KAC3B,GAAIrL,IAASgd,GAAY,CACvB,MAAMW,EAAWC,GACfF,EACA,IAEF,GAAIC,IAAaA,IAAapkB,GAAQokB,IAAapmB,GAASgC,CAAI,GAAKokB,IAAahmB,GAAWJ,GAASgC,CAAI,CAAC,GACzG,OAAOmkB,CAEX,CACA,MAAM/kB,EAGJklB,GAAQxS,EAASrL,CAAI,GAAK0d,EAAU1d,CAAI,EAAGzG,CAAI,GAC/CskB,GAAQxS,EAAS,WAAWrL,CAAI,EAAGzG,CAAI,EAEzC,MAAI,CAACZ,GAAOwkB,EACHO,EAOF/kB,CACT,CAKF,CACA,SAASklB,GAAQC,EAAUvkB,EAAM,CAC/B,OAAOukB,IAAaA,EAASvkB,CAAI,GAAKukB,EAASvmB,GAASgC,CAAI,CAAC,GAAKukB,EAASnmB,GAAWJ,GAASgC,CAAI,CAAC,CAAC,EACvG,CAEA,SAASwkB,GAAWtW,EAAQuW,EAAY3mB,EAAOmD,EAAO,CACpD,IAAIrB,EACJ,MAAM8kB,EAAS5mB,EACT6mB,EAAgB/nB,GAAQsR,CAAM,EACpC,GAAIyW,GAAiBznB,GAASgR,CAAM,EAAG,CACrC,MAAM0W,EAAwBD,GAAiBhd,GAAWuG,CAAM,EAChE,IAAI/E,EAAY,GACZ0b,EAAmB,GACnBD,IACFzb,EAAY,CAAC1B,GAAUyG,CAAM,EAC7B2W,EAAmBnd,GAAWwG,CAAM,EACpCA,EAASpG,GAAiBoG,CAAM,GAElCtO,EAAM,IAAI,MAAMsO,EAAO,MAAM,EAC7B,QAASzR,EAAI,EAAGiG,EAAIwL,EAAO,OAAQzR,EAAIiG,EAAGjG,IACxCmD,EAAInD,CAAC,EAAIgoB,EACPtb,EAAY0b,EAAmBjd,GAAWC,GAAWqG,EAAOzR,CAAC,CAAC,CAAC,EAAIoL,GAAWqG,EAAOzR,CAAC,CAAC,EAAIyR,EAAOzR,CAAC,EACnGA,EACA,OACAioB,CAAkB,CAGxB,SAAW,OAAOxW,GAAW,SAMpB,CACLtO,EAAM,IAAI,MAAMsO,CAAM,EACtB,QAASzR,EAAI,EAAGA,EAAIyR,EAAQzR,IAC1BmD,EAAInD,CAAC,EAAIgoB,EAAWhoB,EAAI,EAAGA,EAAG,OAAQioB,CAAmB,CAE7D,SACStnB,GAAS8Q,CAAM,EACxB,GAAIA,EAAO,OAAO,QAAQ,EACxBtO,EAAM,MAAM,KACVsO,EACA,CAAC7O,EAAM5C,IAAMgoB,EAAWplB,EAAM5C,EAAG,OAAQioB,CAAmB,OAEzD,CACL,MAAMI,EAAO,OAAO,KAAK5W,CAAM,EAC/BtO,EAAM,IAAI,MAAMklB,EAAK,MAAM,EAC3B,QAASroB,EAAI,EAAGiG,EAAIoiB,EAAK,OAAQroB,EAAIiG,EAAGjG,IAAK,CAC3C,MAAMZ,EAAMipB,EAAKroB,CAAC,EAClBmD,EAAInD,CAAC,EAAIgoB,EAAWvW,EAAOrS,CAAG,EAAGA,EAAKY,EAAGioB,CAAmB,CAC9D,CACF,MAEA9kB,EAAM,GAKR,OAAOA,CACT,CAEA,SAASmlB,GAAYxH,EAAOyH,EAAc,CACxC,QAASvoB,EAAI,EAAGA,EAAIuoB,EAAa,OAAQvoB,IAAK,CAC5C,MAAMwoB,EAAOD,EAAavoB,CAAC,EAC3B,GAAIG,GAAQqoB,CAAI,EACd,QAASC,EAAI,EAAGA,EAAID,EAAK,OAAQC,IAC/B3H,EAAM0H,EAAKC,CAAC,EAAE,IAAI,EAAID,EAAKC,CAAC,EAAE,QAEvBD,IACT1H,EAAM0H,EAAK,IAAI,EAAIA,EAAK,IAAM,IAAI9c,IAAS,CACzC,MAAM/I,EAAM6lB,EAAK,GAAG,GAAG9c,CAAI,EAC3B,OAAI/I,IAAKA,EAAI,IAAM6lB,EAAK,KACjB7lB,CACT,EAAI6lB,EAAK,GAEb,CACA,OAAO1H,CACT,CAEA,SAAS4H,GAAW5H,EAAOvd,EAAME,EAAOklB,EAAUC,EAAWC,EAAW,CAEtE,GADIplB,GAAS,OAAMA,EAAQ,IACvBoU,GAAyB,IAAMA,GAAyB,QAAUkN,GAAelN,GAAyB,MAAM,GAAKA,GAAyB,OAAO,GAAI,CAC3J,MAAMiR,EAA6FrlB,EAC7FslB,EAAW,OAAO,KAAKD,CAAS,EAAE,OAAS,EACjD,OAAIvlB,IAAS,YAAWulB,EAAU,KAAOvlB,GAClCylB,IAAaC,GAClB/E,GACA,KACA,CAACgF,GAAY,OAAQJ,EAAWH,GAAYA,EAAA,CAAU,CAAC,EACvDI,EAAW,GAAK,GAEpB,CACA,IAAIP,EAAO1H,EAAMvd,CAAI,EAOjBilB,GAAQA,EAAK,KACfA,EAAK,GAAK,IAEZ,MAAM9P,EAAgBC,GAAW,OACjCqQ,EAAA,EACA,IAAIG,EACJ,GAAI,CACF,MAAMC,EAAmBZ,GAAQa,GAAiBb,EAAK/kB,CAAK,CAAC,EACvD6lB,EAAU7lB,EAAM,KAAOolB,GAE7BO,GAAoBA,EAAiB,IACrCD,EAAWF,GACT/E,GACA,CACE,KAAMoF,GAAW,CAAC5oB,GAAS4oB,CAAO,EAAIA,EAAU,IAAI/lB,CAAI,KACvD,CAAC6lB,GAAoBT,EAAW,MAAQ,KAE3CS,IAAqBT,EAAWA,EAAA,EAAa,IAC7CS,GAAoBtI,EAAM,IAAM,EAAI,GAAK,GAE7C,OAAS3Y,EAAK,CACZ,QAASnI,EAAI2Y,GAAW,OAAQ3Y,EAAI0Y,EAAe1Y,IAAK4Y,GAAA,EACxD,MAAMzQ,CACR,SACMqgB,GAAQA,EAAK,KACfA,EAAK,GAAK,GAEd,CACA,MAAI,CAACI,GAAaO,EAAS,UACzBA,EAAS,aAAe,CAACA,EAAS,QAAU,IAAI,GAE3CA,CACT,CACA,SAASE,GAAiBE,EAAQ,CAChC,OAAOA,EAAO,KAAMrK,GACbsK,GAAQtK,CAAK,EACd,EAAAA,EAAM,OAASwC,IACfxC,EAAM,OAASgF,IAAY,CAACmF,GAAiBnK,EAAM,QAAQ,GAFnC,EAK7B,EAAIqK,EAAS,IAChB,CAEA,SAASE,GAAWtnB,EAAKunB,EAAyB,CAChD,MAAMvmB,EAAM,GAKZ,UAAW/D,KAAO+C,EAChBgB,EAAIumB,GAA2B,QAAQ,KAAKtqB,CAAG,EAAI,MAAMA,CAAG,GAAKwC,GAAaxC,CAAG,CAAC,EAAI+C,EAAI/C,CAAG,EAE/F,OAAO+D,CACT,CAEA,MAAMwmB,GAAqB3pB,GACpBA,EACD4pB,GAAoB5pB,CAAC,EAAUgZ,GAA2BhZ,CAAC,EACxD2pB,GAAkB3pB,EAAE,MAAM,EAFlB,KAiCX6pB,GAGYjqB,GAAuB,OAAO,OAAO,IAAI,EAAG,CAC1D,EAAII,GAAMA,EACV,IAAMA,GAA4EA,EAAE,MAAM,GAC1F,MAAQA,GAAMA,EAAE,KAChB,OAASA,GAA6EA,EAAE,MACxF,OAASA,GAA6EA,EAAE,MACxF,OAASA,GAA6EA,EAAE,MACxF,MAAQA,GAA4EA,EAAE,KACtF,QAAUA,GAAM2pB,GAAkB3pB,EAAE,MAAM,EAC1C,MAAQA,GAAM2pB,GAAkB3pB,EAAE,IAAI,EACtC,MAAQA,GAAMA,EAAE,GAChB,MAAQA,GAAMA,EAAE,KAChB,SAAWA,GAA4B8pB,GAAqB9pB,CAAC,EAC7D,aAAeA,GAAMA,EAAE,IAAMA,EAAE,EAAI,IAAM,CACvCoX,GAASpX,EAAE,MAAM,CACnB,GACA,UAAYA,GAAMA,EAAE,IAAMA,EAAE,EAAI0W,GAAS,KAAK1W,EAAE,KAAK,GACrD,OAASA,GAA4Bib,GAAc,KAAKjb,CAAC,CAAI,CAC9D,EAGG+pB,GAAkB,CAACzJ,EAAOlhB,IAAQkhB,IAAUhhB,IAAa,CAACghB,EAAM,iBAAmBpgB,GAAOogB,EAAOlhB,CAAG,EACpG4qB,GAA8B,CAClC,IAAI,CAAE,EAAG3U,CAAA,EAAYjW,EAAK,CACxB,GAAIA,IAAQ,WACV,MAAO,GAET,KAAM,CAAE,IAAAiZ,EAAK,WAAA6M,EAAY,KAAA+E,EAAM,MAAAxmB,EAAO,YAAAymB,EAAa,KAAAlgB,EAAM,WAAAmgB,GAAe9U,EAIxE,GAAIjW,EAAI,CAAC,IAAM,IAAK,CAClB,MAAMkD,EAAI4nB,EAAY9qB,CAAG,EACzB,GAAIkD,IAAM,OACR,OAAQA,EAAA,CACN,IAAK,GACH,OAAO4iB,EAAW9lB,CAAG,EACvB,IAAK,GACH,OAAO6qB,EAAK7qB,CAAG,EACjB,IAAK,GACH,OAAOiZ,EAAIjZ,CAAG,EAChB,IAAK,GACH,OAAOqE,EAAMrE,CAAG,MAEtB,IAAW2qB,GAAgB7E,EAAY9lB,CAAG,EACxC,OAAA8qB,EAAY9qB,CAAG,EAAI,EACZ8lB,EAAW9lB,CAAG,KACW6qB,IAAS3qB,IAAaY,GAAO+pB,EAAM7qB,CAAG,EACtE,OAAA8qB,EAAY9qB,CAAG,EAAI,EACZ6qB,EAAK7qB,CAAG,EACjB,GAAWc,GAAOuD,EAAOrE,CAAG,EAC1B,OAAA8qB,EAAY9qB,CAAG,EAAI,EACZqE,EAAMrE,CAAG,KACPiZ,IAAQ/Y,IAAaY,GAAOmY,EAAKjZ,CAAG,EAC7C,OAAA8qB,EAAY9qB,CAAG,EAAI,EACZiZ,EAAIjZ,CAAG,EACmBgrB,KACjCF,EAAY9qB,CAAG,EAAI,GAEvB,CACA,MAAMirB,EAAeR,GAAoBzqB,CAAG,EAC5C,IAAIkrB,EAAWC,EACf,GAAIF,EACF,OAAIjrB,IAAQ,UACV0K,GAAMuL,EAAS,MAAO,MAAO,EAAE,EAK1BgV,EAAahV,CAAQ,EAC9B,IAEGiV,EAAYtgB,EAAK,gBAAkBsgB,EAAYA,EAAUlrB,CAAG,GAE7D,OAAOkrB,KACEjS,IAAQ/Y,IAAaY,GAAOmY,EAAKjZ,CAAG,EAC7C,OAAA8qB,EAAY9qB,CAAG,EAAI,EACZiZ,EAAIjZ,CAAG,EAChB,GAEEmrB,EAAmBJ,EAAW,OAAO,iBAAkBjqB,GAAOqqB,EAAkBnrB,CAAG,EAGjF,OAAOmrB,EAAiBnrB,CAAG,CAiBjC,EACA,IAAI,CAAE,EAAGiW,CAAA,EAAYjW,EAAK0B,EAAO,CAC/B,KAAM,CAAE,KAAAmpB,EAAM,WAAA/E,EAAY,IAAA7M,CAAA,EAAQhD,EAClC,OAAI0U,GAAgB7E,EAAY9lB,CAAG,GACjC8lB,EAAW9lB,CAAG,EAAI0B,EACX,IAIyBmpB,IAAS3qB,IAAaY,GAAO+pB,EAAM7qB,CAAG,GACtE6qB,EAAK7qB,CAAG,EAAI0B,EACL,IACEZ,GAAOmV,EAAS,MAAOjW,CAAG,GAIjCA,EAAI,CAAC,IAAM,KAAOA,EAAI,MAAM,CAAC,IAAKiW,EAI7B,IASLgD,EAAIjZ,CAAG,EAAI0B,EAGR,GACT,EACA,IAAI,CACF,EAAG,CAAE,KAAAmpB,EAAM,WAAA/E,EAAY,YAAAgF,EAAa,IAAA7R,EAAK,WAAA8R,EAAY,MAAA1mB,EAAO,KAAAuG,CAAA,CAAK,EAChE5K,EAAK,CACN,IAAIorB,EACJ,MAAO,CAAC,EAAEN,EAAY9qB,CAAG,GAA4B6qB,IAAS3qB,IAAaF,EAAI,CAAC,IAAM,KAAOc,GAAO+pB,EAAM7qB,CAAG,GAAK2qB,GAAgB7E,EAAY9lB,CAAG,GAAKc,GAAOuD,EAAOrE,CAAG,GAAKc,GAAOmY,EAAKjZ,CAAG,GAAKc,GAAO2pB,GAAqBzqB,CAAG,GAAKc,GAAOiqB,EAAW,OAAO,iBAAkB/qB,CAAG,IAAMorB,EAAaxgB,EAAK,eAAiBwgB,EAAWprB,CAAG,EAC3U,EACA,eAAe2K,EAAQ3K,EAAKqrB,EAAY,CACtC,OAAIA,EAAW,KAAO,KACpB1gB,EAAO,EAAE,YAAY3K,CAAG,EAAI,EACnBc,GAAOuqB,EAAY,OAAO,GACnC,KAAK,IAAI1gB,EAAQ3K,EAAKqrB,EAAW,MAAO,IAAI,EAEvC,QAAQ,eAAe1gB,EAAQ3K,EAAKqrB,CAAU,CACvD,CACF,EA+HA,SAASC,IAAW,CAClB,OAAOC,GAAqB,EAAE,KAChC,CACA,SAASC,IAAW,CAClB,OAAOD,GAAqB,EAAE,KAChC,CACA,SAASA,GAAWE,EAAoB,CACtC,MAAM7qB,EAAI+Z,GAAA,EAIV,OAAO/Z,EAAE,eAAiBA,EAAE,aAAe8qB,GAAmB9qB,CAAC,EACjE,CACA,SAAS+qB,GAAsBtnB,EAAO,CACpC,OAAOtD,GAAQsD,CAAK,EAAIA,EAAM,OAC5B,CAACZ,EAAY8T,KAAO9T,EAAW8T,CAAC,EAAI,KAAM9T,GAC1C,EAAC,EACCY,CACN,CAuBA,SAASunB,GAAYhnB,EAAGC,EAAG,CACzB,MAAI,CAACD,GAAK,CAACC,EAAUD,GAAKC,EACtB9D,GAAQ6D,CAAC,GAAK7D,GAAQ8D,CAAC,EAAUD,EAAE,OAAOC,CAAC,EACxCrE,GAAO,GAAImrB,GAAsB/mB,CAAC,EAAG+mB,GAAsB9mB,CAAC,CAAC,CACtE,CAiEA,IAAImmB,GAAoB,GACxB,SAASa,GAAa5V,EAAU,CAC9B,MAAM1B,EAAUmW,GAAqBzU,CAAQ,EACvC6F,EAAa7F,EAAS,MACtBgD,EAAMhD,EAAS,IACrB+U,GAAoB,GAChBzW,EAAQ,cACVyP,GAASzP,EAAQ,aAAc0B,EAAU,IAAI,EAE/C,KAAM,CAEJ,KAAM6V,EACN,SAAUC,EACV,QAAAC,EACA,MAAOC,EACP,QAASC,EACT,OAAQC,EAER,QAAAC,EACA,YAAAC,EACA,QAAAC,EACA,aAAAC,EACA,QAAAC,EACA,UAAAC,EACA,YAAAC,EACA,cAAAC,EACA,cAAAC,EACA,UAAAC,EACA,UAAAC,EACA,OAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,eAAAC,EAEA,OAAAC,EACA,aAAAC,EAEA,WAAAC,EACA,WAAA3T,EACA,QAAA4T,CAAA,EACEhZ,EAaJ,GAHI4X,GACFqB,GAAkBrB,EAAelT,EAVqE,IAUxC,EAE5D+S,EACF,UAAWhsB,KAAOgsB,EAAS,CACzB,MAAMyB,GAAgBzB,EAAQhsB,CAAG,EAC7BoB,GAAWqsB,EAAa,IASxBxU,EAAIjZ,CAAG,EAAIytB,GAAc,KAAK3R,CAAU,EAU9C,CAEF,GAAIgQ,EAAa,CAMf,MAAMjB,EAAOiB,EAAY,KAAKhQ,EAAYA,CAAU,EAM/Cva,GAASspB,CAAI,IAGhB5U,EAAS,KAAOjF,GAAS6Z,CAAI,EAejC,CAEA,GADAG,GAAoB,GAChBe,EACF,UAAW/rB,KAAO+rB,EAAiB,CACjC,MAAM2B,GAAM3B,EAAgB/rB,CAAG,EACzBuQ,GAAMnP,GAAWssB,EAAG,EAAIA,GAAI,KAAK5R,EAAYA,CAAU,EAAI1a,GAAWssB,GAAI,GAAG,EAAIA,GAAI,IAAI,KAAK5R,EAAYA,CAAU,EAAI1b,GAIxHuS,GAAM,CAACvR,GAAWssB,EAAG,GAAKtsB,GAAWssB,GAAI,GAAG,EAAIA,GAAI,IAAI,KAAK5R,CAAU,EAIzE1b,GACEgC,EAAIiH,GAAS,CACjB,IAAAkH,GACA,IAAAoC,EAAA,CACD,EACD,OAAO,eAAesG,EAAKjZ,EAAK,CAC9B,WAAY,GACZ,aAAc,GACd,IAAK,IAAMoC,EAAE,MACb,IAAMmE,IAAMnE,EAAE,MAAQmE,EAAA,CACvB,CAIH,CAEF,GAAI0lB,EACF,UAAWjsB,KAAOisB,EAChB0B,GAAc1B,EAAajsB,CAAG,EAAGiZ,EAAK6C,EAAY9b,CAAG,EAGzD,GAAIksB,EAAgB,CAClB,MAAM3R,EAAWnZ,GAAW8qB,CAAc,EAAIA,EAAe,KAAKpQ,CAAU,EAAIoQ,EAChF,QAAQ,QAAQ3R,CAAQ,EAAE,QAASva,IAAQ,CACzCqa,GAAQra,GAAKua,EAASva,EAAG,CAAC,CAC5B,CAAC,CACH,CACIosB,GACFpI,GAASoI,EAASnW,EAAU,GAAG,EAEjC,SAAS2X,EAAsBC,EAAUzT,GAAM,CACzCrZ,GAAQqZ,EAAI,EACdA,GAAK,QAAS0T,IAAUD,EAASC,GAAM,KAAKhS,CAAU,CAAC,CAAC,EAC/C1B,IACTyT,EAASzT,GAAK,KAAK0B,CAAU,CAAC,CAElC,CAaA,GAZA8R,EAAsBvG,GAAegF,CAAW,EAChDuB,EAAsBzM,GAAWmL,CAAO,EACxCsB,EAAsBtG,GAAgBiF,CAAY,EAClDqB,EAAsBrG,GAAWiF,CAAO,EACxCoB,EAAsBnH,GAAagG,CAAS,EAC5CmB,EAAsBjH,GAAe+F,CAAW,EAChDkB,EAAsBjG,GAAiBuF,CAAa,EACpDU,EAAsBlG,GAAiBsF,CAAa,EACpDY,EAAsBnG,GAAmBwF,CAAe,EACxDW,EAAsBxM,GAAiBwL,CAAa,EACpDgB,EAAsB3G,GAAa6F,CAAS,EAC5Cc,EAAsBpG,GAAkB2F,CAAc,EAClDpsB,GAAQqsB,CAAM,EAChB,GAAIA,EAAO,OAAQ,CACjB,MAAMW,EAAU9X,EAAS,UAAYA,EAAS,QAAU,IACxDmX,EAAO,QAASptB,IAAQ,CACtB,OAAO,eAAe+tB,EAAS/tB,GAAK,CAClC,IAAK,IAAM8b,EAAW9b,EAAG,EACzB,IAAMC,IAAQ6b,EAAW9b,EAAG,EAAIC,GAChC,WAAY,GACb,CACH,CAAC,CACH,MAAYgW,EAAS,UACnBA,EAAS,QAAU,IAGnB8W,GAAU9W,EAAS,SAAW7V,KAChC6V,EAAS,OAAS8W,GAEhBM,GAAgB,OAClBpX,EAAS,aAAeoX,GAEtBC,MAAqB,WAAaA,GAClC3T,MAAqB,WAAaA,GAClCwT,GACFlI,GAAkBhP,CAAQ,CAE9B,CACA,SAASuX,GAAkBrB,EAAelT,EAAK+U,EAA2B5tB,GAAM,CAC1EW,GAAQorB,CAAa,IACvBA,EAAgB8B,GAAgB9B,CAAa,GAE/C,UAAWnsB,KAAOmsB,EAAe,CAC/B,MAAMuB,EAAMvB,EAAcnsB,CAAG,EAC7B,IAAIgnB,EACAzlB,GAASmsB,CAAG,EACV,YAAaA,EACf1G,EAAWvM,GACTiT,EAAI,MAAQ1tB,EACZ0tB,EAAI,QACJ,IAGF1G,EAAWvM,GAAOiT,EAAI,MAAQ1tB,CAAG,EAGnCgnB,EAAWvM,GAAOiT,CAAG,EAEnB1nB,GAAMghB,CAAQ,EAChB,OAAO,eAAe/N,EAAKjZ,EAAK,CAC9B,WAAY,GACZ,aAAc,GACd,IAAK,IAAMgnB,EAAS,MACpB,IAAMzgB,GAAMygB,EAAS,MAAQzgB,CAAA,CAC9B,EAED0S,EAAIjZ,CAAG,EAAIgnB,CAKf,CACF,CACA,SAAShD,GAAS5J,EAAMnE,EAAUrL,EAAM,CACtCuL,GACEpV,GAAQqZ,CAAI,EAAIA,EAAK,IAAK8T,GAAMA,EAAE,KAAKjY,EAAS,KAAK,CAAC,EAAImE,EAAK,KAAKnE,EAAS,KAAK,EAClFA,EACArL,CAAA,CAEJ,CACA,SAAS+iB,GAAchiB,EAAKsN,EAAK6C,EAAY9b,EAAK,CAChD,IAAI6T,EAAS7T,EAAI,SAAS,GAAG,EAAI+b,GAAiBD,EAAY9b,CAAG,EAAI,IAAM8b,EAAW9b,CAAG,EACzF,GAAIqB,GAASsK,CAAG,EAAG,CACjB,MAAMwiB,EAAUlV,EAAItN,CAAG,EACnBvK,GAAW+sB,CAAO,GAElB9Z,GAAMR,EAAQsa,CAAO,CAK3B,SAAW/sB,GAAWuK,CAAG,EAErB0I,GAAMR,EAAQlI,EAAI,KAAKmQ,CAAU,CAAC,UAE3Bva,GAASoK,CAAG,EACrB,GAAI5K,GAAQ4K,CAAG,EACbA,EAAI,QAASiG,GAAM+b,GAAc/b,EAAGqH,EAAK6C,EAAY9b,CAAG,CAAC,MACpD,CACL,MAAMmuB,EAAU/sB,GAAWuK,EAAI,OAAO,EAAIA,EAAI,QAAQ,KAAKmQ,CAAU,EAAI7C,EAAItN,EAAI,OAAO,EACpFvK,GAAW+sB,CAAO,GACpB9Z,GAAMR,EAAQsa,EAASxiB,CAAG,CAI9B,CAIJ,CACA,SAAS+e,GAAqBzU,EAAU,CACtC,MAAMmY,EAAOnY,EAAS,KAChB,CAAE,OAAAoY,EAAQ,QAASC,CAAA,EAAmBF,EACtC,CACJ,OAAQG,EACR,aAActsB,EACd,OAAQ,CAAE,sBAAAusB,CAAA,CAAsB,EAC9BvY,EAAS,WACP4S,EAAS5mB,EAAM,IAAImsB,CAAI,EAC7B,IAAIK,EACJ,OAAI5F,EACF4F,EAAW5F,EACF,CAAC0F,EAAa,QAAU,CAACF,GAAU,CAACC,EAE3CG,EAAWL,GAGbK,EAAW,GACPF,EAAa,QACfA,EAAa,QACVG,GAAMC,GAAaF,EAAUC,EAAGF,EAAuB,EAAI,GAGhEG,GAAaF,EAAUL,EAAMI,CAAqB,GAEhDjtB,GAAS6sB,CAAI,GACfnsB,EAAM,IAAImsB,EAAMK,CAAQ,EAEnBA,CACT,CACA,SAASE,GAAaC,EAAIC,EAAMC,EAAQC,EAAU,GAAO,CACvD,KAAM,CAAE,OAAAV,EAAQ,QAASC,CAAA,EAAmBO,EACxCP,GACFK,GAAaC,EAAIN,EAAgBQ,EAAQ,EAAI,EAE3CT,GACFA,EAAO,QACJK,GAAMC,GAAaC,EAAIF,EAAGI,EAAQ,EAAI,GAG3C,UAAW9uB,KAAO6uB,EAChB,GAAI,EAAAE,GAAW/uB,IAAQ,UAIhB,CACL,MAAMgvB,EAAQC,GAA0BjvB,CAAG,GAAK8uB,GAAUA,EAAO9uB,CAAG,EACpE4uB,EAAG5uB,CAAG,EAAIgvB,EAAQA,EAAMJ,EAAG5uB,CAAG,EAAG6uB,EAAK7uB,CAAG,CAAC,EAAI6uB,EAAK7uB,CAAG,CACxD,CAEF,OAAO4uB,CACT,CACA,MAAMK,GAA4B,CAChC,KAAMC,GACN,MAAOC,GACP,MAAOA,GAEP,QAASC,GACT,SAAUA,GAEV,aAAcC,GACd,QAASA,GACT,YAAaA,GACb,QAASA,GACT,aAAcA,GACd,QAASA,GACT,cAAeA,GACf,cAAeA,GACf,UAAWA,GACX,UAAWA,GACX,UAAWA,GACX,YAAaA,GACb,cAAeA,GACf,eAAgBA,GAEhB,WAAYD,GACZ,WAAYA,GAEZ,MAAOE,GAEP,QAASJ,GACT,OAAQK,EACV,EACA,SAASL,GAAYN,EAAIC,EAAM,CAC7B,OAAKA,EAGAD,EAGE,UAAwB,CAC7B,OAAQpuB,GACNY,GAAWwtB,CAAE,EAAIA,EAAG,KAAK,KAAM,IAAI,EAAIA,EACvCxtB,GAAWytB,CAAI,EAAIA,EAAK,KAAK,KAAM,IAAI,EAAIA,CAAA,CAE/C,EAPSA,EAHAD,CAWX,CACA,SAASW,GAAYX,EAAIC,EAAM,CAC7B,OAAOO,GAAmBnB,GAAgBW,CAAE,EAAGX,GAAgBY,CAAI,CAAC,CACtE,CACA,SAASZ,GAAgBtiB,EAAK,CAC5B,GAAI5K,GAAQ4K,CAAG,EAAG,CAChB,MAAMpI,EAAM,GACZ,QAAS3C,EAAI,EAAGA,EAAI+K,EAAI,OAAQ/K,IAC9B2C,EAAIoI,EAAI/K,CAAC,CAAC,EAAI+K,EAAI/K,CAAC,EAErB,OAAO2C,CACT,CACA,OAAOoI,CACT,CACA,SAAS0jB,GAAaT,EAAIC,EAAM,CAC9B,OAAOD,EAAK,CAAC,GAAG,IAAI,IAAI,GAAG,OAAOA,EAAIC,CAAI,CAAC,CAAC,EAAIA,CAClD,CACA,SAASO,GAAmBR,EAAIC,EAAM,CACpC,OAAOD,EAAKpuB,GAAuB,OAAO,OAAO,IAAI,EAAGouB,EAAIC,CAAI,EAAIA,CACtE,CACA,SAASM,GAAyBP,EAAIC,EAAM,CAC1C,OAAID,EACE7tB,GAAQ6tB,CAAE,GAAK7tB,GAAQ8tB,CAAI,EACtB,CAAC,GAAmB,IAAI,IAAI,CAAC,GAAGD,EAAI,GAAGC,CAAI,CAAC,CAAC,EAE/CruB,GACW,OAAO,OAAO,IAAI,EAClCmrB,GAAsBiD,CAAE,EACxBjD,GAAsBkD,GAAsB,EAAE,GAGzCA,CAEX,CACA,SAASS,GAAkBV,EAAIC,EAAM,CACnC,GAAI,CAACD,EAAI,OAAOC,EAChB,GAAI,CAACA,EAAM,OAAOD,EAClB,MAAMY,EAAShvB,GAAuB,OAAO,OAAO,IAAI,EAAGouB,CAAE,EAC7D,UAAW5uB,KAAO6uB,EAChBW,EAAOxvB,CAAG,EAAIqvB,GAAaT,EAAG5uB,CAAG,EAAG6uB,EAAK7uB,CAAG,CAAC,EAE/C,OAAOwvB,CACT,CAEA,SAASC,IAAmB,CAC1B,MAAO,CACL,IAAK,KACL,OAAQ,CACN,YAAapvB,GACb,YAAa,GACb,iBAAkB,GAClB,sBAAuB,GACvB,aAAc,OACd,YAAa,OACb,gBAAiB,EAAC,EAEpB,OAAQ,GACR,WAAY,GACZ,WAAY,GACZ,SAA0B,OAAO,OAAO,IAAI,EAC5C,iBAAkC,QAClC,eAAgC,QAChC,eAAgC,OAAQ,CAE5C,CACA,IAAIqvB,GAAQ,EACZ,SAASC,GAAa5C,EAAQ6C,EAAS,CACrC,OAAO,SAAmBC,EAAeC,EAAY,KAAM,CACpD1uB,GAAWyuB,CAAa,IAC3BA,EAAgBrvB,GAAO,GAAIqvB,CAAa,GAEtCC,GAAa,MAAQ,CAACvuB,GAASuuB,CAAS,IAE1CA,EAAY,MAEd,MAAMC,EAAUN,GAAA,EACVO,MAAuC,QACvCC,EAAmB,GACzB,IAAIC,EAAY,GAChB,MAAMC,EAAMJ,EAAQ,IAAM,CACxB,KAAML,KACN,WAAYG,EACZ,OAAQC,EACR,WAAY,KACZ,SAAUC,EACV,UAAW,KACX,QAAAK,GACA,IAAI,QAAS,CACX,OAAOL,EAAQ,MACjB,EACA,IAAI,OAAOxpB,EAAG,CAMd,EACA,IAAI8pB,KAAW9b,EAAS,CACtB,OAAIyb,EAAiB,IAAIK,CAAM,IAEpBA,GAAUjvB,GAAWivB,EAAO,OAAO,GAC5CL,EAAiB,IAAIK,CAAM,EAC3BA,EAAO,QAAQF,EAAK,GAAG5b,CAAO,GACrBnT,GAAWivB,CAAM,IAC1BL,EAAiB,IAAIK,CAAM,EAC3BA,EAAOF,EAAK,GAAG5b,CAAO,IAMjB4b,CACT,EACA,MAAMG,EAAO,CAET,OAAKP,EAAQ,OAAO,SAASO,CAAK,GAChCP,EAAQ,OAAO,KAAKO,CAAK,EAStBH,CACT,EACA,UAAUhsB,EAAMgkB,EAAW,CAIzB,OAAKA,GAML4H,EAAQ,WAAW5rB,CAAI,EAAIgkB,EACpBgI,GANEJ,EAAQ,WAAW5rB,CAAI,CAOlC,EACA,UAAUA,EAAMosB,EAAW,CAIzB,OAAKA,GAMLR,EAAQ,WAAW5rB,CAAI,EAAIosB,EACpBJ,GANEJ,EAAQ,WAAW5rB,CAAI,CAOlC,EACA,MAAMqsB,EAAeC,EAAWpT,EAAW,CACzC,GAAI,CAAC6S,EAAW,CAOd,MAAMxW,EAAQyW,EAAI,UAAYrG,GAAY+F,EAAeC,CAAS,EAClE,OAAApW,EAAM,WAAaqW,EACf1S,IAAc,GAChBA,EAAY,MACHA,IAAc,KACvBA,EAAY,QAYZ0P,EAAOrT,EAAO8W,EAAenT,CAAS,EAExC6S,EAAY,GACZC,EAAI,WAAaK,EACjBA,EAAc,YAAcL,EAKrBvW,GAA2BF,EAAM,SAAS,CACnD,CAMF,EACA,UAAUxF,EAAW,CAMnB+b,EAAiB,KAAK/b,CAAS,CACjC,EACA,SAAU,CACJgc,IACF/Z,GACE8Z,EACAE,EAAI,UACJ,IAEFpD,EAAO,KAAMoD,EAAI,UAAU,EAK3B,OAAOA,EAAI,WAAW,YAI1B,EACA,QAAQnwB,EAAK0B,EAAO,CAYlB,OAAAquB,EAAQ,SAAS/vB,CAAG,EAAI0B,EACjByuB,CACT,EACA,eAAenuB,EAAI,CACjB,MAAM0uB,EAAU9V,GAChBA,GAAauV,EACb,GAAI,CACF,OAAOnuB,EAAA,CACT,SACE4Y,GAAa8V,CACf,CACF,GAEF,OAAOP,CACT,CACF,CACA,IAAIvV,GAAa,KAEjB,SAAS+V,GAAStsB,EAAOF,EAAMoQ,EAAUrU,GAAW,CAClD,MAAMU,EAAI+Z,GAAA,EAKJiW,EAAgBzuB,GAASgC,CAAI,EAK7B0sB,EAAiBvuB,GAAU6B,CAAI,EAC/B4V,EAAY+W,GAAkBzsB,EAAOusB,CAAa,EAClDrtB,EAAMsP,GAAU,CAACnI,EAAOI,IAAY,CACxC,IAAIimB,EACAC,EAAe9wB,GACf+wB,EACJ,OAAA/V,GAAgB,IAAM,CACpB,MAAMgW,EAAY7sB,EAAMusB,CAAa,EACjCnuB,GAAWsuB,EAAYG,CAAS,IAClCH,EAAaG,EACbpmB,IAEJ,CAAC,EACM,CACL,KAAM,CACJJ,WACO6J,EAAQ,IAAMA,EAAQ,IAAIwc,CAAU,EAAIA,CACjD,EACA,IAAIrvB,EAAO,CACT,MAAMyvB,EAAe5c,EAAQ,IAAMA,EAAQ,IAAI7S,CAAK,EAAIA,EACxD,GAAI,CAACe,GAAW0uB,EAAcJ,CAAU,GAAK,EAAEC,IAAiB9wB,IAAauC,GAAWf,EAAOsvB,CAAY,GACzG,OAEF,MAAMlP,EAAWlhB,EAAE,MAAM,MACnBwwB,EAAY,CAAC,EAAEtP,IACpB3d,KAAQ2d,GAAY8O,KAAiB9O,GAAY+O,KAAkB/O,KAAc,YAAY3d,CAAI,KAAM2d,GAAY,YAAY8O,CAAa,KAAM9O,GAAY,YAAY+O,CAAc,KAAM/O,IAC1LsP,IACHL,EAAarvB,EACboJ,KAEFlK,EAAE,KAAK,UAAUuD,CAAI,GAAIgtB,CAAY,EACjC1uB,GAAWf,EAAOsvB,CAAY,IAAMvuB,GAAWf,EAAOyvB,CAAY,GAAK,CAAC1uB,GAAW0uB,EAAcF,CAAgB,GAMrHG,GAAaJ,IAAiB9wB,IAAa,CAACuC,GAAW0uB,EAAcJ,CAAU,IAC7EjmB,IAEFkmB,EAAetvB,EACfuvB,EAAmBE,CACrB,EAEJ,CAAC,EACD,OAAA5tB,EAAI,OAAO,QAAQ,EAAI,IAAM,CAC3B,IAAI8tB,EAAK,EACT,MAAO,CACL,MAAO,CACL,OAAIA,EAAK,EACA,CAAE,MAAOA,IAAOtX,GAAa7Z,GAAYqD,EAAK,KAAM,IAEpD,CAAE,KAAM,GAEnB,EAEJ,EACOA,CACT,CACA,MAAMutB,GAAoB,CAACzsB,EAAOitB,IACzBA,IAAc,cAAgBA,IAAc,cAAgBjtB,EAAM,eAAiBA,EAAM,GAAGitB,CAAS,WAAW,GAAKjtB,EAAM,GAAGlC,GAASmvB,CAAS,CAAC,WAAW,GAAKjtB,EAAM,GAAG/B,GAAUgvB,CAAS,CAAC,WAAW,EAGlN,SAASC,GAAKtb,EAAUub,KAAUC,EAAS,CACzC,GAAIxb,EAAS,YAAa,OAC1B,MAAM5R,EAAQ4R,EAAS,MAAM,OAAS/V,GA0BtC,IAAIoM,EAAOmlB,EACX,MAAMlxB,EAAkBixB,EAAM,WAAW,SAAS,EAC5CzX,EAAYxZ,GAAmBuwB,GAAkBzsB,EAAOmtB,EAAM,MAAM,CAAC,CAAC,EACxEzX,IACEA,EAAU,OACZzN,EAAOmlB,EAAQ,IAAK7sB,GAAMvD,GAASuD,CAAC,EAAIA,EAAE,OAASA,CAAC,GAElDmV,EAAU,SACZzN,EAAOA,EAAK,IAAIrJ,EAAa,IAmBjC,IAAIyuB,EACAvD,EAAU9pB,EAAMqtB,EAAclvB,GAAagvB,CAAK,CAAC,GACrDntB,EAAMqtB,EAAclvB,GAAaL,GAASqvB,CAAK,CAAC,CAAC,EAC7C,CAACrD,GAAW5tB,IACd4tB,EAAU9pB,EAAMqtB,EAAclvB,GAAaF,GAAUkvB,CAAK,CAAC,CAAC,GAE1DrD,GACFhY,GACEgY,EACAlY,EACA,EACA3J,CAAA,EAGJ,MAAMqlB,EAActtB,EAAMqtB,EAAc,MAAM,EAC9C,GAAIC,EAAa,CACf,GAAI,CAAC1b,EAAS,QACZA,EAAS,QAAU,WACVA,EAAS,QAAQyb,CAAW,EACrC,OAEFzb,EAAS,QAAQyb,CAAW,EAAI,GAChCvb,GACEwb,EACA1b,EACA,EACA3J,CAAA,CAEJ,CACF,CACA,MAAMslB,OAAsC,QAC5C,SAASC,GAAsBC,EAAM/G,EAAYgE,EAAU,GAAO,CAChE,MAAM9sB,EAA+B8sB,EAAU6C,GAAkB7G,EAAW,WACtElC,EAAS5mB,EAAM,IAAI6vB,CAAI,EAC7B,GAAIjJ,IAAW,OACb,OAAOA,EAET,MAAMld,EAAMmmB,EAAK,MACjB,IAAIruB,EAAa,GACbsuB,EAAa,GACjB,GAA2B,CAAC3wB,GAAW0wB,CAAI,EAAG,CAC5C,MAAME,EAAeC,GAAS,CAC5B,MAAMC,EAAuBL,GAAsBI,EAAMlH,EAAY,EAAI,EACrEmH,IACFH,EAAa,GACbvxB,GAAOiD,EAAYyuB,CAAoB,EAE3C,EACI,CAACnD,GAAWhE,EAAW,OAAO,QAChCA,EAAW,OAAO,QAAQiH,CAAW,EAEnCF,EAAK,SACPE,EAAYF,EAAK,OAAO,EAEtBA,EAAK,QACPA,EAAK,OAAO,QAAQE,CAAW,CAEnC,CACA,MAAI,CAACrmB,GAAO,CAAComB,GACPxwB,GAASuwB,CAAI,GACf7vB,EAAM,IAAI6vB,EAAM,IAAI,EAEf,OAEL/wB,GAAQ4K,CAAG,EACbA,EAAI,QAAS3L,GAAQyD,EAAWzD,CAAG,EAAI,IAAI,EAE3CQ,GAAOiD,EAAYkI,CAAG,EAEpBpK,GAASuwB,CAAI,GACf7vB,EAAM,IAAI6vB,EAAMruB,CAAU,EAErBA,EACT,CACA,SAAS0uB,GAAe5d,EAASvU,EAAK,CACpC,MAAI,CAACuU,GAAW,CAACjU,GAAKN,CAAG,EAChB,IAETA,EAAMA,EAAI,MAAM,CAAC,EACjBA,EAAMA,IAAQ,OAASA,EAAMA,EAAI,QAAQ,QAAS,EAAE,EAC7Cc,GAAOyT,EAASvU,EAAI,CAAC,EAAE,cAAgBA,EAAI,MAAM,CAAC,CAAC,GAAKc,GAAOyT,EAASjS,GAAUtC,CAAG,CAAC,GAAKc,GAAOyT,EAASvU,CAAG,EACvH,CAMA,SAASoyB,GAAoBnc,EAAU,CACrC,KAAM,CACJ,KAAMqS,EACN,MAAA5O,EACA,MAAAjI,EACA,UAAA4gB,EACA,aAAc,CAACC,CAAY,EAC3B,MAAA5Q,EACA,MAAA6Q,EACA,KAAAhB,EACA,OAAAxE,EACA,YAAAyF,EACA,MAAAnuB,EACA,KAAAwmB,EACA,WAAA/E,EACA,IAAA7M,EACA,aAAAoU,CAAA,EACEpX,EACE/M,EAAOyP,GAA4B1C,CAAQ,EACjD,IAAI9I,EACAslB,EAIJ,GAAI,CACF,GAAI/Y,EAAM,UAAY,EAAG,CACvB,MAAMgZ,EAAaL,GAAa5gB,EAC1BkhB,EASDD,EACLvlB,EAASylB,GACP7F,EAAO,KACL4F,EACAD,EACAF,EACqEnuB,EACrEyhB,EACA+E,EACA5R,CAAA,CACF,EAEFwZ,EAAmBF,CACrB,KAAO,CACL,MAAMM,EAAUvK,EAIhBnb,EAASylB,GACPC,EAAQ,OAAS,EAAIA,EACkDxuB,EAQjE,CAAE,MAAAkuB,EAAO,MAAA7Q,EAAO,KAAA6P,EAAK,EACvBsB,EACmExuB,EACrE,KACF,EAEFouB,EAAmBnK,EAAU,MAAQiK,EAAQO,GAAyBP,CAAK,CAC7E,CACF,OAASxpB,EAAK,CACZwQ,GAAW,OAAS,EACpBrD,GAAYnN,EAAKkN,EAAU,CAAC,EAC5B9I,EAAS2c,GAAYxH,EAAO,CAC9B,CACA,IAAIyQ,EAAO5lB,EAKX,GAAIslB,GAAoBpF,IAAiB,GAAO,CAC9C,MAAMpE,EAAO,OAAO,KAAKwJ,CAAgB,EACnC,CAAE,UAAA/S,GAAcqT,EAClB9J,EAAK,QACHvJ,EAAa,IACX4S,GAAgBrJ,EAAK,KAAK1oB,EAAe,IAC3CkyB,EAAmBO,GACjBP,EACAH,CAAA,GAGJS,EAAOrO,GAAWqO,EAAMN,EAAkB,GAAO,EAAI,EA2B3D,CAUA,GATI/Y,EAAM,OAMRqZ,EAAOrO,GAAWqO,EAAM,KAAM,GAAO,EAAI,EACzCA,EAAK,KAAOA,EAAK,KAAOA,EAAK,KAAK,OAAOrZ,EAAM,IAAI,EAAIA,EAAM,MAE3DA,EAAM,WAAY,CACpB,MAAMoG,EAAQxD,GAAWyW,EAAK,IAAI,GAAI7Q,GAAgB6Q,CAAI,GAAKA,EAM/DxQ,GAAmBzC,EAAOpG,EAAM,UAAU,CAC5C,CAIE,OAAAvM,EAAS4lB,EAEXpa,GAA4BzP,CAAI,EACzBiE,CACT,CA6CA,MAAM2lB,GAA4BP,GAAU,CAC1C,IAAIhvB,EACJ,UAAWvD,KAAOuyB,GACZvyB,IAAQ,SAAWA,IAAQ,SAAWM,GAAKN,CAAG,MAC/CuD,IAAQA,EAAM,KAAKvD,CAAG,EAAIuyB,EAAMvyB,CAAG,GAGxC,OAAOuD,CACT,EACMyvB,GAAuB,CAACT,EAAOluB,IAAU,CAC7C,MAAMd,EAAM,GACZ,UAAWvD,KAAOuyB,GACZ,CAAChyB,GAAgBP,CAAG,GAAK,EAAEA,EAAI,MAAM,CAAC,IAAKqE,MAC7Cd,EAAIvD,CAAG,EAAIuyB,EAAMvyB,CAAG,GAGxB,OAAOuD,CACT,EAIA,SAAS0vB,GAAsBhZ,EAAWiZ,EAAW3V,EAAW,CAC9D,KAAM,CAAE,MAAO4V,EAAW,SAAUC,EAAc,UAAAjL,GAAclO,EAC1D,CAAE,MAAOoZ,EAAW,SAAUC,EAAc,UAAAC,GAAcL,EAC1DM,EAAQrL,EAAU,aAIxB,GAAI+K,EAAU,MAAQA,EAAU,WAC9B,MAAO,GAET,GAAI3V,GAAagW,GAAa,EAAG,CAC/B,GAAIA,EAAY,KACd,MAAO,GAET,GAAIA,EAAY,GACd,OAAKJ,EAGEM,GAAgBN,EAAWE,EAAWG,CAAK,EAFzC,CAAC,CAACH,EAGb,GAAWE,EAAY,EAAG,CACxB,MAAMG,EAAeR,EAAU,aAC/B,QAAStyB,EAAI,EAAGA,EAAI8yB,EAAa,OAAQ9yB,IAAK,CAC5C,MAAMZ,EAAM0zB,EAAa9yB,CAAC,EAC1B,GAAI+yB,GAAoBN,EAAWF,EAAWnzB,CAAG,GAAK,CAACmyB,GAAeqB,EAAOxzB,CAAG,EAC9E,MAAO,EAEX,CACF,CACF,KACE,QAAIozB,GAAgBE,KACd,CAACA,GAAgB,CAACA,EAAa,SAC1B,GAGPH,IAAcE,EACT,GAEJF,EAGAE,EAGEI,GAAgBN,EAAWE,EAAWG,CAAK,EAFzC,GAHA,CAAC,CAACH,EAOb,MAAO,EACT,CACA,SAASI,GAAgBN,EAAWE,EAAWO,EAAc,CAC3D,MAAMC,EAAW,OAAO,KAAKR,CAAS,EACtC,GAAIQ,EAAS,SAAW,OAAO,KAAKV,CAAS,EAAE,OAC7C,MAAO,GAET,QAASvyB,EAAI,EAAGA,EAAIizB,EAAS,OAAQjzB,IAAK,CACxC,MAAMZ,EAAM6zB,EAASjzB,CAAC,EACtB,GAAI+yB,GAAoBN,EAAWF,EAAWnzB,CAAG,GAAK,CAACmyB,GAAeyB,EAAc5zB,CAAG,EACrF,MAAO,EAEX,CACA,MAAO,EACT,CACA,SAAS2zB,GAAoBN,EAAWF,EAAWnzB,EAAK,CACtD,MAAM8zB,EAAWT,EAAUrzB,CAAG,EACxB+zB,EAAWZ,EAAUnzB,CAAG,EAC9B,OAAIA,IAAQ,SAAWuB,GAASuyB,CAAQ,GAAKvyB,GAASwyB,CAAQ,EACrD,CAAC/uB,GAAW8uB,EAAUC,CAAQ,EAEhCD,IAAaC,CACtB,CACA,SAASC,GAAgB,CAAE,MAAAta,EAAO,OAAAua,EAAQ,SAAAC,CAAA,EAAYvzB,EAAI,CACxD,KAAOszB,GAAQ,CACb,MAAMlB,EAAOkB,EAAO,QAKpB,GAJIlB,EAAK,UAAYA,EAAK,SAAS,eAAiBrZ,IAClDqZ,EAAK,SAAS,MAAM,GAAKA,EAAK,GAAKpyB,EACnC+Y,EAAQqZ,GAENA,IAASrZ,GACVA,EAAQua,EAAO,OAAO,GAAKtzB,EAC5BszB,EAASA,EAAO,WAEhB,MAEJ,CACIC,GAAYA,EAAS,eAAiBxa,IACxCwa,EAAS,MAAM,GAAKvzB,EAExB,CAEA,MAAMwzB,GAAsB,GACtBC,GAAuB,IAAM,OAAO,OAAOD,EAAmB,EAC9DE,GAAoBtxB,GAAQ,OAAO,eAAeA,CAAG,IAAMoxB,GAEjE,SAASG,GAAUre,EAAU6L,EAAUyS,EAAY7gB,EAAQ,GAAO,CAChE,MAAMrP,EAAQ,GACRkuB,EAAQ6B,GAAA,EACdne,EAAS,cAAgC,OAAO,OAAO,IAAI,EAC3Due,GAAave,EAAU6L,EAAUzd,EAAOkuB,CAAK,EAC7C,UAAWvyB,KAAOiW,EAAS,aAAa,CAAC,EACjCjW,KAAOqE,IACXA,EAAMrE,CAAG,EAAI,QAMbu0B,EACFte,EAAS,MAAQvC,EAAQrP,EAAQ6M,GAAgB7M,CAAK,EAEjD4R,EAAS,KAAK,MAGjBA,EAAS,MAAQ5R,EAFjB4R,EAAS,MAAQsc,EAKrBtc,EAAS,MAAQsc,CACnB,CAOA,SAASkC,GAAYxe,EAAU6L,EAAU4S,EAAcnX,EAAW,CAChE,KAAM,CACJ,MAAAlZ,EACA,MAAAkuB,EACA,MAAO,CAAE,UAAAgB,CAAA,CAAU,EACjBtd,EACE0e,EAAkBzoB,GAAM7H,CAAK,EAC7B,CAACkQ,CAAO,EAAI0B,EAAS,aAC3B,IAAI2e,EAAkB,GACtB,IAI+ErX,GAAagW,EAAY,IAAM,EAAEA,EAAY,KAE1H,GAAIA,EAAY,EAAG,CACjB,MAAMsB,EAAgB5e,EAAS,MAAM,aACrC,QAASrV,EAAI,EAAGA,EAAIi0B,EAAc,OAAQj0B,IAAK,CAC7C,IAAIZ,EAAM60B,EAAcj0B,CAAC,EACzB,GAAIuxB,GAAelc,EAAS,aAAcjW,CAAG,EAC3C,SAEF,MAAM0B,EAAQogB,EAAS9hB,CAAG,EAC1B,GAAIuU,EACF,GAAIzT,GAAOyxB,EAAOvyB,CAAG,EACf0B,IAAU6wB,EAAMvyB,CAAG,IACrBuyB,EAAMvyB,CAAG,EAAI0B,EACbkzB,EAAkB,QAEf,CACL,MAAME,EAAe3yB,GAASnC,CAAG,EACjCqE,EAAMywB,CAAY,EAAIC,GACpBxgB,EACAogB,EACAG,EACApzB,EACAuU,EACA,GAEJ,MAEIvU,IAAU6wB,EAAMvyB,CAAG,IACrBuyB,EAAMvyB,CAAG,EAAI0B,EACbkzB,EAAkB,GAGxB,CACF,MACK,CACDJ,GAAave,EAAU6L,EAAUzd,EAAOkuB,CAAK,IAC/CqC,EAAkB,IAEpB,IAAII,EACJ,UAAWh1B,KAAO20B,GACZ,CAAC7S,GACL,CAAChhB,GAAOghB,EAAU9hB,CAAG,KAEnBg1B,EAAW1yB,GAAUtC,CAAG,KAAOA,GAAO,CAACc,GAAOghB,EAAUkT,CAAQ,MAC5DzgB,EACEmgB,IACHA,EAAa10B,CAAG,IAAM,QACvB00B,EAAaM,CAAQ,IAAM,UACzB3wB,EAAMrE,CAAG,EAAI+0B,GACXxgB,EACAogB,EACA30B,EACA,OACAiW,EACA,KAIJ,OAAO5R,EAAMrE,CAAG,GAItB,GAAIuyB,IAAUoC,EACZ,UAAW30B,KAAOuyB,GACZ,CAACzQ,GAAY,CAAChhB,GAAOghB,EAAU9hB,CAAG,KACpC,OAAOuyB,EAAMvyB,CAAG,EAChB40B,EAAkB,GAI1B,CACIA,GACF9pB,GAAQmL,EAAS,MAAO,MAAO,EAAE,CAKrC,CACA,SAASue,GAAave,EAAU6L,EAAUzd,EAAOkuB,EAAO,CACtD,KAAM,CAAChe,EAAS0gB,CAAY,EAAIhf,EAAS,aACzC,IAAI2e,EAAkB,GAClBM,EACJ,GAAIpT,EACF,QAAS9hB,KAAO8hB,EAAU,CACxB,GAAIhgB,GAAe9B,CAAG,EACpB,SAEF,MAAM0B,EAAQogB,EAAS9hB,CAAG,EAC1B,IAAIm1B,EACA5gB,GAAWzT,GAAOyT,EAAS4gB,EAAWhzB,GAASnC,CAAG,CAAC,EACjD,CAACi1B,GAAgB,CAACA,EAAa,SAASE,CAAQ,EAClD9wB,EAAM8wB,CAAQ,EAAIzzB,GAEjBwzB,IAAkBA,EAAgB,KAAKC,CAAQ,EAAIzzB,EAE5CywB,GAAelc,EAAS,aAAcjW,CAAG,IAC/C,EAAEA,KAAOuyB,IAAU7wB,IAAU6wB,EAAMvyB,CAAG,KACxCuyB,EAAMvyB,CAAG,EAAI0B,EACbkzB,EAAkB,GAGxB,CAEF,GAAIK,EAAc,CAChB,MAAMN,EAAkBzoB,GAAM7H,CAAK,EAC7B+wB,EAAaF,GAAiBh1B,GACpC,QAASU,EAAI,EAAGA,EAAIq0B,EAAa,OAAQr0B,IAAK,CAC5C,MAAMZ,EAAMi1B,EAAar0B,CAAC,EAC1ByD,EAAMrE,CAAG,EAAI+0B,GACXxgB,EACAogB,EACA30B,EACAo1B,EAAWp1B,CAAG,EACdiW,EACA,CAACnV,GAAOs0B,EAAYp1B,CAAG,EAE3B,CACF,CACA,OAAO40B,CACT,CACA,SAASG,GAAiBxgB,EAASlQ,EAAOrE,EAAK0B,EAAOuU,EAAUof,EAAU,CACxE,MAAM3H,EAAMnZ,EAAQvU,CAAG,EACvB,GAAI0tB,GAAO,KAAM,CACf,MAAM4H,EAAax0B,GAAO4sB,EAAK,SAAS,EACxC,GAAI4H,GAAc5zB,IAAU,OAAQ,CAClC,MAAM6R,EAAema,EAAI,QACzB,GAAIA,EAAI,OAAS,UAAY,CAACA,EAAI,aAAetsB,GAAWmS,CAAY,EAAG,CACzE,KAAM,CAAE,cAAAgiB,GAAkBtf,EAC1B,GAAIjW,KAAOu1B,EACT7zB,EAAQ6zB,EAAcv1B,CAAG,MACpB,CACL,MAAMgc,EAAQC,GAAmBhG,CAAQ,EACzCvU,EAAQ6zB,EAAcv1B,CAAG,EAAIuT,EAAa,KACxC,KACAlP,CAAA,EAEF2X,EAAA,CACF,CACF,MACEta,EAAQ6R,EAEN0C,EAAS,IACXA,EAAS,GAAG,SAASjW,EAAK0B,CAAK,CAEnC,CACIgsB,EAAI,KACF2H,GAAY,CAACC,EACf5zB,EAAQ,GACCgsB,EAAI,KAA4BhsB,IAAU,IAAMA,IAAUY,GAAUtC,CAAG,KAChF0B,EAAQ,IAGd,CACA,OAAOA,CACT,CACA,MAAM8zB,OAAsC,QAC5C,SAASC,GAAsB3D,EAAM/G,EAAYgE,EAAU,GAAO,CAChE,MAAM9sB,EAA+B8sB,EAAUyG,GAAkBzK,EAAW,WACtElC,EAAS5mB,EAAM,IAAI6vB,CAAI,EAC7B,GAAIjJ,EACF,OAAOA,EAET,MAAMld,EAAMmmB,EAAK,MACXruB,EAAa,GACbwxB,EAAe,GACrB,IAAIlD,EAAa,GACjB,GAA2B,CAAC3wB,GAAW0wB,CAAI,EAAG,CAC5C,MAAM4D,EAAezD,GAAS,CAC5BF,EAAa,GACb,KAAM,CAAC1tB,EAAO4kB,CAAI,EAAIwM,GAAsBxD,EAAMlH,EAAY,EAAI,EAClEvqB,GAAOiD,EAAYY,CAAK,EACpB4kB,GAAMgM,EAAa,KAAK,GAAGhM,CAAI,CACrC,EACI,CAAC8F,GAAWhE,EAAW,OAAO,QAChCA,EAAW,OAAO,QAAQ2K,CAAW,EAEnC5D,EAAK,SACP4D,EAAY5D,EAAK,OAAO,EAEtBA,EAAK,QACPA,EAAK,OAAO,QAAQ4D,CAAW,CAEnC,CACA,GAAI,CAAC/pB,GAAO,CAAComB,EACX,OAAIxwB,GAASuwB,CAAI,GACf7vB,EAAM,IAAI6vB,EAAM3xB,EAAS,EAEpBA,GAET,GAAIY,GAAQ4K,CAAG,EACb,QAAS/K,EAAI,EAAGA,EAAI+K,EAAI,OAAQ/K,IAAK,CAInC,MAAM+0B,EAAgBxzB,GAASwJ,EAAI/K,CAAC,CAAC,EACjCg1B,GAAiBD,CAAa,IAChClyB,EAAWkyB,CAAa,EAAIz1B,GAEhC,SACSyL,EAIT,UAAW3L,KAAO2L,EAAK,CACrB,MAAMgqB,EAAgBxzB,GAASnC,CAAG,EAClC,GAAI41B,GAAiBD,CAAa,EAAG,CACnC,MAAMjI,EAAM/hB,EAAI3L,CAAG,EACb61B,EAAOpyB,EAAWkyB,CAAa,EAAI50B,GAAQ2sB,CAAG,GAAKtsB,GAAWssB,CAAG,EAAI,CAAE,KAAMA,CAAA,EAAQltB,GAAO,GAAIktB,CAAG,EACnGoI,EAAWD,EAAK,KACtB,IAAIE,EAAa,GACbC,EAAiB,GACrB,GAAIj1B,GAAQ+0B,CAAQ,EAClB,QAAS1wB,EAAQ,EAAGA,EAAQ0wB,EAAS,OAAQ,EAAE1wB,EAAO,CACpD,MAAMwF,EAAOkrB,EAAS1wB,CAAK,EACrB6wB,EAAW70B,GAAWwJ,CAAI,GAAKA,EAAK,KAC1C,GAAIqrB,IAAa,UAAW,CAC1BF,EAAa,GACb,KACF,MAAWE,IAAa,WACtBD,EAAiB,GAErB,MAEAD,EAAa30B,GAAW00B,CAAQ,GAAKA,EAAS,OAAS,UAEzDD,EAAK,GAAsBE,EAC3BF,EAAK,GAA0BG,GAC3BD,GAAcj1B,GAAO+0B,EAAM,SAAS,IACtCZ,EAAa,KAAKU,CAAa,CAEnC,CACF,CAEF,MAAMpyB,EAAM,CAACE,EAAYwxB,CAAY,EACrC,OAAI1zB,GAASuwB,CAAI,GACf7vB,EAAM,IAAI6vB,EAAMvuB,CAAG,EAEdA,CACT,CACA,SAASqyB,GAAiB51B,EAAK,CAC7B,OAAIA,EAAI,CAAC,IAAM,KAAO,CAAC8B,GAAe9B,CAAG,CAM3C,CA0HA,MAAMk2B,GAAiBl2B,GAAQA,IAAQ,KAAOA,IAAQ,QAAUA,IAAQ,UAClEm2B,GAAsBz0B,GAAUX,GAAQW,CAAK,EAAIA,EAAM,IAAIkxB,EAAc,EAAI,CAACA,GAAelxB,CAAK,CAAC,EACnG00B,GAAgB,CAACp2B,EAAKq2B,EAASpd,IAAQ,CAC3C,GAAIod,EAAQ,GACV,OAAOA,EAET,MAAM5yB,EAAauV,GAAQ,IAAI1M,IAMtB6pB,GAAmBE,EAAQ,GAAG/pB,CAAI,CAAC,EACzC2M,CAAG,EACN,OAAAxV,EAAW,GAAK,GACTA,CACT,EACM6yB,GAAuB,CAACC,EAAU7U,EAAOzL,IAAa,CAC1D,MAAMgD,EAAMsd,EAAS,KACrB,UAAWv2B,KAAOu2B,EAAU,CAC1B,GAAIL,GAAcl2B,CAAG,EAAG,SACxB,MAAM0B,EAAQ60B,EAASv2B,CAAG,EAC1B,GAAIoB,GAAWM,CAAK,EAClBggB,EAAM1hB,CAAG,EAAIo2B,GAAcp2B,EAAK0B,EAAOuX,CAAG,UACjCvX,GAAS,KAAM,CAMxB,MAAM+B,EAAa0yB,GAAmBz0B,CAAK,EAC3CggB,EAAM1hB,CAAG,EAAI,IAAMyD,CACrB,CACF,CACF,EACM+yB,GAAsB,CAACvgB,EAAU0J,IAAa,CAMlD,MAAMlc,EAAa0yB,GAAmBxW,CAAQ,EAC9C1J,EAAS,MAAM,QAAU,IAAMxS,CACjC,EACMgzB,GAAc,CAAC/U,EAAO/B,EAAUpC,IAAc,CAClD,UAAWvd,KAAO2f,GACZpC,GAAa,CAAC2Y,GAAcl2B,CAAG,KACjC0hB,EAAM1hB,CAAG,EAAI2f,EAAS3f,CAAG,EAG/B,EACM02B,GAAY,CAACzgB,EAAU0J,EAAUpC,IAAc,CACnD,MAAMmE,EAAQzL,EAAS,MAAQme,GAAA,EAC/B,GAAIne,EAAS,MAAM,UAAY,GAAI,CACjC,MAAMrL,EAAO+U,EAAS,EAClB/U,GACF6rB,GAAY/U,EAAO/B,EAAUpC,CAAS,EAClCA,GACFza,GAAI4e,EAAO,IAAK9W,EAAM,EAAI,GAG5B0rB,GAAqB3W,EAAU+B,CAAK,CAExC,MAAW/B,GACT6W,GAAoBvgB,EAAU0J,CAAQ,CAE1C,EACMgX,GAAc,CAAC1gB,EAAU0J,EAAUpC,IAAc,CACrD,KAAM,CAAE,MAAA7D,EAAO,MAAAgI,CAAA,EAAUzL,EACzB,IAAI2gB,EAAoB,GACpBC,EAA2B32B,GAC/B,GAAIwZ,EAAM,UAAY,GAAI,CACxB,MAAM9O,EAAO+U,EAAS,EAClB/U,EAIS2S,GAAa3S,IAAS,EAC/BgsB,EAAoB,GAEpBH,GAAY/U,EAAO/B,EAAUpC,CAAS,GAGxCqZ,EAAoB,CAACjX,EAAS,QAC9B2W,GAAqB3W,EAAU+B,CAAK,GAEtCmV,EAA2BlX,CAC7B,MAAWA,IACT6W,GAAoBvgB,EAAU0J,CAAQ,EACtCkX,EAA2B,CAAE,QAAS,IAExC,GAAID,EACF,UAAW52B,KAAO0hB,EACZ,CAACwU,GAAcl2B,CAAG,GAAK62B,EAAyB72B,CAAG,GAAK,MAC1D,OAAO0hB,EAAM1hB,CAAG,CAIxB,EAgEM0b,GAAwBob,GAC9B,SAASC,GAAexiB,EAAS,CAC/B,OAAOyiB,GAAmBziB,CAAO,CACnC,CAIA,SAASyiB,GAAmBziB,EAAS0iB,EAAoB,CAIvD,MAAMtsB,EAAStH,GAAA,EACfsH,EAAO,QAAU,GAIjB,KAAM,CACJ,OAAQusB,EACR,OAAQ1X,EACR,UAAW2X,EACX,cAAeC,EACf,WAAYC,EACZ,cAAeC,EACf,QAASC,EACT,eAAgBC,EAChB,WAAYC,EACZ,YAAaC,EACb,WAAYC,EAAiBv3B,GAC7B,oBAAqBw3B,CAAA,EACnBrjB,EACEsjB,EAAQ,CAAC9a,EAAIC,EAAIC,EAAWC,GAAS,KAAMC,GAAkB,KAAMC,EAAiB,KAAMC,GAAY,OAAQC,GAAe,KAAMC,GAAiF,CAAC,CAACP,EAAG,kBAAoB,CACjP,GAAID,IAAOC,EACT,OAEED,GAAM,CAAC0F,GAAgB1F,EAAIC,CAAE,IAC/BE,GAAS4a,GAAgB/a,CAAE,EAC3BwC,GAAQxC,EAAII,GAAiBC,EAAgB,EAAI,EACjDL,EAAK,MAEHC,EAAG,YAAc,KACnBO,GAAY,GACZP,EAAG,gBAAkB,MAEnBA,EAAG,iBAAmBD,GAAMA,EAAG,iBAAmBA,EAAG,gBAAgB,UACnEC,EAAG,kBAAoB7c,KACzB6c,EAAG,gBAAkB,IAEvBA,EAAG,gBAAgB,QAAU,IAE/B,KAAM,CAAE,KAAApS,GAAM,IAAAiH,GAAK,UAAA6N,IAAc1C,EACjC,OAAQpS,GAAA,CACN,KAAKmtB,GACHC,EAAYjb,EAAIC,EAAIC,EAAWC,EAAM,EACrC,MACF,KAAKoF,GACH2V,EAAmBlb,EAAIC,EAAIC,EAAWC,EAAM,EAC5C,MACF,KAAKgb,GACCnb,GAAM,MACRob,EAAgBnb,EAAIC,EAAWC,GAAQG,EAAS,EAIlD,MACF,KAAKyH,GACHsT,EACErb,EACAC,EACAC,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,EAEF,MACF,QACMmC,GAAY,EACd2Y,EACEtb,EACAC,EACAC,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,EAEOmC,GAAY,EACrB4Y,EACEvb,EACAC,EACAC,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,GAEOmC,GAAY,IAaZA,GAAY,MACrB9U,GAAK,QACHmS,EACAC,EACAC,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,GACAC,EAAA,CAIJ,CAEA3L,IAAO,MAAQsL,GACjBoI,GAAO1T,GAAKkL,GAAMA,EAAG,IAAKK,EAAgBJ,GAAMD,EAAI,CAACC,CAAE,EAC9CnL,IAAO,MAAQkL,GAAMA,EAAG,KAAO,MACxCwI,GAAOxI,EAAG,IAAK,KAAMK,EAAgBL,EAAI,EAAI,CAEjD,EACMib,EAAc,CAACjb,EAAIC,EAAIC,EAAWC,KAAW,CACjD,GAAIH,GAAM,KACRma,EACEla,EAAG,GAAKqa,EAAera,EAAG,QAAQ,EAClCC,EACAC,EAAA,MAEG,CACL,MAAMvc,GAAKqc,EAAG,GAAKD,EAAG,GAClBC,EAAG,WAAaD,EAAG,UACrBwa,EAAY52B,GAAIqc,EAAG,QAAQ,CAE/B,CACF,EACMib,EAAqB,CAAClb,EAAIC,EAAIC,EAAWC,KAAW,CACpDH,GAAM,KACRma,EACEla,EAAG,GAAKsa,EAAkBta,EAAG,UAAY,EAAE,EAC3CC,EACAC,EAAA,EAGFF,EAAG,GAAKD,EAAG,EAEf,EACMob,EAAkB,CAACnb,EAAIC,EAAWC,EAAQG,KAAc,CAC5D,CAACL,EAAG,GAAIA,EAAG,MAAM,EAAI4a,EACnB5a,EAAG,SACHC,EACAC,EACAG,GACAL,EAAG,GACHA,EAAG,OAEP,EAgBMub,EAAiB,CAAC,CAAE,GAAA53B,EAAI,OAAAuc,CAAA,EAAUD,EAAWoD,KAAgB,CACjE,IAAIxX,GACJ,KAAOlI,GAAMA,IAAOuc,GAClBrU,GAAO6uB,EAAgB/2B,CAAE,EACzBu2B,EAAWv2B,EAAIsc,EAAWoD,EAAW,EACrC1f,EAAKkI,GAEPquB,EAAWha,EAAQD,EAAWoD,EAAW,CAC3C,EACMmY,EAAmB,CAAC,CAAE,GAAA73B,EAAI,OAAAuc,KAAa,CAC3C,IAAIrU,EACJ,KAAOlI,GAAMA,IAAOuc,GAClBrU,EAAO6uB,EAAgB/2B,CAAE,EACzB6e,EAAW7e,CAAE,EACbA,EAAKkI,EAEP2W,EAAWtC,CAAM,CACnB,EACMmb,EAAiB,CAACtb,EAAIC,EAAIC,EAAWC,GAAQC,GAAiBC,EAAgBC,GAAWC,GAAcC,KAAc,CAMzH,GALIP,EAAG,OAAS,MACdK,GAAY,MACHL,EAAG,OAAS,SACrBK,GAAY,UAEVN,GAAM,KACR0b,EACEzb,EACAC,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,MAEG,CACL,MAAMmb,GAAgB3b,EAAG,IAAMA,EAAG,GAAG,SAAWA,EAAG,GAAK,KACxD,GAAI,CACE2b,IACFA,GAAc,cAEhBC,EACE5b,EACAC,EACAG,GACAC,EACAC,GACAC,GACAC,EAAA,CAEJ,SACMmb,IACFA,GAAc,WAElB,CACF,CACF,EACMD,EAAe,CAAC/e,EAAOuD,EAAWC,EAAQC,GAAiBC,GAAgBC,EAAWC,GAAcC,KAAc,CACtH,IAAI5c,GACAi4B,GACJ,KAAM,CAAE,MAAAv0B,GAAO,UAAAqb,GAAW,WAAAmZ,GAAY,KAAAC,IAASpf,EAyB/C,GAxBA/Y,GAAK+Y,EAAM,GAAK0d,EACd1d,EAAM,KACN2D,EACAhZ,IAASA,GAAM,GACfA,EAAA,EAEEqb,GAAY,EACd8X,EAAmB72B,GAAI+Y,EAAM,QAAQ,EAC5BgG,GAAY,IACrBjC,EACE/D,EAAM,SACN/Y,GACA,KACAwc,GACAC,GACA2b,GAAyBrf,EAAO2D,CAAS,EACzCC,GACAC,EAAA,EAGAub,IACF9e,GAAoBN,EAAO,KAAMyD,GAAiB,SAAS,EAE7D6b,EAAWr4B,GAAI+Y,EAAOA,EAAM,QAAS4D,GAAcH,EAAe,EAC9D9Y,GAAO,CACT,UAAWrE,KAAOqE,GACZrE,IAAQ,SAAW,CAAC8B,GAAe9B,CAAG,GACxCm3B,EAAcx2B,GAAIX,EAAK,KAAMqE,GAAMrE,CAAG,EAAGqd,EAAWF,EAAe,EAGnE,UAAW9Y,IACb8yB,EAAcx2B,GAAI,QAAS,KAAM0D,GAAM,MAAOgZ,CAAS,GAErDub,GAAYv0B,GAAM,qBACpB40B,GAAgBL,GAAWzb,GAAiBzD,CAAK,CAErD,CAKIof,IACF9e,GAAoBN,EAAO,KAAMyD,GAAiB,aAAa,EAEjE,MAAM+b,GAA0BC,GAAe/b,GAAgByb,EAAU,EACrEK,IACFL,GAAW,YAAYl4B,EAAE,EAE3Bu2B,EAAWv2B,GAAIsc,EAAWC,CAAM,IAC3B0b,GAAYv0B,IAASA,GAAM,iBAAmB60B,IAA2BJ,KAE5Epd,GAAsB,IAAM,CAIxBkd,IAAaK,GAAgBL,GAAWzb,GAAiBzD,CAAK,EAC9Dwf,IAA2BL,GAAW,MAAMl4B,EAAE,EAC9Cm4B,IAAQ9e,GAAoBN,EAAO,KAAMyD,GAAiB,SAAS,CAIvE,EAAGC,EAAc,CAErB,EACM4b,EAAa,CAACr4B,EAAI+Y,EAAO0f,EAAS9b,GAAcH,KAAoB,CAIxE,GAHIic,GACFzB,EAAeh3B,EAAIy4B,CAAO,EAExB9b,GACF,QAAS1c,EAAI,EAAGA,EAAI0c,GAAa,OAAQ1c,IACvC+2B,EAAeh3B,EAAI2c,GAAa1c,CAAC,CAAC,EAGtC,GAAIuc,GAAiB,CACnB,IAAIqE,EAAUrE,GAAgB,QAI9B,GAAIzD,IAAU8H,GAAW6X,GAAW7X,EAAQ,IAAI,IAAMA,EAAQ,YAAc9H,GAAS8H,EAAQ,aAAe9H,GAAQ,CAClH,MAAM4f,GAAcnc,GAAgB,MACpC6b,EACEr4B,EACA24B,GACAA,GAAY,QACZA,GAAY,aACZnc,GAAgB,OAEpB,CACF,CACF,EACMM,EAAgB,CAACkC,EAAU1C,EAAWC,EAAQC,GAAiBC,GAAgBC,EAAWC,GAAcC,GAAW7F,GAAQ,IAAM,CACrI,QAAS9W,GAAI8W,GAAO9W,GAAI+e,EAAS,OAAQ/e,KAAK,CAC5C,MAAMkf,GAAQH,EAAS/e,EAAC,EAAI2c,GAAYgc,GAAe5Z,EAAS/e,EAAC,CAAC,EAAIgyB,GAAejT,EAAS/e,EAAC,CAAC,EAChGi3B,EACE,KACA/X,GACA7C,EACAC,EACAC,GACAC,GACAC,EACAC,GACAC,EAAA,CAEJ,CACF,EACMob,EAAe,CAAC5b,EAAIC,EAAIG,EAAiBC,GAAgBC,GAAWC,EAAcC,KAAc,CACpG,MAAM5c,GAAKqc,EAAG,GAAKD,EAAG,GAItB,GAAI,CAAE,UAAAwW,GAAW,gBAAArV,GAAiB,KAAA4a,EAAA,EAAS9b,EAC3CuW,IAAaxW,EAAG,UAAY,GAC5B,MAAMyc,GAAWzc,EAAG,OAAS7c,GACvBu5B,GAAWzc,EAAG,OAAS9c,GAC7B,IAAI04B,GAgDJ,GA/CAzb,GAAmBuc,GAAcvc,EAAiB,EAAK,GACnDyb,GAAYa,GAAS,sBACvBR,GAAgBL,GAAWzb,EAAiBH,EAAID,CAAE,EAEhD+b,IACF9e,GAAoBgD,EAAID,EAAII,EAAiB,cAAc,EAE7DA,GAAmBuc,GAAcvc,EAAiB,EAAI,EAKpDe,KAAoB,CAACnB,EAAG,iBAAmBA,EAAG,gBAAgB,SAAWmB,GAAgB,UAEzFqV,GAAY,EACZhW,GAAY,GACZW,GAAkB,OAEhBsb,GAAS,WAAaC,GAAS,WAAa,MAAQD,GAAS,aAAeC,GAAS,aAAe,OACtGjC,EAAmB72B,GAAI,EAAE,EAEvBud,GACFP,EACEZ,EAAG,gBACHmB,GACAvd,GACAwc,EACAC,GACA2b,GAAyB/b,EAAIK,EAAS,EACtCC,CAAA,EAKQC,IACVG,GACEX,EACAC,EACArc,GACA,KACAwc,EACAC,GACA2b,GAAyB/b,EAAIK,EAAS,EACtCC,EACA,IAGAiW,GAAY,EAAG,CACjB,GAAIA,GAAY,GACdoG,EAAWh5B,GAAI64B,GAAUC,GAAUtc,EAAiBE,EAAS,UAEzDkW,GAAY,GACViG,GAAS,QAAUC,GAAS,OAC9BtC,EAAcx2B,GAAI,QAAS,KAAM84B,GAAS,MAAOpc,EAAS,EAG1DkW,GAAY,GACd4D,EAAcx2B,GAAI,QAAS64B,GAAS,MAAOC,GAAS,MAAOpc,EAAS,EAElEkW,GAAY,EAAG,CACjB,MAAMsB,GAAgB7X,EAAG,aACzB,QAASpc,EAAI,EAAGA,EAAIi0B,GAAc,OAAQj0B,IAAK,CAC7C,MAAMZ,GAAM60B,GAAcj0B,CAAC,EACrBsI,GAAOswB,GAASx5B,EAAG,EACnB6I,GAAO4wB,GAASz5B,EAAG,GACrB6I,KAASK,IAAQlJ,KAAQ,UAC3Bm3B,EAAcx2B,GAAIX,GAAKkJ,GAAML,GAAMwU,GAAWF,CAAe,CAEjE,CACF,CAEEoW,GAAY,GACVxW,EAAG,WAAaC,EAAG,UACrBwa,EAAmB72B,GAAIqc,EAAG,QAAQ,CAGxC,KAAW,CAACO,IAAaW,IAAmB,MAC1Cyb,EAAWh5B,GAAI64B,GAAUC,GAAUtc,EAAiBE,EAAS,IAE1Dub,GAAYa,GAAS,iBAAmBX,KAC3Cpd,GAAsB,IAAM,CAC1Bkd,IAAaK,GAAgBL,GAAWzb,EAAiBH,EAAID,CAAE,EAC/D+b,IAAQ9e,GAAoBgD,EAAID,EAAII,EAAiB,SAAS,CAChE,EAAGC,EAAc,CAErB,EACMO,EAAqB,CAACic,EAAaC,EAAaC,EAAmB3c,GAAiBC,GAAgBC,EAAWC,KAAiB,CACpI,QAAS1c,GAAI,EAAGA,GAAIi5B,EAAY,OAAQj5B,KAAK,CAC3C,MAAMm5B,GAAWH,EAAYh5B,EAAC,EACxBo5B,GAAWH,EAAYj5B,EAAC,EACxBqc,GAGJ8c,GAAS,KAERA,GAAS,OAASjV,IAEnB,CAACrC,GAAgBsX,GAAUC,EAAQ,GACnCD,GAAS,UAAa,KAAiBtC,EAAesC,GAAS,EAAE,EAG/DD,EAGJjC,EACEkC,GACAC,GACA/c,GACA,KACAE,GACAC,GACAC,EACAC,GACA,GAEJ,CACF,EACMqc,EAAa,CAACh5B,EAAI64B,EAAUC,EAAUtc,GAAiBE,KAAc,CACzE,GAAImc,IAAaC,EAAU,CACzB,GAAID,IAAat5B,GACf,UAAWF,KAAOw5B,EACZ,CAAC13B,GAAe9B,CAAG,GAAK,EAAEA,KAAOy5B,IACnCtC,EACEx2B,EACAX,EACAw5B,EAASx5B,CAAG,EACZ,KACAqd,GACAF,EAAA,EAKR,UAAWnd,KAAOy5B,EAAU,CAC1B,GAAI33B,GAAe9B,CAAG,EAAG,SACzB,MAAM6I,GAAO4wB,EAASz5B,CAAG,EACnBkJ,GAAOswB,EAASx5B,CAAG,EACrB6I,KAASK,IAAQlJ,IAAQ,SAC3Bm3B,EAAcx2B,EAAIX,EAAKkJ,GAAML,GAAMwU,GAAWF,EAAe,CAEjE,CACI,UAAWsc,GACbtC,EAAcx2B,EAAI,QAAS64B,EAAS,MAAOC,EAAS,MAAOpc,EAAS,CAExE,CACF,EACM+a,EAAkB,CAACrb,EAAIC,EAAIC,EAAWC,GAAQC,GAAiBC,EAAgBC,GAAWC,GAAcC,KAAc,CAC1H,MAAM0c,GAAsBjd,EAAG,GAAKD,EAAKA,EAAG,GAAKsa,EAAe,EAAE,EAC5D6C,GAAoBld,EAAG,OAASD,EAAKA,EAAG,OAASsa,EAAe,EAAE,EACxE,GAAI,CAAE,UAAA9D,GAAW,gBAAArV,GAAiB,aAAcic,IAAyBnd,EAOrEmd,KACF7c,GAAeA,GAAeA,GAAa,OAAO6c,EAAoB,EAAIA,IAExEpd,GAAM,MACRma,EAAW+C,GAAqBhd,EAAWC,EAAM,EACjDga,EAAWgD,GAAmBjd,EAAWC,EAAM,EAC/CO,EAKET,EAAG,UAAY,GACfC,EACAid,GACA/c,GACAC,EACAC,GACAC,GACAC,EAAA,GAGEgW,GAAY,GAAKA,GAAY,IAAMrV,IAEvCnB,EAAG,iBAAmBA,EAAG,gBAAgB,SAAWmB,GAAgB,QAClEP,EACEZ,EAAG,gBACHmB,GACAjB,EACAE,GACAC,EACAC,GACAC,EAAA,GASAN,EAAG,KAAO,MAAQG,IAAmBH,IAAOG,GAAgB,UAE5DiC,GACErC,EACAC,EACA,KAKJU,GACEX,EACAC,EACAC,EACAid,GACA/c,GACAC,EACAC,GACAC,GACAC,EAAA,CAIR,EACM+a,EAAmB,CAACvb,EAAIC,EAAIC,EAAWC,GAAQC,GAAiBC,EAAgBC,GAAWC,GAAcC,KAAc,CAC3HP,EAAG,aAAeM,GACdP,GAAM,KACJC,EAAG,UAAY,IACjBG,GAAgB,IAAI,SAClBH,EACAC,EACAC,GACAG,GACAE,EAAA,EAGF6c,EACEpd,EACAC,EACAC,GACAC,GACAC,EACAC,GACAE,EAAA,EAIJ8c,EAAgBtd,EAAIC,EAAIO,EAAS,CAErC,EACM6c,EAAiB,CAACE,EAAcrd,EAAWC,EAAQC,GAAiBC,GAAgBC,EAAWE,KAAc,CACjH,MAAMtH,GAAYqkB,EAAa,UAAYC,GACzCD,EACAnd,GACAC,EAAA,EAsBF,GAbIqH,GAAY6V,CAAY,IAC1BrkB,GAAS,IAAI,SAAWuH,IAMxBgd,GAAevkB,GAAU,GAAOsH,EAAS,EAMvCtH,GAAS,UAEX,GADAmH,IAAkBA,GAAe,YAAYnH,GAAUwkB,EAAmBld,EAAS,EAC/E,CAAC+c,EAAa,GAAI,CACpB,MAAMxb,GAAc7I,GAAS,QAAU6T,GAAYxH,EAAO,EAC1D2V,EAAmB,KAAMnZ,GAAa7B,EAAWC,CAAM,EACvDod,EAAa,YAAcxb,GAAY,EACzC,OAEA2b,EACExkB,GACAqkB,EACArd,EACAC,EACAE,GACAC,EACAE,EAAA,CAON,EACM8c,EAAkB,CAACtd,EAAIC,EAAIO,IAAc,CAC7C,MAAMtH,GAAW+G,EAAG,UAAYD,EAAG,UACnC,GAAIkW,GAAsBlW,EAAIC,EAAIO,CAAS,EACzC,GAAItH,GAAS,UAAY,CAACA,GAAS,cAAe,CAIhD+G,EAAG,GAAKD,EAAG,GACX2d,GAAyBzkB,GAAU+G,EAAIO,CAAS,EAIhD,MACF,MACEtH,GAAS,KAAO+G,EAChB/G,GAAS,cAGX+G,EAAG,GAAKD,EAAG,GACX9G,GAAS,MAAQ+G,CAErB,EACMyd,EAAoB,CAACxkB,EAAUqkB,EAAcrd,EAAWC,GAAQE,GAAgBC,EAAWE,KAAc,CAC7G,MAAMod,GAAoB,IAAM,CAC9B,GAAK1kB,EAAS,UA8FP,CACL,GAAI,CAAE,KAAApN,GAAM,GAAA+xB,GAAI,EAAAC,GAAG,OAAA5G,GAAQ,MAAAva,GAAUzD,EACrC,CACE,MAAM6kB,EAAuBC,GAA2B9kB,CAAQ,EAChE,GAAI6kB,EAAsB,CACpBjyB,KACFA,GAAK,GAAK6Q,EAAM,GAChBghB,GAAyBzkB,EAAUpN,GAAM0U,EAAS,GAEpDud,EAAqB,SAAS,KAAK,IAAM,CACvCpf,GAAsB,IAAM,CACrBzF,EAAS,aAAa+kB,GAAA,CAC7B,EAAG5d,EAAc,CACnB,CAAC,EACD,MACF,CACF,CACA,IAAI6d,GAAapyB,GACb+vB,GAIJc,GAAczjB,EAAU,EAAK,EACzBpN,IACFA,GAAK,GAAK6Q,EAAM,GAChBghB,GAAyBzkB,EAAUpN,GAAM0U,EAAS,GAElD1U,GAAO6Q,EAELkhB,IACFj4B,GAAei4B,EAAE,GAEfhC,GAAY/vB,GAAK,OAASA,GAAK,MAAM,sBACvCowB,GAAgBL,GAAW3E,GAAQprB,GAAM6Q,CAAK,EAEhDggB,GAAczjB,EAAU,EAAI,EAI5B,MAAMilB,GAAW9I,GAAoBnc,CAAQ,EAIvCklB,EAAWllB,EAAS,QAC1BA,EAAS,QAAUilB,GAInBrD,EACEsD,EACAD,GAEAzD,EAAe0D,EAAS,EAAE,EAE1BrD,GAAgBqD,CAAQ,EACxBllB,EACAmH,GACAC,CAAA,EAKFxU,GAAK,GAAKqyB,GAAS,GACfD,KAAe,MACjBjH,GAAgB/d,EAAUilB,GAAS,EAAE,EAEnCL,IACFnf,GAAsBmf,GAAGzd,EAAc,GAErCwb,GAAY/vB,GAAK,OAASA,GAAK,MAAM,iBACvC6S,GACE,IAAMud,GAAgBL,GAAW3E,GAAQprB,GAAM6Q,CAAK,EACpD0D,EAAA,CASN,KA/KyB,CACvB,IAAIwb,GACJ,KAAM,CAAE,GAAAj4B,GAAI,MAAA0D,EAAA,EAAUi2B,EAChB,CAAE,GAAAc,GAAI,EAAA1M,EAAG,OAAAuF,GAAQ,KAAAlB,GAAM,KAAAnoB,IAASqL,EAChColB,EAAsB1V,GAAe2U,CAAY,EACvDZ,GAAczjB,EAAU,EAAK,EACzBmlB,IACFz4B,GAAey4B,EAAE,EAEf,CAACC,IAAwBzC,GAAYv0B,IAASA,GAAM,qBACtD40B,GAAgBL,GAAW3E,GAAQqG,CAAY,EAEjDZ,GAAczjB,EAAU,EAAI,EAiCrB,CACD8c,GAAK,IAAMA,GAAK,GAAG,kBACrBA,GAAK,GAAG,kBACNnoB,GACAqL,EAAS,OAASA,EAAS,OAAO,KAAO,QAM7C,MAAMuL,EAAUvL,EAAS,QAAUmc,GAAoBnc,CAAQ,EAO/D4hB,EACE,KACArW,EACAvE,EACAC,GACAjH,EACAmH,GACAC,CAAA,EAKFid,EAAa,GAAK9Y,EAAQ,EAC5B,CAIA,GAHIkN,GACFhT,GAAsBgT,EAAGtR,EAAc,EAErC,CAACie,IAAwBzC,GAAYv0B,IAASA,GAAM,gBAAiB,CACvE,MAAMi3B,EAAqBhB,EAC3B5e,GACE,IAAMud,GAAgBL,GAAW3E,GAAQqH,CAAkB,EAC3Dle,EAAA,CAEJ,EACIkd,EAAa,UAAY,KAAOrG,IAAUtO,GAAesO,GAAO,KAAK,GAAKA,GAAO,MAAM,UAAY,MACrGhe,EAAS,GAAKyF,GAAsBzF,EAAS,EAAGmH,EAAc,EAEhEnH,EAAS,UAAY,GAIrBqkB,EAAerd,EAAYC,GAAS,IACtC,CAkFF,EACAjH,EAAS,MAAM,KACf,MAAMhB,GAASgB,EAAS,OAAS,IAAIvO,GAAeizB,EAAiB,EACrE1kB,EAAS,MAAM,MACf,MAAM+kB,GAAS/kB,EAAS,OAAShB,GAAO,IAAI,KAAKA,EAAM,EACjDW,GAAMK,EAAS,IAAMhB,GAAO,WAAW,KAAKA,EAAM,EACxDW,GAAI,EAAIK,EACRL,GAAI,GAAKK,EAAS,IAClBhB,GAAO,UAAY,IAAM+C,GAASpC,EAAG,EACrC8jB,GAAczjB,EAAU,EAAI,EAK5B+kB,GAAA,CACF,EACMN,GAA2B,CAACzkB,EAAUid,EAAW3V,IAAc,CACnE2V,EAAU,UAAYjd,EACtB,MAAMkd,GAAYld,EAAS,MAAM,MACjCA,EAAS,MAAQid,EACjBjd,EAAS,KAAO,KAChBwe,GAAYxe,EAAUid,EAAU,MAAOC,GAAW5V,CAAS,EAC3DoZ,GAAY1gB,EAAUid,EAAU,SAAU3V,CAAS,EACnDzT,GAAA,EACAwO,GAAiBrC,CAAQ,EACzBlM,GAAA,CACF,EACM2T,GAAgB,CAACX,EAAIC,EAAIC,EAAWC,GAAQC,GAAiBC,EAAgBC,GAAWC,GAAcC,GAAY,KAAU,CAChI,MAAMge,GAAKxe,GAAMA,EAAG,SACdye,GAAgBze,EAAKA,EAAG,UAAY,EACpC0e,GAAKze,EAAG,SACR,CAAE,UAAAuW,GAAW,UAAA7T,EAAA,EAAc1C,EACjC,GAAIuW,GAAY,GACd,GAAIA,GAAY,IAAK,CACnBmI,EACEH,GACAE,GACAxe,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,EAEF,MACF,SAAWgW,GAAY,IAAK,CAC1BoI,GACEJ,GACAE,GACAxe,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,EAEF,MACF,EAEEmC,GAAY,GACV8b,GAAgB,IAClBI,GAAgBL,GAAIpe,GAAiBC,CAAc,EAEjDqe,KAAOF,IACT/D,EAAmBva,EAAWwe,EAAE,GAG9BD,GAAgB,GACd9b,GAAY,GACdgc,EACEH,GACAE,GACAxe,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,EAGFqe,GAAgBL,GAAIpe,GAAiBC,EAAgB,EAAI,GAGvDoe,GAAgB,GAClBhE,EAAmBva,EAAW,EAAE,EAE9ByC,GAAY,IACdjC,EACEge,GACAxe,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,EAKV,EACMoe,GAAuB,CAACJ,EAAIE,EAAIxe,EAAWC,GAAQC,GAAiBC,EAAgBC,GAAWC,GAAcC,KAAc,CAC/Hge,EAAKA,GAAMp7B,GACXs7B,EAAKA,GAAMt7B,GACX,MAAM07B,GAAYN,EAAG,OACfnwB,GAAYqwB,EAAG,OACfK,GAAe,KAAK,IAAID,GAAWzwB,EAAS,EAClD,IAAIxK,GACJ,IAAKA,GAAI,EAAGA,GAAIk7B,GAAcl7B,KAAK,CACjC,MAAMm7B,GAAYN,EAAG76B,EAAC,EAAI2c,GAAYgc,GAAekC,EAAG76B,EAAC,CAAC,EAAIgyB,GAAe6I,EAAG76B,EAAC,CAAC,EAClFi3B,EACE0D,EAAG36B,EAAC,EACJm7B,GACA9e,EACA,KACAE,GACAC,EACAC,GACAC,GACAC,EAAA,CAEJ,CACIse,GAAYzwB,GACdwwB,GACEL,EACApe,GACAC,EACA,GACA,GACA0e,EAAA,EAGFre,EACEge,EACAxe,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,GACAue,EAAA,CAGN,EACMJ,EAAqB,CAACH,EAAIE,EAAIxe,EAAW+C,GAAc7C,GAAiBC,EAAgBC,GAAWC,GAAcC,KAAc,CACnI,IAAI3c,GAAI,EACR,MAAMo7B,GAAKP,EAAG,OACd,IAAIQ,GAAKV,EAAG,OAAS,EACjBW,GAAKF,GAAK,EACd,KAAOp7B,IAAKq7B,IAAMr7B,IAAKs7B,IAAI,CACzB,MAAMnf,GAAKwe,EAAG36B,EAAC,EACToc,GAAKye,EAAG76B,EAAC,EAAI2c,GAAYgc,GAAekC,EAAG76B,EAAC,CAAC,EAAIgyB,GAAe6I,EAAG76B,EAAC,CAAC,EAC3E,GAAI6hB,GAAgB1F,GAAIC,EAAE,EACxB6a,EACE9a,GACAC,GACAC,EACA,KACAE,GACAC,EACAC,GACAC,GACAC,EAAA,MAGF,OAEF3c,IACF,CACA,KAAOA,IAAKq7B,IAAMr7B,IAAKs7B,IAAI,CACzB,MAAMnf,GAAKwe,EAAGU,EAAE,EACVjf,GAAKye,EAAGS,EAAE,EAAI3e,GAAYgc,GAAekC,EAAGS,EAAE,CAAC,EAAItJ,GAAe6I,EAAGS,EAAE,CAAC,EAC9E,GAAIzZ,GAAgB1F,GAAIC,EAAE,EACxB6a,EACE9a,GACAC,GACAC,EACA,KACAE,GACAC,EACAC,GACAC,GACAC,EAAA,MAGF,OAEF0e,KACAC,IACF,CACA,GAAIt7B,GAAIq7B,IACN,GAAIr7B,IAAKs7B,GAAI,CACX,MAAMC,GAAUD,GAAK,EACfhf,GAASif,GAAUH,GAAKP,EAAGU,EAAO,EAAE,GAAKnc,GAC/C,KAAOpf,IAAKs7B,IACVrE,EACE,KACA4D,EAAG76B,EAAC,EAAI2c,GAAYgc,GAAekC,EAAG76B,EAAC,CAAC,EAAIgyB,GAAe6I,EAAG76B,EAAC,CAAC,EAChEqc,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,EAEF3c,IAEJ,UACSA,GAAIs7B,GACb,KAAOt7B,IAAKq7B,IACV1c,GAAQgc,EAAG36B,EAAC,EAAGuc,GAAiBC,EAAgB,EAAI,EACpDxc,SAEG,CACL,MAAMw7B,GAAKx7B,GACLy7B,GAAKz7B,GACL07B,MAAuC,IAC7C,IAAK17B,GAAIy7B,GAAIz7B,IAAKs7B,GAAIt7B,KAAK,CACzB,MAAMm7B,EAAYN,EAAG76B,EAAC,EAAI2c,GAAYgc,GAAekC,EAAG76B,EAAC,CAAC,EAAIgyB,GAAe6I,EAAG76B,EAAC,CAAC,EAC9Em7B,EAAU,KAAO,MAQnBO,EAAiB,IAAIP,EAAU,IAAKn7B,EAAC,CAEzC,CACA,IAAIyoB,GACAkT,GAAU,EACd,MAAMC,GAAcN,GAAKG,GAAK,EAC9B,IAAII,EAAQ,GACRC,EAAmB,EACvB,MAAMC,EAAwB,IAAI,MAAMH,EAAW,EACnD,IAAK57B,GAAI,EAAGA,GAAI47B,GAAa57B,KAAK+7B,EAAsB/7B,EAAC,EAAI,EAC7D,IAAKA,GAAIw7B,GAAIx7B,IAAKq7B,GAAIr7B,KAAK,CACzB,MAAMg8B,EAAYrB,EAAG36B,EAAC,EACtB,GAAI27B,IAAWC,GAAa,CAC1Bjd,GAAQqd,EAAWzf,GAAiBC,EAAgB,EAAI,EACxD,QACF,CACA,IAAIyf,EACJ,GAAID,EAAU,KAAO,KACnBC,EAAWP,EAAiB,IAAIM,EAAU,GAAG,MAE7C,KAAKvT,GAAIgT,GAAIhT,IAAK6S,GAAI7S,KACpB,GAAIsT,EAAsBtT,GAAIgT,EAAE,IAAM,GAAK5Z,GAAgBma,EAAWnB,EAAGpS,EAAC,CAAC,EAAG,CAC5EwT,EAAWxT,GACX,KACF,CAGAwT,IAAa,OACftd,GAAQqd,EAAWzf,GAAiBC,EAAgB,EAAI,GAExDuf,EAAsBE,EAAWR,EAAE,EAAIz7B,GAAI,EACvCi8B,GAAYH,EACdA,EAAmBG,EAEnBJ,EAAQ,GAEV5E,EACE+E,EACAnB,EAAGoB,CAAQ,EACX5f,EACA,KACAE,GACAC,EACAC,GACAC,GACAC,EAAA,EAEFgf,KAEJ,CACA,MAAMO,EAA6BL,EAAQM,GAAYJ,CAAqB,EAAIx8B,GAEhF,IADAkpB,GAAIyT,EAA2B,OAAS,EACnCl8B,GAAI47B,GAAc,EAAG57B,IAAK,EAAGA,KAAK,CACrC,MAAMo8B,EAAYX,GAAKz7B,GACjBm7B,EAAYN,EAAGuB,CAAS,EACxBC,GAAcxB,EAAGuB,EAAY,CAAC,EAC9B9f,GAAS8f,EAAY,EAAIhB,GAE7BiB,GAAY,IAAMC,GAAiCD,EAAW,EAC5Djd,GACA2c,EAAsB/7B,EAAC,IAAM,EAC/Bi3B,EACE,KACAkE,EACA9e,EACAC,GACAC,GACAC,EACAC,GACAC,GACAC,EAAA,EAEOkf,IACLpT,GAAI,GAAKzoB,KAAMk8B,EAA2BzT,EAAC,EAC7CpJ,GAAK8b,EAAW9e,EAAWC,GAAQ,CAAC,EAEpCmM,KAGN,CACF,CACF,EACMpJ,GAAO,CAACvG,EAAOuD,EAAWC,EAAQgD,GAAU9C,GAAiB,OAAS,CAC1E,KAAM,CAAE,GAAAzc,EAAI,KAAAiK,GAAM,WAAAiuB,GAAY,SAAAlZ,GAAU,UAAAD,IAAchG,EACtD,GAAIgG,GAAY,EAAG,CACjBO,GAAKvG,EAAM,UAAU,QAASuD,EAAWC,EAAQgD,EAAQ,EACzD,MACF,CACA,GAAIR,GAAY,IAAK,CACnBhG,EAAM,SAAS,KAAKuD,EAAWC,EAAQgD,EAAQ,EAC/C,MACF,CACA,GAAIR,GAAY,GAAI,CAClB9U,GAAK,KAAK8O,EAAOuD,EAAWC,EAAQM,EAAS,EAC7C,MACF,CACA,GAAI5S,KAASka,GAAU,CACrBoS,EAAWv2B,EAAIsc,EAAWC,CAAM,EAChC,QAAStc,GAAI,EAAGA,GAAI+e,GAAS,OAAQ/e,KACnCqf,GAAKN,GAAS/e,EAAC,EAAGqc,EAAWC,EAAQgD,EAAQ,EAE/CgX,EAAWxd,EAAM,OAAQuD,EAAWC,CAAM,EAC1C,MACF,CACA,GAAItS,KAASstB,GAAQ,CACnBK,EAAe7e,EAAOuD,EAAWC,CAAM,EACvC,MACF,CAEA,GADwBgD,KAAa,GAAKR,GAAY,GAAKmZ,GAEzD,GAAI3Y,KAAa,EACX2Y,GAAW,WAAa,CAACl4B,EAAGogB,EAAU,EACxCmW,EAAWv2B,EAAIsc,EAAWC,CAAM,GAEhC2b,GAAW,YAAYl4B,CAAE,EACzBu2B,EAAWv2B,EAAIsc,EAAWC,CAAM,EAChCxB,GAAsB,IAAMmd,GAAW,MAAMl4B,CAAE,EAAGyc,EAAc,OAE7D,CACL,KAAM,CAAE,MAAA+f,GAAO,WAAAC,GAAY,WAAAC,EAAA,EAAexE,GACpCyE,GAAU,IAAM,CAChB5jB,EAAM,IAAI,YACZ8F,EAAW7e,CAAE,EAEbu2B,EAAWv2B,EAAIsc,EAAWC,CAAM,CAEpC,EACMqgB,GAAe,IAAM,CACzB,MAAMC,EAAa78B,EAAG,YAAc,CAAC,CAACA,EAAGogB,EAAU,EAC/CpgB,EAAG,YACLA,EAAGogB,EAAU,EACX,IAIA8X,GAAW,WAAa,CAAC2E,EAC3BF,KAEAH,GAAMx8B,EAAI,IAAM,CACd28B,KACAD,IAAcA,GAAA,CAChB,CAAC,CAEL,EACID,GACFA,GAAWz8B,EAAI28B,GAASC,EAAY,EAEpCA,GAAA,CAEJ,MAEArG,EAAWv2B,EAAIsc,EAAWC,CAAM,CAEpC,EACMqC,GAAU,CAAC7F,EAAOyD,EAAiBC,EAAgBqC,GAAW,GAAOlC,GAAY,KAAU,CAC/F,KAAM,CACJ,KAAA3S,EACA,MAAAvG,GACA,IAAAwN,GACA,SAAA8N,GACA,gBAAAzB,GACA,UAAAwB,GACA,UAAA6T,GACA,KAAAuF,GACA,WAAA2E,GACA,KAAAC,EAAA,EACEhkB,EAYJ,IAXI6Z,KAAc,IAAMrV,IAAmBA,GAAgB,WACzDX,GAAY,IAEV1L,IAAO,OACT/H,GAAA,EACAyb,GAAO1T,GAAK,KAAMuL,EAAgB1D,EAAO,EAAI,EAC7C3P,GAAA,GAEE0zB,IAAc,OAAS,CAAC/jB,EAAM,KAAOA,EAAM,MAAQyD,KACrDA,EAAgB,YAAYsgB,EAAU,EAAI,QAExC/d,GAAY,IAAK,CACnBvC,EAAgB,IAAI,WAAWzD,CAAK,EACpC,MACF,CACA,MAAMikB,EAAmBje,GAAY,GAAKoZ,GACpC8E,GAAwB,CAACjY,GAAejM,CAAK,EACnD,IAAIkf,GAIJ,GAHIgF,KAA0BhF,GAAYv0B,IAASA,GAAM,uBACvD40B,GAAgBL,GAAWzb,EAAiBzD,CAAK,EAE/CgG,GAAY,EACdme,GAAiBnkB,EAAM,UAAW0D,EAAgBqC,EAAQ,MACrD,CACL,GAAIC,GAAY,IAAK,CACnBhG,EAAM,SAAS,QAAQ0D,EAAgBqC,EAAQ,EAC/C,MACF,CACIke,GACF3jB,GAAoBN,EAAO,KAAMyD,EAAiB,eAAe,EAE/DuC,GAAY,GACdhG,EAAM,KAAK,OACTA,EACAyD,EACAC,EACAI,GACAiC,EAAA,EAEOvB,IAKX,CAACA,GAAgB,UAChBtT,IAASka,IAAYyO,GAAY,GAAKA,GAAY,IACjDqI,GACE1d,GACAf,EACAC,EACA,GACA,KAEOxS,IAASka,IAAYyO,GAAa,KAAc,CAAChW,IAAamC,GAAY,KACnFkc,GAAgBjc,GAAUxC,EAAiBC,CAAc,EAEvDqC,IACFhf,EAAOiZ,CAAK,CAEhB,CACA,MAAMokB,GAAuBJ,IAAQ,MAAQD,IAAc,MACvDG,KAA0BhF,GAAYv0B,IAASA,GAAM,mBAAqBs5B,GAAoBG,KAChGpiB,GAAsB,IAAM,CAC1Bkd,IAAaK,GAAgBL,GAAWzb,EAAiBzD,CAAK,EAC9DikB,GAAoB3jB,GAAoBN,EAAO,KAAMyD,EAAiB,WAAW,EAC7E2gB,KACFpkB,EAAM,GAAK,KAEf,EAAG0D,CAAc,CAErB,EACM3c,EAAUiZ,GAAU,CACxB,KAAM,CAAE,KAAA9O,EAAM,GAAAjK,EAAI,OAAAuc,GAAQ,WAAA2b,IAAenf,EACzC,GAAI9O,IAASka,GAAU,CAUnBiZ,GAAep9B,EAAIuc,EAAM,EAE3B,MACF,CACA,GAAItS,IAASstB,GAAQ,CACnBM,EAAiB9e,CAAK,EAClBmf,IAAc,CAACA,GAAW,WAAaA,GAAW,YACpDA,GAAW,aAEb,MACF,CACA,MAAMmF,EAAgB,IAAM,CAC1Bxe,EAAW7e,CAAE,EACTk4B,IAAc,CAACA,GAAW,WAAaA,GAAW,YACpDA,GAAW,YAEf,EACA,GAAInf,EAAM,UAAY,GAAKmf,IAAc,CAACA,GAAW,UAAW,CAC9D,KAAM,CAAE,MAAAsE,GAAO,WAAAC,EAAA,EAAevE,GACxB0E,GAAe,IAAMJ,GAAMx8B,EAAIq9B,CAAa,EAC9CZ,GACFA,GAAW1jB,EAAM,GAAIskB,EAAeT,EAAY,EAEhDA,GAAA,CAEJ,MACES,EAAA,CAEJ,EACMD,GAAiB,CAACtnB,EAAKkB,IAAQ,CACnC,IAAI9O,EACJ,KAAO4N,IAAQkB,GACb9O,EAAO6uB,EAAgBjhB,CAAG,EAC1B+I,EAAW/I,CAAG,EACdA,EAAM5N,EAER2W,EAAW7H,CAAG,CAChB,EACMkmB,GAAmB,CAAC5nB,EAAUmH,EAAgBqC,IAAa,CAI/D,KAAM,CAAE,IAAAwe,GAAK,MAAAxoB,GAAO,IAAAG,EAAK,QAAA4L,GAAS,GAAA0c,GAAI,EAAAxP,GAAG,EAAA9pB,IAAMqR,EAC/CkoB,GAAgBzP,EAAC,EACjByP,GAAgBv5B,EAAC,EACbq5B,IACFt7B,GAAes7B,EAAG,EAEpBxoB,GAAM,OACFG,GACFA,EAAI,OAAS,EACb2J,GAAQiC,GAASvL,EAAUmH,EAAgBqC,CAAQ,GAC1CxJ,EAAS,MAAM,IAAMuL,KAC9BA,GAAQ,WAAavL,EAAS,MAAM,WACpCsJ,GAAQiC,GAASvL,EAAUmH,EAAgBqC,CAAQ,GAEjDye,IACFxiB,GAAsBwiB,GAAI9gB,CAAc,EAE1C1B,GAAsB,IAAM,CAC1BzF,EAAS,YAAc,EACzB,EAAGmH,CAAc,CAInB,EACMwe,GAAkB,CAACjc,EAAUxC,EAAiBC,EAAgBqC,GAAW,GAAOlC,GAAY,GAAO7F,EAAQ,IAAM,CACrH,QAAS9W,GAAI8W,EAAO9W,GAAI+e,EAAS,OAAQ/e,KACvC2e,GAAQI,EAAS/e,EAAC,EAAGuc,EAAiBC,EAAgBqC,GAAUlC,EAAS,CAE7E,EACMua,GAAmBpe,GAAU,CACjC,GAAIA,EAAM,UAAY,EACpB,OAAOoe,GAAgBpe,EAAM,UAAU,OAAO,EAEhD,GAAIA,EAAM,UAAY,IACpB,OAAOA,EAAM,SAAS,OAExB,MAAM/Y,EAAK+2B,EAAgBhe,EAAM,QAAUA,EAAM,EAAE,EAC7C0kB,EAAcz9B,GAAMA,EAAG0b,EAAc,EAC3C,OAAO+hB,EAAc1G,EAAgB0G,CAAW,EAAIz9B,CACtD,EACA,IAAI09B,GAAa,GACjB,MAAMtR,GAAS,CAACrT,EAAOuD,EAAWI,IAAc,CAC9C,IAAIpH,GACAyD,GAAS,KACPuD,EAAU,SACZsC,GAAQtC,EAAU,OAAQ,KAAM,KAAM,EAAI,EAC1ChH,GAAWgH,EAAU,OAAO,WAG9B4a,EACE5a,EAAU,QAAU,KACpBvD,EACAuD,EACA,KACA,KACA,KACAI,CAAA,EAGJJ,EAAU,OAASvD,EACd2kB,KACHA,GAAa,GACb/lB,GAAiBrC,EAAQ,EACzBsC,GAAA,EACA8lB,GAAa,GAEjB,EACM7gB,GAAY,CAChB,EAAGqa,EACH,GAAItY,GACJ,EAAGU,GACH,EAAGxf,EACH,GAAI25B,EACJ,GAAI3c,EACJ,GAAIC,GACJ,IAAKC,EACL,EAAGma,GACH,EAAGvjB,CAAA,EASL,MAAO,CACL,OAAAwY,GACA,QATE,OAUF,UAAW4C,GAAa5C,EAAe,EAE3C,CACA,SAASgM,GAAyB,CAAE,KAAAnuB,EAAM,MAAAvG,CAAA,EAASi6B,EAAkB,CACnE,OAAOA,IAAqB,OAAS1zB,IAAS,iBAAmB0zB,IAAqB,UAAY1zB,IAAS,kBAAoBvG,GAASA,EAAM,UAAYA,EAAM,SAAS,SAAS,MAAM,EAAI,OAASi6B,CACvM,CACA,SAAS5E,GAAc,CAAE,OAAAzkB,EAAQ,IAAAW,CAAA,EAAO2oB,EAAS,CAC3CA,GACFtpB,EAAO,OAAS,GAChBW,EAAI,OAAS,IAEbX,EAAO,OAAS,IAChBW,EAAI,OAAS,GAEjB,CACA,SAASujB,GAAe/b,EAAgByb,EAAY,CAClD,OAAQ,CAACzb,GAAkBA,GAAkB,CAACA,EAAe,gBAAkByb,GAAc,CAACA,EAAW,SAC3G,CACA,SAASzZ,GAAuBrC,EAAIC,EAAIlN,EAAU,GAAO,CACvD,MAAM0uB,EAAMzhB,EAAG,SACT0hB,EAAMzhB,EAAG,SACf,GAAIjc,GAAQy9B,CAAG,GAAKz9B,GAAQ09B,CAAG,EAC7B,QAAS79B,EAAI,EAAGA,EAAI49B,EAAI,OAAQ59B,IAAK,CACnC,MAAM26B,EAAKiD,EAAI59B,CAAC,EAChB,IAAI66B,EAAKgD,EAAI79B,CAAC,EACV66B,EAAG,UAAY,GAAK,CAACA,EAAG,mBACtBA,EAAG,WAAa,GAAKA,EAAG,YAAc,MACxCA,EAAKgD,EAAI79B,CAAC,EAAI24B,GAAekF,EAAI79B,CAAC,CAAC,EACnC66B,EAAG,GAAKF,EAAG,IAET,CAACzrB,GAAW2rB,EAAG,YAAc,IAC/Brc,GAAuBmc,EAAIE,CAAE,GAE7BA,EAAG,OAAS1D,KACV0D,EAAG,YAAc,KACnBA,EAAKgD,EAAI79B,CAAC,EAAI24B,GAAekC,CAAE,GAEjCA,EAAG,GAAKF,EAAG,IAETE,EAAG,OAASnZ,IAAW,CAACmZ,EAAG,KAC7BA,EAAG,GAAKF,EAAG,GAKf,CAEJ,CACA,SAASwB,GAAYr8B,EAAK,CACxB,MAAM6W,EAAI7W,EAAI,QACRyM,EAAS,CAAC,CAAC,EACjB,IAAIvM,EAAGyoB,EAAGwR,EAAGt0B,EAAGnE,EAChB,MAAMs8B,EAAMh+B,EAAI,OAChB,IAAKE,EAAI,EAAGA,EAAI89B,EAAK99B,IAAK,CACxB,MAAM+9B,EAAOj+B,EAAIE,CAAC,EAClB,GAAI+9B,IAAS,EAAG,CAEd,GADAtV,EAAIlc,EAAOA,EAAO,OAAS,CAAC,EACxBzM,EAAI2oB,CAAC,EAAIsV,EAAM,CACjBpnB,EAAE3W,CAAC,EAAIyoB,EACPlc,EAAO,KAAKvM,CAAC,EACb,QACF,CAGA,IAFAi6B,EAAI,EACJt0B,EAAI4G,EAAO,OAAS,EACb0tB,EAAIt0B,GACTnE,EAAIy4B,EAAIt0B,GAAK,EACT7F,EAAIyM,EAAO/K,CAAC,CAAC,EAAIu8B,EACnB9D,EAAIz4B,EAAI,EAERmE,EAAInE,EAGJu8B,EAAOj+B,EAAIyM,EAAO0tB,CAAC,CAAC,IAClBA,EAAI,IACNtjB,EAAE3W,CAAC,EAAIuM,EAAO0tB,EAAI,CAAC,GAErB1tB,EAAO0tB,CAAC,EAAIj6B,EAEhB,CACF,CAGA,IAFAi6B,EAAI1tB,EAAO,OACX5G,EAAI4G,EAAO0tB,EAAI,CAAC,EACTA,KAAM,GACX1tB,EAAO0tB,CAAC,EAAIt0B,EACZA,EAAIgR,EAAEhR,CAAC,EAET,OAAO4G,CACT,CACA,SAAS4tB,GAA2B9kB,EAAU,CAC5C,MAAM2oB,EAAe3oB,EAAS,QAAQ,UACtC,GAAI2oB,EACF,OAAIA,EAAa,UAAY,CAACA,EAAa,cAClCA,EAEA7D,GAA2B6D,CAAY,CAGpD,CACA,SAAST,GAAgB9b,EAAO,CAC9B,GAAIA,EACF,QAASzhB,EAAI,EAAGA,EAAIyhB,EAAM,OAAQzhB,IAChCyhB,EAAMzhB,CAAC,EAAE,OAAS,CAExB,CACA,SAASs8B,GAAiC2B,EAAa,CACrD,GAAIA,EAAY,YACd,OAAOA,EAAY,YAErB,MAAM5oB,EAAW4oB,EAAY,UAC7B,OAAI5oB,EACKinB,GAAiCjnB,EAAS,OAAO,EAEnD,IACT,CAEA,MAAMojB,GAAczuB,GAASA,EAAK,aA+kBlC,SAASksB,GAAwB90B,EAAIkyB,EAAU,CACzCA,GAAYA,EAAS,cACnBnzB,GAAQiB,CAAE,EACZkyB,EAAS,QAAQ,KAAK,GAAGlyB,CAAE,EAE3BkyB,EAAS,QAAQ,KAAKlyB,CAAE,EAG1BqW,GAAiBrW,CAAE,CAEvB,CAoBA,MAAM8iB,GAA2B,OAAO,IAAI,OAAO,EAC7CiT,GAAuB,OAAO,IAAI,OAAO,EACzCzV,GAA0B,OAAO,IAAI,OAAO,EAC5C4V,GAAyB,OAAO,IAAI,OAAO,EAC3C3e,GAAa,GACnB,IAAIulB,GAAe,KACnB,SAASlV,EAAUmV,EAAkB,GAAO,CAC1CxlB,GAAW,KAAKulB,GAAeC,EAAkB,KAAO,EAAE,CAC5D,CACA,SAASvlB,IAAa,CACpBD,GAAW,MACXulB,GAAevlB,GAAWA,GAAW,OAAS,CAAC,GAAK,IACtD,CACA,IAAIylB,GAAqB,EACzB,SAAS5lB,GAAiB1X,EAAOu9B,EAAU,GAAO,CAChDD,IAAsBt9B,EAClBA,EAAQ,GAAKo9B,IAAgBG,IAC/BH,GAAa,QAAU,GAE3B,CACA,SAASI,GAAWxlB,EAAO,CACzB,OAAAA,EAAM,gBAAkBslB,GAAqB,EAAIF,IAAgB3+B,GAAY,KAC7EqZ,GAAA,EACIwlB,GAAqB,GAAKF,IAC5BA,GAAa,KAAKplB,CAAK,EAElBA,CACT,CACA,SAASylB,EAAmBv0B,EAAMvG,EAAOsb,EAAU4T,EAAWG,EAAchU,EAAW,CACrF,OAAOwf,GACLE,EACEx0B,EACAvG,EACAsb,EACA4T,EACAG,EACAhU,EACA,GACF,CAEJ,CACA,SAASmK,GAAYjf,EAAMvG,EAAOsb,EAAU4T,EAAWG,EAAc,CACnE,OAAOwL,GACLpV,GACElf,EACAvG,EACAsb,EACA4T,EACAG,EACA,GACF,CAEJ,CACA,SAAStJ,GAAQ1oB,EAAO,CACtB,OAAOA,EAAQA,EAAM,cAAgB,GAAO,EAC9C,CACA,SAAS+gB,GAAgB1F,EAAIC,EAAI,CAS/B,OAAOD,EAAG,OAASC,EAAG,MAAQD,EAAG,MAAQC,EAAG,GAC9C,CAUA,MAAMqiB,GAAe,CAAC,CAAE,IAAAr/B,KAAUA,GAAoB,KAChDs/B,GAAe,CAAC,CACpB,IAAAztB,EACA,QAAA0tB,EACA,QAAAC,CACF,KACM,OAAO3tB,GAAQ,WACjBA,EAAM,GAAKA,GAENA,GAAO,KAAOxQ,GAASwQ,CAAG,GAAK7L,GAAM6L,CAAG,GAAKzQ,GAAWyQ,CAAG,EAAI,CAAE,EAAG4G,GAA0B,EAAG5G,EAAK,EAAG0tB,EAAS,EAAG,CAAC,CAACC,GAAY3tB,EAAM,MAElJ,SAASutB,EAAgBx0B,EAAMvG,EAAQ,KAAMsb,EAAW,KAAM4T,EAAY,EAAGG,EAAe,KAAMhU,EAAY9U,IAASka,GAAW,EAAI,EAAG2a,EAAc,GAAOC,EAAgC,GAAO,CACnM,MAAMhmB,EAAQ,CACZ,YAAa,GACb,SAAU,GACV,KAAA9O,EACA,MAAAvG,EACA,IAAKA,GAASg7B,GAAah7B,CAAK,EAChC,IAAKA,GAASi7B,GAAaj7B,CAAK,EAChC,QAASqU,GACT,aAAc,KACd,SAAAiH,EACA,UAAW,KACX,SAAU,KACV,UAAW,KACX,WAAY,KACZ,KAAM,KACN,WAAY,KACZ,GAAI,KACJ,OAAQ,KACR,OAAQ,KACR,YAAa,KACb,aAAc,KACd,YAAa,EACb,UAAAD,EACA,UAAA6T,EACA,aAAAG,EACA,gBAAiB,KACjB,WAAY,KACZ,IAAKjb,EAAA,EAEP,OAAIinB,GACFC,GAAkBjmB,EAAOiG,CAAQ,EAC7BD,EAAY,KACd9U,EAAK,UAAU8O,CAAK,GAEbiG,IACTjG,EAAM,WAAarY,GAASse,CAAQ,EAAI,EAAI,IAa1Cqf,GAAqB,GACzB,CAACS,GACDX,KAICplB,EAAM,UAAY,GAAKgG,EAAY,IAEpChG,EAAM,YAAc,IAClBolB,GAAa,KAAKplB,CAAK,EAElBA,CACT,CAMA,MAAMoQ,GAAyF8V,GAC/F,SAASA,GAAah1B,EAAMvG,EAAQ,KAAMsb,EAAW,KAAM4T,EAAY,EAAGG,EAAe,KAAM+L,EAAc,GAAO,CAOlH,IANI,CAAC70B,GAAQA,IAASqd,MAIpBrd,EAAO0X,IAEL8H,GAAQxf,CAAI,EAAG,CACjB,MAAMi1B,EAASnb,GACb9Z,EACAvG,EACA,IAGF,OAAIsb,GACFggB,GAAkBE,EAAQlgB,CAAQ,EAEhCqf,GAAqB,GAAK,CAACS,GAAeX,KACxCe,EAAO,UAAY,EACrBf,GAAaA,GAAa,QAAQl0B,CAAI,CAAC,EAAIi1B,EAE3Cf,GAAa,KAAKe,CAAM,GAG5BA,EAAO,UAAY,GACZA,CACT,CAIA,GAHIC,GAAiBl1B,CAAI,IACvBA,EAAOA,EAAK,WAEVvG,EAAO,CACTA,EAAQ07B,GAAmB17B,CAAK,EAChC,GAAI,CAAE,MAAOC,EAAO,MAAAC,CAAA,EAAUF,EAC1BC,GAAS,CAACjD,GAASiD,CAAK,IAC1BD,EAAM,MAAQH,GAAeI,CAAK,GAEhC/C,GAASgD,CAAK,IACZmN,GAAQnN,CAAK,GAAK,CAACxD,GAAQwD,CAAK,IAClCA,EAAQ/D,GAAO,GAAI+D,CAAK,GAE1BF,EAAM,MAAQf,GAAeiB,CAAK,EAEtC,CACA,MAAMmb,EAAYre,GAASuJ,CAAI,EAAI,EAAIyuB,GAAWzuB,CAAI,EAAI,IAAM0R,GAAW1R,CAAI,EAAI,GAAKrJ,GAASqJ,CAAI,EAAI,EAAIxJ,GAAWwJ,CAAI,EAAI,EAAI,EAUpI,OAAOw0B,EACLx0B,EACAvG,EACAsb,EACA4T,EACAG,EACAhU,EACA+f,EACA,GAEJ,CACA,SAASM,GAAmB17B,EAAO,CACjC,OAAKA,EACEqN,GAAQrN,CAAK,GAAKgwB,GAAiBhwB,CAAK,EAAI7D,GAAO,GAAI6D,CAAK,EAAIA,EADpD,IAErB,CACA,SAASqgB,GAAWhL,EAAOsmB,EAAYC,EAAW,GAAOC,EAAkB,GAAO,CAChF,KAAM,CAAE,MAAA77B,EAAO,IAAAwN,EAAK,UAAA0hB,EAAW,SAAA5T,EAAU,WAAAkZ,GAAenf,EAClDymB,EAAcH,EAAaI,GAAW/7B,GAAS,GAAI27B,CAAU,EAAI37B,EACjEw7B,EAAS,CACb,YAAa,GACb,SAAU,GACV,KAAMnmB,EAAM,KACZ,MAAOymB,EACP,IAAKA,GAAed,GAAac,CAAW,EAC5C,IAAKH,GAAcA,EAAW,IAI5BC,GAAYpuB,EAAM9Q,GAAQ8Q,CAAG,EAAIA,EAAI,OAAOytB,GAAaU,CAAU,CAAC,EAAI,CAACnuB,EAAKytB,GAAaU,CAAU,CAAC,EAAIV,GAAaU,CAAU,EAC/HnuB,EACJ,QAAS6H,EAAM,QACf,aAAcA,EAAM,aACpB,SAA8HiG,EAC9H,OAAQjG,EAAM,OACd,YAAaA,EAAM,YACnB,aAAcA,EAAM,aACpB,YAAaA,EAAM,YACnB,UAAWA,EAAM,UAKjB,UAAWsmB,GAActmB,EAAM,OAASoL,GAAWyO,IAAc,GAAK,GAAKA,EAAY,GAAKA,EAC5F,aAAc7Z,EAAM,aACpB,gBAAiBA,EAAM,gBACvB,WAAYA,EAAM,WAClB,KAAMA,EAAM,KACZ,WAAAmf,EAKA,UAAWnf,EAAM,UACjB,SAAUA,EAAM,SAChB,UAAWA,EAAM,WAAagL,GAAWhL,EAAM,SAAS,EACxD,WAAYA,EAAM,YAAcgL,GAAWhL,EAAM,UAAU,EAC3D,YAAaA,EAAM,YACnB,GAAIA,EAAM,GACV,OAAQA,EAAM,OACd,IAAKA,EAAM,IACX,GAAIA,EAAM,GACV,WAAYA,EAAM,YAEpB,OAAImf,GAAcqH,GAChB3d,GACEsd,EACAhH,EAAW,MAAMgH,CAAM,GAGpBA,CACT,CAQA,SAASQ,GAAgBC,EAAO,IAAKC,EAAO,EAAG,CAC7C,OAAOzW,GAAYiO,GAAM,KAAMuI,EAAMC,CAAI,CAC3C,CAMA,SAAS1e,GAAmBye,EAAO,GAAIE,EAAU,GAAO,CACtD,OAAOA,GAAW5W,IAAaC,GAAYvH,GAAS,KAAMge,CAAI,GAAKxW,GAAYxH,GAAS,KAAMge,CAAI,CACpG,CACA,SAAS1N,GAAe9S,EAAO,CAC7B,OAAIA,GAAS,MAAQ,OAAOA,GAAU,UAC7BgK,GAAYxH,EAAO,EACjBvhB,GAAQ+e,CAAK,EACfgK,GACLhF,GACA,KAEAhF,EAAM,OAAM,EAELsK,GAAQtK,CAAK,EACfyZ,GAAezZ,CAAK,EAEpBgK,GAAYiO,GAAM,KAAM,OAAOjY,CAAK,CAAC,CAEhD,CACA,SAASyZ,GAAezZ,EAAO,CAC7B,OAAOA,EAAM,KAAO,MAAQA,EAAM,YAAc,IAAMA,EAAM,KAAOA,EAAQ4E,GAAW5E,CAAK,CAC7F,CACA,SAAS6f,GAAkBjmB,EAAOiG,EAAU,CAC1C,IAAI/U,EAAO,EACX,KAAM,CAAE,UAAA8U,GAAchG,EACtB,GAAIiG,GAAY,KACdA,EAAW,aACF5e,GAAQ4e,CAAQ,EACzB/U,EAAO,WACE,OAAO+U,GAAa,SAC7B,GAAID,EAAa,GAAS,CACxB,MAAM0J,EAAOzJ,EAAS,QAClByJ,IACFA,EAAK,KAAOA,EAAK,GAAK,IACtBuW,GAAkBjmB,EAAO0P,GAAM,EAC/BA,EAAK,KAAOA,EAAK,GAAK,KAExB,MACF,KAAO,CACLxe,EAAO,GACP,MAAM61B,EAAW9gB,EAAS,EACtB,CAAC8gB,GAAY,CAACpM,GAAiB1U,CAAQ,EACzCA,EAAS,KAAOlH,GACPgoB,IAAa,GAAKhoB,KACvBA,GAAyB,MAAM,IAAM,EACvCkH,EAAS,EAAI,GAEbA,EAAS,EAAI,EACbjG,EAAM,WAAa,MAGzB,SACStY,GAAWue,CAAQ,EAAG,CAC/B,GAAID,EAAa,GAAS,CACxBigB,GAAkBjmB,EAAO,CAAE,QAASiG,CAAA,CAAU,EAC9C,MACF,CACAA,EAAW,CAAE,QAASA,EAAU,KAAMlH,EAAA,EACtC7N,EAAO,EACT,MACE+U,EAAW,OAAOA,CAAQ,EACtBD,EAAY,IACd9U,EAAO,GACP+U,EAAW,CAAC0gB,GAAgB1gB,CAAQ,CAAC,GAErC/U,EAAO,EAGX8O,EAAM,SAAWiG,EACjBjG,EAAM,WAAa9O,CACrB,CACA,SAASw1B,MAAc9zB,EAAM,CAC3B,MAAMvI,EAAM,GACZ,QAASnD,EAAI,EAAGA,EAAI0L,EAAK,OAAQ1L,IAAK,CACpC,MAAM8/B,EAAUp0B,EAAK1L,CAAC,EACtB,UAAWZ,KAAO0gC,EAChB,GAAI1gC,IAAQ,QACN+D,EAAI,QAAU28B,EAAQ,QACxB38B,EAAI,MAAQG,GAAe,CAACH,EAAI,MAAO28B,EAAQ,KAAK,CAAC,WAE9C1gC,IAAQ,QACjB+D,EAAI,MAAQT,GAAe,CAACS,EAAI,MAAO28B,EAAQ,KAAK,CAAC,UAC5CpgC,GAAKN,CAAG,EAAG,CACpB,MAAMumB,EAAWxiB,EAAI/D,CAAG,EAClB2gC,EAAWD,EAAQ1gC,CAAG,EACxB2gC,GAAYpa,IAAaoa,GAAY,EAAE5/B,GAAQwlB,CAAQ,GAAKA,EAAS,SAASoa,CAAQ,GACxF58B,EAAI/D,CAAG,EAAIumB,EAAW,GAAG,OAAOA,EAAUoa,CAAQ,EAAIA,EAC7CA,GAAY,MAAQpa,GAAY,MAE3C,CAAChmB,GAAgBP,CAAG,IAClB+D,EAAI/D,CAAG,EAAI2gC,EAEf,MAAW3gC,IAAQ,KACjB+D,EAAI/D,CAAG,EAAI0gC,EAAQ1gC,CAAG,EAG5B,CACA,OAAO+D,CACT,CACA,SAASk1B,GAAgB7e,EAAMnE,EAAUyD,EAAOO,EAAY,KAAM,CAChE9D,GAA2BiE,EAAMnE,EAAU,EAAG,CAC5CyD,EACAO,CAAA,CACD,CACH,CAEA,MAAM2mB,GAAkBnR,GAAA,EACxB,IAAIoR,GAAM,EACV,SAAStG,GAAwB7gB,EAAOua,EAAQC,EAAU,CACxD,MAAMtpB,EAAO8O,EAAM,KACbqR,GAAckJ,EAASA,EAAO,WAAava,EAAM,aAAeknB,GAChE3qB,EAAW,CACf,IAAK4qB,KACL,MAAAnnB,EACA,KAAA9O,EACA,OAAAqpB,EACA,WAAAlJ,EACA,KAAM,KAEN,KAAM,KACN,QAAS,KAET,OAAQ,KACR,OAAQ,KAER,IAAK,KACL,MAAO,IAAIpkB,GACT,IAGF,OAAQ,KACR,MAAO,KACP,QAAS,KACT,YAAa,KACb,UAAW,KACX,SAAUstB,EAASA,EAAO,SAAW,OAAO,OAAOlJ,EAAW,QAAQ,EACtE,IAAKkJ,EAASA,EAAO,IAAM,CAAC,GAAI,EAAG,CAAC,EACpC,YAAa,KACb,YAAa,GAEb,WAAY,KACZ,WAAY,KAEZ,aAAcwB,GAAsB7qB,EAAMmgB,CAAU,EACpD,aAAc8G,GAAsBjnB,EAAMmgB,CAAU,EAEpD,KAAM,KAEN,QAAS,KAET,cAAe7qB,GAEf,aAAc0K,EAAK,aAEnB,IAAK1K,GACL,KAAMA,GACN,MAAOA,GACP,MAAOA,GACP,MAAOA,GACP,KAAMA,GACN,WAAYA,GACZ,aAAc,KAEd,SAAAg0B,EACA,WAAYA,EAAWA,EAAS,UAAY,EAC5C,SAAU,KACV,cAAe,GAGf,UAAW,GACX,YAAa,GACb,cAAe,GACf,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,IAAK,KACL,GAAI,KACJ,EAAG,KACH,IAAK,KACL,IAAK,KACL,GAAI,KACJ,GAAI,MAKJ,OAAAje,EAAS,IAAM,CAAE,EAAGA,CAAA,EAEtBA,EAAS,KAAOge,EAASA,EAAO,KAAOhe,EACvCA,EAAS,KAAOsb,GAAK,KAAK,KAAMtb,CAAQ,EACpCyD,EAAM,IACRA,EAAM,GAAGzD,CAAQ,EAEZA,CACT,CACA,IAAIqE,GAAkB,KACtB,MAAMK,GAAqB,IAAML,IAAmB7B,GACpD,IAAIqoB,GACAC,GACJ,CACE,MAAMC,EAAI39B,GAAA,EACJ49B,EAAuB,CAACjhC,EAAKyT,IAAW,CAC5C,IAAIytB,EACJ,OAAMA,EAAUF,EAAEhhC,CAAG,KAAIkhC,EAAUF,EAAEhhC,CAAG,EAAI,IAC5CkhC,EAAQ,KAAKztB,CAAM,EACXlN,GAAM,CACR26B,EAAQ,OAAS,EAAGA,EAAQ,QAASvuB,GAAQA,EAAIpM,CAAC,CAAC,EAClD26B,EAAQ,CAAC,EAAE36B,CAAC,CACnB,CACF,EACAu6B,GAA6BG,EAC3B,2BACC16B,GAAM+T,GAAkB/T,CAAA,EAE3Bw6B,GAAqBE,EACnB,sBACC16B,GAAMgV,GAAwBhV,CAAA,CAEnC,CACA,MAAM0V,GAAsBhG,GAAa,CACvC,MAAM/M,EAAOoR,GACb,OAAAwmB,GAA2B7qB,CAAQ,EACnCA,EAAS,MAAM,KACR,IAAM,CACXA,EAAS,MAAM,MACf6qB,GAA2B53B,CAAI,CACjC,CACF,EACMi4B,GAAuB,IAAM,CACjC7mB,IAAmBA,GAAgB,MAAM,MACzCwmB,GAA2B,IAAI,CACjC,EASA,SAAStW,GAAoBvU,EAAU,CACrC,OAAOA,EAAS,MAAM,UAAY,CACpC,CACA,IAAIsF,GAAwB,GAC5B,SAASif,GAAevkB,EAAUvC,EAAQ,GAAO6J,EAAY,GAAO,CAClE7J,GAASqtB,GAAmBrtB,CAAK,EACjC,KAAM,CAAE,MAAArP,EAAO,SAAAsb,CAAA,EAAa1J,EAAS,MAC/Bse,EAAa/J,GAAoBvU,CAAQ,EAC/Cqe,GAAUre,EAAU5R,EAAOkwB,EAAY7gB,CAAK,EAC5CgjB,GAAUzgB,EAAU0J,EAAUpC,GAAa7J,CAAK,EAChD,MAAM0tB,EAAc7M,EAAa8M,GAAuBprB,EAAUvC,CAAK,EAAI,OAC3E,OAAAA,GAASqtB,GAAmB,EAAK,EAC1BK,CACT,CACA,SAASC,GAAuBprB,EAAUvC,EAAO,CAC/C,MAAM4U,EAAYrS,EAAS,KAuB3BA,EAAS,YAA8B,OAAO,OAAO,IAAI,EACzDA,EAAS,MAAQ,IAAI,MAAMA,EAAS,IAAK2U,EAA2B,EAIpE,KAAM,CAAE,MAAA0W,GAAUhZ,EAClB,GAAIgZ,EAAO,CACTx3B,GAAA,EACA,MAAMy3B,EAAetrB,EAAS,aAAeqrB,EAAM,OAAS,EAAI5V,GAAmBzV,CAAQ,EAAI,KACzF+F,EAAQC,GAAmBhG,CAAQ,EACnCmrB,EAAcprB,GAClBsrB,EACArrB,EACA,EACA,CACgFA,EAAS,MACvFsrB,CAAA,CACF,EAEIC,EAAehgC,GAAU4/B,CAAW,EAM1C,GALAr3B,GAAA,EACAiS,EAAA,GACKwlB,GAAgBvrB,EAAS,KAAO,CAAC0P,GAAe1P,CAAQ,GAC3DgP,GAAkBhP,CAAQ,EAExBurB,EAAc,CAEhB,GADAJ,EAAY,KAAKD,GAAsBA,EAAoB,EACvDztB,EACF,OAAO0tB,EAAY,KAAMK,GAAmB,CAC1CV,GAAmB,EAAI,EACvB,GAAI,CACFW,GAAkBzrB,EAAUwrB,EAAgB/tB,CAAK,CACnD,SACEqtB,GAAmB,EAAK,CAC1B,CACF,CAAC,EAAE,MAAOn4B,GAAM,CACdsN,GAAYtN,EAAGqN,EAAU,CAAC,CAC5B,CAAC,EAEDA,EAAS,SAAWmrB,CAQxB,MACEM,GAAkBzrB,EAAUmrB,CAAkB,CAElD,MACEO,GAAqB1rB,CAAe,CAExC,CACA,SAASyrB,GAAkBzrB,EAAUmrB,EAAa1tB,EAAO,CACnDtS,GAAWggC,CAAW,EACpBnrB,EAAS,KAAK,kBAChBA,EAAS,UAAYmrB,EAErBnrB,EAAS,OAASmrB,EAEX7/B,GAAS6/B,CAAW,IAS7BnrB,EAAS,WAAa1D,GAAU6uB,CAAW,GAS7CO,GAAqB1rB,CAAe,CACtC,CAYA,SAAS0rB,GAAqB1rB,EAAUvC,EAAOkuB,EAAa,CAC1D,MAAMtZ,EAAYrS,EAAS,KACtBA,EAAS,SAyBZA,EAAS,OAASqS,EAAU,QAAUloB,IAKP,CAC/B,MAAM4b,EAAQC,GAAmBhG,CAAQ,EACzCnM,GAAA,EACA,GAAI,CACF+hB,GAAa5V,CAAQ,CACvB,SACElM,GAAA,EACAiS,EAAA,CACF,CACF,CAUF,CACA,MAAM6lB,GAcF,CACF,IAAIl3B,EAAQ3K,EAAK,CACf,OAAA0K,GAAMC,EAAQ,MAAO,EAAE,EAChBA,EAAO3K,CAAG,CACnB,CACF,EASA,SAAS0rB,GAAmBzV,EAAU,CACpC,MAAMmX,EAAUW,GAAY,CAqB1B9X,EAAS,QAAU8X,GAAW,EAChC,EAiBE,MAAO,CACL,MAAO,IAAI,MAAM9X,EAAS,MAAO4rB,EAAkB,EACnD,MAAO5rB,EAAS,MAChB,KAAMA,EAAS,KACf,OAAAmX,CAAA,CAGN,CACA,SAASxT,GAA2B3D,EAAU,CAC5C,OAAIA,EAAS,QACJA,EAAS,cAAgBA,EAAS,YAAc,IAAI,MAAM1D,GAAUZ,GAAQsE,EAAS,OAAO,CAAC,EAAG,CACrG,IAAItL,EAAQ3K,EAAK,CACf,GAAIA,KAAO2K,EACT,OAAOA,EAAO3K,CAAG,EACnB,GAAWA,KAAOyqB,GAChB,OAAOA,GAAoBzqB,CAAG,EAAEiW,CAAQ,CAE5C,EACA,IAAItL,EAAQ3K,EAAK,CACf,OAAOA,KAAO2K,GAAU3K,KAAOyqB,EACjC,EACD,GAEMxU,EAAS,KAEpB,CAGA,SAASuS,GAAiBF,EAAWwZ,EAAkB,GAAM,CAC3D,OAAO1gC,GAAWknB,CAAS,EAAIA,EAAU,aAAeA,EAAU,KAAOA,EAAU,MAAQwZ,GAAmBxZ,EAAU,MAC1H,CAuBA,SAASwX,GAAiBp+B,EAAO,CAC/B,OAAON,GAAWM,CAAK,GAAK,cAAeA,CAC7C,CAEA,MAAM2H,GAAW,CAACsK,EAAiBC,IACvBmuB,GAAWpuB,EAAiBC,EAAc2H,EAAqB,EAU3E,SAAS2S,GAAEtjB,EAAMo3B,EAAiBriB,EAAU,CAC1C,GAAI,CACFvG,GAAiB,EAAE,EACnB,MAAMvS,EAAI,UAAU,OACpB,OAAIA,IAAM,EACJtF,GAASygC,CAAe,GAAK,CAACjhC,GAAQihC,CAAe,EACnD5X,GAAQ4X,CAAe,EAClBlY,GAAYlf,EAAM,KAAM,CAACo3B,CAAe,CAAC,EAE3ClY,GAAYlf,EAAMo3B,CAAe,EAEjClY,GAAYlf,EAAM,KAAMo3B,CAAe,GAG5Cn7B,EAAI,EACN8Y,EAAW,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EACzC9Y,IAAM,GAAKujB,GAAQzK,CAAQ,IACpCA,EAAW,CAACA,CAAQ,GAEfmK,GAAYlf,EAAMo3B,EAAiBriB,CAAQ,EAEtD,SACEvG,GAAiB,CAAC,CACpB,CACF,CAgNA,MAAMgX,GAAU,SACV6R,GAA4D7hC,GC7mRlE,IAAI8hC,GACJ,MAAMC,GAAK,OAAO,OAAW,KAAe,OAAO,aACnD,GAAIA,GACF,GAAI,CACFD,GAAyBC,GAAG,aAAa,MAAO,CAC9C,WAAaliC,GAAQA,CAAA,CACtB,CACH,MAAY,CAEZ,CAEF,MAAMmiC,GAAsBF,GAAUjiC,GAAQiiC,GAAO,WAAWjiC,CAAG,EAAKA,GAAQA,EAC1EoiC,GAAQ,6BACRC,GAAW,qCACXC,GAAM,OAAO,SAAa,IAAc,SAAW,KACnDC,GAAoBD,IAAuBA,GAAI,cAAc,UAAU,EACvEE,GAAU,CACd,OAAQ,CAAC3iB,EAAOmU,EAAQ/W,IAAW,CACjC+W,EAAO,aAAanU,EAAO5C,GAAU,IAAI,CAC3C,EACA,OAAS4C,GAAU,CACjB,MAAMmU,EAASnU,EAAM,WACjBmU,GACFA,EAAO,YAAYnU,CAAK,CAE5B,EACA,cAAe,CAAC4iB,EAAKrlB,EAAWslB,EAAIt+B,IAAU,CAC5C,MAAM1D,EAAK0c,IAAc,MAAQklB,GAAI,gBAAgBF,GAAOK,CAAG,EAAIrlB,IAAc,SAAWklB,GAAI,gBAAgBD,GAAUI,CAAG,EAAIC,EAAKJ,GAAI,cAAcG,EAAK,CAAE,GAAAC,EAAI,EAAIJ,GAAI,cAAcG,CAAG,EAC5L,OAAIA,IAAQ,UAAYr+B,GAASA,EAAM,UAAY,MACjD1D,EAAG,aAAa,WAAY0D,EAAM,QAAQ,EAErC1D,CACT,EACA,WAAa2/B,GAASiC,GAAI,eAAejC,CAAI,EAC7C,cAAgBA,GAASiC,GAAI,cAAcjC,CAAI,EAC/C,QAAS,CAAClgB,EAAMkgB,IAAS,CACvBlgB,EAAK,UAAYkgB,CACnB,EACA,eAAgB,CAAC3/B,EAAI2/B,IAAS,CAC5B3/B,EAAG,YAAc2/B,CACnB,EACA,WAAalgB,GAASA,EAAK,WAC3B,YAAcA,GAASA,EAAK,YAC5B,cAAgBwiB,GAAaL,GAAI,cAAcK,CAAQ,EACvD,WAAWjiC,EAAI8W,EAAI,CACjB9W,EAAG,aAAa8W,EAAI,EAAE,CACxB,EAKA,oBAAoBorB,EAAS5O,EAAQ/W,EAAQG,EAAW3F,EAAOC,EAAK,CAClE,MAAMmrB,EAAS5lB,EAASA,EAAO,gBAAkB+W,EAAO,UACxD,GAAIvc,IAAUA,IAAUC,GAAOD,EAAM,aACnC,KACEuc,EAAO,aAAavc,EAAM,UAAU,EAAI,EAAGwF,CAAM,EAC7C,EAAAxF,IAAUC,GAAO,EAAED,EAAQA,EAAM,eAArC,KAEG,CACL8qB,GAAkB,UAAYJ,GAC5B/kB,IAAc,MAAQ,QAAQwlB,CAAO,SAAWxlB,IAAc,SAAW,SAASwlB,CAAO,UAAYA,CAAA,EAEvG,MAAME,EAAWP,GAAkB,QACnC,GAAInlB,IAAc,OAASA,IAAc,SAAU,CACjD,MAAM2lB,EAAUD,EAAS,WACzB,KAAOC,EAAQ,YACbD,EAAS,YAAYC,EAAQ,UAAU,EAEzCD,EAAS,YAAYC,CAAO,CAC9B,CACA/O,EAAO,aAAa8O,EAAU7lB,CAAM,CACtC,CACA,MAAO,CAEL4lB,EAASA,EAAO,YAAc7O,EAAO,WAErC/W,EAASA,EAAO,gBAAkB+W,EAAO,UAE7C,CACF,EAEMgP,GAAa,aACbC,GAAY,YACZC,UAAgC,MAAM,EACtCC,GAA+B,CACnC,KAAM,OACN,KAAM,OACN,IAAK,CACH,KAAM,QACN,QAAS,IAEX,SAAU,CAAC,OAAQ,OAAQ,MAAM,EACjC,eAAgB,OAChB,iBAAkB,OAClB,aAAc,OACd,gBAAiB,OACjB,kBAAmB,OACnB,cAAe,OACf,eAAgB,OAChB,iBAAkB,OAClB,aAAc,MAChB,EACMC,GAA4C7iC,GAChD,GACA8gB,GACA8hB,EACF,EACME,GAAcC,IAClBA,EAAE,YAAc,aAChBA,EAAE,MAAQF,GACHE,GAEHC,GAA6BF,GACjC,CAACj/B,EAAO,CAAE,MAAAqd,KAAYwM,GAAEnL,GAAgB0gB,GAAuBp/B,CAAK,EAAGqd,CAAK,CAC9E,EACMsC,GAAW,CAAC5J,EAAM9N,EAAO,KAAO,CAChCvL,GAAQqZ,CAAI,EACdA,EAAK,QAASspB,GAAOA,EAAG,GAAGp3B,CAAI,CAAC,EACvB8N,GACTA,EAAK,GAAG9N,CAAI,CAEhB,EACMq3B,GAAuBvpB,GACpBA,EAAOrZ,GAAQqZ,CAAI,EAAIA,EAAK,KAAMspB,GAAOA,EAAG,OAAS,CAAC,EAAItpB,EAAK,OAAS,EAAI,GAErF,SAASqpB,GAAuB3hB,EAAU,CACxC,MAAM8hB,EAAY,GAClB,UAAW5jC,KAAO8hB,EACV9hB,KAAOojC,KACXQ,EAAU5jC,CAAG,EAAI8hB,EAAS9hB,CAAG,GAGjC,GAAI8hB,EAAS,MAAQ,GACnB,OAAO8hB,EAET,KAAM,CACJ,KAAAz/B,EAAO,IACP,KAAAyG,EACA,SAAAi5B,EACA,eAAAC,EAAiB,GAAG3/B,CAAI,cACxB,iBAAA4/B,EAAmB,GAAG5/B,CAAI,gBAC1B,aAAA6/B,EAAe,GAAG7/B,CAAI,YACtB,gBAAA8/B,EAAkBH,EAClB,kBAAAI,EAAoBH,EACpB,cAAAI,EAAgBH,EAChB,eAAAI,EAAiB,GAAGjgC,CAAI,cACxB,iBAAAkgC,EAAmB,GAAGlgC,CAAI,gBAC1B,aAAAmgC,EAAe,GAAGngC,CAAI,aACpB2d,EACEyiB,EAAYC,GAAkBX,CAAQ,EACtCY,EAAgBF,GAAaA,EAAU,CAAC,EACxCG,EAAgBH,GAAaA,EAAU,CAAC,EACxC,CACJ,cAAAnhB,EACA,QAAAC,EACA,iBAAAE,EACA,QAAAE,EACA,iBAAAE,EACA,eAAAC,EAAiBR,EACjB,SAAAS,EAAWR,EACX,kBAAAU,EAAoBR,CAAA,EAClBqgB,EACEe,EAAc,CAAChkC,EAAIikC,EAAUj1B,EAAMk1B,IAAgB,CACvDlkC,EAAG,gBAAkBkkC,EACrBC,GAAsBnkC,EAAIikC,EAAWT,EAAgBH,CAAY,EACjEc,GAAsBnkC,EAAIikC,EAAWV,EAAoBH,CAAgB,EACzEp0B,GAAQA,EAAA,CACV,EACMo1B,EAAc,CAACpkC,EAAIgP,IAAS,CAChChP,EAAG,WAAa,GAChBmkC,GAAsBnkC,EAAIyjC,CAAc,EACxCU,GAAsBnkC,EAAI2jC,CAAY,EACtCQ,GAAsBnkC,EAAI0jC,CAAgB,EAC1C10B,GAAQA,EAAA,CACV,EACMq1B,EAAiBJ,GACd,CAACjkC,EAAIgP,IAAS,CACnB,MAAMyK,EAAOwqB,EAAW/gB,EAAWR,EAC7BoF,EAAU,IAAMkc,EAAYhkC,EAAIikC,EAAUj1B,CAAI,EACpDqU,GAAS5J,EAAM,CAACzZ,EAAI8nB,CAAO,CAAC,EAC5Bwc,GAAU,IAAM,CACdH,GAAsBnkC,EAAIikC,EAAWX,EAAkBH,CAAc,EACrEoB,GAAmBvkC,EAAIikC,EAAWT,EAAgBH,CAAY,EACzDL,GAAoBvpB,CAAI,GAC3B+qB,GAAmBxkC,EAAIiK,EAAM65B,EAAehc,CAAO,CAEvD,CAAC,CACH,EAEF,OAAOjoB,GAAOojC,EAAW,CACvB,cAAcjjC,EAAI,CAChBqjB,GAASZ,EAAe,CAACziB,CAAE,CAAC,EAC5BukC,GAAmBvkC,EAAImjC,CAAc,EACrCoB,GAAmBvkC,EAAIojC,CAAgB,CACzC,EACA,eAAepjC,EAAI,CACjBqjB,GAASJ,EAAgB,CAACjjB,CAAE,CAAC,EAC7BukC,GAAmBvkC,EAAIsjC,CAAe,EACtCiB,GAAmBvkC,EAAIujC,CAAiB,CAC1C,EACA,QAASc,EAAc,EAAK,EAC5B,SAAUA,EAAc,EAAI,EAC5B,QAAQrkC,EAAIgP,EAAM,CAChBhP,EAAG,WAAa,GAChB,MAAM8nB,EAAU,IAAMsc,EAAYpkC,EAAIgP,CAAI,EAC1Cu1B,GAAmBvkC,EAAIyjC,CAAc,EAChCzjC,EAAG,iBAINukC,GAAmBvkC,EAAI0jC,CAAgB,EACvCe,GAAYzkC,CAAE,IAJdykC,GAAYzkC,CAAE,EACdukC,GAAmBvkC,EAAI0jC,CAAgB,GAKzCY,GAAU,IAAM,CACTtkC,EAAG,aAGRmkC,GAAsBnkC,EAAIyjC,CAAc,EACxCc,GAAmBvkC,EAAI2jC,CAAY,EAC9BX,GAAoBlgB,CAAO,GAC9B0hB,GAAmBxkC,EAAIiK,EAAM85B,EAAejc,CAAO,EAEvD,CAAC,EACDzE,GAASP,EAAS,CAAC9iB,EAAI8nB,CAAO,CAAC,CACjC,EACA,iBAAiB9nB,EAAI,CACnBgkC,EAAYhkC,EAAI,GAAO,OAAQ,EAAI,EACnCqjB,GAAST,EAAkB,CAAC5iB,CAAE,CAAC,CACjC,EACA,kBAAkBA,EAAI,CACpBgkC,EAAYhkC,EAAI,GAAM,OAAQ,EAAI,EAClCqjB,GAASD,EAAmB,CAACpjB,CAAE,CAAC,CAClC,EACA,iBAAiBA,EAAI,CACnBokC,EAAYpkC,CAAE,EACdqjB,GAASL,EAAkB,CAAChjB,CAAE,CAAC,CACjC,EACD,CACH,CACA,SAAS6jC,GAAkBX,EAAU,CACnC,GAAIA,GAAY,KACd,OAAO,KACT,GAAWtiC,GAASsiC,CAAQ,EAC1B,MAAO,CAACwB,GAASxB,EAAS,KAAK,EAAGwB,GAASxB,EAAS,KAAK,CAAC,EACrD,CACL,MAAM3gC,EAAImiC,GAASxB,CAAQ,EAC3B,MAAO,CAAC3gC,EAAGA,CAAC,CACd,CACF,CACA,SAASmiC,GAASplC,EAAK,CAKrB,OAJYkD,GAASlD,CAAG,CAK1B,CACA,SAASilC,GAAmBvkC,EAAI2kC,EAAK,CACnCA,EAAI,MAAM,KAAK,EAAE,QAASljC,GAAMA,GAAKzB,EAAG,UAAU,IAAIyB,CAAC,CAAC,GACvDzB,EAAGwiC,EAAM,IAAMxiC,EAAGwiC,EAAM,EAAoB,IAAI,MAAQ,IAAImC,CAAG,CAClE,CACA,SAASR,GAAsBnkC,EAAI2kC,EAAK,CACtCA,EAAI,MAAM,KAAK,EAAE,QAASljC,GAAMA,GAAKzB,EAAG,UAAU,OAAOyB,CAAC,CAAC,EAC3D,MAAMmjC,EAAO5kC,EAAGwiC,EAAM,EAClBoC,IACFA,EAAK,OAAOD,CAAG,EACVC,EAAK,OACR5kC,EAAGwiC,EAAM,EAAI,QAGnB,CACA,SAAS8B,GAAU3wB,EAAI,CACrB,sBAAsB,IAAM,CAC1B,sBAAsBA,CAAE,CAC1B,CAAC,CACH,CACA,IAAIkxB,GAAQ,EACZ,SAASL,GAAmBxkC,EAAI8kC,EAAcC,EAAiBjd,EAAS,CACtE,MAAMhR,EAAK9W,EAAG,OAAS,EAAE6kC,GACnBG,EAAoB,IAAM,CAC1BluB,IAAO9W,EAAG,QACZ8nB,EAAA,CAEJ,EACA,GAAIid,GAAmB,KACrB,OAAO,WAAWC,EAAmBD,CAAe,EAEtD,KAAM,CAAE,KAAA96B,EAAM,QAAAg7B,EAAS,UAAAC,GAAcC,GAAkBnlC,EAAI8kC,CAAY,EACvE,GAAI,CAAC76B,EACH,OAAO6d,EAAA,EAET,MAAMsd,EAAWn7B,EAAO,MACxB,IAAIo7B,EAAQ,EACZ,MAAMruB,EAAM,IAAM,CAChBhX,EAAG,oBAAoBolC,EAAUE,CAAK,EACtCN,EAAA,CACF,EACMM,EAASr9B,GAAM,CACfA,EAAE,SAAWjI,GAAM,EAAEqlC,GAASH,GAChCluB,EAAA,CAEJ,EACA,WAAW,IAAM,CACXquB,EAAQH,GACVluB,EAAA,CAEJ,EAAGiuB,EAAU,CAAC,EACdjlC,EAAG,iBAAiBolC,EAAUE,CAAK,CACrC,CACA,SAASH,GAAkBnlC,EAAI8kC,EAAc,CAC3C,MAAMS,EAAS,OAAO,iBAAiBvlC,CAAE,EACnCwlC,EAAsBnmC,IAASkmC,EAAOlmC,CAAG,GAAK,IAAI,MAAM,IAAI,EAC5DomC,EAAmBD,EAAmB,GAAGlD,EAAU,OAAO,EAC1DoD,EAAsBF,EAAmB,GAAGlD,EAAU,UAAU,EAChEqD,EAAoBC,GAAWH,EAAkBC,CAAmB,EACpEG,EAAkBL,EAAmB,GAAGjD,EAAS,OAAO,EACxDuD,EAAqBN,EAAmB,GAAGjD,EAAS,UAAU,EAC9DwD,EAAmBH,GAAWC,EAAiBC,CAAkB,EACvE,IAAI77B,EAAO,KACPg7B,EAAU,EACVC,EAAY,EACZJ,IAAiBxC,GACfqD,EAAoB,IACtB17B,EAAOq4B,GACP2C,EAAUU,EACVT,EAAYQ,EAAoB,QAEzBZ,IAAiBvC,GACtBwD,EAAmB,IACrB97B,EAAOs4B,GACP0C,EAAUc,EACVb,EAAYY,EAAmB,SAGjCb,EAAU,KAAK,IAAIU,EAAmBI,CAAgB,EACtD97B,EAAOg7B,EAAU,EAAIU,EAAoBI,EAAmBzD,GAAaC,GAAY,KACrF2C,EAAYj7B,EAAOA,IAASq4B,GAAaoD,EAAoB,OAASI,EAAmB,OAAS,GAEpG,MAAME,EAAe/7B,IAASq4B,IAAc,6BAA6B,KACvEkD,EAAmB,GAAGlD,EAAU,UAAU,EAAE,UAAS,EAEvD,MAAO,CACL,KAAAr4B,EACA,QAAAg7B,EACA,UAAAC,EACA,aAAAc,CAAA,CAEJ,CACA,SAASJ,GAAWK,EAAQrC,EAAW,CACrC,KAAOqC,EAAO,OAASrC,EAAU,QAC/BqC,EAASA,EAAO,OAAOA,CAAM,EAE/B,OAAO,KAAK,IAAI,GAAGrC,EAAU,IAAI,CAACsC,EAAGjmC,IAAMkmC,GAAKD,CAAC,EAAIC,GAAKF,EAAOhmC,CAAC,CAAC,CAAC,CAAC,CACvE,CACA,SAASkmC,GAAKzxB,EAAG,CACf,OAAIA,IAAM,OAAe,EAClB,OAAOA,EAAE,MAAM,EAAG,EAAE,EAAE,QAAQ,IAAK,GAAG,CAAC,EAAI,GACpD,CACA,SAAS+vB,GAAYzkC,EAAI,CAEvB,OADuBA,EAAKA,EAAG,cAAgB,UACzB,KAAK,YAC7B,CAEA,SAASomC,GAAWpmC,EAAIe,EAAOslC,EAAO,CACpC,MAAMC,EAAoBtmC,EAAGwiC,EAAM,EAC/B8D,IACFvlC,GAASA,EAAQ,CAACA,EAAO,GAAGulC,CAAiB,EAAI,CAAC,GAAGA,CAAiB,GAAG,KAAK,GAAG,GAE/EvlC,GAAS,KACXf,EAAG,gBAAgB,OAAO,EACjBqmC,EACTrmC,EAAG,aAAa,QAASe,CAAK,EAE9Bf,EAAG,UAAYe,CAEnB,CAEA,MAAMwlC,UAA8C,MAAM,EACpDC,UAAqC,MAAM,EAC3CC,GAAQ,CAEZ,KAAM,OACN,YAAYzmC,EAAI,CAAE,MAAAe,GAAS,CAAE,WAAAm3B,GAAc,CACzCl4B,EAAGumC,EAAoB,EAAIvmC,EAAG,MAAM,UAAY,OAAS,GAAKA,EAAG,MAAM,QACnEk4B,GAAcn3B,EAChBm3B,EAAW,YAAYl4B,CAAE,EAEzB0mC,GAAW1mC,EAAIe,CAAK,CAExB,EACA,QAAQf,EAAI,CAAE,MAAAe,GAAS,CAAE,WAAAm3B,GAAc,CACjCA,GAAcn3B,GAChBm3B,EAAW,MAAMl4B,CAAE,CAEvB,EACA,QAAQA,EAAI,CAAE,MAAAe,EAAO,SAAAgB,GAAY,CAAE,WAAAm2B,GAAc,CAC3C,CAACn3B,GAAU,CAACgB,IACZm2B,EACEn3B,GACFm3B,EAAW,YAAYl4B,CAAE,EACzB0mC,GAAW1mC,EAAI,EAAI,EACnBk4B,EAAW,MAAMl4B,CAAE,GAEnBk4B,EAAW,MAAMl4B,EAAI,IAAM,CACzB0mC,GAAW1mC,EAAI,EAAK,CACtB,CAAC,EAGH0mC,GAAW1mC,EAAIe,CAAK,EAExB,EACA,cAAcf,EAAI,CAAE,MAAAe,GAAS,CAC3B2lC,GAAW1mC,EAAIe,CAAK,CACtB,CACF,EACA,SAAS2lC,GAAW1mC,EAAIe,EAAO,CAC7Bf,EAAG,MAAM,QAAUe,EAAQf,EAAGumC,EAAoB,EAAI,OACtDvmC,EAAGwmC,EAAW,EAAI,CAACzlC,CACrB,CASA,MAAM4lC,GAA+B,OAAoE,EAAE,EAC3G,SAASC,GAAW1zB,EAAQ,CAC1B,MAAMoC,EAAW0E,GAAA,EACjB,GAAI,CAAC1E,EAEH,OAEF,MAAMuxB,EAAkBvxB,EAAS,GAAK,CAACwxB,EAAO5zB,EAAOoC,EAAS,KAAK,IAAM,CACvE,MAAM,KACJ,SAAS,iBAAiB,kBAAkBA,EAAS,GAAG,IAAI,GAC5D,QAASmK,GAASsnB,GAActnB,EAAMqnB,CAAI,CAAC,CAC/C,EAIME,EAAU,IAAM,CACpB,MAAMF,EAAO5zB,EAAOoC,EAAS,KAAK,EAC9BA,EAAS,GACXyxB,GAAczxB,EAAS,GAAIwxB,CAAI,EAE/BG,GAAe3xB,EAAS,QAASwxB,CAAI,EAEvCD,EAAgBC,CAAI,CACtB,EACAngB,GAAe,IAAM,CACnBjP,GAAiBsvB,CAAO,CAC1B,CAAC,EACDxmB,GAAU,IAAM,CACd9M,GAAMszB,EAASvnC,GAAM,CAAE,MAAO,OAAQ,EACtC,MAAMynC,EAAK,IAAI,iBAAiBF,CAAO,EACvCE,EAAG,QAAQ5xB,EAAS,QAAQ,GAAG,WAAY,CAAE,UAAW,GAAM,EAC9DgR,GAAY,IAAM4gB,EAAG,YAAY,CACnC,CAAC,CACH,CACA,SAASD,GAAeluB,EAAO+tB,EAAM,CACnC,GAAI/tB,EAAM,UAAY,IAAK,CACzB,MAAMwa,EAAWxa,EAAM,SACvBA,EAAQwa,EAAS,aACbA,EAAS,eAAiB,CAACA,EAAS,aACtCA,EAAS,QAAQ,KAAK,IAAM,CAC1B0T,GAAe1T,EAAS,aAAcuT,CAAI,CAC5C,CAAC,CAEL,CACA,KAAO/tB,EAAM,WACXA,EAAQA,EAAM,UAAU,QAE1B,GAAIA,EAAM,UAAY,GAAKA,EAAM,GAC/BguB,GAAchuB,EAAM,GAAI+tB,CAAI,UACnB/tB,EAAM,OAASoL,GACxBpL,EAAM,SAAS,QAAStX,GAAMwlC,GAAexlC,EAAGqlC,CAAI,CAAC,UAC5C/tB,EAAM,OAASwe,GAAQ,CAChC,GAAI,CAAE,GAAAv3B,EAAI,OAAAuc,CAAA,EAAWxD,EACrB,KAAO/Y,IACL+mC,GAAc/mC,EAAI8mC,CAAI,EAClB9mC,IAAOuc,IACXvc,EAAKA,EAAG,WAEZ,CACF,CACA,SAAS+mC,GAAc/mC,EAAI8mC,EAAM,CAC/B,GAAI9mC,EAAG,WAAa,EAAG,CACrB,MAAM4D,EAAQ5D,EAAG,MACjB,IAAImD,EAAU,GACd,UAAW9D,KAAOynC,EAAM,CACtB,MAAM/lC,EAAQ+E,GAAqBghC,EAAKznC,CAAG,CAAC,EAC5CuE,EAAM,YAAY,KAAKvE,CAAG,GAAI0B,CAAK,EACnCoC,GAAW,KAAK9D,CAAG,KAAK0B,CAAK,GAC/B,CACA6C,EAAM+iC,EAAY,EAAIxjC,CACxB,CACF,CAEA,MAAMgkC,GAAY,wBAClB,SAASC,GAAWpnC,EAAIuI,EAAML,EAAM,CAClC,MAAMtE,EAAQ5D,EAAG,MACXqnC,EAAc3mC,GAASwH,CAAI,EACjC,IAAIo/B,EAAuB,GAC3B,GAAIp/B,GAAQ,CAACm/B,EAAa,CACxB,GAAI9+B,EACF,GAAK7H,GAAS6H,CAAI,EAOhB,UAAWg/B,KAAah/B,EAAK,MAAM,GAAG,EAAG,CACvC,MAAMlJ,EAAMkoC,EAAU,MAAM,EAAGA,EAAU,QAAQ,GAAG,CAAC,EAAE,OACnDr/B,EAAK7I,CAAG,GAAK,MACfmoC,GAAS5jC,EAAOvE,EAAK,EAAE,CAE3B,gBAXWA,KAAOkJ,EACZL,EAAK7I,CAAG,GAAK,MACfmoC,GAAS5jC,EAAOvE,EAAK,EAAE,EAY/B,UAAWA,KAAO6I,EAAM,CAClB7I,IAAQ,YACVioC,EAAuB,IAEzB,MAAMvmC,EAAQmH,EAAK7I,CAAG,EAClB0B,GAAS,KACN0mC,GACHznC,EACAX,EACA,CAACqB,GAAS6H,CAAI,GAAKA,EAAOA,EAAKlJ,CAAG,EAAI,OACtC0B,CAAA,GAEAymC,GAAS5jC,EAAOvE,EAAK0B,CAAK,EAG5BymC,GAAS5jC,EAAOvE,EAAK,EAAE,CAE3B,CACF,SACMgoC,GACF,GAAI9+B,IAASL,EAAM,CACjB,MAAMw/B,EAAa9jC,EAAM+iC,EAAY,EACjCe,IACFx/B,GAAQ,IAAMw/B,GAEhB9jC,EAAM,QAAUsE,EAChBo/B,EAAuBH,GAAU,KAAKj/B,CAAI,CAC5C,OACSK,GACTvI,EAAG,gBAAgB,OAAO,EAG1BumC,MAAwBvmC,IAC1BA,EAAGumC,EAAoB,EAAIe,EAAuB1jC,EAAM,QAAU,GAC9D5D,EAAGwmC,EAAW,IAChB5iC,EAAM,QAAU,QAGtB,CAEA,MAAM+jC,GAAc,iBACpB,SAASH,GAAS5jC,EAAOJ,EAAMlE,EAAK,CAClC,GAAIc,GAAQd,CAAG,EACbA,EAAI,QAASsG,GAAM4hC,GAAS5jC,EAAOJ,EAAMoC,CAAC,CAAC,UAEvCtG,GAAO,OAAMA,EAAM,IAQnBkE,EAAK,WAAW,IAAI,EAClBmkC,GAAY,KAAKroC,CAAG,EACtBsE,EAAM,YAAYJ,EAAMlE,EAAI,QAAQqoC,GAAa,EAAE,EAAG,WAAW,EAEjE/jC,EAAM,YAAYJ,EAAMlE,CAAG,MAExB,CACL,MAAMsoC,EAAWC,GAAWjkC,EAAOJ,CAAI,EACnCmkC,GAAY,KAAKroC,CAAG,EACtBsE,EAAM,YACJjC,GAAUimC,CAAQ,EAClBtoC,EAAI,QAAQqoC,GAAa,EAAE,EAC3B,aAGF/jC,EAAMgkC,CAAQ,EAAItoC,CAEtB,CAEJ,CACA,MAAMwoC,GAAW,CAAC,SAAU,MAAO,IAAI,EACjCC,GAAc,GACpB,SAASF,GAAWjkC,EAAOokC,EAAS,CAClC,MAAM9f,EAAS6f,GAAYC,CAAO,EAClC,GAAI9f,EACF,OAAOA,EAET,IAAI1kB,EAAOhC,GAASwmC,CAAO,EAC3B,GAAIxkC,IAAS,UAAYA,KAAQI,EAC/B,OAAOmkC,GAAYC,CAAO,EAAIxkC,EAEhCA,EAAO5B,GAAW4B,CAAI,EACtB,QAASvD,EAAI,EAAGA,EAAI6nC,GAAS,OAAQ7nC,IAAK,CACxC,MAAM2nC,EAAWE,GAAS7nC,CAAC,EAAIuD,EAC/B,GAAIokC,KAAYhkC,EACd,OAAOmkC,GAAYC,CAAO,EAAIJ,CAElC,CACA,OAAOI,CACT,CACA,SAASP,GAAkCznC,EAAIX,EAAKkJ,EAAML,EAAM,CAC9D,OAAOlI,EAAG,UAAY,aAAeX,IAAQ,SAAWA,IAAQ,WAAaqB,GAASwH,CAAI,GAAKK,IAASL,CAC1G,CAEA,MAAM+/B,GAAU,+BAChB,SAASC,GAAUloC,EAAIX,EAAK0B,EAAOslC,EAAO/wB,EAAU6yB,EAAYrkC,GAAqBzE,CAAG,EAAG,CACrFgnC,GAAShnC,EAAI,WAAW,QAAQ,EAC9B0B,GAAS,KACXf,EAAG,kBAAkBioC,GAAS5oC,EAAI,MAAM,EAAGA,EAAI,MAAM,CAAC,EAEtDW,EAAG,eAAeioC,GAAS5oC,EAAK0B,CAAK,EAGnCA,GAAS,MAAQonC,GAAa,CAACpkC,GAAmBhD,CAAK,EACzDf,EAAG,gBAAgBX,CAAG,EAEtBW,EAAG,aACDX,EACA8oC,EAAY,GAAKxnC,GAASI,CAAK,EAAI,OAAOA,CAAK,EAAIA,CAAA,CAI3D,CAEA,SAASqnC,GAAapoC,EAAIX,EAAK0B,EAAOyb,EAAiB6rB,EAAU,CAC/D,GAAIhpC,IAAQ,aAAeA,IAAQ,cAAe,CAC5C0B,GAAS,OACXf,EAAGX,CAAG,EAAIA,IAAQ,YAAcoiC,GAAoB1gC,CAAK,EAAIA,GAE/D,MACF,CACA,MAAMghC,EAAM/hC,EAAG,QACf,GAAIX,IAAQ,SAAW0iC,IAAQ,YAC/B,CAACA,EAAI,SAAS,GAAG,EAAG,CAClB,MAAMhgC,EAAWggC,IAAQ,SAAW/hC,EAAG,aAAa,OAAO,GAAK,GAAKA,EAAG,MAClEoK,EAAWrJ,GAAS,KAGxBf,EAAG,OAAS,WAAa,KAAO,GAC9B,OAAOe,CAAK,GACZgB,IAAaqI,GAAY,EAAE,WAAYpK,MACzCA,EAAG,MAAQoK,GAETrJ,GAAS,MACXf,EAAG,gBAAgBX,CAAG,EAExBW,EAAG,OAASe,EACZ,MACF,CACA,IAAIunC,EAAa,GACjB,GAAIvnC,IAAU,IAAMA,GAAS,KAAM,CACjC,MAAMkJ,EAAO,OAAOjK,EAAGX,CAAG,EACtB4K,IAAS,UACXlJ,EAAQgD,GAAmBhD,CAAK,EACvBA,GAAS,MAAQkJ,IAAS,UACnClJ,EAAQ,GACRunC,EAAa,IACJr+B,IAAS,WAClBlJ,EAAQ,EACRunC,EAAa,GAEjB,CACA,GAAI,CACFtoC,EAAGX,CAAG,EAAI0B,CACZ,MAAY,CAOZ,CACAunC,GAActoC,EAAG,gBAAgBqoC,GAAYhpC,CAAG,CAClD,CAEA,SAASkpC,GAAiBvoC,EAAI6wB,EAAOrD,EAAS5Z,EAAS,CACrD5T,EAAG,iBAAiB6wB,EAAOrD,EAAS5Z,CAAO,CAC7C,CACA,SAAS40B,GAAoBxoC,EAAI6wB,EAAOrD,EAAS5Z,EAAS,CACxD5T,EAAG,oBAAoB6wB,EAAOrD,EAAS5Z,CAAO,CAChD,CACA,MAAM60B,UAAgC,MAAM,EAC5C,SAASC,GAAW1oC,EAAIgoC,EAASW,EAAWC,EAAWtzB,EAAW,KAAM,CACtE,MAAMuzB,EAAW7oC,EAAGyoC,EAAM,IAAMzoC,EAAGyoC,EAAM,EAAI,IACvCK,EAAkBD,EAASb,CAAO,EACxC,GAAIY,GAAaE,EACfA,EAAgB,MAA6FF,MACxG,CACL,KAAM,CAACplC,EAAMoQ,CAAO,EAAIm1B,GAAUf,CAAO,EACzC,GAAIY,EAAW,CACb,MAAMI,EAAUH,EAASb,CAAO,EAAIiB,GACmDL,EACrFtzB,CAAA,EAEFizB,GAAiBvoC,EAAIwD,EAAMwlC,EAASp1B,CAAO,CAC7C,MAAWk1B,IACTN,GAAoBxoC,EAAIwD,EAAMslC,EAAiBl1B,CAAO,EACtDi1B,EAASb,CAAO,EAAI,OAExB,CACF,CACA,MAAMkB,GAAoB,0BACpBC,GAAyB,iCAC/B,SAASJ,GAAUvlC,EAAM,CACvB,IAAIoQ,EACAma,EACJ,MAAQA,EAAIvqB,EAAK,MAAM0lC,EAAiB,IAAM,CAACC,GAAuB,KAAK3lC,CAAI,GACxEoQ,IAASA,EAAU,IACxBpQ,EAAOA,EAAK,MAAM,EAAGA,EAAK,OAASuqB,EAAE,CAAC,EAAE,MAAM,EAC9Cna,EAAQma,EAAE,CAAC,EAAE,aAAa,EAAI,GAGhC,MAAO,CADOvqB,EAAK,CAAC,IAAM,IAAMA,EAAK,MAAM,CAAC,EAAI7B,GAAU6B,EAAK,MAAM,CAAC,CAAC,EACxDoQ,CAAO,CACxB,CACA,IAAIw1B,GAAY,EAChB,MAAMxyB,WAA4B,UAC5ByyB,GAAS,IAAMD,KAAcxyB,GAAE,KAAK,IAAMwyB,GAAY,CAAC,EAAGA,GAAY,KAAK,OACjF,SAASH,GAAcK,EAAch0B,EAAU,CAC7C,MAAM0zB,EAAW/gC,GAAM,CACrB,GAAI,CAACA,EAAE,KACLA,EAAE,KAAO,KAAK,cACLA,EAAE,MAAQ+gC,EAAQ,SAC3B,OAEF,MAAMjoC,EAAQioC,EAAQ,MACtB,GAAI5oC,GAAQW,CAAK,EAAG,CAClB,MAAMwoC,EAAethC,EAAE,yBACvBA,EAAE,yBAA2B,IAAM,CACjCshC,EAAa,KAAKthC,CAAC,EACnBA,EAAE,SAAW,EACf,EACA,MAAMuhC,EAAWzoC,EAAM,QACjB4K,EAAO,CAAC1D,CAAC,EACf,QAAShI,EAAI,EAAGA,EAAIupC,EAAS,QACvB,CAAAvhC,EAAE,SAD6BhI,IAAK,CAIxC,MAAMutB,EAAUgc,EAASvpC,CAAC,EACtButB,GACFhY,GACEgY,EACAlY,EACA,EACA3J,CAAA,CAGN,CACF,MACE6J,GACEzU,EACAuU,EACA,EACA,CAACrN,CAAC,EAGR,EACA,OAAA+gC,EAAQ,MAAQM,EAChBN,EAAQ,SAAWK,GAAA,EACZL,CACT,CAYA,MAAMS,GAAcpqC,GAAQA,EAAI,WAAW,CAAC,IAAM,KAAOA,EAAI,WAAW,CAAC,IAAM,KAC/EA,EAAI,WAAW,CAAC,EAAI,IAAMA,EAAI,WAAW,CAAC,EAAI,IACxCqqC,GAAY,CAAC1pC,EAAIX,EAAKspC,EAAWC,EAAWlsB,EAAWF,IAAoB,CAC/E,MAAM6pB,EAAQ3pB,IAAc,MACxBrd,IAAQ,QACV+mC,GAAWpmC,EAAI4oC,EAAWvC,CAAK,EACtBhnC,IAAQ,QACjB+nC,GAAWpnC,EAAI2oC,EAAWC,CAAS,EAC1BjpC,GAAKN,CAAG,EACZO,GAAgBP,CAAG,GACtBqpC,GAAW1oC,EAAIX,EAAKspC,EAAWC,EAAWpsB,CAAe,GAElDnd,EAAI,CAAC,IAAM,KAAOA,EAAMA,EAAI,MAAM,CAAC,EAAG,IAAQA,EAAI,CAAC,IAAM,KAAOA,EAAMA,EAAI,MAAM,CAAC,EAAG,IAASsqC,GAAgB3pC,EAAIX,EAAKupC,EAAWvC,CAAK,IAC/I+B,GAAapoC,EAAIX,EAAKupC,CAAS,EAC3B,CAAC5oC,EAAG,QAAQ,SAAS,GAAG,IAAMX,IAAQ,SAAWA,IAAQ,WAAaA,IAAQ,aAChF6oC,GAAUloC,EAAIX,EAAKupC,EAAWvC,EAAO7pB,EAAiBnd,IAAQ,OAAO,GAIvEW,EAAG,WACF4pC,GAAwB5pC,EAAIX,CAAG,GAChCW,EAAG,KAAK,gBAAkB,QAAQ,KAAKX,CAAG,GAAK,CAACqB,GAASkoC,CAAS,IAElER,GAAapoC,EAAI6pC,GAAWxqC,CAAG,EAAGupC,EAAWpsB,EAAiBnd,CAAG,GAE7DA,IAAQ,aACVW,EAAG,WAAa4oC,EACPvpC,IAAQ,gBACjBW,EAAG,YAAc4oC,GAEnBV,GAAUloC,EAAIX,EAAKupC,EAAWvC,CAAK,EAEvC,EACA,SAASsD,GAAgB3pC,EAAIX,EAAK0B,EAAOslC,EAAO,CAC9C,GAAIA,EAIF,MAHI,GAAAhnC,IAAQ,aAAeA,IAAQ,eAG/BA,KAAOW,GAAMypC,GAAWpqC,CAAG,GAAKoB,GAAWM,CAAK,GAiBtD,GAZI1B,IAAQ,cAAgBA,IAAQ,aAAeA,IAAQ,aAAeA,IAAQ,eAG9EA,IAAQ,WAAaW,EAAG,UAAY,UAGpCX,IAAQ,QAGRA,IAAQ,QAAUW,EAAG,UAAY,SAGjCX,IAAQ,QAAUW,EAAG,UAAY,WACnC,MAAO,GAET,GAAIX,IAAQ,SAAWA,IAAQ,SAAU,CACvC,MAAM0iC,EAAM/hC,EAAG,QACf,GAAI+hC,IAAQ,OAASA,IAAQ,SAAWA,IAAQ,UAAYA,IAAQ,SAClE,MAAO,EAEX,CACA,OAAI0H,GAAWpqC,CAAG,GAAKqB,GAASK,CAAK,EAC5B,GAEF1B,KAAOW,CAChB,CACA,SAAS4pC,GAAwB5pC,EAAIX,EAAK,CACxC,MAAMqE,EAEJ1D,EAAG,KAAK,MAEV,GAAI,CAAC0D,EACH,MAAO,GAET,MAAM8wB,EAAWqV,GAAWxqC,CAAG,EAC/B,OAAO,MAAM,QAAQqE,CAAK,EAAIA,EAAM,KAAMwxB,GAAS2U,GAAW3U,CAAI,IAAMV,CAAQ,EAAI,OAAO,KAAK9wB,CAAK,EAAE,KAAMwxB,GAAS2U,GAAW3U,CAAI,IAAMV,CAAQ,CACrJ,CAqgBA,SAASsV,GAAatmC,EAAO,SAAU,CACrC,CACE,MAAM8R,EAAW0E,GAAA,EACjB,GAAI,CAAC1E,EAEH,OAAO/V,GAET,MAAMwqC,EAAUz0B,EAAS,KAAK,aAC9B,OAAKy0B,GAIOA,EAAQvmC,CAAI,GAGfjE,EAGX,CACF,CAydA,MAAMyqC,GAAkB,CAAC,OAAQ,QAAS,MAAO,MAAM,EACjDC,GAAiB,CACrB,KAAO,GAAM,EAAE,kBACf,QAAU,GAAM,EAAE,iBAClB,KAAO,GAAM,EAAE,SAAW,EAAE,cAC5B,KAAO,GAAM,CAAC,EAAE,QAChB,MAAQ,GAAM,CAAC,EAAE,SACjB,IAAM,GAAM,CAAC,EAAE,OACf,KAAO,GAAM,CAAC,EAAE,QAChB,KAAO,GAAM,WAAY,GAAK,EAAE,SAAW,EAC3C,OAAS,GAAM,WAAY,GAAK,EAAE,SAAW,EAC7C,MAAQ,GAAM,WAAY,GAAK,EAAE,SAAW,EAC5C,MAAO,CAAC,EAAG7wB,IAAc4wB,GAAgB,KAAMjc,GAAM,EAAE,GAAGA,CAAC,KAAK,GAAK,CAAC3U,EAAU,SAAS2U,CAAC,CAAC,CAC7F,EACMmc,GAAgB,CAAC7oC,EAAI+X,IAAc,CACvC,GAAI,CAAC/X,EAAI,OAAOA,EAChB,MAAMC,EAAQD,EAAG,YAAcA,EAAG,UAAY,IACxC8oC,EAAW/wB,EAAU,KAAK,GAAG,EACnC,OAAO9X,EAAM6oC,CAAQ,IAAM7oC,EAAM6oC,CAAQ,GAAK,CAACtZ,KAAUllB,IAAS,CAChE,QAAS1L,EAAI,EAAGA,EAAImZ,EAAU,OAAQnZ,IAAK,CACzC,MAAMmqC,EAAQH,GAAe7wB,EAAUnZ,CAAC,CAAC,EACzC,GAAImqC,GAASA,EAAMvZ,EAAOzX,CAAS,EAAG,MACxC,CACA,OAAO/X,EAAGwvB,EAAO,GAAGllB,CAAI,CAC1B,GACF,EACM0+B,GAAW,CACf,IAAK,SACL,MAAO,IACP,GAAI,WACJ,KAAM,aACN,MAAO,cACP,KAAM,aACN,OAAQ,WACV,EACMC,GAAW,CAACjpC,EAAI+X,IAAc,CAClC,MAAM9X,EAAQD,EAAG,YAAcA,EAAG,UAAY,IACxC8oC,EAAW/wB,EAAU,KAAK,GAAG,EACnC,OAAO9X,EAAM6oC,CAAQ,IAAM7oC,EAAM6oC,CAAQ,GAAMtZ,GAAU,CACvD,GAAI,EAAE,QAASA,GACb,OAEF,MAAM0Z,EAAW5oC,GAAUkvB,EAAM,GAAG,EACpC,GAAIzX,EAAU,KACXoxB,GAAMA,IAAMD,GAAYF,GAASG,CAAC,IAAMD,CAAA,EAEzC,OAAOlpC,EAAGwvB,CAAK,CAEnB,GACF,EAEM4Z,GAAkC5qC,GAAO,CAAE,UAAA6pC,EAAA,EAAa5H,EAAO,EACrE,IAAI4I,GAEJ,SAASC,IAAiB,CACxB,OAAOD,KAAaA,GAAWtU,GAAeqU,EAAe,EAC/D,CAYA,MAAMG,IAAa,IAAIj/B,IAAS,CAC9B,MAAM6jB,EAAMmb,GAAA,EAAiB,UAAU,GAAGh/B,CAAI,EAKxC,CAAE,MAAA6R,GAAUgS,EAClB,OAAAA,EAAI,MAASqb,GAAwB,CACnC,MAAMvuB,EAAYwuB,GAAmBD,CAAmB,EACxD,GAAI,CAACvuB,EAAW,OAChB,MAAMkL,EAAYgI,EAAI,WAClB,CAAC/uB,GAAW+mB,CAAS,GAAK,CAACA,EAAU,QAAU,CAACA,EAAU,WAC5DA,EAAU,SAAWlL,EAAU,WAE7BA,EAAU,WAAa,IACzBA,EAAU,YAAc,IAE1B,MAAMxL,EAAQ0M,EAAMlB,EAAW,GAAOyuB,GAAqBzuB,CAAS,CAAC,EACrE,OAAIA,aAAqB,UACvBA,EAAU,gBAAgB,SAAS,EACnCA,EAAU,aAAa,aAAc,EAAE,GAElCxL,CACT,EACO0e,CACT,GAgBA,SAASub,GAAqBzuB,EAAW,CACvC,GAAIA,aAAqB,WACvB,MAAO,MAET,GAAI,OAAO,eAAkB,YAAcA,aAAqB,cAC9D,MAAO,QAEX,CAoCA,SAASwuB,GAAmBxuB,EAAW,CACrC,OAAI5b,GAAS4b,CAAS,EACR,SAAS,cAAcA,CAAS,EAavCA,CACT,CClgEA,IAAI0uB,GAAS,GAETC,GAAW,GAEfA,GAAS,WAAaC,GACtBD,GAAS,YAAcE,GACvBF,GAAS,cAAgBG,GAOzB,QALIC,GAAS,GACTC,GAAY,GACZC,GAAM,OAAO,WAAe,IAAc,WAAa,MAEvDC,GAAO,mEACFvrC,GAAI,EAAG89B,GAAMyN,GAAK,OAAQvrC,GAAI89B,GAAK,EAAE99B,GAC5CorC,GAAOprC,EAAC,EAAIurC,GAAKvrC,EAAC,EAClBqrC,GAAUE,GAAK,WAAWvrC,EAAC,CAAC,EAAIA,GAKlCqrC,GAAU,EAAiB,EAAI,GAC/BA,GAAU,EAAiB,EAAI,GAE/B,SAASG,GAASC,EAAK,CACrB,IAAI3N,EAAM2N,EAAI,OAEd,GAAI3N,EAAM,EAAI,EACZ,MAAM,IAAI,MAAM,gDAAgD,EAKlE,IAAI4N,EAAWD,EAAI,QAAQ,GAAG,EAC1BC,IAAa,KAAIA,EAAW5N,GAEhC,IAAI6N,EAAkBD,IAAa5N,EAC/B,EACA,EAAK4N,EAAW,EAEpB,MAAO,CAACA,EAAUC,CAAe,CACnC,CAGA,SAASV,GAAYQ,EAAK,CACxB,IAAIG,EAAOJ,GAAQC,CAAG,EAClBC,EAAWE,EAAK,CAAC,EACjBD,EAAkBC,EAAK,CAAC,EAC5B,OAASF,EAAWC,GAAmB,EAAI,EAAKA,CAClD,CAEA,SAASE,GAAaJ,EAAKC,EAAUC,EAAiB,CACpD,OAASD,EAAWC,GAAmB,EAAI,EAAKA,CAClD,CAEA,SAAST,GAAaO,EAAK,CACzB,IAAIpoC,EACAuoC,EAAOJ,GAAQC,CAAG,EAClBC,EAAWE,EAAK,CAAC,EACjBD,EAAkBC,EAAK,CAAC,EAExB9rC,EAAM,IAAIwrC,GAAIO,GAAYJ,EAAKC,EAAUC,CAAe,CAAC,EAEzDG,EAAU,EAGVhO,EAAM6N,EAAkB,EACxBD,EAAW,EACXA,EAEA1rC,EACJ,IAAKA,EAAI,EAAGA,EAAI89B,EAAK99B,GAAK,EACxBqD,EACGgoC,GAAUI,EAAI,WAAWzrC,CAAC,CAAC,GAAK,GAChCqrC,GAAUI,EAAI,WAAWzrC,EAAI,CAAC,CAAC,GAAK,GACpCqrC,GAAUI,EAAI,WAAWzrC,EAAI,CAAC,CAAC,GAAK,EACrCqrC,GAAUI,EAAI,WAAWzrC,EAAI,CAAC,CAAC,EACjCF,EAAIgsC,GAAS,EAAKzoC,GAAO,GAAM,IAC/BvD,EAAIgsC,GAAS,EAAKzoC,GAAO,EAAK,IAC9BvD,EAAIgsC,GAAS,EAAIzoC,EAAM,IAGzB,OAAIsoC,IAAoB,IACtBtoC,EACGgoC,GAAUI,EAAI,WAAWzrC,CAAC,CAAC,GAAK,EAChCqrC,GAAUI,EAAI,WAAWzrC,EAAI,CAAC,CAAC,GAAK,EACvCF,EAAIgsC,GAAS,EAAIzoC,EAAM,KAGrBsoC,IAAoB,IACtBtoC,EACGgoC,GAAUI,EAAI,WAAWzrC,CAAC,CAAC,GAAK,GAChCqrC,GAAUI,EAAI,WAAWzrC,EAAI,CAAC,CAAC,GAAK,EACpCqrC,GAAUI,EAAI,WAAWzrC,EAAI,CAAC,CAAC,GAAK,EACvCF,EAAIgsC,GAAS,EAAKzoC,GAAO,EAAK,IAC9BvD,EAAIgsC,GAAS,EAAIzoC,EAAM,KAGlBvD,CACT,CAEA,SAASisC,GAAiBC,EAAK,CAC7B,OAAOZ,GAAOY,GAAO,GAAK,EAAI,EAC5BZ,GAAOY,GAAO,GAAK,EAAI,EACvBZ,GAAOY,GAAO,EAAI,EAAI,EACtBZ,GAAOY,EAAM,EAAI,CACrB,CAEA,SAASC,GAAaC,EAAOp1B,EAAOC,EAAK,CAGvC,QAFI1T,EACA8oC,EAAS,GACJnsC,EAAI8W,EAAO9W,EAAI+W,EAAK/W,GAAK,EAChCqD,GACI6oC,EAAMlsC,CAAC,GAAK,GAAM,WAClBksC,EAAMlsC,EAAI,CAAC,GAAK,EAAK,QACtBksC,EAAMlsC,EAAI,CAAC,EAAI,KAClBmsC,EAAO,KAAKJ,GAAgB1oC,CAAG,CAAC,EAElC,OAAO8oC,EAAO,KAAK,EAAE,CACvB,CAEA,SAAShB,GAAee,EAAO,CAQ7B,QAPI7oC,EACAy6B,EAAMoO,EAAM,OACZE,EAAatO,EAAM,EACnBuO,EAAQ,GACRC,EAAiB,MAGZtsC,EAAI,EAAGusC,EAAOzO,EAAMsO,EAAYpsC,EAAIusC,EAAMvsC,GAAKssC,EACtDD,EAAM,KAAKJ,GAAYC,EAAOlsC,EAAIA,EAAIssC,EAAkBC,EAAOA,EAAQvsC,EAAIssC,CAAe,CAAC,EAI7F,OAAIF,IAAe,GACjB/oC,EAAM6oC,EAAMpO,EAAM,CAAC,EACnBuO,EAAM,KACJjB,GAAO/nC,GAAO,CAAC,EACf+nC,GAAQ/nC,GAAO,EAAK,EAAI,EACxB,IACN,GACa+oC,IAAe,IACxB/oC,GAAO6oC,EAAMpO,EAAM,CAAC,GAAK,GAAKoO,EAAMpO,EAAM,CAAC,EAC3CuO,EAAM,KACJjB,GAAO/nC,GAAO,EAAE,EAChB+nC,GAAQ/nC,GAAO,EAAK,EAAI,EACxB+nC,GAAQ/nC,GAAO,EAAK,EAAI,EACxB,GACN,GAGSgpC,EAAM,KAAK,EAAE,CACtB,CAEA,IAAIG,GAAU,GAIdA,GAAQ,KAAO,SAAUzB,EAAQ0B,EAAQC,EAAMC,EAAMC,EAAQ,CAC3D,IAAI5kC,EAAG8lB,EACH+e,EAAQD,EAAS,EAAKD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,EAAQ,GACRhtC,EAAI0sC,EAAQE,EAAS,EAAK,EAC1B3G,EAAIyG,EAAO,GAAK,EAChBj4B,EAAIs2B,EAAO0B,EAASzsC,CAAC,EAOzB,IALAA,GAAKimC,EAELj+B,EAAIyM,GAAM,GAAM,CAACu4B,GAAU,EAC3Bv4B,IAAO,CAACu4B,EACRA,GAASH,EACFG,EAAQ,EAAGhlC,EAAKA,EAAI,IAAO+iC,EAAO0B,EAASzsC,CAAC,EAAGA,GAAKimC,EAAG+G,GAAS,EAAG,CAK1E,IAHAlf,EAAI9lB,GAAM,GAAM,CAACglC,GAAU,EAC3BhlC,IAAO,CAACglC,EACRA,GAASL,EACFK,EAAQ,EAAGlf,EAAKA,EAAI,IAAOid,EAAO0B,EAASzsC,CAAC,EAAGA,GAAKimC,EAAG+G,GAAS,EAAG,CAE1E,GAAIhlC,IAAM,EACRA,EAAI,EAAI+kC,MACH,IAAI/kC,IAAM8kC,EACf,OAAOhf,EAAI,KAAQrZ,EAAI,GAAK,SAE5BqZ,EAAIA,EAAI,KAAK,IAAI,EAAG6e,CAAI,EACxB3kC,EAAIA,EAAI+kC,EAEV,OAAQt4B,EAAI,GAAK,GAAKqZ,EAAI,KAAK,IAAI,EAAG9lB,EAAI2kC,CAAI,CAChD,EAEAH,GAAQ,MAAQ,SAAUzB,EAAQjqC,EAAO2rC,EAAQC,EAAMC,EAAMC,EAAQ,CACnE,IAAI5kC,EAAG8lB,EAAGtsB,EACNqrC,EAAQD,EAAS,EAAKD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBG,EAAMN,IAAS,GAAK,KAAK,IAAI,EAAG,GAAG,EAAI,KAAK,IAAI,EAAG,GAAG,EAAI,EAC1D3sC,EAAI0sC,EAAO,EAAKE,EAAS,EACzB3G,EAAIyG,EAAO,EAAI,GACfj4B,EAAI3T,EAAQ,GAAMA,IAAU,GAAK,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ,KAAK,IAAIA,CAAK,EAElB,MAAMA,CAAK,GAAKA,IAAU,KAC5BgtB,EAAI,MAAMhtB,CAAK,EAAI,EAAI,EACvBkH,EAAI8kC,IAEJ9kC,EAAI,KAAK,MAAM,KAAK,IAAIlH,CAAK,EAAI,KAAK,GAAG,EACrCA,GAASU,EAAI,KAAK,IAAI,EAAG,CAACwG,CAAC,GAAK,IAClCA,IACAxG,GAAK,GAEHwG,EAAI+kC,GAAS,EACfjsC,GAASmsC,EAAKzrC,EAEdV,GAASmsC,EAAK,KAAK,IAAI,EAAG,EAAIF,CAAK,EAEjCjsC,EAAQU,GAAK,IACfwG,IACAxG,GAAK,GAGHwG,EAAI+kC,GAASD,GACfhf,EAAI,EACJ9lB,EAAI8kC,GACK9kC,EAAI+kC,GAAS,GACtBjf,GAAMhtB,EAAQU,EAAK,GAAK,KAAK,IAAI,EAAGmrC,CAAI,EACxC3kC,EAAIA,EAAI+kC,IAERjf,EAAIhtB,EAAQ,KAAK,IAAI,EAAGisC,EAAQ,CAAC,EAAI,KAAK,IAAI,EAAGJ,CAAI,EACrD3kC,EAAI,IAID2kC,GAAQ,EAAG5B,EAAO0B,EAASzsC,CAAC,EAAI8tB,EAAI,IAAM9tB,GAAKimC,EAAGnY,GAAK,IAAK6e,GAAQ,EAAG,CAI9E,IAFA3kC,EAAKA,GAAK2kC,EAAQ7e,EAClB+e,GAAQF,EACDE,EAAO,EAAG9B,EAAO0B,EAASzsC,CAAC,EAAIgI,EAAI,IAAMhI,GAAKimC,EAAGj+B,GAAK,IAAK6kC,GAAQ,EAAG,CAE7E9B,EAAO0B,EAASzsC,EAAIimC,CAAC,GAAKxxB,EAAI,GAChC,GASC,SAAUy4B,EAAS,CAEnB,MAAMC,EAASnC,GACToC,EAAYZ,GACZa,EACH,OAAO,QAAW,YAAc,OAAO,OAAO,KAAW,WACtD,OAAO,IAAO,4BAA4B,EAC1C,KAENH,EAAQ,OAASI,EACjBJ,EAAQ,WAAaK,EACrBL,EAAQ,kBAAoB,GAE5B,MAAMM,EAAe,WACrBN,EAAQ,WAAaM,EACrB,KAAM,CAAE,WAAYC,EAAkB,YAAaC,EAAmB,kBAAmBC,CAAuB,EAAK,WAgBrHL,EAAO,oBAAsBM,EAAiB,EAE1C,CAACN,EAAO,qBAAuB,OAAO,QAAY,KAClD,OAAO,QAAQ,OAAU,YAC3B,QAAQ,MACN,+IAEL,EAGC,SAASM,GAAqB,CAE5B,GAAI,CACF,MAAM9tC,EAAM,IAAI2tC,EAAiB,CAAC,EAC5Bj+B,EAAQ,CAAE,IAAK,UAAY,CAAE,SAAU,CAAC,EAC9C,cAAO,eAAeA,EAAOi+B,EAAiB,SAAS,EACvD,OAAO,eAAe3tC,EAAK0P,CAAK,EACzB1P,EAAI,QAAU,EACvB,MAAY,CACV,MAAO,EACT,CACF,CAEA,OAAO,eAAewtC,EAAO,UAAW,SAAU,CAChD,WAAY,GACZ,IAAK,UAAY,CACf,GAAKA,EAAO,SAAS,IAAI,EACzB,OAAO,KAAK,MACd,CACH,CAAE,EAED,OAAO,eAAeA,EAAO,UAAW,SAAU,CAChD,WAAY,GACZ,IAAK,UAAY,CACf,GAAKA,EAAO,SAAS,IAAI,EACzB,OAAO,KAAK,UACd,CACH,CAAE,EAED,SAASO,EAAcC,EAAQ,CAC7B,GAAIA,EAASN,EACX,MAAM,IAAI,WAAW,cAAgBM,EAAS,gCAAgC,EAGhF,MAAMC,EAAM,IAAIN,EAAiBK,CAAM,EACvC,cAAO,eAAeC,EAAKT,EAAO,SAAS,EACpCS,CACT,CAYA,SAAST,EAAQrrC,EAAK+rC,EAAkBF,EAAQ,CAE9C,GAAI,OAAO7rC,GAAQ,SAAU,CAC3B,GAAI,OAAO+rC,GAAqB,SAC9B,MAAM,IAAI,UACR,oEACT,EAEK,OAAOC,EAAYhsC,CAAG,CACxB,CACA,OAAOgsB,EAAKhsB,EAAK+rC,EAAkBF,CAAM,CAC3C,CAEAR,EAAO,SAAW,KAElB,SAASrf,EAAMntB,EAAOktC,EAAkBF,EAAQ,CAC9C,GAAI,OAAOhtC,GAAU,SACnB,OAAOotC,EAAWptC,EAAOktC,CAAgB,EAG3C,GAAIN,EAAkB,OAAO5sC,CAAK,EAChC,OAAOqtC,EAAcrtC,CAAK,EAG5B,GAAIA,GAAS,KACX,MAAM,IAAI,UACR,kHAC0C,OAAOA,CACxD,EAQG,GALIstC,GAAWttC,EAAO4sC,CAAiB,GAClC5sC,GAASstC,GAAWttC,EAAM,OAAQ4sC,CAAiB,GAIpD,OAAOC,EAA4B,MAClCS,GAAWttC,EAAO6sC,CAAuB,GACzC7sC,GAASstC,GAAWttC,EAAM,OAAQ6sC,CAAuB,GAC5D,OAAOU,EAAgBvtC,EAAOktC,EAAkBF,CAAM,EAGxD,GAAI,OAAOhtC,GAAU,SACnB,MAAM,IAAI,UACR,uEACP,EAGG,MAAMwtC,EAAUxtC,EAAM,SAAWA,EAAM,QAAO,EAC9C,GAAIwtC,GAAW,MAAQA,IAAYxtC,EACjC,OAAOwsC,EAAO,KAAKgB,EAASN,EAAkBF,CAAM,EAGtD,MAAM7pC,EAAIsqC,EAAWztC,CAAK,EAC1B,GAAImD,EAAG,OAAOA,EAEd,GAAI,OAAO,OAAW,KAAe,OAAO,aAAe,MACvD,OAAOnD,EAAM,OAAO,WAAW,GAAM,WACvC,OAAOwsC,EAAO,KAAKxsC,EAAM,OAAO,WAAW,EAAE,QAAQ,EAAGktC,EAAkBF,CAAM,EAGlF,MAAM,IAAI,UACR,kHAC0C,OAAOhtC,CACtD,CACC,CAUAwsC,EAAO,KAAO,SAAUxsC,EAAOktC,EAAkBF,EAAQ,CACvD,OAAO7f,EAAKntB,EAAOktC,EAAkBF,CAAM,CAC7C,EAIA,OAAO,eAAeR,EAAO,UAAWG,EAAiB,SAAS,EAClE,OAAO,eAAeH,EAAQG,CAAgB,EAE9C,SAASe,EAAYC,EAAM,CACzB,GAAI,OAAOA,GAAS,SAClB,MAAM,IAAI,UAAU,wCAAwC,EACvD,GAAIA,EAAO,EAChB,MAAM,IAAI,WAAW,cAAgBA,EAAO,gCAAgC,CAEhF,CAEA,SAASC,EAAOD,EAAME,EAAMC,EAAU,CAEpC,OADAJ,EAAWC,CAAI,EACXA,GAAQ,EACHZ,EAAaY,CAAI,EAEtBE,IAAS,OAIJ,OAAOC,GAAa,SACvBf,EAAaY,CAAI,EAAE,KAAKE,EAAMC,CAAQ,EACtCf,EAAaY,CAAI,EAAE,KAAKE,CAAI,EAE3Bd,EAAaY,CAAI,CAC1B,CAMAnB,EAAO,MAAQ,SAAUmB,EAAME,EAAMC,EAAU,CAC7C,OAAOF,EAAMD,EAAME,EAAMC,CAAQ,CACnC,EAEA,SAASX,EAAaQ,EAAM,CAC1B,OAAAD,EAAWC,CAAI,EACRZ,EAAaY,EAAO,EAAI,EAAII,EAAQJ,CAAI,EAAI,CAAC,CACtD,CAKAnB,EAAO,YAAc,SAAUmB,EAAM,CACnC,OAAOR,EAAYQ,CAAI,CACzB,EAIAnB,EAAO,gBAAkB,SAAUmB,EAAM,CACvC,OAAOR,EAAYQ,CAAI,CACzB,EAEA,SAASP,EAAYY,EAAQF,EAAU,CAKrC,IAJI,OAAOA,GAAa,UAAYA,IAAa,MAC/CA,EAAW,QAGT,CAACtB,EAAO,WAAWsB,CAAQ,EAC7B,MAAM,IAAI,UAAU,qBAAuBA,CAAQ,EAGrD,MAAMd,EAAS7C,EAAW6D,EAAQF,CAAQ,EAAI,EAC9C,IAAIb,EAAMF,EAAaC,CAAM,EAE7B,MAAMiB,EAAShB,EAAI,MAAMe,EAAQF,CAAQ,EAEzC,OAAIG,IAAWjB,IAIbC,EAAMA,EAAI,MAAM,EAAGgB,CAAM,GAGpBhB,CACT,CAEA,SAASiB,EAAelkC,EAAO,CAC7B,MAAMgjC,EAAShjC,EAAM,OAAS,EAAI,EAAI+jC,EAAQ/jC,EAAM,MAAM,EAAI,EACxDijC,EAAMF,EAAaC,CAAM,EAC/B,QAAS9tC,EAAI,EAAGA,EAAI8tC,EAAQ9tC,GAAK,EAC/B+tC,EAAI/tC,CAAC,EAAI8K,EAAM9K,CAAC,EAAI,IAEtB,OAAO+tC,CACT,CAEA,SAASI,EAAec,EAAW,CACjC,GAAIb,GAAWa,EAAWxB,CAAgB,EAAG,CAC3C,MAAMyB,EAAO,IAAIzB,EAAiBwB,CAAS,EAC3C,OAAOZ,EAAgBa,EAAK,OAAQA,EAAK,WAAYA,EAAK,UAAU,CACtE,CACA,OAAOF,EAAcC,CAAS,CAChC,CAEA,SAASZ,EAAiBvjC,EAAOqkC,EAAYrB,EAAQ,CACnD,GAAIqB,EAAa,GAAKrkC,EAAM,WAAaqkC,EACvC,MAAM,IAAI,WAAW,sCAAsC,EAG7D,GAAIrkC,EAAM,WAAaqkC,GAAcrB,GAAU,GAC7C,MAAM,IAAI,WAAW,sCAAsC,EAG7D,IAAIC,EACJ,OAAIoB,IAAe,QAAarB,IAAW,OACzCC,EAAM,IAAIN,EAAiB3iC,CAAK,EACvBgjC,IAAW,OACpBC,EAAM,IAAIN,EAAiB3iC,EAAOqkC,CAAU,EAE5CpB,EAAM,IAAIN,EAAiB3iC,EAAOqkC,EAAYrB,CAAM,EAItD,OAAO,eAAeC,EAAKT,EAAO,SAAS,EAEpCS,CACT,CAEA,SAASQ,EAAYpsC,EAAK,CACxB,GAAImrC,EAAO,SAASnrC,CAAG,EAAG,CACxB,MAAM27B,EAAM+Q,EAAQ1sC,EAAI,MAAM,EAAI,EAC5B4rC,EAAMF,EAAa/P,CAAG,EAE5B,OAAIiQ,EAAI,SAAW,GAInB5rC,EAAI,KAAK4rC,EAAK,EAAG,EAAGjQ,CAAG,EAChBiQ,CACT,CAEA,GAAI5rC,EAAI,SAAW,OACjB,OAAI,OAAOA,EAAI,QAAW,UAAYitC,EAAYjtC,EAAI,MAAM,EACnD0rC,EAAa,CAAC,EAEhBmB,EAAc7sC,CAAG,EAG1B,GAAIA,EAAI,OAAS,UAAY,MAAM,QAAQA,EAAI,IAAI,EACjD,OAAO6sC,EAAc7sC,EAAI,IAAI,CAEjC,CAEA,SAAS0sC,EAASf,EAAQ,CAGxB,GAAIA,GAAUN,EACZ,MAAM,IAAI,WAAW,0DACaA,EAAa,SAAS,EAAE,EAAI,QAAQ,EAExE,OAAOM,EAAS,CAClB,CAEA,SAASP,EAAYO,EAAQ,CAC3B,MAAI,CAACA,GAAUA,IACbA,EAAS,GAEJR,EAAO,MAAM,CAACQ,CAAM,CAC7B,CAEAR,EAAO,SAAW,SAAmBrpC,EAAG,CACtC,OAAOA,GAAK,MAAQA,EAAE,YAAc,IAClCA,IAAMqpC,EAAO,SACjB,EAEAA,EAAO,QAAU,SAAkBtpC,EAAGC,EAAG,CAGvC,GAFImqC,GAAWpqC,EAAGypC,CAAgB,IAAGzpC,EAAIspC,EAAO,KAAKtpC,EAAGA,EAAE,OAAQA,EAAE,UAAU,GAC1EoqC,GAAWnqC,EAAGwpC,CAAgB,IAAGxpC,EAAIqpC,EAAO,KAAKrpC,EAAGA,EAAE,OAAQA,EAAE,UAAU,GAC1E,CAACqpC,EAAO,SAAStpC,CAAC,GAAK,CAACspC,EAAO,SAASrpC,CAAC,EAC3C,MAAM,IAAI,UACR,uEACP,EAGG,GAAID,IAAMC,EAAG,SAEb,IAAI0H,EAAI3H,EAAE,OACNqrC,EAAIprC,EAAE,OAEV,QAASjE,EAAI,EAAG89B,EAAM,KAAK,IAAInyB,EAAG0jC,CAAC,EAAGrvC,EAAI89B,EAAK,EAAE99B,EAC/C,GAAIgE,EAAEhE,CAAC,IAAMiE,EAAEjE,CAAC,EAAG,CACjB2L,EAAI3H,EAAEhE,CAAC,EACPqvC,EAAIprC,EAAEjE,CAAC,EACP,KACF,CAGF,OAAI2L,EAAI0jC,EAAU,GACdA,EAAI1jC,EAAU,EACX,CACT,EAEA2hC,EAAO,WAAa,SAAqBsB,EAAU,CACjD,OAAQ,OAAOA,CAAQ,EAAE,YAAW,EAAE,CACpC,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO,GACT,QACE,MAAO,EACd,CACC,EAEAtB,EAAO,OAAS,SAAiBgC,EAAMxB,EAAQ,CAC7C,GAAI,CAAC,MAAM,QAAQwB,CAAI,EACrB,MAAM,IAAI,UAAU,6CAA6C,EAGnE,GAAIA,EAAK,SAAW,EAClB,OAAOhC,EAAO,MAAM,CAAC,EAGvB,IAAIttC,EACJ,GAAI8tC,IAAW,OAEb,IADAA,EAAS,EACJ9tC,EAAI,EAAGA,EAAIsvC,EAAK,OAAQ,EAAEtvC,EAC7B8tC,GAAUwB,EAAKtvC,CAAC,EAAE,OAItB,MAAM+qC,EAASuC,EAAO,YAAYQ,CAAM,EACxC,IAAIyB,EAAM,EACV,IAAKvvC,EAAI,EAAGA,EAAIsvC,EAAK,OAAQ,EAAEtvC,EAAG,CAChC,IAAI+tC,EAAMuB,EAAKtvC,CAAC,EAChB,GAAIouC,GAAWL,EAAKN,CAAgB,EAC9B8B,EAAMxB,EAAI,OAAShD,EAAO,QACvBuC,EAAO,SAASS,CAAG,IAAGA,EAAMT,EAAO,KAAKS,CAAG,GAChDA,EAAI,KAAKhD,EAAQwE,CAAG,GAEpB9B,EAAiB,UAAU,IAAI,KAC7B1C,EACAgD,EACAwB,CACX,UAEiBjC,EAAO,SAASS,CAAG,EAG7BA,EAAI,KAAKhD,EAAQwE,CAAG,MAFpB,OAAM,IAAI,UAAU,6CAA6C,EAInEA,GAAOxB,EAAI,MACb,CACA,OAAOhD,CACT,EAEA,SAASE,EAAY6D,EAAQF,EAAU,CACrC,GAAItB,EAAO,SAASwB,CAAM,EACxB,OAAOA,EAAO,OAEhB,GAAIpB,EAAkB,OAAOoB,CAAM,GAAKV,GAAWU,EAAQpB,CAAiB,EAC1E,OAAOoB,EAAO,WAEhB,GAAI,OAAOA,GAAW,SACpB,MAAM,IAAI,UACR,2FACmB,OAAOA,CACjC,EAGG,MAAMhR,EAAMgR,EAAO,OACbU,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,GAC5D,GAAI,CAACA,GAAa1R,IAAQ,EAAG,MAAO,GAGpC,IAAI2R,EAAc,GAClB,OACE,OAAQb,EAAQ,CACd,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO9Q,EACT,IAAK,OACL,IAAK,QACH,OAAO4R,GAAYZ,CAAM,EAAE,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOhR,EAAM,EACf,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAO6R,GAAcb,CAAM,EAAE,OAC/B,QACE,GAAIW,EACF,OAAOD,EAAY,GAAKE,GAAYZ,CAAM,EAAE,OAE9CF,GAAY,GAAKA,GAAU,YAAW,EACtCa,EAAc,EACvB,CAEC,CACAnC,EAAO,WAAarC,EAEpB,SAAS2E,EAAchB,EAAU93B,EAAOC,EAAK,CAC3C,IAAI04B,EAAc,GA8BlB,IArBI34B,IAAU,QAAaA,EAAQ,KACjCA,EAAQ,GAINA,EAAQ,KAAK,UAIbC,IAAQ,QAAaA,EAAM,KAAK,UAClCA,EAAM,KAAK,QAGTA,GAAO,KAKXA,KAAS,EACTD,KAAW,EAEPC,GAAOD,GACT,MAAO,GAKT,IAFK83B,IAAUA,EAAW,UAGxB,OAAQA,EAAQ,CACd,IAAK,MACH,OAAOiB,GAAS,KAAM/4B,EAAOC,CAAG,EAElC,IAAK,OACL,IAAK,QACH,OAAO+4B,GAAU,KAAMh5B,EAAOC,CAAG,EAEnC,IAAK,QACH,OAAOg5B,EAAW,KAAMj5B,EAAOC,CAAG,EAEpC,IAAK,SACL,IAAK,SACH,OAAOi5B,GAAY,KAAMl5B,EAAOC,CAAG,EAErC,IAAK,SACH,OAAOk5B,EAAY,KAAMn5B,EAAOC,CAAG,EAErC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOm5B,EAAa,KAAMp5B,EAAOC,CAAG,EAEtC,QACE,GAAI04B,EAAa,MAAM,IAAI,UAAU,qBAAuBb,CAAQ,EACpEA,GAAYA,EAAW,IAAI,YAAW,EACtCa,EAAc,EACvB,CAEC,CAQAnC,EAAO,UAAU,UAAY,GAE7B,SAAS6C,EAAMlsC,EAAG3B,EAAGwrB,EAAG,CACtB,MAAM9tB,EAAIiE,EAAE3B,CAAC,EACb2B,EAAE3B,CAAC,EAAI2B,EAAE6pB,CAAC,EACV7pB,EAAE6pB,CAAC,EAAI9tB,CACT,CAEAstC,EAAO,UAAU,OAAS,UAAmB,CAC3C,MAAMxP,EAAM,KAAK,OACjB,GAAIA,EAAM,IAAM,EACd,MAAM,IAAI,WAAW,2CAA2C,EAElE,QAAS99B,EAAI,EAAGA,EAAI89B,EAAK99B,GAAK,EAC5BmwC,EAAK,KAAMnwC,EAAGA,EAAI,CAAC,EAErB,OAAO,IACT,EAEAstC,EAAO,UAAU,OAAS,UAAmB,CAC3C,MAAMxP,EAAM,KAAK,OACjB,GAAIA,EAAM,IAAM,EACd,MAAM,IAAI,WAAW,2CAA2C,EAElE,QAAS99B,EAAI,EAAGA,EAAI89B,EAAK99B,GAAK,EAC5BmwC,EAAK,KAAMnwC,EAAGA,EAAI,CAAC,EACnBmwC,EAAK,KAAMnwC,EAAI,EAAGA,EAAI,CAAC,EAEzB,OAAO,IACT,EAEAstC,EAAO,UAAU,OAAS,UAAmB,CAC3C,MAAMxP,EAAM,KAAK,OACjB,GAAIA,EAAM,IAAM,EACd,MAAM,IAAI,WAAW,2CAA2C,EAElE,QAAS99B,EAAI,EAAGA,EAAI89B,EAAK99B,GAAK,EAC5BmwC,EAAK,KAAMnwC,EAAGA,EAAI,CAAC,EACnBmwC,EAAK,KAAMnwC,EAAI,EAAGA,EAAI,CAAC,EACvBmwC,EAAK,KAAMnwC,EAAI,EAAGA,EAAI,CAAC,EACvBmwC,EAAK,KAAMnwC,EAAI,EAAGA,EAAI,CAAC,EAEzB,OAAO,IACT,EAEAstC,EAAO,UAAU,SAAW,UAAqB,CAC/C,MAAMQ,EAAS,KAAK,OACpB,OAAIA,IAAW,EAAU,GACrB,UAAU,SAAW,EAAUgC,GAAU,KAAM,EAAGhC,CAAM,EACrD8B,EAAa,MAAM,KAAM,SAAS,CAC3C,EAEAtC,EAAO,UAAU,eAAiBA,EAAO,UAAU,SAEnDA,EAAO,UAAU,OAAS,SAAiBrpC,EAAG,CAC5C,GAAI,CAACqpC,EAAO,SAASrpC,CAAC,EAAG,MAAM,IAAI,UAAU,2BAA2B,EACxE,OAAI,OAASA,EAAU,GAChBqpC,EAAO,QAAQ,KAAMrpC,CAAC,IAAM,CACrC,EAEAqpC,EAAO,UAAU,QAAU,UAAoB,CAC7C,IAAIpuC,EAAM,GACV,MAAMkxC,EAAMlD,EAAQ,kBACpB,OAAAhuC,EAAM,KAAK,SAAS,MAAO,EAAGkxC,CAAG,EAAE,QAAQ,UAAW,KAAK,EAAE,KAAI,EAC7D,KAAK,OAASA,IAAKlxC,GAAO,SACvB,WAAaA,EAAM,GAC5B,EACImuC,IACFC,EAAO,UAAUD,CAAmB,EAAIC,EAAO,UAAU,SAG3DA,EAAO,UAAU,QAAU,SAAkBvjC,EAAQ+M,EAAOC,EAAKs5B,EAAWC,EAAS,CAInF,GAHIlC,GAAWrkC,EAAQ0jC,CAAgB,IACrC1jC,EAASujC,EAAO,KAAKvjC,EAAQA,EAAO,OAAQA,EAAO,UAAU,GAE3D,CAACujC,EAAO,SAASvjC,CAAM,EACzB,MAAM,IAAI,UACR,iFACoB,OAAOA,CAClC,EAgBG,GAbI+M,IAAU,SACZA,EAAQ,GAENC,IAAQ,SACVA,EAAMhN,EAASA,EAAO,OAAS,GAE7BsmC,IAAc,SAChBA,EAAY,GAEVC,IAAY,SACdA,EAAU,KAAK,QAGbx5B,EAAQ,GAAKC,EAAMhN,EAAO,QAAUsmC,EAAY,GAAKC,EAAU,KAAK,OACtE,MAAM,IAAI,WAAW,oBAAoB,EAG3C,GAAID,GAAaC,GAAWx5B,GAASC,EACnC,MAAO,GAET,GAAIs5B,GAAaC,EACf,MAAO,GAET,GAAIx5B,GAASC,EACX,MAAO,GAQT,GALAD,KAAW,EACXC,KAAS,EACTs5B,KAAe,EACfC,KAAa,EAET,OAASvmC,EAAQ,MAAO,GAE5B,IAAI4B,EAAI2kC,EAAUD,EACdhB,GAAIt4B,EAAMD,EACd,MAAMgnB,GAAM,KAAK,IAAInyB,EAAG0jC,EAAC,EAEnBkB,GAAW,KAAK,MAAMF,EAAWC,CAAO,EACxCE,GAAazmC,EAAO,MAAM+M,EAAOC,CAAG,EAE1C,QAAS/W,GAAI,EAAGA,GAAI89B,GAAK,EAAE99B,GACzB,GAAIuwC,GAASvwC,EAAC,IAAMwwC,GAAWxwC,EAAC,EAAG,CACjC2L,EAAI4kC,GAASvwC,EAAC,EACdqvC,GAAImB,GAAWxwC,EAAC,EAChB,KACF,CAGF,OAAI2L,EAAI0jC,GAAU,GACdA,GAAI1jC,EAAU,EACX,CACT,EAWA,SAAS8kC,EAAsB1F,EAAQ1rC,EAAK8vC,EAAYP,EAAU11B,EAAK,CAErE,GAAI6xB,EAAO,SAAW,EAAG,MAAO,GAmBhC,GAhBI,OAAOoE,GAAe,UACxBP,EAAWO,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,EAAa,cACtBA,EAAa,aAEfA,EAAa,CAACA,EACVC,EAAYD,CAAU,IAExBA,EAAaj2B,EAAM,EAAK6xB,EAAO,OAAS,GAItCoE,EAAa,IAAGA,EAAapE,EAAO,OAASoE,GAC7CA,GAAcpE,EAAO,OAAQ,CAC/B,GAAI7xB,EAAK,MAAO,GACXi2B,EAAapE,EAAO,OAAS,CACpC,SAAWoE,EAAa,EACtB,GAAIj2B,EAAKi2B,EAAa,MACjB,OAAO,GASd,GALI,OAAO9vC,GAAQ,WACjBA,EAAMiuC,EAAO,KAAKjuC,EAAKuvC,CAAQ,GAI7BtB,EAAO,SAASjuC,CAAG,EAErB,OAAIA,EAAI,SAAW,EACV,GAEFqxC,EAAa3F,EAAQ1rC,EAAK8vC,EAAYP,EAAU11B,CAAG,EACrD,GAAI,OAAO7Z,GAAQ,SAExB,OADAA,EAAMA,EAAM,IACR,OAAOouC,EAAiB,UAAU,SAAY,WAC5Cv0B,EACKu0B,EAAiB,UAAU,QAAQ,KAAK1C,EAAQ1rC,EAAK8vC,CAAU,EAE/D1B,EAAiB,UAAU,YAAY,KAAK1C,EAAQ1rC,EAAK8vC,CAAU,EAGvEuB,EAAa3F,EAAQ,CAAC1rC,CAAG,EAAG8vC,EAAYP,EAAU11B,CAAG,EAG9D,MAAM,IAAI,UAAU,sCAAsC,CAC5D,CAEA,SAASw3B,EAAc5wC,EAAKT,EAAK8vC,EAAYP,EAAU11B,EAAK,CAC1D,IAAIy3B,EAAY,EACZC,GAAY9wC,EAAI,OAChB+wC,GAAYxxC,EAAI,OAEpB,GAAIuvC,IAAa,SACfA,EAAW,OAAOA,CAAQ,EAAE,YAAW,EACnCA,IAAa,QAAUA,IAAa,SACpCA,IAAa,WAAaA,IAAa,YAAY,CACrD,GAAI9uC,EAAI,OAAS,GAAKT,EAAI,OAAS,EACjC,MAAO,GAETsxC,EAAY,EACZC,IAAa,EACbC,IAAa,EACb1B,GAAc,CAChB,CAGF,SAAS2B,GAAM/C,GAAK/tC,GAAG,CACrB,OAAI2wC,IAAc,EACT5C,GAAI/tC,EAAC,EAEL+tC,GAAI,aAAa/tC,GAAI2wC,CAAS,CAEzC,CAEA,IAAI3wC,GACJ,GAAIkZ,EAAK,CACP,IAAI63B,GAAa,GACjB,IAAK/wC,GAAImvC,EAAYnvC,GAAI4wC,GAAW5wC,KAClC,GAAI8wC,GAAKhxC,EAAKE,EAAC,IAAM8wC,GAAKzxC,EAAK0xC,KAAe,GAAK,EAAI/wC,GAAI+wC,EAAU,GAEnE,GADIA,KAAe,KAAIA,GAAa/wC,IAChCA,GAAI+wC,GAAa,IAAMF,GAAW,OAAOE,GAAaJ,OAEtDI,KAAe,KAAI/wC,IAAKA,GAAI+wC,IAChCA,GAAa,EAGnB,UACM5B,EAAa0B,GAAYD,KAAWzB,EAAayB,GAAYC,IAC5D7wC,GAAImvC,EAAYnvC,IAAK,EAAGA,KAAK,CAChC,IAAIgxC,GAAQ,GACZ,QAASvoB,GAAI,EAAGA,GAAIooB,GAAWpoB,KAC7B,GAAIqoB,GAAKhxC,EAAKE,GAAIyoB,EAAC,IAAMqoB,GAAKzxC,EAAKopB,EAAC,EAAG,CACrCuoB,GAAQ,GACR,KACF,CAEF,GAAIA,GAAO,OAAOhxC,EACpB,CAGF,MAAO,EACT,CAEAstC,EAAO,UAAU,SAAW,SAAmBjuC,EAAK8vC,EAAYP,EAAU,CACxE,OAAO,KAAK,QAAQvvC,EAAK8vC,EAAYP,CAAQ,IAAM,EACrD,EAEAtB,EAAO,UAAU,QAAU,SAAkBjuC,EAAK8vC,EAAYP,EAAU,CACtE,OAAO6B,EAAqB,KAAMpxC,EAAK8vC,EAAYP,EAAU,EAAI,CACnE,EAEAtB,EAAO,UAAU,YAAc,SAAsBjuC,EAAK8vC,EAAYP,EAAU,CAC9E,OAAO6B,EAAqB,KAAMpxC,EAAK8vC,EAAYP,EAAU,EAAK,CACpE,EAEA,SAASqC,EAAUlD,EAAKe,EAAQrC,EAAQqB,EAAQ,CAC9CrB,EAAS,OAAOA,CAAM,GAAK,EAC3B,MAAMyE,EAAYnD,EAAI,OAAStB,EAC1BqB,GAGHA,EAAS,OAAOA,CAAM,EAClBA,EAASoD,IACXpD,EAASoD,IAJXpD,EAASoD,EAQX,MAAMC,EAASrC,EAAO,OAElBhB,EAASqD,EAAS,IACpBrD,EAASqD,EAAS,GAEpB,IAAInxC,GACJ,IAAKA,GAAI,EAAGA,GAAI8tC,EAAQ,EAAE9tC,GAAG,CAC3B,MAAMoxC,GAAS,SAAStC,EAAO,OAAO9uC,GAAI,EAAG,CAAC,EAAG,EAAE,EACnD,GAAIovC,EAAYgC,EAAM,EAAG,OAAOpxC,GAChC+tC,EAAItB,EAASzsC,EAAC,EAAIoxC,EACpB,CACA,OAAOpxC,EACT,CAEA,SAASqxC,EAAWtD,EAAKe,EAAQrC,EAAQqB,EAAQ,CAC/C,OAAOwD,GAAW5B,GAAYZ,EAAQf,EAAI,OAAStB,CAAM,EAAGsB,EAAKtB,EAAQqB,CAAM,CACjF,CAEA,SAASyD,EAAYxD,EAAKe,EAAQrC,EAAQqB,EAAQ,CAChD,OAAOwD,GAAWE,GAAa1C,CAAM,EAAGf,EAAKtB,EAAQqB,CAAM,CAC7D,CAEA,SAAS2D,EAAa1D,EAAKe,EAAQrC,EAAQqB,EAAQ,CACjD,OAAOwD,GAAW3B,GAAcb,CAAM,EAAGf,EAAKtB,EAAQqB,CAAM,CAC9D,CAEA,SAAS4D,EAAW3D,EAAKe,EAAQrC,EAAQqB,EAAQ,CAC/C,OAAOwD,GAAWK,GAAe7C,EAAQf,EAAI,OAAStB,CAAM,EAAGsB,EAAKtB,EAAQqB,CAAM,CACpF,CAEAR,EAAO,UAAU,MAAQ,SAAgBwB,EAAQrC,EAAQqB,EAAQc,EAAU,CAEzE,GAAInC,IAAW,OACbmC,EAAW,OACXd,EAAS,KAAK,OACdrB,EAAS,UAEAqB,IAAW,QAAa,OAAOrB,GAAW,SACnDmC,EAAWnC,EACXqB,EAAS,KAAK,OACdrB,EAAS,UAEA,SAASA,CAAM,EACxBA,EAASA,IAAW,EAChB,SAASqB,CAAM,GACjBA,EAASA,IAAW,EAChBc,IAAa,SAAWA,EAAW,UAEvCA,EAAWd,EACXA,EAAS,YAGX,OAAM,IAAI,MACR,yEACP,EAGG,MAAMoD,EAAY,KAAK,OAASzE,EAGhC,IAFIqB,IAAW,QAAaA,EAASoD,KAAWpD,EAASoD,GAEpDpC,EAAO,OAAS,IAAMhB,EAAS,GAAKrB,EAAS,IAAOA,EAAS,KAAK,OACrE,MAAM,IAAI,WAAW,wCAAwC,EAG1DmC,IAAUA,EAAW,QAE1B,IAAIa,EAAc,GAClB,OACE,OAAQb,EAAQ,CACd,IAAK,MACH,OAAOqC,EAAS,KAAMnC,EAAQrC,EAAQqB,CAAM,EAE9C,IAAK,OACL,IAAK,QACH,OAAOuD,EAAU,KAAMvC,EAAQrC,EAAQqB,CAAM,EAE/C,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOyD,EAAW,KAAMzC,EAAQrC,EAAQqB,CAAM,EAEhD,IAAK,SAEH,OAAO2D,EAAY,KAAM3C,EAAQrC,EAAQqB,CAAM,EAEjD,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO4D,EAAU,KAAM5C,EAAQrC,EAAQqB,CAAM,EAE/C,QACE,GAAI2B,EAAa,MAAM,IAAI,UAAU,qBAAuBb,CAAQ,EACpEA,GAAY,GAAKA,GAAU,YAAW,EACtCa,EAAc,EACvB,CAEC,EAEAnC,EAAO,UAAU,OAAS,UAAmB,CAC3C,MAAO,CACL,KAAM,SACN,KAAM,MAAM,UAAU,MAAM,KAAK,KAAK,MAAQ,KAAM,CAAC,CAC1D,CACC,EAEA,SAAS2C,EAAalC,EAAKj3B,EAAOC,EAAK,CACrC,OAAID,IAAU,GAAKC,IAAQg3B,EAAI,OACtBZ,EAAO,cAAcY,CAAG,EAExBZ,EAAO,cAAcY,EAAI,MAAMj3B,EAAOC,CAAG,CAAC,CAErD,CAEA,SAAS+4B,GAAW/B,EAAKj3B,EAAOC,EAAK,CACnCA,EAAM,KAAK,IAAIg3B,EAAI,OAAQh3B,CAAG,EAC9B,MAAMpU,EAAM,GAEZ,IAAI3C,EAAI8W,EACR,KAAO9W,EAAI+W,GAAK,CACd,MAAM66B,EAAY7D,EAAI/tC,CAAC,EACvB,IAAI6xC,GAAY,KACZC,GAAoBF,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA,EAEZ,GAAI5xC,EAAI8xC,IAAoB/6B,EAAK,CAC/B,IAAIg7B,GAAYC,GAAWC,GAAYC,GAEvC,OAAQJ,GAAgB,CACtB,OACMF,EAAY,MACdC,GAAYD,GAEd,MACF,IAAK,GACHG,GAAahE,EAAI/tC,EAAI,CAAC,GACjB+xC,GAAa,OAAU,MAC1BG,IAAiBN,EAAY,KAAS,EAAOG,GAAa,GACtDG,GAAgB,MAClBL,GAAYK,KAGhB,MACF,OACEH,GAAahE,EAAI/tC,EAAI,CAAC,EACtBgyC,GAAYjE,EAAI/tC,EAAI,CAAC,GAChB+xC,GAAa,OAAU,MAASC,GAAY,OAAU,MACzDE,IAAiBN,EAAY,KAAQ,IAAOG,GAAa,KAAS,EAAOC,GAAY,GACjFE,GAAgB,OAAUA,GAAgB,OAAUA,GAAgB,SACtEL,GAAYK,KAGhB,MACF,OACEH,GAAahE,EAAI/tC,EAAI,CAAC,EACtBgyC,GAAYjE,EAAI/tC,EAAI,CAAC,EACrBiyC,GAAalE,EAAI/tC,EAAI,CAAC,GACjB+xC,GAAa,OAAU,MAASC,GAAY,OAAU,MAASC,GAAa,OAAU,MACzFC,IAAiBN,EAAY,KAAQ,IAAQG,GAAa,KAAS,IAAOC,GAAY,KAAS,EAAOC,GAAa,GAC/GC,GAAgB,OAAUA,GAAgB,UAC5CL,GAAYK,IAG3B,CACK,CAEIL,KAAc,MAGhBA,GAAY,MACZC,GAAmB,GACVD,GAAY,QAErBA,IAAa,MACblvC,EAAI,KAAKkvC,KAAc,GAAK,KAAQ,KAAM,EAC1CA,GAAY,MAASA,GAAY,MAGnClvC,EAAI,KAAKkvC,EAAS,EAClB7xC,GAAK8xC,EACP,CAEA,OAAOK,GAAsBxvC,CAAG,CAClC,CAKA,MAAMyvC,GAAuB,KAE7B,SAASD,GAAuBE,EAAY,CAC1C,MAAMvU,EAAMuU,EAAW,OACvB,GAAIvU,GAAOsU,GACT,OAAO,OAAO,aAAa,MAAM,OAAQC,CAAU,EAIrD,IAAI1vC,EAAM,GACN3C,EAAI,EACR,KAAOA,EAAI89B,GACTn7B,GAAO,OAAO,aAAa,MACzB,OACA0vC,EAAW,MAAMryC,EAAGA,GAAKoyC,EAAoB,CACpD,EAEG,OAAOzvC,CACT,CAEA,SAASotC,EAAYhC,EAAKj3B,EAAOC,EAAK,CACpC,IAAI5T,EAAM,GACV4T,EAAM,KAAK,IAAIg3B,EAAI,OAAQh3B,CAAG,EAE9B,QAAS/W,EAAI8W,EAAO9W,EAAI+W,EAAK,EAAE/W,EAC7BmD,GAAO,OAAO,aAAa4qC,EAAI/tC,CAAC,EAAI,GAAI,EAE1C,OAAOmD,CACT,CAEA,SAAS6sC,GAAajC,EAAKj3B,EAAOC,EAAK,CACrC,IAAI5T,EAAM,GACV4T,EAAM,KAAK,IAAIg3B,EAAI,OAAQh3B,CAAG,EAE9B,QAAS/W,EAAI8W,EAAO9W,EAAI+W,EAAK,EAAE/W,EAC7BmD,GAAO,OAAO,aAAa4qC,EAAI/tC,CAAC,CAAC,EAEnC,OAAOmD,CACT,CAEA,SAAS0sC,GAAU9B,EAAKj3B,EAAOC,EAAK,CAClC,MAAM+mB,EAAMiQ,EAAI,QAEZ,CAACj3B,GAASA,EAAQ,KAAGA,EAAQ,IAC7B,CAACC,GAAOA,EAAM,GAAKA,EAAM+mB,KAAK/mB,EAAM+mB,GAExC,IAAIwU,EAAM,GACV,QAAStyC,EAAI8W,EAAO9W,EAAI+W,EAAK,EAAE/W,EAC7BsyC,GAAOC,GAAoBxE,EAAI/tC,CAAC,CAAC,EAEnC,OAAOsyC,CACT,CAEA,SAASpC,EAAcnC,EAAKj3B,EAAOC,EAAK,CACtC,MAAMy7B,EAAQzE,EAAI,MAAMj3B,EAAOC,CAAG,EAClC,IAAIpU,EAAM,GAEV,QAAS3C,EAAI,EAAGA,EAAIwyC,EAAM,OAAS,EAAGxyC,GAAK,EACzC2C,GAAO,OAAO,aAAa6vC,EAAMxyC,CAAC,EAAKwyC,EAAMxyC,EAAI,CAAC,EAAI,GAAI,EAE5D,OAAO2C,CACT,CAEA2qC,EAAO,UAAU,MAAQ,SAAgBx2B,EAAOC,EAAK,CACnD,MAAM+mB,EAAM,KAAK,OACjBhnB,EAAQ,CAAC,CAACA,EACVC,EAAMA,IAAQ,OAAY+mB,EAAM,CAAC,CAAC/mB,EAE9BD,EAAQ,GACVA,GAASgnB,EACLhnB,EAAQ,IAAGA,EAAQ,IACdA,EAAQgnB,IACjBhnB,EAAQgnB,GAGN/mB,EAAM,GACRA,GAAO+mB,EACH/mB,EAAM,IAAGA,EAAM,IACVA,EAAM+mB,IACf/mB,EAAM+mB,GAGJ/mB,EAAMD,IAAOC,EAAMD,GAEvB,MAAM27B,EAAS,KAAK,SAAS37B,EAAOC,CAAG,EAEvC,cAAO,eAAe07B,EAAQnF,EAAO,SAAS,EAEvCmF,CACT,EAKA,SAASC,GAAajG,EAAQkG,EAAK7E,EAAQ,CACzC,GAAKrB,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAI,WAAW,oBAAoB,EAC/E,GAAIA,EAASkG,EAAM7E,EAAQ,MAAM,IAAI,WAAW,uCAAuC,CACzF,CAEAR,EAAO,UAAU,WACjBA,EAAO,UAAU,WAAa,SAAqBb,EAAQxB,EAAY2H,EAAU,CAC/EnG,EAASA,IAAW,EACpBxB,EAAaA,IAAe,EACvB2H,GAAUF,GAAYjG,EAAQxB,EAAY,KAAK,MAAM,EAE1D,IAAI5rC,EAAM,KAAKotC,CAAM,EACjBoG,EAAM,EACN7yC,EAAI,EACR,KAAO,EAAEA,EAAIirC,IAAe4H,GAAO,MACjCxzC,GAAO,KAAKotC,EAASzsC,CAAC,EAAI6yC,EAG5B,OAAOxzC,CACT,EAEAiuC,EAAO,UAAU,WACjBA,EAAO,UAAU,WAAa,SAAqBb,EAAQxB,EAAY2H,EAAU,CAC/EnG,EAASA,IAAW,EACpBxB,EAAaA,IAAe,EACvB2H,GACHF,GAAYjG,EAAQxB,EAAY,KAAK,MAAM,EAG7C,IAAI5rC,EAAM,KAAKotC,EAAS,EAAExB,CAAU,EAChC4H,EAAM,EACV,KAAO5H,EAAa,IAAM4H,GAAO,MAC/BxzC,GAAO,KAAKotC,EAAS,EAAExB,CAAU,EAAI4H,EAGvC,OAAOxzC,CACT,EAEAiuC,EAAO,UAAU,UACjBA,EAAO,UAAU,UAAY,SAAoBb,EAAQmG,EAAU,CACjE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAC1C,KAAKA,CAAM,CACpB,EAEAa,EAAO,UAAU,aACjBA,EAAO,UAAU,aAAe,SAAuBb,EAAQmG,EAAU,CACvE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAC1C,KAAKA,CAAM,EAAK,KAAKA,EAAS,CAAC,GAAK,CAC7C,EAEAa,EAAO,UAAU,aACjBA,EAAO,UAAU,aAAe,SAAuBb,EAAQmG,EAAU,CACvE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EACzC,KAAKA,CAAM,GAAK,EAAK,KAAKA,EAAS,CAAC,CAC9C,EAEAa,EAAO,UAAU,aACjBA,EAAO,UAAU,aAAe,SAAuBb,EAAQmG,EAAU,CACvE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,GAExC,KAAKA,CAAM,EACf,KAAKA,EAAS,CAAC,GAAK,EACpB,KAAKA,EAAS,CAAC,GAAK,IACpB,KAAKA,EAAS,CAAC,EAAI,QAC1B,EAEAa,EAAO,UAAU,aACjBA,EAAO,UAAU,aAAe,SAAuBb,EAAQmG,EAAU,CACvE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAEzC,KAAKA,CAAM,EAAI,UACnB,KAAKA,EAAS,CAAC,GAAK,GACrB,KAAKA,EAAS,CAAC,GAAK,EACrB,KAAKA,EAAS,CAAC,EACnB,EAEAa,EAAO,UAAU,gBAAkBwF,GAAmB,SAA0BrG,EAAQ,CACtFA,EAASA,IAAW,EACpBsG,EAAetG,EAAQ,QAAQ,EAC/B,MAAMuG,EAAQ,KAAKvG,CAAM,EACnBlmC,EAAO,KAAKkmC,EAAS,CAAC,GACxBuG,IAAU,QAAazsC,IAAS,SAClC0sC,GAAYxG,EAAQ,KAAK,OAAS,CAAC,EAGrC,MAAMyG,EAAKF,EACT,KAAK,EAAEvG,CAAM,EAAI,GAAK,EACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,GACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,GAElB0G,EAAK,KAAK,EAAE1G,CAAM,EACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,EACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,GACtBlmC,EAAO,GAAK,GAEd,OAAO,OAAO2sC,CAAE,GAAK,OAAOC,CAAE,GAAK,OAAO,EAAE,EAC9C,CAAC,EAED7F,EAAO,UAAU,gBAAkBwF,GAAmB,SAA0BrG,EAAQ,CACtFA,EAASA,IAAW,EACpBsG,EAAetG,EAAQ,QAAQ,EAC/B,MAAMuG,EAAQ,KAAKvG,CAAM,EACnBlmC,EAAO,KAAKkmC,EAAS,CAAC,GACxBuG,IAAU,QAAazsC,IAAS,SAClC0sC,GAAYxG,EAAQ,KAAK,OAAS,CAAC,EAGrC,MAAM0G,EAAKH,EAAQ,GAAK,GACtB,KAAK,EAAEvG,CAAM,EAAI,GAAK,GACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,EACtB,KAAK,EAAEA,CAAM,EAETyG,EAAK,KAAK,EAAEzG,CAAM,EAAI,GAAK,GAC/B,KAAK,EAAEA,CAAM,EAAI,GAAK,GACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,EACtBlmC,EAEF,OAAQ,OAAO4sC,CAAE,GAAK,OAAO,EAAE,GAAK,OAAOD,CAAE,CAC/C,CAAC,EAED5F,EAAO,UAAU,UAAY,SAAoBb,EAAQxB,EAAY2H,EAAU,CAC7EnG,EAASA,IAAW,EACpBxB,EAAaA,IAAe,EACvB2H,GAAUF,GAAYjG,EAAQxB,EAAY,KAAK,MAAM,EAE1D,IAAI5rC,EAAM,KAAKotC,CAAM,EACjBoG,EAAM,EACN7yC,EAAI,EACR,KAAO,EAAEA,EAAIirC,IAAe4H,GAAO,MACjCxzC,GAAO,KAAKotC,EAASzsC,CAAC,EAAI6yC,EAE5B,OAAAA,GAAO,IAEHxzC,GAAOwzC,IAAKxzC,GAAO,KAAK,IAAI,EAAG,EAAI4rC,CAAU,GAE1C5rC,CACT,EAEAiuC,EAAO,UAAU,UAAY,SAAoBb,EAAQxB,EAAY2H,EAAU,CAC7EnG,EAASA,IAAW,EACpBxB,EAAaA,IAAe,EACvB2H,GAAUF,GAAYjG,EAAQxB,EAAY,KAAK,MAAM,EAE1D,IAAIjrC,EAAIirC,EACJ4H,EAAM,EACNxzC,EAAM,KAAKotC,EAAS,EAAEzsC,CAAC,EAC3B,KAAOA,EAAI,IAAM6yC,GAAO,MACtBxzC,GAAO,KAAKotC,EAAS,EAAEzsC,CAAC,EAAI6yC,EAE9B,OAAAA,GAAO,IAEHxzC,GAAOwzC,IAAKxzC,GAAO,KAAK,IAAI,EAAG,EAAI4rC,CAAU,GAE1C5rC,CACT,EAEAiuC,EAAO,UAAU,SAAW,SAAmBb,EAAQmG,EAAU,CAG/D,OAFAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAC3C,KAAKA,CAAM,EAAI,KACZ,IAAO,KAAKA,CAAM,EAAI,GAAK,GADA,KAAKA,CAAM,CAEjD,EAEAa,EAAO,UAAU,YAAc,SAAsBb,EAAQmG,EAAU,CACrEnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EACjD,MAAMptC,EAAM,KAAKotC,CAAM,EAAK,KAAKA,EAAS,CAAC,GAAK,EAChD,OAAQptC,EAAM,MAAUA,EAAM,WAAaA,CAC7C,EAEAiuC,EAAO,UAAU,YAAc,SAAsBb,EAAQmG,EAAU,CACrEnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EACjD,MAAMptC,EAAM,KAAKotC,EAAS,CAAC,EAAK,KAAKA,CAAM,GAAK,EAChD,OAAQptC,EAAM,MAAUA,EAAM,WAAaA,CAC7C,EAEAiuC,EAAO,UAAU,YAAc,SAAsBb,EAAQmG,EAAU,CACrE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAEzC,KAAKA,CAAM,EAChB,KAAKA,EAAS,CAAC,GAAK,EACpB,KAAKA,EAAS,CAAC,GAAK,GACpB,KAAKA,EAAS,CAAC,GAAK,EACzB,EAEAa,EAAO,UAAU,YAAc,SAAsBb,EAAQmG,EAAU,CACrE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAEzC,KAAKA,CAAM,GAAK,GACrB,KAAKA,EAAS,CAAC,GAAK,GACpB,KAAKA,EAAS,CAAC,GAAK,EACpB,KAAKA,EAAS,CAAC,CACpB,EAEAa,EAAO,UAAU,eAAiBwF,GAAmB,SAAyBrG,EAAQ,CACpFA,EAASA,IAAW,EACpBsG,EAAetG,EAAQ,QAAQ,EAC/B,MAAMuG,EAAQ,KAAKvG,CAAM,EACnBlmC,EAAO,KAAKkmC,EAAS,CAAC,GACxBuG,IAAU,QAAazsC,IAAS,SAClC0sC,GAAYxG,EAAQ,KAAK,OAAS,CAAC,EAGrC,MAAMptC,EAAM,KAAKotC,EAAS,CAAC,EACzB,KAAKA,EAAS,CAAC,EAAI,GAAK,EACxB,KAAKA,EAAS,CAAC,EAAI,GAAK,IACvBlmC,GAAQ,IAEX,OAAQ,OAAOlH,CAAG,GAAK,OAAO,EAAE,GAC9B,OAAO2zC,EACP,KAAK,EAAEvG,CAAM,EAAI,GAAK,EACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,GACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,EAAE,CAC5B,CAAC,EAEDa,EAAO,UAAU,eAAiBwF,GAAmB,SAAyBrG,EAAQ,CACpFA,EAASA,IAAW,EACpBsG,EAAetG,EAAQ,QAAQ,EAC/B,MAAMuG,EAAQ,KAAKvG,CAAM,EACnBlmC,EAAO,KAAKkmC,EAAS,CAAC,GACxBuG,IAAU,QAAazsC,IAAS,SAClC0sC,GAAYxG,EAAQ,KAAK,OAAS,CAAC,EAGrC,MAAMptC,GAAO2zC,GAAS,IACpB,KAAK,EAAEvG,CAAM,EAAI,GAAK,GACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,EACtB,KAAK,EAAEA,CAAM,EAEf,OAAQ,OAAOptC,CAAG,GAAK,OAAO,EAAE,GAC9B,OAAO,KAAK,EAAEotC,CAAM,EAAI,GAAK,GAC7B,KAAK,EAAEA,CAAM,EAAI,GAAK,GACtB,KAAK,EAAEA,CAAM,EAAI,GAAK,EACtBlmC,CAAI,CACR,CAAC,EAED+mC,EAAO,UAAU,YAAc,SAAsBb,EAAQmG,EAAU,CACrE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAC1CW,EAAU,KAAK,KAAMX,EAAQ,GAAM,GAAI,CAAC,CACjD,EAEAa,EAAO,UAAU,YAAc,SAAsBb,EAAQmG,EAAU,CACrE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAC1CW,EAAU,KAAK,KAAMX,EAAQ,GAAO,GAAI,CAAC,CAClD,EAEAa,EAAO,UAAU,aAAe,SAAuBb,EAAQmG,EAAU,CACvE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAC1CW,EAAU,KAAK,KAAMX,EAAQ,GAAM,GAAI,CAAC,CACjD,EAEAa,EAAO,UAAU,aAAe,SAAuBb,EAAQmG,EAAU,CACvE,OAAAnG,EAASA,IAAW,EACfmG,GAAUF,GAAYjG,EAAQ,EAAG,KAAK,MAAM,EAC1CW,EAAU,KAAK,KAAMX,EAAQ,GAAO,GAAI,CAAC,CAClD,EAEA,SAAS2G,GAAUrF,EAAKjtC,EAAO2rC,EAAQkG,EAAKvC,EAAKiD,EAAK,CACpD,GAAI,CAAC/F,EAAO,SAASS,CAAG,EAAG,MAAM,IAAI,UAAU,6CAA6C,EAC5F,GAAIjtC,EAAQsvC,GAAOtvC,EAAQuyC,EAAK,MAAM,IAAI,WAAW,mCAAmC,EACxF,GAAI5G,EAASkG,EAAM5E,EAAI,OAAQ,MAAM,IAAI,WAAW,oBAAoB,CAC1E,CAEAT,EAAO,UAAU,YACjBA,EAAO,UAAU,YAAc,SAAsBxsC,EAAO2rC,EAAQxB,EAAY2H,EAAU,CAIxF,GAHA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACpBxB,EAAaA,IAAe,EACxB,CAAC2H,EAAU,CACb,MAAMU,GAAW,KAAK,IAAI,EAAG,EAAIrI,CAAU,EAAI,EAC/CmI,GAAS,KAAMtyC,EAAO2rC,EAAQxB,EAAYqI,GAAU,CAAC,CACvD,CAEA,IAAIT,EAAM,EACN7yC,EAAI,EAER,IADA,KAAKysC,CAAM,EAAI3rC,EAAQ,IAChB,EAAEd,EAAIirC,IAAe4H,GAAO,MACjC,KAAKpG,EAASzsC,CAAC,EAAKc,EAAQ+xC,EAAO,IAGrC,OAAOpG,EAASxB,CAClB,EAEAqC,EAAO,UAAU,YACjBA,EAAO,UAAU,YAAc,SAAsBxsC,EAAO2rC,EAAQxB,EAAY2H,EAAU,CAIxF,GAHA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACpBxB,EAAaA,IAAe,EACxB,CAAC2H,EAAU,CACb,MAAMU,GAAW,KAAK,IAAI,EAAG,EAAIrI,CAAU,EAAI,EAC/CmI,GAAS,KAAMtyC,EAAO2rC,EAAQxB,EAAYqI,GAAU,CAAC,CACvD,CAEA,IAAItzC,EAAIirC,EAAa,EACjB4H,EAAM,EAEV,IADA,KAAKpG,EAASzsC,CAAC,EAAIc,EAAQ,IACpB,EAAEd,GAAK,IAAM6yC,GAAO,MACzB,KAAKpG,EAASzsC,CAAC,EAAKc,EAAQ+xC,EAAO,IAGrC,OAAOpG,EAASxB,CAClB,EAEAqC,EAAO,UAAU,WACjBA,EAAO,UAAU,WAAa,SAAqBxsC,EAAO2rC,EAAQmG,EAAU,CAC1E,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,IAAM,CAAC,EACvD,KAAKA,CAAM,EAAK3rC,EAAQ,IACjB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,cACjBA,EAAO,UAAU,cAAgB,SAAwBxsC,EAAO2rC,EAAQmG,EAAU,CAChF,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,MAAQ,CAAC,EACzD,KAAKA,CAAM,EAAK3rC,EAAQ,IACxB,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,EACvB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,cACjBA,EAAO,UAAU,cAAgB,SAAwBxsC,EAAO2rC,EAAQmG,EAAU,CAChF,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,MAAQ,CAAC,EACzD,KAAKA,CAAM,EAAK3rC,IAAU,EAC1B,KAAK2rC,EAAS,CAAC,EAAK3rC,EAAQ,IACrB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,cACjBA,EAAO,UAAU,cAAgB,SAAwBxsC,EAAO2rC,EAAQmG,EAAU,CAChF,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,WAAY,CAAC,EAC7D,KAAKA,EAAS,CAAC,EAAK3rC,IAAU,GAC9B,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,GAC9B,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,EAC9B,KAAK2rC,CAAM,EAAK3rC,EAAQ,IACjB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,cACjBA,EAAO,UAAU,cAAgB,SAAwBxsC,EAAO2rC,EAAQmG,EAAU,CAChF,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,WAAY,CAAC,EAC7D,KAAKA,CAAM,EAAK3rC,IAAU,GAC1B,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,GAC9B,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,EAC9B,KAAK2rC,EAAS,CAAC,EAAK3rC,EAAQ,IACrB2rC,EAAS,CAClB,EAEA,SAAS8G,GAAgBxF,EAAKjtC,EAAO2rC,EAAQ4G,EAAKjD,EAAK,CACrDoD,GAAW1yC,EAAOuyC,EAAKjD,EAAKrC,EAAKtB,EAAQ,CAAC,EAE1C,IAAIyG,EAAK,OAAOpyC,EAAQ,OAAO,UAAU,CAAC,EAC1CitC,EAAItB,GAAQ,EAAIyG,EAChBA,EAAKA,GAAM,EACXnF,EAAItB,GAAQ,EAAIyG,EAChBA,EAAKA,GAAM,EACXnF,EAAItB,GAAQ,EAAIyG,EAChBA,EAAKA,GAAM,EACXnF,EAAItB,GAAQ,EAAIyG,EAChB,IAAIC,GAAK,OAAOryC,GAAS,OAAO,EAAE,EAAI,OAAO,UAAU,CAAC,EACxD,OAAAitC,EAAItB,GAAQ,EAAI0G,GAChBA,GAAKA,IAAM,EACXpF,EAAItB,GAAQ,EAAI0G,GAChBA,GAAKA,IAAM,EACXpF,EAAItB,GAAQ,EAAI0G,GAChBA,GAAKA,IAAM,EACXpF,EAAItB,GAAQ,EAAI0G,GACT1G,CACT,CAEA,SAASgH,GAAgB1F,EAAKjtC,EAAO2rC,EAAQ4G,EAAKjD,EAAK,CACrDoD,GAAW1yC,EAAOuyC,EAAKjD,EAAKrC,EAAKtB,EAAQ,CAAC,EAE1C,IAAIyG,EAAK,OAAOpyC,EAAQ,OAAO,UAAU,CAAC,EAC1CitC,EAAItB,EAAS,CAAC,EAAIyG,EAClBA,EAAKA,GAAM,EACXnF,EAAItB,EAAS,CAAC,EAAIyG,EAClBA,EAAKA,GAAM,EACXnF,EAAItB,EAAS,CAAC,EAAIyG,EAClBA,EAAKA,GAAM,EACXnF,EAAItB,EAAS,CAAC,EAAIyG,EAClB,IAAIC,GAAK,OAAOryC,GAAS,OAAO,EAAE,EAAI,OAAO,UAAU,CAAC,EACxD,OAAAitC,EAAItB,EAAS,CAAC,EAAI0G,GAClBA,GAAKA,IAAM,EACXpF,EAAItB,EAAS,CAAC,EAAI0G,GAClBA,GAAKA,IAAM,EACXpF,EAAItB,EAAS,CAAC,EAAI0G,GAClBA,GAAKA,IAAM,EACXpF,EAAItB,CAAM,EAAI0G,GACP1G,EAAS,CAClB,CAEAa,EAAO,UAAU,iBAAmBwF,GAAmB,SAA2BhyC,EAAO2rC,EAAS,EAAG,CACnG,OAAO8G,GAAe,KAAMzyC,EAAO2rC,EAAQ,OAAO,CAAC,EAAG,OAAO,oBAAoB,CAAC,CACpF,CAAC,EAEDa,EAAO,UAAU,iBAAmBwF,GAAmB,SAA2BhyC,EAAO2rC,EAAS,EAAG,CACnG,OAAOgH,GAAe,KAAM3yC,EAAO2rC,EAAQ,OAAO,CAAC,EAAG,OAAO,oBAAoB,CAAC,CACpF,CAAC,EAEDa,EAAO,UAAU,WAAa,SAAqBxsC,EAAO2rC,EAAQxB,EAAY2H,EAAU,CAGtF,GAFA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EAChB,CAACmG,EAAU,CACb,MAAMc,GAAQ,KAAK,IAAI,EAAI,EAAIzI,EAAc,CAAC,EAE9CmI,GAAS,KAAMtyC,EAAO2rC,EAAQxB,EAAYyI,GAAQ,EAAG,CAACA,EAAK,CAC7D,CAEA,IAAI1zC,EAAI,EACJ6yC,EAAM,EACNjrC,GAAM,EAEV,IADA,KAAK6kC,CAAM,EAAI3rC,EAAQ,IAChB,EAAEd,EAAIirC,IAAe4H,GAAO,MAC7B/xC,EAAQ,GAAK8G,KAAQ,GAAK,KAAK6kC,EAASzsC,EAAI,CAAC,IAAM,IACrD4H,GAAM,GAER,KAAK6kC,EAASzsC,CAAC,GAAMc,EAAQ+xC,GAAQ,GAAKjrC,GAAM,IAGlD,OAAO6kC,EAASxB,CAClB,EAEAqC,EAAO,UAAU,WAAa,SAAqBxsC,EAAO2rC,EAAQxB,EAAY2H,EAAU,CAGtF,GAFA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EAChB,CAACmG,EAAU,CACb,MAAMc,GAAQ,KAAK,IAAI,EAAI,EAAIzI,EAAc,CAAC,EAE9CmI,GAAS,KAAMtyC,EAAO2rC,EAAQxB,EAAYyI,GAAQ,EAAG,CAACA,EAAK,CAC7D,CAEA,IAAI1zC,EAAIirC,EAAa,EACjB4H,EAAM,EACNjrC,GAAM,EAEV,IADA,KAAK6kC,EAASzsC,CAAC,EAAIc,EAAQ,IACpB,EAAEd,GAAK,IAAM6yC,GAAO,MACrB/xC,EAAQ,GAAK8G,KAAQ,GAAK,KAAK6kC,EAASzsC,EAAI,CAAC,IAAM,IACrD4H,GAAM,GAER,KAAK6kC,EAASzsC,CAAC,GAAMc,EAAQ+xC,GAAQ,GAAKjrC,GAAM,IAGlD,OAAO6kC,EAASxB,CAClB,EAEAqC,EAAO,UAAU,UAAY,SAAoBxsC,EAAO2rC,EAAQmG,EAAU,CACxE,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,IAAM,IAAK,EACvD3rC,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtC,KAAK2rC,CAAM,EAAK3rC,EAAQ,IACjB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,aAAe,SAAuBxsC,EAAO2rC,EAAQmG,EAAU,CAC9E,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,MAAQ,MAAO,EAC/D,KAAKA,CAAM,EAAK3rC,EAAQ,IACxB,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,EACvB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,aAAe,SAAuBxsC,EAAO2rC,EAAQmG,EAAU,CAC9E,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,MAAQ,MAAO,EAC/D,KAAKA,CAAM,EAAK3rC,IAAU,EAC1B,KAAK2rC,EAAS,CAAC,EAAK3rC,EAAQ,IACrB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,aAAe,SAAuBxsC,EAAO2rC,EAAQmG,EAAU,CAC9E,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,WAAY,WAAW,EACvE,KAAKA,CAAM,EAAK3rC,EAAQ,IACxB,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,EAC9B,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,GAC9B,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,GACvB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,aAAe,SAAuBxsC,EAAO2rC,EAAQmG,EAAU,CAC9E,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GAAUQ,GAAS,KAAMtyC,EAAO2rC,EAAQ,EAAG,WAAY,WAAW,EACnE3rC,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,KAAK2rC,CAAM,EAAK3rC,IAAU,GAC1B,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,GAC9B,KAAK2rC,EAAS,CAAC,EAAK3rC,IAAU,EAC9B,KAAK2rC,EAAS,CAAC,EAAK3rC,EAAQ,IACrB2rC,EAAS,CAClB,EAEAa,EAAO,UAAU,gBAAkBwF,GAAmB,SAA0BhyC,EAAO2rC,EAAS,EAAG,CACjG,OAAO8G,GAAe,KAAMzyC,EAAO2rC,EAAQ,CAAC,OAAO,oBAAoB,EAAG,OAAO,oBAAoB,CAAC,CACxG,CAAC,EAEDa,EAAO,UAAU,gBAAkBwF,GAAmB,SAA0BhyC,EAAO2rC,EAAS,EAAG,CACjG,OAAOgH,GAAe,KAAM3yC,EAAO2rC,EAAQ,CAAC,OAAO,oBAAoB,EAAG,OAAO,oBAAoB,CAAC,CACxG,CAAC,EAED,SAASkH,GAAc5F,EAAKjtC,EAAO2rC,EAAQkG,EAAKvC,EAAKiD,EAAK,CACxD,GAAI5G,EAASkG,EAAM5E,EAAI,OAAQ,MAAM,IAAI,WAAW,oBAAoB,EACxE,GAAItB,EAAS,EAAG,MAAM,IAAI,WAAW,oBAAoB,CAC3D,CAEA,SAASmH,GAAY7F,EAAKjtC,EAAO2rC,EAAQoH,EAAcjB,EAAU,CAC/D,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GACHe,GAAa5F,EAAKjtC,EAAO2rC,EAAQ,CAAC,EAEpCW,EAAU,MAAMW,EAAKjtC,EAAO2rC,EAAQoH,EAAc,GAAI,CAAC,EAChDpH,EAAS,CAClB,CAEAa,EAAO,UAAU,aAAe,SAAuBxsC,EAAO2rC,EAAQmG,EAAU,CAC9E,OAAOgB,GAAW,KAAM9yC,EAAO2rC,EAAQ,GAAMmG,CAAQ,CACvD,EAEAtF,EAAO,UAAU,aAAe,SAAuBxsC,EAAO2rC,EAAQmG,EAAU,CAC9E,OAAOgB,GAAW,KAAM9yC,EAAO2rC,EAAQ,GAAOmG,CAAQ,CACxD,EAEA,SAASkB,GAAa/F,EAAKjtC,EAAO2rC,EAAQoH,EAAcjB,EAAU,CAChE,OAAA9xC,EAAQ,CAACA,EACT2rC,EAASA,IAAW,EACfmG,GACHe,GAAa5F,EAAKjtC,EAAO2rC,EAAQ,CAAC,EAEpCW,EAAU,MAAMW,EAAKjtC,EAAO2rC,EAAQoH,EAAc,GAAI,CAAC,EAChDpH,EAAS,CAClB,CAEAa,EAAO,UAAU,cAAgB,SAAwBxsC,EAAO2rC,EAAQmG,EAAU,CAChF,OAAOkB,GAAY,KAAMhzC,EAAO2rC,EAAQ,GAAMmG,CAAQ,CACxD,EAEAtF,EAAO,UAAU,cAAgB,SAAwBxsC,EAAO2rC,EAAQmG,EAAU,CAChF,OAAOkB,GAAY,KAAMhzC,EAAO2rC,EAAQ,GAAOmG,CAAQ,CACzD,EAGAtF,EAAO,UAAU,KAAO,SAAevjC,EAAQiV,EAAalI,EAAOC,EAAK,CACtE,GAAI,CAACu2B,EAAO,SAASvjC,CAAM,EAAG,MAAM,IAAI,UAAU,6BAA6B,EAS/E,GARK+M,IAAOA,EAAQ,GAChB,CAACC,GAAOA,IAAQ,IAAGA,EAAM,KAAK,QAC9BiI,GAAejV,EAAO,SAAQiV,EAAcjV,EAAO,QAClDiV,IAAaA,EAAc,GAC5BjI,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,GACR/M,EAAO,SAAW,GAAK,KAAK,SAAW,EAAG,MAAO,GAGrD,GAAIiV,EAAc,EAChB,MAAM,IAAI,WAAW,2BAA2B,EAElD,GAAIlI,EAAQ,GAAKA,GAAS,KAAK,OAAQ,MAAM,IAAI,WAAW,oBAAoB,EAChF,GAAIC,EAAM,EAAG,MAAM,IAAI,WAAW,yBAAyB,EAGvDA,EAAM,KAAK,SAAQA,EAAM,KAAK,QAC9BhN,EAAO,OAASiV,EAAcjI,EAAMD,IACtCC,EAAMhN,EAAO,OAASiV,EAAclI,GAGtC,MAAMgnB,EAAM/mB,EAAMD,EAElB,OAAI,OAAS/M,GAAU,OAAO0jC,EAAiB,UAAU,YAAe,WAEtE,KAAK,WAAWzuB,EAAalI,EAAOC,CAAG,EAEvC02B,EAAiB,UAAU,IAAI,KAC7B1jC,EACA,KAAK,SAAS+M,EAAOC,CAAG,EACxBiI,CACP,EAGU8e,CACT,EAMAwP,EAAO,UAAU,KAAO,SAAejuC,EAAKyX,EAAOC,EAAK63B,EAAU,CAEhE,GAAI,OAAOvvC,GAAQ,SAAU,CAS3B,GARI,OAAOyX,GAAU,UACnB83B,EAAW93B,EACXA,EAAQ,EACRC,EAAM,KAAK,QACF,OAAOA,GAAQ,WACxB63B,EAAW73B,EACXA,EAAM,KAAK,QAET63B,IAAa,QAAa,OAAOA,GAAa,SAChD,MAAM,IAAI,UAAU,2BAA2B,EAEjD,GAAI,OAAOA,GAAa,UAAY,CAACtB,EAAO,WAAWsB,CAAQ,EAC7D,MAAM,IAAI,UAAU,qBAAuBA,CAAQ,EAErD,GAAIvvC,EAAI,SAAW,EAAG,CACpB,MAAMksC,EAAOlsC,EAAI,WAAW,CAAC,GACxBuvC,IAAa,QAAUrD,EAAO,KAC/BqD,IAAa,YAEfvvC,EAAMksC,EAEV,CACF,MAAW,OAAOlsC,GAAQ,SACxBA,EAAMA,EAAM,IACH,OAAOA,GAAQ,YACxBA,EAAM,OAAOA,CAAG,GAIlB,GAAIyX,EAAQ,GAAK,KAAK,OAASA,GAAS,KAAK,OAASC,EACpD,MAAM,IAAI,WAAW,oBAAoB,EAG3C,GAAIA,GAAOD,EACT,OAAO,KAGTA,EAAQA,IAAU,EAClBC,EAAMA,IAAQ,OAAY,KAAK,OAASA,IAAQ,EAE3C1X,IAAKA,EAAM,GAEhB,IAAIW,EACJ,GAAI,OAAOX,GAAQ,SACjB,IAAKW,EAAI8W,EAAO9W,EAAI+W,EAAK,EAAE/W,EACzB,KAAKA,CAAC,EAAIX,MAEP,CACL,MAAMmzC,EAAQlF,EAAO,SAASjuC,CAAG,EAC7BA,EACAiuC,EAAO,KAAKjuC,EAAKuvC,CAAQ,EACvB9Q,GAAM0U,EAAM,OAClB,GAAI1U,KAAQ,EACV,MAAM,IAAI,UAAU,cAAgBz+B,EAClC,mCAAmC,EAEvC,IAAKW,EAAI,EAAGA,EAAI+W,EAAMD,EAAO,EAAE9W,EAC7B,KAAKA,EAAI8W,CAAK,EAAI07B,EAAMxyC,EAAI89B,EAAG,CAEnC,CAEA,OAAO,IACT,EAMA,MAAMiW,EAAS,GACf,SAASC,EAAGC,EAAKC,EAAYC,EAAM,CACjCJ,EAAOE,CAAG,EAAI,cAAwBE,CAAK,CACzC,aAAe,CACb,MAAK,EAEL,OAAO,eAAe,KAAM,UAAW,CACrC,MAAOD,EAAW,MAAM,KAAM,SAAS,EACvC,SAAU,GACV,aAAc,EACvB,CAAQ,EAGD,KAAK,KAAO,GAAG,KAAK,IAAI,KAAKD,CAAG,IAGhC,KAAK,MAEL,OAAO,KAAK,IACd,CAEA,IAAI,MAAQ,CACV,OAAOA,CACT,CAEA,IAAI,KAAMnzC,EAAO,CACf,OAAO,eAAe,KAAM,OAAQ,CAClC,aAAc,GACd,WAAY,GACZ,MAAAA,EACA,SAAU,EACnB,CAAQ,CACH,CAEA,UAAY,CACV,MAAO,GAAG,KAAK,IAAI,KAAKmzC,CAAG,MAAM,KAAK,OAAO,EAC/C,CACL,CACC,CAEAD,EAAE,2BACA,SAAUzwC,EAAM,CACd,OAAIA,EACK,GAAGA,CAAI,+BAGT,gDACT,EAAG,UAAU,EACfywC,EAAE,uBACA,SAAUzwC,EAAMwrC,EAAQ,CACtB,MAAO,QAAQxrC,CAAI,oDAAoD,OAAOwrC,CAAM,EACtF,EAAG,SAAS,EACdiF,EAAE,mBACA,SAAU90C,EAAKk1C,EAAOC,EAAO,CAC3B,IAAIC,EAAM,iBAAiBp1C,CAAG,qBAC1Bq1C,EAAWF,EACf,OAAI,OAAO,UAAUA,CAAK,GAAK,KAAK,IAAIA,CAAK,EAAI,GAAK,GACpDE,EAAWC,EAAsB,OAAOH,CAAK,CAAC,EACrC,OAAOA,GAAU,WAC1BE,EAAW,OAAOF,CAAK,GACnBA,EAAQ,OAAO,CAAC,GAAK,OAAO,EAAE,GAAKA,EAAQ,EAAE,OAAO,CAAC,GAAK,OAAO,EAAE,MACrEE,EAAWC,EAAsBD,CAAQ,GAE3CA,GAAY,KAEdD,GAAO,eAAeF,CAAK,cAAcG,CAAQ,GAC1CD,CACT,EAAG,UAAU,EAEf,SAASE,EAAuBn1C,EAAK,CACnC,IAAIsD,EAAM,GACN3C,EAAIX,EAAI,OACZ,MAAMyX,EAAQzX,EAAI,CAAC,IAAM,IAAM,EAAI,EACnC,KAAOW,GAAK8W,EAAQ,EAAG9W,GAAK,EAC1B2C,EAAM,IAAItD,EAAI,MAAMW,EAAI,EAAGA,CAAC,CAAC,GAAG2C,CAAG,GAErC,MAAO,GAAGtD,EAAI,MAAM,EAAGW,CAAC,CAAC,GAAG2C,CAAG,EACjC,CAKA,SAAS8xC,GAAa1G,EAAKtB,EAAQxB,EAAY,CAC7C8H,EAAetG,EAAQ,QAAQ,GAC3BsB,EAAItB,CAAM,IAAM,QAAasB,EAAItB,EAASxB,CAAU,IAAM,SAC5DgI,GAAYxG,EAAQsB,EAAI,QAAU9C,EAAa,EAAE,CAErD,CAEA,SAASuI,GAAY1yC,EAAOuyC,EAAKjD,EAAKrC,EAAKtB,EAAQxB,EAAY,CAC7D,GAAInqC,EAAQsvC,GAAOtvC,EAAQuyC,EAAK,CAC9B,MAAM/wC,GAAI,OAAO+wC,GAAQ,SAAW,IAAM,GAC1C,IAAIe,GAEF,MAAIf,IAAQ,GAAKA,IAAQ,OAAO,CAAC,EAC/Be,GAAQ,OAAO9xC,EAAC,WAAWA,EAAC,QAAQ2oC,EAAa,GAAK,CAAC,GAAG3oC,EAAC,GAE3D8xC,GAAQ,SAAS9xC,EAAC,QAAQ2oC,EAAa,GAAK,EAAI,CAAC,GAAG3oC,EAAC,iBACzC2oC,EAAa,GAAK,EAAI,CAAC,GAAG3oC,EAAC,GAKrC,IAAIyxC,EAAO,iBAAiB,QAASK,GAAOtzC,CAAK,CACzD,CACA2zC,GAAY1G,EAAKtB,EAAQxB,CAAU,CACrC,CAEA,SAAS8H,EAAgBjyC,EAAOyC,EAAM,CACpC,GAAI,OAAOzC,GAAU,SACnB,MAAM,IAAIizC,EAAO,qBAAqBxwC,EAAM,SAAUzC,CAAK,CAE/D,CAEA,SAASmyC,GAAanyC,EAAOgtC,EAAQ9jC,EAAM,CACzC,MAAI,KAAK,MAAMlJ,CAAK,IAAMA,GACxBiyC,EAAejyC,EAAOkJ,CAAI,EACpB,IAAI+pC,EAAO,iBAAyB,SAAU,aAAcjzC,CAAK,GAGrEgtC,EAAS,EACL,IAAIiG,EAAO,yBAGb,IAAIA,EAAO,iBAAyB,SACR,eAA6BjG,CAAM,GACnChtC,CAAK,CACzC,CAKA,MAAM4zC,GAAoB,oBAE1B,SAASC,GAAaz1C,EAAK,CAMzB,GAJAA,EAAMA,EAAI,MAAM,GAAG,EAAE,CAAC,EAEtBA,EAAMA,EAAI,KAAI,EAAG,QAAQw1C,GAAmB,EAAE,EAE1Cx1C,EAAI,OAAS,EAAG,MAAO,GAE3B,KAAOA,EAAI,OAAS,IAAM,GACxBA,EAAMA,EAAM,IAEd,OAAOA,CACT,CAEA,SAASwwC,GAAaZ,EAAQ8F,EAAO,CACnCA,EAAQA,GAAS,IACjB,IAAI/C,EACJ,MAAM/D,EAASgB,EAAO,OACtB,IAAI+F,EAAgB,KACpB,MAAMrC,EAAQ,GAEd,QAASxyC,GAAI,EAAGA,GAAI8tC,EAAQ,EAAE9tC,GAAG,CAI/B,GAHA6xC,EAAY/C,EAAO,WAAW9uC,EAAC,EAG3B6xC,EAAY,OAAUA,EAAY,MAAQ,CAE5C,GAAI,CAACgD,EAAe,CAElB,GAAIhD,EAAY,MAAQ,EAEjB+C,GAAS,GAAK,IAAIpC,EAAM,KAAK,IAAM,IAAM,GAAI,EAClD,QACF,SAAWxyC,GAAI,IAAM8tC,EAAQ,EAEtB8G,GAAS,GAAK,IAAIpC,EAAM,KAAK,IAAM,IAAM,GAAI,EAClD,QACF,CAGAqC,EAAgBhD,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjB+C,GAAS,GAAK,IAAIpC,EAAM,KAAK,IAAM,IAAM,GAAI,EAClDqC,EAAgBhD,EAChB,QACF,CAGAA,GAAagD,EAAgB,OAAU,GAAKhD,EAAY,OAAU,KACpE,MAAWgD,IAEJD,GAAS,GAAK,IAAIpC,EAAM,KAAK,IAAM,IAAM,GAAI,EAMpD,GAHAqC,EAAgB,KAGZhD,EAAY,IAAM,CACpB,IAAK+C,GAAS,GAAK,EAAG,MACtBpC,EAAM,KAAKX,CAAS,CACtB,SAAWA,EAAY,KAAO,CAC5B,IAAK+C,GAAS,GAAK,EAAG,MACtBpC,EAAM,KACJX,GAAa,EAAM,IACnBA,EAAY,GAAO,GAC5B,CACK,SAAWA,EAAY,MAAS,CAC9B,IAAK+C,GAAS,GAAK,EAAG,MACtBpC,EAAM,KACJX,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IAC1BA,EAAY,GAAO,GAC5B,CACK,SAAWA,EAAY,QAAU,CAC/B,IAAK+C,GAAS,GAAK,EAAG,MACtBpC,EAAM,KACJX,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IAC1BA,EAAY,GAAO,GAC5B,CACK,KACE,OAAM,IAAI,MAAM,oBAAoB,CAExC,CAEA,OAAOW,CACT,CAEA,SAAShB,GAActyC,EAAK,CAC1B,MAAM41C,EAAY,GAClB,QAAS90C,EAAI,EAAGA,EAAId,EAAI,OAAQ,EAAEc,EAEhC80C,EAAU,KAAK51C,EAAI,WAAWc,CAAC,EAAI,GAAI,EAEzC,OAAO80C,CACT,CAEA,SAASnD,GAAgBzyC,EAAK01C,EAAO,CACnC,IAAIpzC,EAAG2xC,EAAID,EACX,MAAM4B,EAAY,GAClB,QAAS90C,GAAI,EAAGA,GAAId,EAAI,QACjB,GAAA01C,GAAS,GAAK,GADW,EAAE50C,GAGhCwB,EAAItC,EAAI,WAAWc,EAAC,EACpBmzC,EAAK3xC,GAAK,EACV0xC,EAAK1xC,EAAI,IACTszC,EAAU,KAAK5B,CAAE,EACjB4B,EAAU,KAAK3B,CAAE,EAGnB,OAAO2B,CACT,CAEA,SAASnF,GAAezwC,EAAK,CAC3B,OAAOiuC,EAAO,YAAYwH,GAAYz1C,CAAG,CAAC,CAC5C,CAEA,SAASoyC,GAAYyD,EAAKC,EAAKvI,EAAQqB,EAAQ,CAC7C,IAAI9tC,EACJ,IAAKA,EAAI,EAAGA,EAAI8tC,GACT,EAAA9tC,EAAIysC,GAAUuI,EAAI,QAAYh1C,GAAK+0C,EAAI,QADtB,EAAE/0C,EAExBg1C,EAAIh1C,EAAIysC,CAAM,EAAIsI,EAAI/0C,CAAC,EAEzB,OAAOA,CACT,CAKA,SAASouC,GAAYjsC,EAAK6H,EAAM,CAC9B,OAAO7H,aAAe6H,GACnB7H,GAAO,MAAQA,EAAI,aAAe,MAAQA,EAAI,YAAY,MAAQ,MACjEA,EAAI,YAAY,OAAS6H,EAAK,IACpC,CACA,SAASolC,EAAajtC,EAAK,CAEzB,OAAOA,IAAQA,CACjB,CAIA,MAAMowC,IAAuB,UAAY,CACvC,MAAM0C,EAAW,mBACXC,EAAQ,IAAI,MAAM,GAAG,EAC3B,QAASl1C,EAAI,EAAGA,EAAI,GAAI,EAAEA,EAAG,CAC3B,MAAMm1C,EAAMn1C,EAAI,GAChB,QAASyoB,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxBysB,EAAMC,EAAM1sB,CAAC,EAAIwsB,EAASj1C,CAAC,EAAIi1C,EAASxsB,CAAC,CAE7C,CACA,OAAOysB,CACT,GAAC,EAGD,SAASpC,GAAoB1xC,EAAI,CAC/B,OAAO,OAAO,OAAW,IAAcg0C,GAAyBh0C,CAClE,CAEA,SAASg0C,IAA0B,CACjC,MAAM,IAAI,MAAM,sBAAsB,CACxC,CACD,GAAGrK,EAAM,EAET,MAAMuC,GAASvC,GAAO,OChyEtB,IAAIsK,GAQJ,MAAMC,GAAkBC,GAAWF,GAAcE,EAc3CC,GAAsG,SAE5G,SAASx0C,GAETy0C,EAAG,CACC,OAAQA,GACJ,OAAOA,GAAM,UACb,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,mBACtC,OAAOA,EAAE,QAAW,UAC5B,CAMA,IAAIC,IACH,SAAUA,EAAc,CAQrBA,EAAa,OAAY,SAMzBA,EAAa,YAAiB,eAM9BA,EAAa,cAAmB,gBAEpC,GAAGA,KAAiBA,GAAe,GAAG,EAm5BtC,SAASC,IAAc,CACnB,MAAM9gC,EAAQrO,GAAY,EAAI,EAGxB8Z,EAAQzL,EAAM,IAAI,IAAM5D,GAAI,EAAE,CAAC,EACrC,IAAI2kC,EAAK,GAELC,EAAgB,GACpB,MAAMN,EAAQxkC,GAAQ,CAClB,QAAQwe,EAAK,CAGT+lB,GAAeC,CAAK,EACpBA,EAAM,GAAKhmB,EACXA,EAAI,QAAQimB,GAAaD,CAAK,EAC9BhmB,EAAI,OAAO,iBAAiB,OAASgmB,EAKrCM,EAAc,QAASpmB,GAAWmmB,EAAG,KAAKnmB,CAAM,CAAC,EACjDomB,EAAgB,EACpB,EACA,IAAIpmB,EAAQ,CACR,OAAK,KAAK,GAINmmB,EAAG,KAAKnmB,CAAM,EAHdomB,EAAc,KAAKpmB,CAAM,EAKtB,IACX,EACA,GAAAmmB,EAGA,GAAI,KACJ,GAAI/gC,EACJ,OAAQ,IACR,MAAAyL,CAAA,CACH,EAMD,OAAOi1B,CACX,CA4GA,MAAMO,GAAO,IAAM,CAAE,EACrB,SAASC,GAAgBC,EAAe1mC,EAAUtJ,EAAUiwC,EAAYH,GAAM,CAC1EE,EAAc,IAAI1mC,CAAQ,EAC1B,MAAM4mC,EAAqB,IAAM,CACfF,EAAc,OAAO1mC,CAAQ,GAClC2mC,EAAA,CACb,EACA,MAAI,CAACjwC,GAAYS,MACbC,GAAewvC,CAAkB,EAE9BA,CACX,CACA,SAASC,GAAqBH,KAAkBtqC,EAAM,CAClDsqC,EAAc,QAAS1mC,GAAa,CAChCA,EAAS,GAAG5D,CAAI,CACpB,CAAC,CACL,CAEA,MAAM0qC,GAA0Bh1C,GAAOA,EAAA,EAKjCi1C,GAAgB,SAKhBC,GAAc,SACpB,SAASC,GAAqBxsC,EAAQysC,EAAc,CAE5CzsC,aAAkB,KAAOysC,aAAwB,IACjDA,EAAa,QAAQ,CAAC11C,EAAO1B,IAAQ2K,EAAO,IAAI3K,EAAK0B,CAAK,CAAC,EAEtDiJ,aAAkB,KAAOysC,aAAwB,KAEtDA,EAAa,QAAQzsC,EAAO,IAAKA,CAAM,EAG3C,UAAW3K,KAAOo3C,EAAc,CAC5B,GAAI,CAACA,EAAa,eAAep3C,CAAG,EAChC,SACJ,MAAMq3C,EAAWD,EAAap3C,CAAG,EAC3Bs3C,EAAc3sC,EAAO3K,CAAG,EAC1B4B,GAAc01C,CAAW,GACzB11C,GAAcy1C,CAAQ,GACtB1sC,EAAO,eAAe3K,CAAG,GACzB,CAACgG,GAAMqxC,CAAQ,GACf,CAACvrC,GAAWurC,CAAQ,EAIpB1sC,EAAO3K,CAAG,EAAIm3C,GAAqBG,EAAaD,CAAQ,EAIxD1sC,EAAO3K,CAAG,EAAIq3C,CAEtB,CACA,OAAO1sC,CACX,CACA,MAAM4sC,GAE2B,SAiBjC,SAASC,GAAcz0C,EAAK,CACxB,MAAQ,CAACnB,GAAcmB,CAAG,GACtB,CAAC,OAAO,UAAU,eAAe,KAAKA,EAAKw0C,EAAiB,CACpE,CACA,KAAM,CAAE,OAAAE,IAAW,OACnB,SAAShvC,GAAW4tC,EAAG,CACnB,MAAO,CAAC,EAAErwC,GAAMqwC,CAAC,GAAKA,EAAE,OAC5B,CACA,SAASqB,GAAmBjgC,EAAIlD,EAAS4hC,EAAOwB,EAAK,CACjD,KAAM,CAAE,MAAAz2B,EAAO,QAAA02B,EAAS,QAAAC,CAAA,EAAYtjC,EAC9BujC,EAAe3B,EAAM,MAAM,MAAM1+B,CAAE,EACzC,IAAIsgC,EACJ,SAASzW,GAAQ,CACRwW,IAED3B,EAAM,MAAM,MAAM1+B,CAAE,EAAIyJ,EAAQA,EAAA,EAAU,IAG9C,MAAM82B,EAGAllC,GAAOqjC,EAAM,MAAM,MAAM1+B,CAAE,CAAC,EAClC,OAAOggC,GAAOO,EAAYJ,EAAS,OAAO,KAAKC,GAAW,EAAE,EAAE,OAAO,CAACI,EAAiB9zC,KAInF8zC,EAAgB9zC,CAAI,EAAIwN,GAAQtI,GAAS,IAAM,CAC3C6sC,GAAeC,CAAK,EAEpB,MAAM4B,EAAQ5B,EAAM,GAAG,IAAI1+B,CAAE,EAK7B,OAAOogC,EAAQ1zC,CAAI,EAAE,KAAK4zC,EAAOA,CAAK,CAC1C,CAAC,CAAC,EACKE,GACR,EAAE,CAAC,CACV,CACA,OAAAF,EAAQG,GAAiBzgC,EAAI6pB,EAAO/sB,EAAS4hC,EAAOwB,EAAK,EAAI,EACtDI,CACX,CACA,SAASG,GAAiBC,EAAK7W,EAAO/sB,EAAU,GAAI4hC,EAAOwB,EAAKS,EAAgB,CAC5E,IAAI3iC,EACJ,MAAM4iC,EAAmBZ,GAAO,CAAE,QAAS,EAAC,EAAKljC,CAAO,EAMlD+jC,EAAoB,CAAE,KAAM,IAsBlC,IAAIC,EACAC,EACA5B,MAAoB,IACpB6B,MAA0B,IAC1BC,EACJ,MAAMZ,EAAe3B,EAAM,MAAM,MAAMgC,CAAG,EAGtC,CAACC,GAAkB,CAACN,IAEpB3B,EAAM,MAAM,MAAMgC,CAAG,EAAI,IAK7B,IAAIQ,EACJ,SAASC,EAAOC,EAAuB,CACnC,IAAIC,EACJP,EAAcC,EAAkB,GAM5B,OAAOK,GAA0B,YACjCA,EAAsB1C,EAAM,MAAM,MAAMgC,CAAG,CAAC,EAC5CW,EAAuB,CACnB,KAAMxC,GAAa,cACnB,QAAS6B,EACT,OAAQO,CAAA,IAIZvB,GAAqBhB,EAAM,MAAM,MAAMgC,CAAG,EAAGU,CAAqB,EAClEC,EAAuB,CACnB,KAAMxC,GAAa,YACnB,QAASuC,EACT,QAASV,EACT,OAAQO,CAAA,GAGhB,MAAMK,EAAgBJ,EAAiB,SACvCrhC,GAAA,EAAW,KAAK,IAAM,CACdqhC,IAAmBI,IACnBR,EAAc,GAEtB,CAAC,EACDC,EAAkB,GAElBzB,GAAqBH,EAAekC,EAAsB3C,EAAM,MAAM,MAAMgC,CAAG,CAAC,CACpF,CACA,MAAMa,EAASZ,EACT,UAAkB,CAChB,KAAM,CAAE,MAAAl3B,GAAU3M,EACZ0kC,EAAW/3B,EAAQA,EAAA,EAAU,GAEnC,KAAK,OAAQg4B,GAAW,CAEpBzB,GAAOyB,EAAQD,CAAQ,CAC3B,CAAC,CACL,EAMUvC,GACd,SAASyC,GAAW,CAChB1jC,EAAM,OACNmhC,EAAc,QACd6B,EAAoB,QACpBtC,EAAM,GAAG,OAAOgC,CAAG,CACvB,CAMA,MAAMiB,EAAS,CAACp3C,EAAImC,EAAO,KAAO,CAC9B,GAAI8yC,MAAiBj1C,EACjB,OAAAA,EAAGk1C,EAAW,EAAI/yC,EACXnC,EAEX,MAAMq3C,EAAgB,UAAY,CAC9BnD,GAAeC,CAAK,EACpB,MAAM7pC,EAAO,MAAM,KAAK,SAAS,EAC3BgtC,MAAuB,IACvBC,MAAyB,IAC/B,SAASC,EAAMtpC,EAAU,CACrBopC,EAAiB,IAAIppC,CAAQ,CACjC,CACA,SAASupC,EAAQvpC,EAAU,CACvBqpC,EAAmB,IAAIrpC,CAAQ,CACnC,CAEA6mC,GAAqB0B,EAAqB,CACtC,KAAAnsC,EACA,KAAM+sC,EAAcnC,EAAW,EAC/B,MAAAa,EACA,MAAAyB,EACA,QAAAC,CAAA,CACH,EACD,IAAI11C,EACJ,GAAI,CACAA,EAAM/B,EAAG,MAAM,MAAQ,KAAK,MAAQm2C,EAAM,KAAOJ,EAAOzrC,CAAI,CAEhE,OACOxD,EAAO,CACV,MAAAiuC,GAAqBwC,EAAoBzwC,CAAK,EACxCA,CACV,CACA,OAAI/E,aAAe,QACRA,EACF,KAAMrC,IACPq1C,GAAqBuC,EAAkB53C,CAAK,EACrCA,EACV,EACI,MAAOoH,IACRiuC,GAAqBwC,EAAoBzwC,CAAK,EACvC,QAAQ,OAAOA,CAAK,EAC9B,GAGLiuC,GAAqBuC,EAAkBv1C,CAAG,EACnCA,EACX,EACA,OAAAs1C,EAAcpC,EAAa,EAAI,GAC/BoC,EAAcnC,EAAW,EAAI/yC,EAGtBk1C,CACX,EAOMK,EAAe,CACjB,GAAIvD,EAEJ,IAAAgC,EACA,UAAWxB,GAAgB,KAAK,KAAM8B,CAAmB,EACzD,OAAAG,EACA,OAAAI,EACA,WAAW9oC,EAAUqE,EAAU,GAAI,CAC/B,MAAMuiC,EAAqBH,GAAgBC,EAAe1mC,EAAUqE,EAAQ,SAAU,IAAMolC,GAAa,EACnGA,EAAclkC,EAAM,IAAI,IAAMpB,GAAM,IAAM8hC,EAAM,MAAM,MAAMgC,CAAG,EAAIj3B,GAAU,EAC3E3M,EAAQ,QAAU,OAASikC,EAAkBD,IAC7CroC,EAAS,CACL,QAASioC,EACT,KAAM7B,GAAa,OACnB,OAAQoC,CAAA,EACTx3B,CAAK,CAEhB,EAAGu2B,GAAO,GAAIa,EAAmB/jC,CAAO,CAAC,CAAC,EAC1C,OAAOuiC,CACX,EACA,SAAAqC,CAAA,EAEEpB,EAAQ/mC,GAQR0oC,CAAY,EAGlBvD,EAAM,GAAG,IAAIgC,EAAKJ,CAAK,EAGvB,MAAM6B,GAFkBzD,EAAM,IAAMA,EAAM,GAAG,gBAAmBa,IAE9B,IAAMb,EAAM,GAAG,IAAI,KAAO1gC,EAAQrO,GAAA,GAAe,IAAI,IAAMk6B,EAAM,CAAE,OAAA8X,EAAQ,CAAC,CAAC,CAAC,EAEhH,UAAWp5C,KAAO45C,EAAY,CAC1B,MAAM/jB,EAAO+jB,EAAW55C,CAAG,EAC3B,GAAKgG,GAAM6vB,CAAI,GAAK,CAACptB,GAAWotB,CAAI,GAAM/pB,GAAW+pB,CAAI,EAO3CuiB,IAEFN,GAAgBN,GAAc3hB,CAAI,IAC9B7vB,GAAM6vB,CAAI,EACVA,EAAK,MAAQiiB,EAAa93C,CAAG,EAK7Bm3C,GAAqBthB,EAAMiiB,EAAa93C,CAAG,CAAC,GAIpDm2C,EAAM,MAAM,MAAMgC,CAAG,EAAEn4C,CAAG,EAAI61B,WAQ7B,OAAOA,GAAS,WAAY,CACjC,MAAMgkB,EAAsET,EAAOvjB,EAAM71B,CAAG,EAI5F45C,EAAW55C,CAAG,EAAI65C,EAOlBxB,EAAiB,QAAQr4C,CAAG,EAAI61B,CACpC,CAgBJ,CAGA,OAAA4hB,GAAOM,EAAO6B,CAAU,EAGxBnC,GAAOvrC,GAAM6rC,CAAK,EAAG6B,CAAU,EAI/B,OAAO,eAAe7B,EAAO,SAAU,CACnC,IAAK,IAAyE5B,EAAM,MAAM,MAAMgC,CAAG,EACnG,IAAMj3B,GAAU,CAKZ03B,EAAQM,GAAW,CAEfzB,GAAOyB,EAAQh4B,CAAK,CACxB,CAAC,CACL,EACH,EA8FDi1B,EAAM,GAAG,QAAS2D,GAAa,CAavBrC,GAAOM,EAAOtiC,EAAM,IAAI,IAAMqkC,EAAS,CACnC,MAAA/B,EACA,IAAK5B,EAAM,GACX,MAAAA,EACA,QAASkC,CAAA,CACZ,CAAC,CAAC,CAEX,CAAC,EAWGP,GACAM,GACA7jC,EAAQ,SACRA,EAAQ,QAAQwjC,EAAM,OAAQD,CAAY,EAE9CS,EAAc,GACdC,EAAkB,GACXT,CACX,CAGA,SAASgC,GAETtiC,EAAI6pB,EAAO0Y,EAAc,CACrB,IAAIzlC,EACJ,MAAM0lC,EAAe,OAAO3Y,GAAU,WAEtC/sB,EAAU0lC,EAAeD,EAAe1Y,EACxC,SAAS4Y,EAAS/D,EAAOwB,EAAK,CAC1B,MAAMwC,EAAat/B,GAAA,EACnB,OAAAs7B,EAGuFA,IAC9EgE,EAAa1/B,GAAO27B,GAAa,IAAI,EAAI,MAC9CD,GACAD,GAAeC,CAAK,EAMxBA,EAAQF,GACHE,EAAM,GAAG,IAAI1+B,CAAE,IAEZwiC,EACA/B,GAAiBzgC,EAAI6pB,EAAO/sB,EAAS4hC,CAAK,EAG1CuB,GAAmBjgC,EAAIlD,EAAS4hC,CAAK,GAQ/BA,EAAM,GAAG,IAAI1+B,CAAE,CAyBjC,CACA,OAAAyiC,EAAS,IAAMziC,EACRyiC,CACX,CC/sDA,SAASE,GAAeC,EAAKC,EAAQ/lC,EAAS,CAC5C,MAAMgmC,EAAa,CAAE,WAAY,CAAmB,EACpDC,GAAiCD,CAAU,EAC3C,MAAMnqB,EAAUmqB,EAAW,aAAe,EAAI,EAAI,EAElD,OADoCE,GAAU,EAC7B,SAAWrqB,EAAU,OAASsqB,GAAiBL,CAAoB,CACtF,CACA,SAASK,GAAiBL,EAAKC,EAAQ/lC,EAAS,CAC9C,MAAMgmC,EAAa,CAAE,OAAQ,EAAsB,EAC7CI,EAAS,SAASra,EAAMmH,EAAM,CAClC,OAAAA,EAAOA,GAAQ,GACRnH,EAAK,QAAQ,cAAe,SAAS17B,EAAGC,EAAG,CAChD,MAAM+M,EAAI61B,EAAK5iC,CAAC,EAChB,OAAI01C,EAAW,OAC2C,mBAAjD,OAAO3oC,GAAM,UAAY,OAAOA,GAAM,SAA8BA,EAAE,SAAQ,EAAyBhN,CAAvB,EAEhF,OAAOgN,GAAM,UAAY,OAAOA,GAAM,SAAWA,EAAE,SAAQ,EAAKhN,CAE3E,CAAC,CACH,EACA,OAAIy1C,EAAI,OAAO,CAAC,IAAM,MACpBA,EAAM,IAAMA,GAEPM,EAAON,EAAe,EAAE,CACjC,CACA,SAASO,GAAYP,EAAKC,EAAQ/lC,EAAS,CACzC,MAAMgmC,EAAa,CAAE,UAAW,EAAuB,EACvDC,GAAiCD,CAAU,EAC3C,MAAMM,EAAoCC,GAAU,EACpD,MAAI,CAACP,EAAW,WAAa,OAAO,OAAW,KAAe,OAAO,IAAI,QAAQ,oBAAsB,GAC9FM,EAAgBH,GAAiBL,CAAoB,EAEvDQ,EAAgB,aAAeH,GAAiBL,CAAoB,CAC7E,CACA,SAASU,GAAU5qB,EAAK6qB,EAAM,CAC5B,OAAKA,EAAK,SAAS,GAAG,EAGfC,GAAiB9qB,EAAK,MAAO6qB,CAAI,EAF/BC,GAAiB9qB,EAAK,MAAO,GAAG6qB,CAAI,MAAM,CAGrD,CACA,SAASC,GAAiB9qB,EAAKvlB,EAAMowC,EAAM,CACzCE,GAAoB,EACpB,MAAMC,EAAS,OAAO,IAAI,UAAU,SAAShrB,CAAG,GAAK,GAC/CirB,EAAQJ,EAAK,MAAM,EAAE,IAAM,MACjC,IAAI9yC,EAAO4yC,GAAU,EACrB,OAAIM,GAAS,CAACD,GACZjzC,GAAQ,mBAAmBioB,CAAG,GAE5BjoB,GAAQ,IAAI,UAAU0C,CAAI,CAAC,GAEzBowC,IAAS,cACX9yC,GAAQ,IAAI8yC,CAAI,KAET,CAACI,GAAS,CAACD,GACpBjzC,EAAOmzC,GAAclrB,CAAG,EAEtBjoB,GAAQ,IAAI0C,CAAI,IAEd1C,EAAK,GAAG,EAAE,IAAM,MAClBA,GAAQ,KAEVA,GAAQ8yC,IAMN9yC,GAAQ,IAAIioB,CAAG,GAGfjoB,GAAQ,IAAI0C,CAAI,GAElB1C,GAAQ,IAAI8yC,CAAI,IAEX9yC,CACT,CACA,SAASuyC,IAAa,CACpB,OAAAS,GAAoB,EACb,OAAO,SAAS,SAAW,KAAO,OAAO,SAAS,KAAOJ,GAAU,CAC5E,CACA,SAASA,IAAa,CACpBI,GAAoB,EACpB,IAAII,EAAU,OAAO,YACrB,GAAI,OAAOA,EAAY,IAAa,CAClCA,EAAU,SAAS,SACnB,MAAMnL,EAAMmL,EAAQ,QAAQ,aAAa,EACzC,GAAInL,IAAQ,GACVmL,EAAUA,EAAQ,MAAM,EAAGnL,CAAG,MACzB,CACL,MAAM/qC,EAAQk2C,EAAQ,QAAQ,IAAK,CAAC,EACpCA,EAAUA,EAAQ,MAAM,EAAGl2C,EAAQ,EAAIA,EAAQ,MAAM,CACvD,CACF,CACA,OAAOk2C,CACT,CACA,SAASD,GAAclrB,EAAK,CAC1B,OAAA+qB,GAAoB,GACH,OAAO,kBAAoB,IAC5B/qB,CAAG,GAAK,EAC1B,CACA,SAAS+qB,IAAuB,CAC9B,GAAI,OAAO,OAAW,IACpB,MAAM,IAAI,MAAM,sDAAsD,CAE1E,CACA,SAASV,GAAiCjmC,EAAS,CACjD,GAAI,OAAO,OAAW,KAAe,CAACA,GAAS,QAC7C,MAAM,IAAI,MAAM,8EAA8E,CAElG,CClHA,SAASgnC,GAAkB3pC,EAAGhN,EAAG,EACvBA,GAAR,MAAaA,EAAIgN,EAAE,UAAYhN,EAAIgN,EAAE,QACtC,QAAShJ,EAAI,EAAG1F,EAAI,MAAM0B,CAAC,EAAGgE,EAAIhE,EAAGgE,IAAK1F,EAAE0F,CAAC,EAAIgJ,EAAEhJ,CAAC,EACpD,OAAO1F,CACR,CACA,SAASs4C,GAAgB5pC,EAAG,CAC3B,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOA,CAC9B,CACA,SAAS6pC,GAAsB7pC,EAAG/K,EAAG,CACpC,IAAI08B,EAAY3xB,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAY2xB,GAAR,KAAW,CACd,IAAI36B,EAAG1F,EAAGtC,EAAGi6B,EAAGj2B,EAAI,GAAI82C,EAAI,GAAIrF,EAAI,GACpC,GAAI,CACH,GAAIz1C,GAAK2iC,EAAIA,EAAE,KAAK3xB,CAAC,GAAG,KAAY/K,IAAN,EAGvB,KAAO,EAAE60C,GAAK9yC,EAAIhI,EAAE,KAAK2iC,CAAC,GAAG,QAAU3+B,EAAE,KAAKgE,EAAE,KAAK,EAAGhE,EAAE,SAAWiC,GAAI60C,EAAI,GAAG,CACxF,OAAS9pC,EAAG,CACXykC,EAAI,GAAInzC,EAAI0O,CACb,SACC,GAAI,CACH,GAAI,CAAC8pC,GAAanY,EAAE,QAAV,OAAqB1I,EAAI0I,EAAE,OAAM,EAAI,OAAO1I,CAAC,IAAMA,GAAI,MAClE,SACC,GAAIwb,EAAG,MAAMnzC,CACd,CACD,CACA,OAAO0B,CACR,CACD,CACA,SAAS+2C,IAAmB,CAC3B,MAAM,IAAI,UAAU;AAAA,mFAA2I,CAChK,CAEA,SAASC,GAAehqC,EAAGhJ,EAAG,CAC7B,OAAO4yC,GAAgB5pC,CAAC,GAAK6pC,GAAsB7pC,EAAGhJ,CAAC,GAAKizC,GAA4BjqC,EAAGhJ,CAAC,GAAK+yC,GAAgB,CAClH,CACA,SAASE,GAA4BjqC,EAAGhN,EAAG,CAC1C,GAAIgN,EAAG,CACN,GAAgB,OAAOA,GAAnB,SAAsB,OAAO2pC,GAAkB3pC,EAAGhN,CAAC,EACvD,IAAI2+B,EAAI,GAAG,SAAS,KAAK3xB,CAAC,EAAE,MAAM,EAAG,EAAE,EACvC,OAAoB2xB,IAAb,UAAkB3xB,EAAE,cAAgB2xB,EAAI3xB,EAAE,YAAY,MAAiB2xB,IAAV,OAAyBA,IAAV,MAAc,MAAM,KAAK3xB,CAAC,EAAoB2xB,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAIgY,GAAkB3pC,EAAGhN,CAAC,EAAI,MACtN,CACD,CAgDA,MAAMwB,GAAU,OAAO,QACjB01C,GAAiB,OAAO,eACxBC,GAAW,OAAO,SAClBC,GAAiB,OAAO,eACxBC,GAA2B,OAAO,yBACxC,IAAIC,GAAS,OAAO,OAChBC,GAAO,OAAO,KACdC,GAAS,OAAO,OAChBC,GAAO,OAAO,QAAY,KAAe,QACzC5vC,GAAQ4vC,GAAK,MACbC,GAAYD,GAAK,UAChBH,KAAQA,GAAS,SAAgB3vC,EAAG,CACxC,OAAOA,CACR,GACK4vC,KAAMA,GAAO,SAAc5vC,EAAG,CAClC,OAAOA,CACR,GACKE,KAAOA,GAAQ,SAAe8vC,EAAM/vC,EAAS,CACjD,QAASgwC,EAAO,UAAU,OAAQlwC,EAAO,IAAI,MAAMkwC,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAGr2C,EAAO,EAAGA,EAAOq2C,EAAMr2C,IAAQmG,EAAKnG,EAAO,CAAC,EAAI,UAAUA,CAAI,EAC3I,OAAOo2C,EAAK,MAAM/vC,EAASF,CAAI,CAChC,GACKgwC,KAAWA,GAAY,SAAmBG,EAAM,CACpD,QAASC,EAAQ,UAAU,OAAQpwC,EAAO,IAAI,MAAMowC,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IAASrwC,EAAKqwC,EAAQ,CAAC,EAAI,UAAUA,CAAK,EACpJ,OAAO,IAAIF,EAAK,GAAGnwC,CAAI,CACxB,GACA,MAAMswC,GAAeC,GAAQ,MAAM,UAAU,OAAO,EAE9CC,GAAmBD,GAAQ,MAAM,UAAU,WAAW,EACtDE,GAAWF,GAAQ,MAAM,UAAU,GAAG,EACtCG,GAAYH,GAAQ,MAAM,UAAU,IAAI,EACxCI,GAAaJ,GAAQ,MAAM,UAAU,KAAK,EAC1CK,GAAcL,GAAQ,MAAM,UAAU,MAAM,EAC5CM,GAAe,MAAM,QACrBC,GAAYC,GAAY,GAAG,EAC3BC,GAAST,GAAQ,IAAI,UAAU,GAAG,EAClCU,GAASV,GAAQ,IAAI,UAAU,GAAG,EAClCW,GAAoBX,GAAQ,OAAO,UAAU,WAAW,EACxDY,GAAiBZ,GAAQ,OAAO,UAAU,QAAQ,EAClDa,GAAcb,GAAQ,OAAO,UAAU,KAAK,EAC5Cc,GAAgBd,GAAQ,OAAO,UAAU,OAAO,EAChDe,GAAgBf,GAAQ,OAAO,UAAU,OAAO,EAChDgB,GAAahB,GAAQ,OAAO,UAAU,IAAI,EAC1CiB,GAAiBjB,GAAQ,OAAO,UAAU,QAAQ,EAClDkB,GAAkBlB,GAAQ,QAAQ,UAAU,QAAQ,EACpDmB,GAAiB,OAAO,OAAW,IAAc,KAAOnB,GAAQ,OAAO,UAAU,QAAQ,EACzFoB,GAAiB,OAAO,OAAW,IAAc,KAAOpB,GAAQ,OAAO,UAAU,QAAQ,EACzFqB,GAAuBrB,GAAQ,OAAO,UAAU,cAAc,EAC9Dp7C,GAAiBo7C,GAAQ,OAAO,UAAU,QAAQ,EAClDsB,GAAatB,GAAQ,OAAO,UAAU,IAAI,EAC1CuB,GAAkBf,GAAY,SAAS,EAO7C,SAASR,GAAQN,EAAM,CACtB,OAAO,SAAS/vC,EAAS,CACpBA,aAAmB,SAAQA,EAAQ,UAAY,GACnD,QAAS6xC,EAAQ,UAAU,OAAQ/xC,EAAO,IAAI,MAAM+xC,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IAAShyC,EAAKgyC,EAAQ,CAAC,EAAI,UAAUA,CAAK,EACpJ,OAAO7xC,GAAM8vC,EAAM/vC,EAASF,CAAI,CACjC,CACD,CAOA,SAAS+wC,GAAYZ,EAAM,CAC1B,OAAO,UAAW,CACjB,QAAS8B,EAAQ,UAAU,OAAQjyC,EAAO,IAAI,MAAMiyC,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IAASlyC,EAAKkyC,CAAK,EAAI,UAAUA,CAAK,EAC5H,OAAOlC,GAAUG,EAAMnwC,CAAI,CAC5B,CACD,CASA,SAASmyC,GAAS9rC,EAAKjH,EAAO,CAC7B,IAAIgzC,EAAoB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAIlB,GAEzF,GADI1B,IAAgBA,GAAenpC,EAAK,IAAI,EACxC,CAACwqC,GAAazxC,CAAK,EAAG,OAAOiH,EACjC,IAAI9L,EAAI6E,EAAM,OACd,KAAO7E,KAAK,CACX,IAAI83C,EAAUjzC,EAAM7E,CAAC,EACrB,GAAI,OAAO83C,GAAY,SAAU,CAChC,MAAMC,EAAYF,EAAkBC,CAAO,EACvCC,IAAcD,IACZ5C,GAASrwC,CAAK,IAAGA,EAAM7E,CAAC,EAAI+3C,GACjCD,EAAUC,EAEZ,CACAjsC,EAAIgsC,CAAO,EAAI,EAChB,CACA,OAAOhsC,CACR,CAOA,SAASksC,GAAWnzC,EAAO,CAC1B,QAAStG,EAAQ,EAAGA,EAAQsG,EAAM,OAAQtG,IAAc84C,GAAqBxyC,EAAOtG,CAAK,IAAGsG,EAAMtG,CAAK,EAAI,MAC3G,OAAOsG,CACR,CAOA,SAASozC,GAAMvzC,EAAQ,CACtB,MAAMwzC,EAAY3C,GAAO,IAAI,EAC7B,UAAW4C,KAAS54C,GAAQmF,CAAM,EAAG,CACpC,IAAI0zC,EAAQrD,GAAeoD,EAAO,CAAC,EACnC,MAAME,EAAWD,EAAM,CAAC,EAClBv9C,EAAQu9C,EAAM,CAAC,EACjBf,GAAqB3yC,EAAQ2zC,CAAQ,IACpC/B,GAAaz7C,CAAK,EAAGq9C,EAAUG,CAAQ,EAAIL,GAAWn9C,CAAK,EACtDA,GAAS,OAAOA,GAAU,UAAYA,EAAM,cAAgB,OAAQq9C,EAAUG,CAAQ,EAAIJ,GAAMp9C,CAAK,EACzGq9C,EAAUG,CAAQ,EAAIx9C,EAE7B,CACA,OAAOq9C,CACR,CAOA,SAASI,GAAez9C,EAAO,CAC9B,OAAQ,OAAOA,EAAK,CACnB,IAAK,SAAU,OAAOA,EACtB,IAAK,SAAU,OAAOo8C,GAAep8C,CAAK,EAC1C,IAAK,UAAW,OAAOq8C,GAAgBr8C,CAAK,EAC5C,IAAK,SAAU,OAAOs8C,GAAiBA,GAAet8C,CAAK,EAAI,IAC/D,IAAK,SAAU,OAAOu8C,GAAiBA,GAAev8C,CAAK,EAAI,WAC/D,IAAK,YAAa,OAAOD,GAAeC,CAAK,EAC7C,IAAK,WACL,IAAK,SAAU,CACd,GAAIA,IAAU,KAAM,OAAOD,GAAeC,CAAK,EAC/C,MAAM09C,EAAgB19C,EAChB29C,EAAgBC,GAAaF,EAAe,UAAU,EAC5D,GAAI,OAAOC,GAAkB,WAAY,CACxC,MAAME,EAAcF,EAAcD,CAAa,EAC/C,OAAO,OAAOG,GAAgB,SAAWA,EAAc99C,GAAe89C,CAAW,CAClF,CACA,OAAO99C,GAAeC,CAAK,CAC5B,CACA,QAAS,OAAOD,GAAeC,CAAK,CACtC,CACA,CAQA,SAAS49C,GAAa/zC,EAAQsqB,EAAM,CACnC,KAAOtqB,IAAW,MAAM,CACvB,MAAM8Z,EAAO42B,GAAyB1wC,EAAQsqB,CAAI,EAClD,GAAIxQ,EAAM,CACT,GAAIA,EAAK,IAAK,OAAOw3B,GAAQx3B,EAAK,GAAG,EACrC,GAAI,OAAOA,EAAK,OAAU,WAAY,OAAOw3B,GAAQx3B,EAAK,KAAK,CAChE,CACA9Z,EAASywC,GAAezwC,CAAM,CAC/B,CACA,SAASi0C,GAAgB,CACxB,OAAO,IACR,CACA,OAAOA,CACR,CAYA,SAASC,GAAel0C,EAAQsqB,EAAM,CACrC,KAAOtqB,IAAW,MAAM,CACvB,MAAM8Z,EAAO42B,GAAyB1wC,EAAQsqB,CAAI,EAClD,GAAIxQ,EAAM,OAAOA,EAAK,IAAMw3B,GAAQx3B,EAAK,GAAG,EAAI,KAChD9Z,EAASywC,GAAezwC,CAAM,CAC/B,CACA,OAAO,IACR,CACA,SAASm0C,GAAQh+C,EAAO,CACvB,GAAI,CACH,OAAAy8C,GAAWz8C,EAAO,EAAE,EACb,EACR,MAAkB,CACjB,MAAO,EACR,CACD,CACA,MAAMi+C,GAASzD,GAAO,CACrB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,KACD,CAAC,EACK0D,GAAQ1D,GAAO,CACpB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,OACD,CAAC,EACK2D,GAAa3D,GAAO,CACzB,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,cACD,CAAC,EACK4D,GAAgB5D,GAAO,CAC5B,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,KACD,CAAC,EACK6D,GAAW7D,GAAO,CACvB,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,aACD,CAAC,EACK8D,GAAmB9D,GAAO,CAC/B,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,MACD,CAAC,EACK5b,GAAO4b,GAAO,CAAC,OAAO,CAAC,EACvB+D,GAAO/D,GAAO,CACnB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,UACA,aACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,OACD,CAAC,EACKgE,GAAMhE,GAAO,CAClB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,oBACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,YACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,iBACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,mBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,gBACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,YACD,CAAC,EACKiE,GAASjE,GAAO,CACrB,SACA,cACA,QACA,WACA,QACA,cACA,cACA,gBACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,OACD,CAAC,EACKkE,GAAMlE,GAAO,CAClB,aACA,SACA,cACA,YACA,aACD,CAAC,EACKmE,GAAgBlE,GAAK,uBAAuB,EAC5CmE,GAAWnE,GAAK,uBAAuB,EACvCoE,GAAcpE,GAAK,aAAa,EAChCqE,GAAYrE,GAAK,8BAA8B,EAC/CsE,GAAYtE,GAAK,gBAAgB,EACjCuE,GAAiBvE,GAAK,kGAAkG,EACxHwE,GAAoBxE,GAAK,uBAAuB,EAChDyE,GAAkBzE,GAAK,6DAA6D,EACpF0E,GAAe1E,GAAK,SAAS,EAC7B2E,GAAiB3E,GAAK,0BAA0B,EAChD4E,GAAuB5E,GAAK,UAAU,EACtC6E,GAAuB7E,GAAK,SAAS,EACrC8E,GAAqB9E,GAAK,6BAA6B,EACvD+E,GAAmB/E,GAAK,MAAM,EAC9BgF,GAAY,CACjB,QAAS,EACT,UAAW,EACX,KAAM,EACN,aAAc,EACd,gBAAiB,EACjB,WAAY,EACZ,sBAAuB,EACvB,QAAS,EACT,SAAU,EACV,aAAc,GACd,iBAAkB,GAClB,SAAU,EACX,EACMC,GAAwBlF,GAAOuC,GAAS,GAAI,CACjD,QACA,SACA,MACA,SACA,UACA,WACA,YACA,UACD,CAAC,CAAC,EACI4C,GAAY,UAAqB,CACtC,OAAO,OAAO,OAAW,IAAc,KAAO,MAC/C,EASMC,GAA4B,SAAmCC,EAAcC,EAAmB,CACrG,GAAI,OAAOD,GAAiB,UAAY,OAAOA,EAAa,cAAiB,WAAY,OAAO,KAChG,IAAIE,EAAS,KACb,MAAMC,EAAY,wBACdF,GAAqBA,EAAkB,aAAaE,CAAS,IAAGD,EAASD,EAAkB,aAAaE,CAAS,GACrH,MAAMC,EAAa,aAAeF,EAAS,IAAMA,EAAS,IAC1D,GAAI,CACH,OAAOF,EAAa,aAAaI,EAAY,CAC5C,WAAW1B,EAAM,CAChB,OAAOA,CACR,EACA,gBAAgB2B,EAAW,CAC1B,OAAOA,CACR,CACH,CAAG,CACF,MAAY,CACX,eAAQ,KAAK,uBAAyBD,EAAa,wBAAwB,EACpE,IACR,CACD,EACME,GAAkB,UAA2B,CAClD,MAAO,CACN,wBAAyB,GACzB,sBAAuB,GACvB,uBAAwB,GACxB,yBAA0B,GAC1B,uBAAwB,GACxB,wBAAyB,GACzB,sBAAuB,GACvB,oBAAqB,GACrB,uBAAwB,EAC1B,CACA,EAaMC,GAAoB,SAA2BC,EAAK/hD,EAAKupB,EAAUhV,EAAS,CACjF,OAAO2pC,GAAqB6D,EAAK/hD,CAAG,GAAKm9C,GAAa4E,EAAI/hD,CAAG,CAAC,EAAIy+C,GAASlqC,EAAQ,KAAOuqC,GAAMvqC,EAAQ,IAAI,EAAI,GAAIwtC,EAAI/hD,CAAG,EAAGuU,EAAQ,SAAS,EAAIgV,CACpJ,EAYMy4B,GAAuB,SAA8BD,EAAK/hD,EAAKiiD,EAAc,CAClF,MAAMvgD,EAAQw8C,GAAqB6D,EAAK/hD,CAAG,EAAI+hD,EAAI/hD,CAAG,EAAI,OAC1D,OAAO0B,GAAS,OAAOA,GAAU,SAAWo9C,GAAMp9C,CAAK,EAAIugD,EAAY,CACxE,EACA,SAASC,IAAkB,CAC1B,IAAIC,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAId,GAAS,EACvF,MAAMe,EAAarvB,GAASmvB,GAAgBnvB,CAAI,EAGhD,GAFAqvB,EAAU,QAAU,SACpBA,EAAU,QAAU,GAChB,CAACD,GAAU,CAACA,EAAO,UAAYA,EAAO,SAAS,WAAahB,GAAU,UAAY,CAACgB,EAAO,QAC7F,OAAAC,EAAU,YAAc,GACjBA,EAER,IAAIC,EAAWF,EAAO,SACtB,MAAMG,EAAmBD,EACnBE,EAAgBD,EAAiB,cACvCH,EAAO,iBACP,MAAMK,EAAsBL,EAAO,oBAAqBM,EAAON,EAAO,KAAMO,EAAUP,EAAO,QAASQ,EAAaR,EAAO,WAC1HA,EAAO,eAAiB,SAAWA,EAAO,cAAgBA,EAAO,iBACjEA,EAAO,gBACP,MAAMS,EAAYT,EAAO,UAAWZ,EAAeY,EAAO,aACpDU,EAAmBH,EAAQ,UAC3BI,EAAYxD,GAAauD,EAAkB,WAAW,EACtDpiD,EAAS6+C,GAAauD,EAAkB,QAAQ,EAChDE,EAAsBzD,GAAauD,EAAkB,qBAAqB,EAC1EG,EAAiB1D,GAAauD,EAAkB,aAAa,EAC7DI,EAAgB3D,GAAauD,EAAkB,YAAY,EAC3DK,EAAgB5D,GAAauD,EAAkB,YAAY,EAC3DM,EAAgB7D,GAAauD,EAAkB,YAAY,EAC3DO,EAAgB9D,GAAauD,EAAkB,YAAY,EAC3DQ,EAAcZ,GAAQA,EAAK,UAAYnD,GAAamD,EAAK,UAAW,UAAU,EAAI,KAClFa,EAAcb,GAAQA,EAAK,UAAYnD,GAAamD,EAAK,UAAW,UAAU,EAAI,KAClFc,EAAmBd,GAAQA,EAAK,UAAYnD,GAAamD,EAAK,UAAW,eAAe,EAAI,KAC5Fe,EAAgB,SAAuBpjC,EAAM,CAClD,OAAOijC,EAAcA,EAAYjjC,CAAI,EAAIA,EAAK,QAC/C,EACMqjC,EAAgB,SAAuBrjC,EAAM,CAClD,OAAOkjC,EAAcA,EAAYljC,CAAI,EAAIA,EAAK,QAC/C,EACMsjC,EAAkBjE,GAAeoD,EAAkB,cAAc,EACjEc,EAAoB,SAA2BhF,EAAS,CAC7D,OAAO+E,EAAkBA,EAAgB/E,CAAO,EAAIA,EAAQ,YAC7D,EACA,GAAI,OAAO6D,GAAwB,WAAY,CAC9C,MAAMzf,EAAWsf,EAAS,cAAc,UAAU,EAC9Ctf,EAAS,SAAWA,EAAS,QAAQ,gBAAesf,EAAWtf,EAAS,QAAQ,cACrF,CACA,IAAI6gB,EACAC,EAAY,GACZC,EACAC,EAAoC,GACpCC,EAA0B,EAC9B,MAAMC,EAAiC,UAA0C,CAChF,GAAID,EAA0B,EAAG,MAAM5F,GAAgB,2RAA6R,CACrV,EACM8F,GAAqB,SAA4BjE,EAAM,CAC5DgE,EAA8B,EAC9BD,IACA,GAAI,CACH,OAAOJ,EAAmB,WAAW3D,CAAI,CAC1C,SACC+D,GACD,CACD,EACMG,GAA0B,SAAiCvC,EAAW,CAC3EqC,EAA8B,EAC9BD,IACA,GAAI,CACH,OAAOJ,EAAmB,gBAAgBhC,CAAS,CACpD,SACCoC,GACD,CACD,EACMI,GAAgC,UAAyC,CAC9E,OAAKL,IACJD,EAA4BxC,GAA0BC,EAAcgB,CAAa,EACjFwB,EAAoC,IAE9BD,CACR,EACMO,EAAYhC,EAAUiC,GAAiBD,EAAU,eAAgBE,GAAqBF,EAAU,mBAAoBG,EAAyBH,EAAU,uBAAwBI,GAAuBJ,EAAU,qBAChNK,GAAapC,EAAiB,WACpC,IAAIjgC,GAAQw/B,GAAe,EAI3BO,EAAU,YAAc,OAAOh8C,IAAY,YAAc,OAAO88C,GAAkB,YAAcoB,IAAkBA,GAAe,qBAAuB,OACxJ,MAAMK,GAAkBtE,GAAeuE,GAAatE,GAAUuE,GAAgBtE,GAAauE,GAActE,GAAWuE,EAActE,GAAWuE,EAAsBrE,GAAmBsE,EAAoBrE,GAAiBsE,GAAmBpE,GAC9O,IAAIqE,GAAmBzE,GAKnB0E,EAAe,KACnB,MAAMC,GAAuB5G,GAAS,GAAI,CACzC,GAAGkB,GACH,GAAGC,GACH,GAAGC,GACH,GAAGE,GACH,GAAGzf,EACL,CAAE,EACD,IAAIglB,GAAe,KACnB,MAAMC,GAAuB9G,GAAS,GAAI,CACzC,GAAGwB,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,EACL,CAAE,EACD,IAAIoF,GAA0B,OAAO,KAAKpJ,GAAO,KAAM,CACtD,aAAc,CACb,SAAU,GACV,aAAc,GACd,WAAY,GACZ,MAAO,IACV,EACE,mBAAoB,CACnB,SAAU,GACV,aAAc,GACd,WAAY,GACZ,MAAO,IACV,EACE,+BAAgC,CAC/B,SAAU,GACV,aAAc,GACd,WAAY,GACZ,MAAO,EACV,CACA,CAAE,CAAC,EACEqJ,GAAc,KACdC,GAAc,KAClB,MAAMC,GAAyB,OAAO,KAAKvJ,GAAO,KAAM,CACvD,SAAU,CACT,SAAU,GACV,aAAc,GACd,WAAY,GACZ,MAAO,IACV,EACE,eAAgB,CACf,SAAU,GACV,aAAc,GACd,WAAY,GACZ,MAAO,IACV,CACA,CAAE,CAAC,EACF,IAAIwJ,GAAkB,GAClBC,GAAkB,GAClBC,EAA0B,GAC1BC,GAA2B,GAC3BC,GAAqB,GACrBC,GAAe,GACfC,EAAiB,GACjBC,EAAa,GACbC,EAA0B,KAC1BC,EAA0B,KAC1BC,EAAa,GACbC,EAAa,GACbC,GAAsB,GACtBC,GAAsB,GACtBC,GAAe,GACfC,GAAuB,GAC3B,MAAMC,GAA8B,gBACpC,IAAIC,GAAe,GACfC,GAAW,GACXC,GAAmB,KACnBC,GAAe,GACfC,GAAkB,KACtB,MAAMC,GAA0BzI,GAAS,GAAI,CAC5C,iBACA,QACA,WACA,OACA,gBACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,QACA,UACA,WACA,WACA,YACA,SACA,kBACA,QACA,MACA,WACA,QACA,QACA,QACA,KACF,CAAE,EACD,IAAI0I,GAAgB,KACpB,MAAMC,GAAwB3I,GAAS,GAAI,CAC1C,QACA,QACA,MACA,SACA,QACA,OACF,CAAE,EACD,IAAI4I,GAAsB,KAC1B,MAAMC,GAA8B7I,GAAS,GAAI,CAChD,MACA,QACA,MACA,KACA,QACA,OACA,UACA,cACA,OACA,UACA,QACA,QACA,QACA,OACF,CAAE,EACK8I,GAAmB,qCACnBC,GAAgB,6BAChBC,GAAiB,+BACvB,IAAIC,GAAYD,GACZE,GAAiB,GACjBC,GAAqB,KACzB,MAAMC,GAA6BpJ,GAAS,GAAI,CAC/C8I,GACAC,GACAC,EACF,EAAIhK,EAAc,EACXqK,GAAyC5L,GAAO,CACrD,KACA,KACA,KACA,KACA,OACF,CAAE,EACD,IAAI6L,GAAiCtJ,GAAS,GAAIqJ,EAAsC,EACxF,MAAME,GAAkC9L,GAAO,CAAC,gBAAgB,CAAC,EACjE,IAAI+L,GAA0BxJ,GAAS,GAAIuJ,EAA+B,EAC1E,MAAME,GAA+BzJ,GAAS,GAAI,CACjD,QACA,QACA,OACA,IACA,QACF,CAAE,EACD,IAAI0J,GAAoB,KACxB,MAAMC,GAA+B,CAAC,wBAAyB,WAAW,EACpEC,GAA4B,YAClC,IAAI3J,GAAoB,KACpB4J,GAAS,KACb,MAAMC,GAAclG,EAAS,cAAc,MAAM,EAC3CmG,GAAoB,SAA2BC,EAAW,CAC/D,OAAOA,aAAqB,QAAUA,aAAqB,QAC5D,EAMMC,GAAe,UAAwB,CAC5C,IAAI3G,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,GAC3E,GAAIuG,IAAUA,KAAWvG,EAAK,QAC1B,CAACA,GAAO,OAAOA,GAAQ,YAAUA,EAAM,IAC3CA,EAAMjD,GAAMiD,CAAG,EACfoG,GAAoBC,GAA6B,QAAQrG,EAAI,iBAAiB,IAAM,GAAKsG,GAA4BtG,EAAI,kBACzHrD,GAAoByJ,KAAsB,wBAA0B1K,GAAiBD,GACrF4H,EAAetD,GAAkBC,EAAK,eAAgBsD,GAAsB,CAAE,UAAW3G,GAAmB,EAC5G4G,GAAexD,GAAkBC,EAAK,eAAgBwD,GAAsB,CAAE,UAAW7G,GAAmB,EAC5GkJ,GAAqB9F,GAAkBC,EAAK,qBAAsB8F,GAA4B,CAAE,UAAWpK,GAAgB,EAC3H4J,GAAsBvF,GAAkBC,EAAK,oBAAqBuF,GAA6B,CAC9F,UAAW5I,GACX,KAAM4I,EACT,CAAG,EACDH,GAAgBrF,GAAkBC,EAAK,oBAAqBqF,GAAuB,CAClF,UAAW1I,GACX,KAAM0I,EACT,CAAG,EACDH,GAAkBnF,GAAkBC,EAAK,kBAAmBmF,GAAyB,CAAE,UAAWxI,GAAmB,EACrH+G,GAAc3D,GAAkBC,EAAK,cAAejD,GAAM,EAAE,EAAG,CAAE,UAAWJ,GAAmB,EAC/FgH,GAAc5D,GAAkBC,EAAK,cAAejD,GAAM,EAAE,EAAG,CAAE,UAAWJ,GAAmB,EAC/FsI,GAAe9I,GAAqB6D,EAAK,cAAc,EAAIA,EAAI,cAAgB,OAAOA,EAAI,cAAiB,SAAWjD,GAAMiD,EAAI,YAAY,EAAIA,EAAI,aAAe,GACnK6D,GAAkB7D,EAAI,kBAAoB,GAC1C8D,GAAkB9D,EAAI,kBAAoB,GAC1C+D,EAA0B/D,EAAI,yBAA2B,GACzDgE,GAA2BhE,EAAI,2BAA6B,GAC5DiE,GAAqBjE,EAAI,oBAAsB,GAC/CkE,GAAelE,EAAI,eAAiB,GACpCmE,EAAiBnE,EAAI,gBAAkB,GACvCwE,EAAaxE,EAAI,YAAc,GAC/ByE,GAAsBzE,EAAI,qBAAuB,GACjD0E,GAAsB1E,EAAI,qBAAuB,GACjDuE,EAAavE,EAAI,YAAc,GAC/B2E,GAAe3E,EAAI,eAAiB,GACpC4E,GAAuB5E,EAAI,sBAAwB,GACnD8E,GAAe9E,EAAI,eAAiB,GACpC+E,GAAW/E,EAAI,UAAY,GAC3BoD,GAAmBzF,GAAQqC,EAAI,kBAAkB,EAAIA,EAAI,mBAAqBrB,GAC9EgH,GAAY,OAAO3F,EAAI,WAAc,SAAWA,EAAI,UAAY0F,GAChEM,GAAiC/F,GAAqBD,EAAK,iCAAkC,IAAMtD,GAAS,GAAIqJ,EAAsC,CAAC,EACvJG,GAA0BjG,GAAqBD,EAAK,0BAA2B,IAAMtD,GAAS,GAAIuJ,EAA+B,CAAC,EAClI,MAAMW,EAAwB3G,GAAqBD,EAAK,0BAA2B,IAAM3F,GAAO,IAAI,CAAC,EA6DrG,GA5DAoJ,GAA0BpJ,GAAO,IAAI,EACjC8B,GAAqByK,EAAuB,cAAc,GAAKH,GAAkBG,EAAsB,YAAY,IAAGnD,GAAwB,aAAemD,EAAsB,cACnLzK,GAAqByK,EAAuB,oBAAoB,GAAKH,GAAkBG,EAAsB,kBAAkB,IAAGnD,GAAwB,mBAAqBmD,EAAsB,oBACrMzK,GAAqByK,EAAuB,gCAAgC,GAAK,OAAOA,EAAsB,gCAAmC,YAAWnD,GAAwB,+BAAiCmD,EAAsB,gCAC/OxM,GAAKqJ,EAAuB,EACxBQ,KAAoBH,GAAkB,IACtCW,KAAqBD,EAAa,IAClCS,KACH5B,EAAe3G,GAAS,GAAIne,EAAI,EAChCglB,GAAelJ,GAAO,IAAI,EACtB4K,GAAa,OAAS,KACzBvI,GAAS2G,EAAczF,EAAM,EAC7BlB,GAAS6G,GAAcrF,EAAI,GAExB+G,GAAa,MAAQ,KACxBvI,GAAS2G,EAAcxF,EAAK,EAC5BnB,GAAS6G,GAAcpF,EAAG,EAC1BzB,GAAS6G,GAAclF,EAAG,GAEvB4G,GAAa,aAAe,KAC/BvI,GAAS2G,EAAcvF,EAAU,EACjCpB,GAAS6G,GAAcpF,EAAG,EAC1BzB,GAAS6G,GAAclF,EAAG,GAEvB4G,GAAa,SAAW,KAC3BvI,GAAS2G,EAAcrF,EAAQ,EAC/BtB,GAAS6G,GAAcnF,EAAM,EAC7B1B,GAAS6G,GAAclF,EAAG,IAG5BuF,GAAuB,SAAW,KAClCA,GAAuB,eAAiB,KACpCzH,GAAqB6D,EAAK,UAAU,IACnC,OAAOA,EAAI,UAAa,WAAY4D,GAAuB,SAAW5D,EAAI,SACrE5E,GAAa4E,EAAI,QAAQ,IAC7BqD,IAAiBC,KAAsBD,EAAetG,GAAMsG,CAAY,GAC5E3G,GAAS2G,EAAcrD,EAAI,SAAUrD,EAAiB,IAGpDR,GAAqB6D,EAAK,UAAU,IACnC,OAAOA,EAAI,UAAa,WAAY4D,GAAuB,eAAiB5D,EAAI,SAC3E5E,GAAa4E,EAAI,QAAQ,IAC7BuD,KAAiBC,KAAsBD,GAAexG,GAAMwG,EAAY,GAC5E7G,GAAS6G,GAAcvD,EAAI,SAAUrD,EAAiB,IAGpDR,GAAqB6D,EAAK,qBAAqB,GAAK5E,GAAa4E,EAAI,mBAAmB,IACvFkF,KAAoBC,KAAyBD,GAAkBnI,GAAMmI,EAAe,GACxFxI,GAASwI,GAAiBlF,EAAI,oBAAqBrD,EAAiB,GAEjEmI,KAAczB,EAAa,OAAO,EAAI,IACtCc,GAAgBzH,GAAS2G,EAAc,CAC1C,OACA,OACA,MACH,CAAG,EACGA,EAAa,QAChB3G,GAAS2G,EAAc,CAAC,OAAO,CAAC,EAChC,OAAOK,GAAY,OAEhB1D,EAAI,qBAAsB,CAC7B,GAAI,OAAOA,EAAI,qBAAqB,YAAe,WAAY,MAAM3D,GAAgB,6EAA+E,EACpK,GAAI,OAAO2D,EAAI,qBAAqB,iBAAoB,WAAY,MAAM3D,GAAgB,kFAAoF,EAC9K,MAAMwK,EAA6BhF,EACnCA,EAAqB7B,EAAI,qBACzB,GAAI,CACH8B,EAAYK,GAAmB,EAAE,CAClC,OAASp7C,GAAO,CACf,MAAA86C,EAAqBgF,EACf9/C,EACP,CACD,MAAWi5C,EAAI,uBAAyB,MACvC6B,EAAqB,OACrBC,EAAY,KAERD,IAAuB,SAAQA,EAAqBQ,GAA6B,GACjFR,GAAsB,OAAOC,GAAc,WAAUA,EAAYK,GAAmB,EAAE,IAEvFhI,IAAQA,GAAO6F,CAAG,EACtBuG,GAASvG,CACV,EACM8G,GAAepK,GAAS,GAAI,CACjC,GAAGmB,GACH,GAAGC,GACH,GAAGC,EACL,CAAE,EACKgJ,GAAkBrK,GAAS,GAAI,CAAC,GAAGsB,GAAU,GAAGC,EAAgB,CAAC,EASjE+I,GAAqB,SAA4BC,EAAS/0B,EAAQg1B,EAAe,CACtF,OAAIh1B,EAAO,eAAiBwzB,GAAuBuB,IAAY,MAC3D/0B,EAAO,eAAiBszB,GAAyByB,IAAY,QAAUC,IAAkB,kBAAoBlB,GAA+BkB,CAAa,GACtJ,EAAQJ,GAAaG,CAAO,CACpC,EASME,GAAwB,SAA+BF,EAAS/0B,EAAQg1B,EAAe,CAC5F,OAAIh1B,EAAO,eAAiBwzB,GAAuBuB,IAAY,OAC3D/0B,EAAO,eAAiBuzB,GAAsBwB,IAAY,QAAUf,GAAwBgB,CAAa,EACtG,EAAQH,GAAgBE,CAAO,CACvC,EASMG,GAAsB,SAA6BH,EAAS/0B,EAAQg1B,EAAe,CAExF,OADIh1B,EAAO,eAAiBuzB,IAAiB,CAACS,GAAwBgB,CAAa,GAC/Eh1B,EAAO,eAAiBszB,IAAoB,CAACQ,GAA+BkB,CAAa,EAAU,GAChG,CAACH,GAAgBE,CAAO,IAAMd,GAA6Bc,CAAO,GAAK,CAACH,GAAaG,CAAO,EACpG,EAOMI,GAAuB,SAA8BzK,EAAS,CACnE,MAAM0K,EAAmB1F,EAAkBhF,CAAO,EAC5CqK,EAAUxL,GAAkBiG,EAAc9E,CAAO,CAAC,EAClD3gC,GAAaklC,EAAcvE,CAAO,EACxC,IAAI1qB,GACAg1B,GAQJ,OAPIjrC,IAAcwlC,EAAcxlC,EAAU,IAAMmjC,GAAU,SACzDltB,GAAS,CAAE,aAAc0vB,EAAkB3lC,EAAU,CAAC,EACtDirC,GAAgBzL,GAAkBiG,EAAczlC,EAAU,CAAC,IAE3DiW,GAAS,CAAE,aAAcyzB,EAAS,EAClCuB,GAAgB,YAEZrB,GAAmByB,CAAgB,EACpCA,IAAqB7B,GAAsBuB,GAAmBC,EAAS/0B,GAAQg1B,EAAa,EAC5FI,IAAqB9B,GAAyB2B,GAAsBF,EAAS/0B,GAAQg1B,EAAa,EAClGI,IAAqB5B,GAAuB0B,GAAoBH,EAAS/0B,GAAQg1B,EAAa,EAC9F,GAAAd,KAAsB,yBAA2BP,GAAmByB,CAAgB,GAJtC,EAMnD,EAMMC,GAAe,SAAsBlpC,EAAM,CAChD48B,GAAUoF,EAAU,QAAS,CAAE,QAAShiC,CAAI,CAAE,EAC9C,GAAI,CACH8iC,EAAc9iC,CAAI,EAAE,YAAYA,CAAI,CACrC,MAAY,CAEX,GADA3f,EAAO2f,CAAI,EACP,CAAC8iC,EAAc9iC,CAAI,EAAG,MAAMg+B,GAAgB,8HAA8H,CAC/K,CACD,EAkBMmL,GAAsB,SAA6B5K,EAAS6K,EAAWrlD,EAAM,CAClF,GAAI,CACH4+C,EAAoBpE,EAAS6K,CAAS,CACvC,MAAY,CACX,GAAI,CACH7K,EAAQ,gBAAgBx6C,CAAI,CAC7B,MAAY,CAAC,CACd,CACD,EAQMslD,GAAkB,SAAyB12B,EAAM,CACtD22B,GAAmB32B,CAAI,EACvB,MAAM42B,EAAa1G,EAAclwB,CAAI,EACjC42B,GAAY/M,GAAaK,GAAW0M,CAAU,EAAI7pC,IAAU,CAC/D,GAAI,CACHrf,EAAOqf,EAAK,CACb,MAAY,CAAC,CACd,CAAC,EACD,MAAM8pC,EAAapG,EAAczwB,CAAI,IAAMouB,GAAU,QAAUiC,EAAcrwB,CAAI,EAAI,KACrF,GAAI62B,EAAY,QAAShpD,GAAIgpD,EAAW,OAAS,EAAGhpD,IAAK,EAAG,EAAEA,GAAG,CAChE,MAAM4oD,GAAYI,EAAWhpD,EAAC,EACxBuD,GAAOqlD,IAAaA,GAAU,KAChC,OAAOrlD,IAAS,UAAUolD,GAAoBx2B,EAAMy2B,GAAWrlD,EAAI,CACxE,CACD,EAUM0lD,GAAmB,SAA0B1lD,EAAMw6C,EAASmL,EAAM,CACvE,GAAI,CAACA,EAAM,GAAI,CACdA,EAAOnL,EAAQ,iBAAiBx6C,CAAI,CACrC,MAAY,CACX2lD,EAAO,IACR,CACA9M,GAAUoF,EAAU,QAAS,CAC5B,UAAW0H,GAAQ,KACnB,KAAMnL,CACT,CAAG,EACD,GAAI,CACCmL,EAAM/G,EAAoBpE,EAASmL,CAAI,EACtCnL,EAAQ,gBAAgBx6C,CAAI,CAClC,MAAY,CACX,GAAI,CACHw6C,EAAQ,gBAAgBx6C,CAAI,CAC7B,MAAY,CAAC,CACd,CACA,GAAIA,IAAS,KACZ,GAAIoiD,GAAcC,GAAqB,GAAI,CAC1C8C,GAAa3K,CAAO,CACrB,MAAY,CAAC,KACR,IAAI,CACRA,EAAQ,aAAax6C,EAAM,EAAE,CAC9B,MAAY,CAAC,CAEf,EAOM4lD,GAA6B,SAAoCpL,EAAS,CAC/E,MAAMiL,EAAaxG,EAAczE,CAAO,EACxC,GAAKiL,EACL,QAAShpD,EAAIgpD,EAAW,OAAS,EAAGhpD,GAAK,EAAG,EAAEA,EAAG,CAChD,MAAM4oD,GAAYI,EAAWhpD,CAAC,EACxBuD,GAAOqlD,IAAaA,GAAU,KAChC,OAAOrlD,IAAS,UAAYmhD,GAAa5G,GAAkBv6C,EAAI,CAAC,GACpEolD,GAAoB5K,EAAS6K,GAAWrlD,EAAI,CAC7C,CACD,EAWM6lD,GAAY,SAAmBj3B,EAAMk3B,EAAO,CACjD,IAAIC,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,GAClF,MAAMC,GAAQ,CAACp3B,CAAI,EACnB,KAAOo3B,GAAM,OAAS,GAAG,CACxB,MAAM/pC,GAAO+pC,GAAM,IAAG,EACtB,GAAIF,EAAM7pC,EAAI,IAAM,GAAO,SAC3B,GAAI8pC,GAAc1G,EAAcpjC,EAAI,IAAM+gC,GAAU,QAAS,CAC5D,MAAMiJ,GAAajH,EAAc/iC,EAAI,EACjCiqC,GAAoBD,EAAU,GAAGD,GAAM,KAAKC,EAAU,CAC3D,CACA,MAAMT,GAAa1G,EAAc7iC,EAAI,EACrC,GAAIupC,GAAY,QAAS/oD,GAAI+oD,GAAW,OAAS,EAAG/oD,IAAK,EAAG,EAAEA,GAAGupD,GAAM,KAAKR,GAAW/oD,EAAC,CAAC,CAC1F,CACD,EAOM8oD,GAAqB,SAA4B32B,EAAM,CAC5Di3B,GAAUj3B,EAAO3S,GAAS,CACrBojC,EAAcpjC,CAAI,IAAM+gC,GAAU,SAAS4I,GAA2B3pC,CAAI,CAC/E,CAAC,CACF,EAQMkqC,GAAoB,SAA2Bv3B,EAAM,CAC1D,MAAMw3B,EAAQ,GACd,OAAAP,GAAUj3B,EAAO3S,GAAS,CACzBmqC,EAAM,KAAKnqC,CAAI,CAChB,EAAG,EAAI,EACAmqC,CACR,EASMC,GAA6B,SAAoCz3B,EAAM+P,EAAQ,CACpF,MAAM2nB,EAAYrN,GAAS,EAC3BR,GAAa0N,GAAkBv3B,CAAI,EAAI3S,IAAS,CAC3CojC,EAAcpjC,EAAI,IAAM+gC,GAAU,SAAS7D,GAAOmN,EAAWrqC,EAAI,CACtE,CAAC,EACDw8B,GAAa9Z,EAAS1iB,IAAS,CAC1BojC,EAAcpjC,EAAI,IAAM+gC,GAAU,SAAW,CAAC5D,GAAOkN,EAAWrqC,EAAI,GAAG2pC,GAA2B3pC,EAAI,CAC3G,CAAC,CACF,EASMsqC,GAAuB,SAA8B33B,EAAM+P,EAAQ,CACxE,IAAI6nB,EAAc,GAClB,OAAA/N,GAAawF,EAAU,QAAUwI,IAAU,CACtCA,GAAM,UACTD,EAAcA,GAAeC,GAAM,UAAY73B,EAC/C22B,GAAmBkB,GAAM,OAAO,EAElC,CAAC,EACDJ,GAA2Bz3B,EAAM+P,CAAM,EAChC6nB,CACR,EACME,GAAuB,EAUvBC,GAA0B,SAAiC/3B,EAAM+P,EAAQ,CAC9E,MAAMioB,EAAUhE,GAChB,IAAIiE,GAAW,KACf,MAAMC,GAAc,KACdD,KACJA,GAAW5N,GAAS,EACpBR,GAAa9Z,EAASooB,IAAe,CACpC5N,GAAO0N,GAAUE,EAAU,CAC5B,CAAC,GAEKF,IAER,QAASG,GAAQ,GAAIA,KAAS,CAC7B,MAAMC,GAAOd,GAAkBv3B,CAAI,EAC7Bs4B,GAAa,CAACt4B,CAAI,EACxB,IAAIu4B,GAAU,GAKd,GAJA1O,GAAawO,GAAOhrC,IAAS,CACxBojC,EAAcpjC,EAAI,IAAM+gC,GAAU,iBAAkBnE,GAAUqO,GAAYjrC,EAAI,EACzE,CAACkrC,IAAW,CAAC/N,GAAOwN,EAAS3qC,EAAI,IAAGkrC,GAAU/N,GAAO0N,GAAW,EAAI7qC,EAAI,EAClF,CAAC,EACG,CAACkrC,GAAS,OACd,GAAIH,IAASN,GAAsB,MAAMzM,GAAgB,4EAA4E,EACrIxB,GAAayO,GAAY,CAACpuC,GAAW7X,KAAU,CAC9CmmD,GAAqBtuC,GAAW7X,GAAQ,EAAG2tB,EAAMk4B,GAAW,CAAE,CAC/D,CAAC,CACF,CACD,EASMM,GAAuB,SAA8BtuC,EAAWuuC,EAAUz4B,EAAMi4B,GAAU,CAC/F,MAAM3+C,GAAWo/C,GAAoBxuC,CAAS,EAC9C,IAAImD,GACJ,KAAOA,GAAO/T,GAAS,YAClB,CAACkxC,GAAOyN,GAAU5qC,EAAI,GAAKm9B,GAAOwJ,GAAkB3mC,EAAI,IACxDorC,GAAUE,GAAcrpC,GAAM,uBAAwBjC,GAAM,IAAI,EACpEurC,GAAkBvrC,GAAM2S,CAAI,EAC5B64B,GAAoBxrC,GAAM2S,CAAI,EAC1Bs3B,GAAoBjqC,GAAK,OAAO,GAAGyrC,GAAoBzrC,GAAK,OAAO,EAEzE,EAMM0rC,GAAe,SAAsB1rC,EAAM,CAC5C2mC,IAAkBzJ,GAAOyJ,GAAkB3mC,CAAI,CACpD,EAUM2rC,GAA2B,SAAkCC,EAAQC,EAAO,CACjF,OAAKhG,GACD+F,IAAW,WAAmB,GAC3BA,IAAW,OAASC,IAAU,SAAWA,IAAU,SAFhC,EAG3B,EAYMC,GAA0B,SAAiCn5B,EAAM,CACjEkzB,IACL+D,GAAUj3B,EAAO3S,GAAS,CACzB,MAAM+rC,EAAW3I,EAAcpjC,CAAI,EACnC,GAAI+rC,IAAahL,GAAU,uBAAyBgL,IAAahL,GAAU,SAAWhD,GAAW6C,GAAsB5gC,EAAK,IAAI,EAAG,CAClI,GAAI,CACH3f,EAAO2f,CAAI,CACZ,MAAY,CAAC,CACb,MAAO,EACR,CACA,GAAI+rC,IAAahL,GAAU,QAAS,CACnC,MAAMxC,GAAUv+B,EACV6rC,GAAQvN,GAAkB+E,EAAcrjC,CAAI,CAAC,EACnD,GAAI,CACCu+B,GAAQ,cAAgBA,GAAQ,aAAa,UAAU,GAAGA,GAAQ,gBAAgB,UAAU,EAC5FA,GAAQ,cAAgBA,GAAQ,aAAa,KAAK,GAAKoN,GAAyB,MAAOE,EAAK,GAAGtN,GAAQ,gBAAgB,KAAK,CACjI,MAAY,CAAC,CACd,CACA,MAAO,EACR,CAAC,CACF,EAOMyN,GAAgB,SAAuBC,EAAO,CACnD,IAAI9pB,EAAM,KACN+pB,EAAoB,KACxB,GAAIhG,EAAY+F,EAAQ,oBAAsBA,MACzC,CACJ,MAAME,GAAU7O,GAAY2O,EAAO,aAAa,EAChDC,EAAoBC,IAAWA,GAAQ,CAAC,CACzC,CACIpE,KAAsB,yBAA2BT,KAAcD,KAAgB4E,EAAQ,iEAAqEA,EAAQ,kBACxK,MAAMG,GAAe5I,EAAqBM,GAAmBmI,CAAK,EAAIA,EACtE,GAAI3E,KAAcD,GAAgB,GAAI,CACrCllB,EAAM,IAAIqgB,EAAS,EAAG,gBAAgB4J,GAAcrE,EAAiB,CACtE,MAAY,CAAC,CACb,GAAI,CAAC5lB,GAAO,CAACA,EAAI,gBAAiB,CACjCA,EAAM+hB,GAAe,eAAeoD,GAAW,WAAY,IAAI,EAC/D,GAAI,CACHnlB,EAAI,gBAAgB,UAAYolB,GAAiB9D,EAAY2I,EAC9D,MAAY,CAAC,CACd,CACA,MAAMC,GAAOlqB,EAAI,MAAQA,EAAI,gBAE7B,OADI8pB,GAASC,GAAmBG,GAAK,aAAapK,EAAS,eAAeiK,CAAiB,EAAGG,GAAK,WAAW,CAAC,GAAK,IAAI,EACpH/E,KAAcD,GAAuBhD,GAAqB,KAAKliB,EAAK2jB,EAAiB,OAAS,MAAM,EAAE,CAAC,EACpGA,EAAiB3jB,EAAI,gBAAkBkqB,EAC/C,EAOMhB,GAAsB,SAA6B14B,EAAM,CAC9D,MAAMwP,EAAMghB,EAAmBA,EAAiBxwB,CAAI,EAAIA,EAAK,cAC7D,OAAOwxB,GAAmB,KAAKhiB,GAAOxP,EAAMA,EAAM4vB,EAAW,aAAeA,EAAW,aAAeA,EAAW,UAAYA,EAAW,4BAA8BA,EAAW,mBAAoB,IAAI,CAC1M,EASM+J,GAA4B,SAAmChrD,EAAO,CAC3E,OAAAA,EAAQi8C,GAAcj8C,EAAOijD,GAAiB,GAAG,EACjDjjD,EAAQi8C,GAAcj8C,EAAOkjD,GAAY,GAAG,EAC5CljD,EAAQi8C,GAAcj8C,EAAOmjD,GAAe,GAAG,EACxCnjD,CACR,EAoBMirD,GAA6B,SAAmCvsC,EAAM,CAC3E,IAAIwsC,EACJC,GAAuBzsC,CAAI,EAC3B,MAAM0sC,GAAaF,EAAwBxsC,EAAK,oBAAsB,MAAQwsC,IAA0B,OAAS,OAASA,EAAsB,KAAKxsC,EAAM,UAAU,EACjK0sC,GAAWlQ,GAAakQ,EAAYC,IAAS,CAC5C1C,GAAoB0C,GAAK,OAAO,GAAGJ,GAA2BI,GAAK,OAAO,CAC/E,CAAC,CACF,EAeMF,GAAyB,SAAgCzsC,EAAM,CACpEA,EAAK,UAAS,EACd,MAAMmiB,EAAMghB,EAAmBA,EAAiBnjC,CAAI,EAAIA,EAAK,cACvD4sC,EAASzI,GAAmB,KAAKhiB,GAAOniB,EAAMA,EAAMuiC,EAAW,UAAYA,EAAW,aAAeA,EAAW,mBAAqBA,EAAW,4BAA6B,IAAI,EACvL,IAAIsK,GAAcD,EAAO,SAAQ,EACjC,KAAOC,IACNA,GAAY,KAAOP,GAA0BO,GAAY,IAAI,EAC7DA,GAAcD,EAAO,SAAQ,CAE/B,EAaME,GAAe,SAAsBvO,EAAS,CACnD,MAAMwO,EAAc7J,EAAcA,EAAY3E,CAAO,EAAI,KAEzD,OADI,OAAOwO,GAAgB,UACvBzO,GAAkByO,CAAW,IAAM,OAAe,GAC/C,OAAOxO,EAAQ,UAAa,UAAY,OAAOA,EAAQ,aAAgB,UAAY,OAAOA,EAAQ,aAAgB,YAAcA,EAAQ,aAAeyE,EAAczE,CAAO,GAAK,OAAOA,EAAQ,iBAAoB,YAAc,OAAOA,EAAQ,qBAAwB,YAAc,OAAOA,EAAQ,kBAAqB,YAAc,OAAOA,EAAQ,cAAiB,YAAc,OAAOA,EAAQ,cAAiB,UAAY,OAAOA,EAAQ,cAAiB,YAAc,OAAOA,EAAQ,eAAkB,YAAcA,EAAQ,WAAa0E,EAAY1E,CAAO,GAAKA,EAAQ,aAAesE,EAActE,CAAO,CACjmB,EAYM0L,GAAsB,SAA6B3oD,EAAO,CAC/D,GAAI,CAAC2hD,GAAe,OAAO3hD,GAAU,UAAYA,IAAU,KAAM,MAAO,GACxE,GAAI,CACH,OAAO2hD,EAAY3hD,CAAK,IAAMy/C,GAAU,gBACzC,MAAY,CACX,MAAO,EACR,CACD,EAYMiM,GAAU,SAAiB1rD,EAAO,CACvC,GAAI,CAAC2hD,GAAe,OAAO3hD,GAAU,UAAYA,IAAU,KAAM,MAAO,GACxE,GAAI,CACH,OAAO,OAAO2hD,EAAY3hD,CAAK,GAAM,QACtC,MAAY,CACX,MAAO,EACR,CACD,EACA,SAASgqD,GAAcrpC,EAAO4qC,EAAapiC,EAAM,CAC5CxI,EAAM,SAAW,GACrBu6B,GAAav6B,EAAQjI,IAAS,CAC7BA,GAAK,KAAKgoC,EAAW6K,EAAapiC,EAAMy9B,EAAM,CAC/C,CAAC,CACF,CAWA,MAAM+E,GAAgB,SAAuBJ,EAAajE,EAAS,CAIlE,MAHI,GAAA/C,IAAgBgH,EAAY,cAAa,GAAM,CAACG,GAAQH,EAAY,iBAAiB,GAAK9O,GAAW4C,GAAsBkM,EAAY,WAAW,GAAK9O,GAAW4C,GAAsBkM,EAAY,SAAS,GAC7MhH,IAAgB7E,GAAsB4H,CAAO,GAAKxF,EAAcyJ,CAAW,IAAM9L,GAAU,SAAWwC,EAAkBsJ,CAAW,IAAMxF,KAAmB2F,GAAQH,EAAY,iBAAiB,GAAK,OAAOA,EAAY,aAAgB,UAAY9O,GAAW4C,GAAsBkM,EAAY,WAAW,IAC7SA,EAAY,WAAa9L,GAAU,uBACnC8E,IAAgBgH,EAAY,WAAa9L,GAAU,SAAWhD,GAAW6C,GAAsBiM,EAAY,IAAI,EAEpH,EAaMK,GAAoB,SAA2BC,EAAOppD,EAAM,CACjE,GAAIopD,aAAiB,OAAQ,OAAOpP,GAAWoP,EAAOppD,CAAI,EAC1D,GAAIopD,aAAiB,SAAU,CAC9B,QAAS/Q,EAAO,UAAU,OAAQlwC,GAAO,IAAI,MAAMkwC,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAGr2C,GAAO,EAAGA,GAAOq2C,EAAMr2C,KAAQmG,GAAKnG,GAAO,CAAC,EAAI,UAAUA,EAAI,EAC3I,MAAO,EAAQonD,EAAMppD,EAAM,GAAGmI,EAAI,CACnC,CACA,MAAO,EACR,EAkBMkhD,GAA0B,SAAiCP,EAAajE,EAASj2B,EAAM,CAC5F,GAAI,CAAC0yB,GAAYuD,CAAO,GAAKyE,GAAsBzE,CAAO,GAAKsE,GAAkB9H,GAAwB,aAAcwD,CAAO,EAAG,MAAO,GACxI,GAAInC,IAAgB,CAACI,GAAgB+B,CAAO,GAAK,CAAC/B,GAAgBzJ,GAAkBwL,CAAO,CAAC,EAAG,CAC9F,MAAMhrC,GAAaklC,EAAc+J,CAAW,EACtCtD,GAAa1G,EAAcgK,CAAW,EAC5C,GAAItD,IAAc3rC,GAAY,CAC7B,MAAM0vC,GAAa/D,GAAW,OAC9B,QAAS/oD,GAAI8sD,GAAa,EAAG9sD,IAAK,EAAG,EAAEA,GAAG,CACzC,MAAM+sD,GAAUV,IAAgBl6B,EAAO+vB,EAAU6G,GAAW/oD,EAAC,EAAG,EAAI,EAAI+oD,GAAW/oD,EAAC,EACpFod,GAAW,aAAa2vC,GAAS3K,EAAeiK,CAAW,CAAC,CAC7D,CACD,CACD,CACA,OAAA3D,GAAa2D,CAAW,EACjB,EACR,EAeMW,GAAuB,SAA8BC,EAAUl7C,EAAKm7C,EAAYC,GAAc,CACnG,OAAIF,EAAS,SAAW,EAAUl7C,EAC3BA,IAAQm7C,GAAcn7C,IAAQo7C,GAAejP,GAAMnsC,CAAG,EAAIA,CAClE,EAUMq7C,GAA0B,SAAiCf,EAAal6B,EAAM,CACnF,OAAIk6B,IAAgBl6B,GAAQmwB,EAAc+J,CAAW,IAAM,KAAa,IACpEnG,IAAU4C,GAAmBuD,CAAW,EACrC,GACR,EAUMtB,GAAoB,SAA2BsB,EAAal6B,EAAM,CAGvE,GAFA+4B,GAAamB,CAAW,EACxBvB,GAAcrpC,GAAM,uBAAwB4qC,EAAa,IAAI,EACzDe,GAAwBf,EAAal6B,CAAI,EAAG,MAAO,GACvD,GAAIm6B,GAAaD,CAAW,EAC3B,OAAA3D,GAAa2D,CAAW,EACjB,GAER,MAAMjE,EAAUtK,GAAkB+E,EAAcwJ,CAAW,CAAC,EAM5D,GALA7H,EAAewI,GAAqBvrC,GAAM,oBAAqB+iC,EAAcC,GAAsBe,CAAuB,EAC1HsF,GAAcrpC,GAAM,oBAAqB4qC,EAAa,CACrD,QAAAjE,EACA,YAAa5D,CAChB,CAAG,EACG4I,GAAwBf,EAAal6B,CAAI,EAAG,MAAO,GACvD,GAAIs6B,GAAcJ,EAAajE,CAAO,EACrC,OAAAM,GAAa2D,CAAW,EACjB,GAER,GAAIxH,GAAYuD,CAAO,GAAK,EAAErD,GAAuB,oBAAoB,UAAYA,GAAuB,SAASqD,CAAO,IAAM,CAAC5D,EAAa4D,CAAO,EAAG,CACzJ,MAAMiF,GAAUT,GAAwBP,EAAajE,EAASj2B,CAAI,EAClE,OAAIk7B,KAAY,KACfvC,GAAcrpC,GAAM,sBAAuB4qC,EAAa,IAAI,EACxDe,GAAwBf,EAAal6B,CAAI,GAAU,GAEjDk7B,EACR,CAKA,GAJIzK,EAAcyJ,CAAW,IAAM9L,GAAU,SAAW,CAACiI,GAAqB6D,CAAW,IAIpFjE,IAAY,YAAcA,IAAY,WAAaA,IAAY,aAAe7K,GAAW8C,GAAoBgM,EAAY,SAAS,EACtI,OAAA3D,GAAa2D,CAAW,EACjB,GAER,GAAIjH,IAAsBiH,EAAY,WAAa9L,GAAU,KAAM,CAClE,MAAMte,GAAU6pB,GAA0BO,EAAY,WAAW,EAC7DA,EAAY,cAAgBpqB,KAC/Bma,GAAUoF,EAAU,QAAS,CAAE,QAAS6K,EAAY,UAAS,EAAI,EACjEA,EAAY,YAAcpqB,GAE5B,CACA,OAAA6oB,GAAcrpC,GAAM,sBAAuB4qC,EAAa,IAAI,EACrDe,GAAwBf,EAAal6B,CAAI,CACjD,EASMm7B,GAAoB,SAA2BjC,EAAOD,EAAQtqD,EAAO,CAG1E,GAFIgkD,GAAYsG,CAAM,GAClBD,GAAyBC,EAAQC,CAAK,GACtCvF,KAAiBsF,IAAW,MAAQA,IAAW,UAAYtqD,KAAS2gD,GAAY3gD,KAAS6mD,IAAc,MAAO,GAClH,MAAM4F,GAAkB7I,GAAa0G,CAAM,GAAKrG,GAAuB,0BAA0B,UAAYA,GAAuB,eAAeqG,EAAQC,CAAK,EAEhK,OADIpG,IAAmB1H,GAAW2G,GAAakH,CAAM,GACjDpG,IAAmBzH,GAAW4G,EAAaiH,CAAM,EAAU,GAC1DmC,GACD9G,GAAoB2E,CAAM,GAC1B7N,GAAWgH,GAAkBxH,GAAcj8C,EAAOujD,EAAmB,EAAE,CAAC,IACvE+G,IAAW,OAASA,IAAW,cAAgBA,IAAW,SAAWC,IAAU,UAAYrO,GAAcl8C,EAAO,OAAO,IAAM,GAAKylD,GAAc8E,CAAK,GACtJnG,GAA2B,CAAC3H,GAAW6G,EAAqBrH,GAAcj8C,EAAOujD,EAAmB,EAAE,CAAC,EAAU,GAC9G,CAACvjD,EALqB+rD,GAAsBxB,CAAK,GAAKqB,GAAkB9H,GAAwB,aAAcyG,CAAK,GAAKqB,GAAkB9H,GAAwB,mBAAoBwG,EAAQC,CAAK,GAAKD,IAAW,MAAQxG,GAAwB,gCAAkC8H,GAAkB9H,GAAwB,aAAc9jD,CAAK,CAM1V,EACM0sD,GAAgC3P,GAAS,GAAI,CAClD,iBACA,gBACA,YACA,mBACA,iBACA,gBACA,gBACA,eACF,CAAE,EASKgP,GAAwB,SAA+BzE,EAAS,CACrE,MAAO,CAACoF,GAA8B5Q,GAAkBwL,CAAO,CAAC,GAAK7K,GAAW+G,GAAkB8D,CAAO,CAC1G,EAaMqF,GAAgC,SAAuCpC,EAAOD,EAAQsC,EAAc5sD,GAAO,CAChH,GAAIkiD,GAAsB,OAAOrC,GAAiB,UAAY,OAAOA,EAAa,kBAAqB,YAAc,CAAC+M,EAAc,OAAQ/M,EAAa,iBAAiB0K,EAAOD,CAAM,EAAC,CACvL,IAAK,cAAe,OAAO9H,GAAmBxiD,EAAK,EACnD,IAAK,mBAAoB,OAAOyiD,GAAwBziD,EAAK,CAChE,CACE,OAAOA,EACR,EAwBM6sD,GAAqB,SAA4BtB,EAAa9oD,EAAMmqD,EAAc5sD,GAAO,CAC9F,GAAI,CAGH,OAFI4sD,EAAcrB,EAAY,eAAeqB,EAAcnqD,EAAMzC,EAAK,EACjEurD,EAAY,aAAa9oD,EAAMzC,EAAK,EACrCwrD,GAAaD,CAAW,GAC3B3D,GAAa2D,CAAW,EACjB,IAED,EACR,MAAY,CACX,OAAApD,GAAiB1lD,EAAM8oD,CAAW,EAC3B,EACR,CACD,EAaMuB,GAA0B,SAAiCrqD,EAAMzC,EAAO,CAC7E,OAAIukD,IAAgB9H,GAAW,qFAAsFz8C,CAAK,EAAU,GAC7H87C,GAAkBr5C,CAAI,IAAM,iBAAmBu5C,GAAYh8C,EAAO,MAAM,IAAM,IACtF,EAYMkqD,GAAsB,SAA6BqB,EAAal6B,EAAM,CAE3E,GADA24B,GAAcrpC,GAAM,yBAA0B4qC,EAAa,IAAI,EAC3De,GAAwBf,EAAal6B,CAAI,EAAG,OAChD,MAAM62B,EAAaqD,EAAY,WAC/B,GAAI,CAACrD,GAAcsD,GAAaD,CAAW,EAAG,OAC9C3H,GAAesI,GAAqBvrC,GAAM,sBAAuBijC,GAAcC,GAAsBc,CAAuB,EAC5H,MAAMoI,GAAY,CACjB,SAAU,GACV,UAAW,GACX,SAAU,GACV,kBAAmBnJ,GACnB,cAAe,MAClB,EACE,IAAIz+C,GAAI+iD,EAAW,OACnB,MAAMqC,GAAQvN,GAAkBuO,EAAY,QAAQ,EACpD,KAAOpmD,MAAK,CACX,MAAMijD,GAAOF,EAAW/iD,EAAC,EACnB1C,GAAO2lD,GAAK,KAAMwE,GAAexE,GAAK,aAAc4E,GAAY5E,GAAK,MACrEkC,GAAStN,GAAkBv6C,EAAI,EAC/BwqD,GAAYD,GAClB,IAAIhtD,GAAQyC,KAAS,QAAUwqD,GAAY9Q,GAAW8Q,EAAS,EAC3DC,GAAqB,GAYzB,GAXAH,GAAU,SAAWzC,GACrByC,GAAU,UAAY/sD,GACtB+sD,GAAU,SAAW,GACrBA,GAAU,cAAgB,OAC1B/C,GAAcrpC,GAAM,sBAAuB4qC,EAAawB,EAAS,EACjE/sD,GAAQ+sD,GAAU,UACd9H,KAAyBqF,KAAW,MAAQA,KAAW,SAAWpO,GAAcl8C,GAAOklD,EAA2B,IAAM,IAC3HiD,GAAiB1lD,GAAM8oD,EAAanD,EAAI,EACxCpoD,GAAQklD,GAA8BllD,GACtCktD,GAAqB,IAElBJ,GAAwBrqD,GAAMzC,EAAK,EAAG,CACzCmoD,GAAiB1lD,GAAM8oD,EAAanD,EAAI,EACxC,QACD,CACA,GAAI,CAAA2E,GAAU,cACd,IAAI,CAACA,GAAU,SAAU,CACxB5E,GAAiB1lD,GAAM8oD,EAAanD,EAAI,EACxC,QACD,CACA,GAAI,CAAC/D,IAA4B5H,GAAW+C,GAAkBx/C,EAAK,EAAG,CACrEmoD,GAAiB1lD,GAAM8oD,EAAanD,EAAI,EACxC,QACD,CAEA,GADI9D,KAAoBtkD,GAAQgrD,GAA0BhrD,EAAK,GAC3D,CAACwsD,GAAkBjC,GAAOD,GAAQtqD,EAAK,EAAG,CAC7CmoD,GAAiB1lD,GAAM8oD,EAAanD,EAAI,EACxC,QACD,CACApoD,GAAQ2sD,GAA8BpC,GAAOD,GAAQsC,GAAc5sD,EAAK,EACpEA,KAAUitD,IACTJ,GAAmBtB,EAAa9oD,GAAMmqD,GAAc5sD,EAAK,GAAKktD,IAAoB7R,GAASqF,EAAU,OAAO,EAElH,CACAsJ,GAAcrpC,GAAM,wBAAyB4qC,EAAa,IAAI,EAC9De,GAAwBf,EAAal6B,CAAI,CAC1C,EAMM84B,GAAsB,SAA4BgD,EAAU,CACjE,IAAIC,EAAa,KACjB,MAAMC,EAAiBtD,GAAoBoD,CAAQ,EAEnD,IADAnD,GAAcrpC,GAAM,wBAAyBwsC,EAAU,IAAI,EACpDC,EAAaC,EAAe,YAKlC,GAJArD,GAAcrpC,GAAM,uBAAwBysC,EAAY,IAAI,EAC5DnD,GAAkBmD,EAAYD,CAAQ,EACtCjD,GAAoBkD,EAAYD,CAAQ,EACpCxE,GAAoByE,EAAW,OAAO,GAAGjD,GAAoBiD,EAAW,OAAO,EAC/EtL,EAAcsL,CAAU,IAAM3N,GAAU,QAAS,CACpD,MAAM6N,GAAU7L,EAAc2L,CAAU,EACpCzE,GAAoB2E,EAAO,IAC9BC,GAA6BD,EAAO,EACpCnD,GAAoBmD,EAAO,EAE7B,CAEGhJ,IAAoB6G,GAAuBgC,CAAQ,EACvDnD,GAAcrpC,GAAM,uBAAwBwsC,EAAU,IAAI,CAC3D,EAQMI,GAA+B,SAAsCl8B,EAAM,CAChF,MAAMo3B,EAAQ,CAAC,CACd,KAAMp3B,EACN,OAAQ,IACX,CAAG,EACD,KAAOo3B,EAAM,OAAS,GAAG,CACxB,MAAM3mD,EAAO2mD,EAAM,IAAG,EACtB,GAAI3mD,EAAK,OAAQ,CAChBqoD,GAAoBroD,EAAK,MAAM,EAC/B,QACD,CACA,MAAM4c,GAAO5c,EAAK,KACZ0rD,GAAY1L,EAAcpjC,EAAI,IAAM+gC,GAAU,QAC9CwI,GAAa1G,EAAc7iC,EAAI,EACrC,GAAIupC,GAAY,QAAS/oD,GAAI+oD,GAAW,OAAS,EAAG/oD,IAAK,EAAG,EAAEA,GAAGupD,EAAM,KAAK,CAC3E,KAAMR,GAAW/oD,EAAC,EAClB,OAAQ,IACZ,CAAI,EACD,GAAIsuD,GAAW,CACd,MAAMC,GAAW7L,EAAcA,EAAYljC,EAAI,EAAI,KACnD,GAAI,OAAO+uC,IAAa,UAAYzQ,GAAkByQ,EAAQ,IAAM,WAAY,CAC/E,MAAMtsB,GAAUziB,GAAK,QACjBiqC,GAAoBxnB,EAAO,GAAGsnB,EAAM,KAAK,CAC5C,KAAMtnB,GACN,OAAQ,IACd,CAAM,CACF,CACD,CACA,GAAIqsB,GAAW,CACd,MAAME,GAAKjM,EAAc/iC,EAAI,EACzBiqC,GAAoB+E,EAAE,GAAGjF,EAAM,KAAK,CACvC,KAAM,KACN,OAAQiF,EACb,EAAO,CACF,KAAMA,GACN,OAAQ,IACb,CAAK,CACF,CACD,CACD,EACA,OAAAhN,EAAU,SAAW,SAASiK,EAAO,CACpC,IAAItK,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,GACvE0K,EAAO,KACP4C,GAAe,KACfpC,GAAc,KACdqC,GAAa,KAGjB,GAFA3H,GAAiB,CAAC0E,EACd1E,KAAgB0E,EAAQ,SACxB,OAAOA,GAAU,UAAY,CAACe,GAAQf,CAAK,IAC9CA,EAAQlN,GAAekN,CAAK,EACxB,OAAOA,GAAU,UAAU,MAAMjO,GAAgB,iCAAiC,EAEvF,GAAI,CAACgE,EAAU,YAAa,OAAOiK,EAC/BlG,GACHf,EAAegB,EACfd,GAAee,GACTqC,GAAa3G,CAAG,GACnB1/B,GAAM,oBAAoB,OAAS,GAAKA,GAAM,sBAAsB,OAAS,KAAG+iC,EAAetG,GAAMsG,CAAY,GACjH/iC,GAAM,sBAAsB,OAAS,IAAGijC,GAAexG,GAAMwG,EAAY,GAC7ElD,EAAU,QAAU,GACpB,MAAMmN,GAAUzI,IAAY,OAAOuF,GAAU,UAAYe,GAAQf,CAAK,EACtE,IAAImD,GAAe,GACnB,MAAMC,GAAe1I,GACrB,GAAIwI,GAAS,CACZrD,GAAwBG,CAAK,EAC7B,MAAMqD,GAAKjM,EAAc4I,CAAK,EAC9B,GAAI,OAAOqD,IAAO,SAAU,CAC3B,MAAM1G,GAAUtK,GAAkBgR,EAAE,EACpC,GAAI,CAACtK,EAAa4D,EAAO,GAAKvD,GAAYuD,EAAO,EAChD,MAAAS,GAAgB4C,CAAK,EACfjO,GAAgB,yDAAyD,CAEjF,CACA,GAAI8O,GAAab,CAAK,EACrB,MAAA5C,GAAgB4C,CAAK,EACfjO,GAAgB,yDAAyD,EAEhFoR,GAAelF,GAAkB+B,CAAK,EACtCtF,GAAmB3J,GAAS,CAC7B,SAAWgQ,GAAQf,CAAK,EACvBI,EAAOL,GAAc,SAAS,EAC9BiD,GAAe5C,EAAK,cAAc,WAAWJ,EAAO,EAAI,EACpDgD,GAAa,WAAalO,GAAU,SAAWkO,GAAa,WAAa,QACpEA,GAAa,WAAa,OADkD5C,EAAO4C,GAEvF5C,EAAK,YAAY4C,EAAY,EAClCJ,GAA6BxC,CAAI,MAC3B,CACN,GAAI,CAAClG,GAAc,CAACP,IAAsB,CAACE,GAAkBmG,EAAM,QAAQ,GAAG,IAAM,GAAI,OAAOzI,GAAsB6C,GAAsBvC,GAAmBmI,CAAK,EAAIA,EAEvK,GADAI,EAAOL,GAAcC,CAAK,EACtB,CAACI,EAAM,OAAOlG,EAAa,KAAOE,GAAsB5C,EAAY,EACzE,CACI4I,GAAQnG,GAAYgD,GAAamD,EAAK,UAAU,EACpD,MAAMkD,GAAWJ,GAAUlD,EAAQI,EACnC,GAAI,CACC8C,IAASN,GAA6B5C,CAAK,EAC/C,MAAMuD,GAAenE,GAAoBkE,EAAQ,EACjD,KAAO1C,GAAc2C,GAAa,YACjCjE,GAAkBsB,GAAa0C,EAAQ,EACvC/D,GAAoBqB,GAAa0C,EAAQ,EACrCtF,GAAoB4C,GAAY,OAAO,GAAGpB,GAAoBoB,GAAY,OAAO,EAElFsC,IAASzE,GAAwBuB,EAAOmD,EAAY,CACzD,OAAS1mD,GAAO,CACf,MAAIymD,KACH9F,GAAgB4C,CAAK,EACrB3B,GAAqB2B,EAAOmD,EAAY,GAEnC1mD,EACP,SACCi+C,GAAmB0I,EACpB,CACA,GAAIF,GAAS,CACZ,GAAI7E,GAAqB2B,EAAOmD,EAAY,EAAG,MAAMpR,GAAgB,yFAAyF,EAC9J,OAAI4H,IAAoB2G,GAA2BN,CAAK,EACjDA,CACR,CACA,GAAI9F,EAAY,CAEf,GADIP,IAAoB2G,GAA2BF,CAAI,EACnDjG,GAEH,IADA8I,GAAa9K,EAAuB,KAAKiI,EAAK,aAAa,EACpDA,EAAK,YAAY6C,GAAW,YAAY7C,EAAK,UAAU,OACxD6C,GAAa7C,EACpB,OAAInH,GAAa,YAAcA,GAAa,kBAAgBgK,GAAa5K,GAAW,KAAKpC,EAAkBgN,GAAY,EAAI,GACpHA,EACR,CACA,IAAIO,GAAiB3J,EAAiBuG,EAAK,UAAYA,EAAK,UAC5D,OAAIvG,GAAkBd,EAAa,UAAU,GAAKqH,EAAK,eAAiBA,EAAK,cAAc,SAAWA,EAAK,cAAc,QAAQ,MAAQtO,GAAW0C,GAAc4L,EAAK,cAAc,QAAQ,IAAI,IAAGoD,GAAiB,aAAepD,EAAK,cAAc,QAAQ,KAAO;AAAA,EAAQoD,IAC1Q7J,KAAoB6J,GAAiBnD,GAA0BmD,EAAc,GAC1EjM,GAAsB6C,GAAsBvC,GAAmB2L,EAAc,EAAIA,EACzF,EACAzN,EAAU,UAAY,UAAW,CAChC,IAAIL,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,GAC3E2G,GAAa3G,CAAG,EAChBoE,EAAa,GACbC,EAA0BhB,EAC1BiB,EAA0Bf,EAC3B,EACAlD,EAAU,YAAc,UAAW,CAClCkG,GAAS,KACTnC,EAAa,GACbC,EAA0B,KAC1BC,EAA0B,KAC1BzC,EAAqBE,EACrBD,EAAY,EACb,EACAzB,EAAU,iBAAmB,SAAS1f,EAAKonB,EAAMpoD,EAAO,CAClD4mD,IAAQI,GAAa,EAAE,EAC5B,MAAMuD,GAAQvN,GAAkBhc,CAAG,EAC7BspB,GAAStN,GAAkBoL,CAAI,EACrC,OAAI,OAAOpoD,GAAU,WAAa8sD,GAAwB1E,EAAMpoD,CAAK,GAAK,CAACqkD,IAA4B5H,GAAW+C,GAAkBx/C,CAAK,GAAW,GAC7IwsD,GAAkBjC,GAAOD,GAAQtqD,CAAK,CAC9C,EACA0gD,EAAU,QAAU,SAAS0N,EAAYC,EAAc,CAClD,OAAOA,GAAiB,YACvB7R,GAAqB77B,GAAOytC,CAAU,GAC3C9S,GAAU36B,GAAMytC,CAAU,EAAGC,CAAY,CAC1C,EACA3N,EAAU,WAAa,SAAS0N,EAAYC,EAAc,CACzD,GAAK7R,GAAqB77B,GAAOytC,CAAU,EAC3C,IAAIC,IAAiB,OAAQ,CAC5B,MAAM3qD,EAAQ03C,GAAiBz6B,GAAMytC,CAAU,EAAGC,CAAY,EAC9D,OAAO3qD,IAAU,GAAK,OAAS83C,GAAY76B,GAAMytC,CAAU,EAAG1qD,EAAO,CAAC,EAAE,CAAC,CAC1E,CACA,OAAO23C,GAAS16B,GAAMytC,CAAU,CAAC,EAClC,EACA1N,EAAU,YAAc,SAAS0N,EAAY,CACvC5R,GAAqB77B,GAAOytC,CAAU,IAC3CztC,GAAMytC,CAAU,EAAI,GACrB,EACA1N,EAAU,eAAiB,UAAW,CACrC//B,GAAQw/B,GAAe,CACxB,EACOO,CACR,CACA,IAAI4N,GAAiB9N,GAAe,oJCz9EpC,IAAI+N,EAAkB,UAOtBC,GAAiBC,EAUjB,SAASA,EAAWzgB,EAAQ,CAC1B,IAAI5vC,EAAM,GAAK4vC,EACX1rC,EAAQisD,EAAgB,KAAKnwD,CAAG,EAEpC,GAAI,CAACkE,EACH,OAAOlE,EAGT,IAAIswD,EACAnQ,EAAO,GACP76C,EAAQ,EACRirD,EAAY,EAEhB,IAAKjrD,EAAQpB,EAAM,MAAOoB,EAAQtF,EAAI,OAAQsF,IAAS,CACrD,OAAQtF,EAAI,WAAWsF,CAAK,EAAC,CAC3B,IAAK,IACHgrD,EAAS,SACT,MACF,QACEA,EAAS,QACT,MACF,IAAK,IACHA,EAAS,QACT,MACF,IAAK,IACHA,EAAS,OACT,MACF,IAAK,IACHA,EAAS,OACT,MACF,QACE,QACR,CAEQC,IAAcjrD,IAChB66C,GAAQngD,EAAI,UAAUuwD,EAAWjrD,CAAK,GAGxCirD,EAAYjrD,EAAQ,EACpB66C,GAAQmQ,CACZ,CAEE,OAAOC,IAAcjrD,EACjB66C,EAAOngD,EAAI,UAAUuwD,EAAWjrD,CAAK,EACrC66C,CACN,uCCtEA,SAASqQ,IAAY,CACnB,OAAO,WAAW,eACpB,CACA,SAASC,IAAqB,CAC5B,OAAOD,GAAS,EAAG,WAAW,KAAM,GAAG,CACzC,CAOA,SAASE,IAAc,CACrB,OAAO,WAAW,iBACpB,CAOA,SAASC,GAAMC,EAAU,CACvB,MAAMC,EAA2BH,GAAW,EAqD5C,MApDqB,CACnB,KAEA,KAEA,MAEA,MAEA,MAEA,MAEA,MAEA,KAEA,KAEA,MAEA,KAEA,KAEA,MAEA,KAEA,KAEA,MAEA,MAEA,MAEA,KAEA,KAEA,KAEA,KAEA,QAEA,QAEA,IAEJ,EACsB,SAASG,CAAY,CAC3C,CACA,WAAW,kBAAoB,OAAO,SAAa,KAAe,SAAS,gBAAgB,QAAQ,QAAU,KAAK,eAAc,EAAG,gBAAe,EAAG,OAAO,WAAW,KAAM,GAAG,EAChL,WAAW,oBAAsB,OAAO,SAAa,KAAe,SAAS,gBAAgB,OAAS,WAAW,WAAW,UAAY,MAsBxI,SAASC,GAAmBC,EAAO,CACjC,MAAO,CACL,aAAc,WAAW,+BAA+BA,CAAK,GAAK,GAClE,eAAgB,WAAW,mCAAmCA,CAAK,IAAOC,GAAWA,EACzF,CACA,CACA,WAAW,iCAAmC,GAC9C,WAAW,qCAAuC,GAKlD,SAASC,GAAU5gC,EAAKmQ,EAAM0wB,EAAsBC,EAAiB18C,EAAS,CAC5E,MAAMkzB,EAAO,OAAOupB,GAAyB,SAAWA,EAAuB,OACzEF,EAAS,OAAOG,GAAoB,SAAWA,EAAkB,OAAOD,GAAyB,SAAWA,EAAuB,OACnIzW,EAAa,CAEjB,OAAQ,GACR,SAAU,GAEV,GAAG,OAAOhmC,GAAY,SAAWA,EAAU,OAAO08C,GAAoB,SAAWA,EAAkB,EACvG,EACQC,EAAYxvD,GAAUA,EACtByvD,GAAe5W,EAAW,SAAW6H,GAAU,SAAW8O,IAAaA,EACvEE,EAAY7W,EAAW,OAAS8W,GAAaH,EAC7CI,EAAsB5vD,GAAU,OAAOA,GAAU,UAAY,OAAOA,GAAU,SAC9Ei5C,EAAS,CAAC4W,EAAOC,EAAOC,IACrBF,EAAM,QAAQ,MAAO,GAAKE,CAAO,EAAE,QAAQ,cAAe,CAACztD,EAAOhE,IAAQ,CAC/E,GAAIwxD,IAAU,QAAU,EAAExxD,KAAOwxD,GAC/B,OAAOJ,EAAUptD,CAAK,EAExB,MAAM0tD,EAAcF,EAAMxxD,CAAG,EAC7B,OAAIsxD,EAAmBI,CAAW,EACzBN,EAAU,GAAGM,CAAW,EAAE,EACxB,OAAOA,GAAgB,UAAYJ,EAAmBI,EAAY,KAAK,GACjEA,EAAY,SAAW,GAAQL,GAAaH,GAC7C,GAAGQ,EAAY,KAAK,EAAE,EAE7BN,EAAUptD,CAAK,CAE1B,CAAC,EAGH,IAAI2tD,GADWp9C,GAAS,QAAUq8C,GAAmBzgC,CAAG,GAC/B,aAAamQ,CAAI,GAAKA,EAE/C,OADAqxB,EAAc,MAAM,QAAQA,CAAW,EAAIA,EAAY,CAAC,EAAIA,EAEnDR,EADL,OAAO1pB,GAAS,UAAYqpB,IAAW,OACtBnW,EACjBgX,EACAlqB,EACAqpB,CACN,EAEuBa,CAFlB,CAIL,CACA,SAASC,GAAgBzhC,EAAK0hC,EAAcC,EAAYhB,EAAQrpB,EAAMlzB,EAAS,CAC7E,MAAMw9C,EAAa,IAAMF,EAAe,OAASC,EAAa,IACxDE,EAASz9C,GAAS,QAAUq8C,GAAmBzgC,CAAG,EAClDzuB,EAAQswD,EAAO,aAAaD,CAAU,EAC5C,GAAI,OAAOrwD,EAAU,IAAa,CAChC,MAAMiwD,EAAcjwD,EACpB,GAAI,MAAM,QAAQiwD,CAAW,EAAG,CAC9B,MAAMM,EAASD,EAAO,eAAelB,CAAM,EAC3C,OAAOC,GAAU5gC,EAAKwhC,EAAYM,CAAM,EAAGxqB,EAAMqpB,EAAQv8C,CAAO,CAClE,CACF,CACA,OAAIu8C,IAAW,EACNC,GAAU5gC,EAAK0hC,EAAcpqB,EAAMqpB,EAAQv8C,CAAO,EAElDw8C,GAAU5gC,EAAK2hC,EAAYrqB,EAAMqpB,EAAQv8C,CAAO,CAE3D,CAmCA,SAAS29C,GAAUpB,EAAQJ,EAAWF,KAAe,CAOnD,OANIE,IAAa,UACfA,EAAW,OAETA,EAAS,OAAS,IACpBA,EAAWA,EAAS,UAAU,EAAGA,EAAS,YAAY,GAAG,CAAC,GAEpDA,EAAQ,CACd,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,GACT,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAOI,IAAW,EAAI,EAAI,EAC5B,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,KACL,IAAK,KACH,OAAOA,IAAW,GAAKA,IAAW,EAAI,EAAI,EAC5C,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAOA,EAAS,KAAO,GAAKA,EAAS,MAAQ,GAAK,EAAIA,EAAS,IAAM,GAAKA,EAAS,IAAM,IAAMA,EAAS,IAAM,IAAMA,EAAS,KAAO,IAAM,EAAI,EAChJ,IAAK,KACL,IAAK,KACH,OAAOA,IAAW,EAAI,EAAIA,GAAU,GAAKA,GAAU,EAAI,EAAI,EAC7D,IAAK,KACH,OAAOA,IAAW,EAAI,EAAIA,IAAW,EAAI,EAAI,EAC/C,IAAK,KACH,OAAOA,EAAS,KAAO,GAAKA,EAAS,MAAQ,GAAK,EAAIA,EAAS,IAAM,IAAMA,EAAS,IAAM,IAAMA,EAAS,KAAO,IAAM,EAAI,EAC5H,IAAK,KACH,OAAOA,EAAS,MAAQ,EAAI,EAAIA,EAAS,MAAQ,EAAI,EAAIA,EAAS,MAAQ,GAAKA,EAAS,MAAQ,EAAI,EAAI,EAC1G,IAAK,KACH,OAAOA,EAAS,KAAO,EAAI,EAAI,EACjC,IAAK,KACH,OAAOA,IAAW,EAAI,EAAIA,IAAW,GAAKA,EAAS,IAAM,GAAKA,EAAS,IAAM,GAAK,EAAIA,EAAS,IAAM,IAAMA,EAAS,IAAM,GAAK,EAAI,EACrI,IAAK,KACH,OAAOA,IAAW,EAAI,EAAIA,EAAS,KAAO,GAAKA,EAAS,MAAQ,GAAK,EAAI,EAC3E,IAAK,KACH,OAAOA,IAAW,EAAI,EAAIA,EAAS,IAAM,GAAKA,EAAS,IAAM,IAAMA,EAAS,IAAM,IAAMA,EAAS,IAAM,IAAM,EAAI,EACnH,IAAK,KACH,OAAOA,IAAW,EAAI,EAAIA,IAAW,EAAI,EAAIA,IAAW,GAAKA,IAAW,GAAK,EAAI,EACnF,IAAK,KACH,OAAOA,IAAW,EAAI,EAAIA,IAAW,GAAKA,EAAS,IAAM,GAAKA,EAAS,IAAM,GAAK,EAAI,EACxF,IAAK,KACH,OAAOA,IAAW,EAAI,EAAIA,IAAW,EAAI,EAAIA,IAAW,EAAI,EAAIA,EAAS,KAAO,GAAKA,EAAS,KAAO,GAAK,EAAIA,EAAS,KAAO,IAAMA,EAAS,KAAO,GAAK,EAAI,EAC/J,QACE,MAAO,EACb,CACA,CCvOA,SAASqB,GAAmBC,EAAY,KAAK,IAAG,EAAIC,EAAO,GAAI,CAC7D,MAAM99C,EAAU,CACd,cAAe,GACf,SAAUi8C,GAAW,EACrB,aAAc,OACd,GAAG6B,CACP,EACQC,EAAO,IAAI,KAAKF,CAAS,EACzBG,EAAY,IAAI,KAAK,mBAAmB,CAACh+C,EAAQ,SAAUi8C,GAAW,CAAE,EAAG,CAAE,QAAS,OAAQ,MAAOj8C,EAAQ,YAAY,CAAE,EAE3Hi+C,GADOF,EAAK,QAAO,EAAK,KAAK,IAAG,GACf,IACvB,GAAI,KAAK,IAAIE,CAAO,EAAI,KACtB,OAAOj+C,EAAQ,eAAiBg+C,EAAU,OAAO,KAAK,MAAMC,CAAO,EAAG,QAAQ,EAEhF,MAAMC,EAAUD,EAAU,GAC1B,GAAI,KAAK,IAAIC,CAAO,GAAK,GACvB,OAAOF,EAAU,OAAO,KAAK,MAAME,CAAO,EAAG,QAAQ,EAEvD,MAAMC,EAAQD,EAAU,GACxB,GAAI,KAAK,IAAIC,CAAK,EAAI,KACpB,OAAOH,EAAU,OAAO,KAAK,MAAMG,CAAK,EAAG,MAAM,EAEnD,MAAMC,EAAOD,EAAQ,GACrB,GAAI,KAAK,IAAIC,CAAI,EAAI,IACnB,OAAOJ,EAAU,OAAO,KAAK,MAAMI,CAAI,EAAG,KAAK,EAEjD,GAAI,KAAK,IAAIA,CAAI,EAAI,KAAM,CACzB,MAAMC,EAAQD,EAAO,EACrB,OAAOJ,EAAU,OAAO,KAAK,MAAMK,CAAK,EAAG,MAAM,CACnD,CACA,MAAMC,EAASF,EAAO,GAChBG,EAAS,KAAK,IAAID,CAAM,EAAI,GAAK,CAAE,MAAOt+C,EAAQ,aAAc,IAAK,SAAS,EAAK,CAAE,KAAMA,EAAQ,eAAiB,SAAW,UAAY,UAAW,MAAOA,EAAQ,YAAY,EAEvL,OAD0B,IAAI,KAAK,eAAe,CAACA,EAAQ,SAAUi8C,IAAa,EAAGsC,CAAM,EAClE,OAAOR,CAAI,CACtC,CCpFA,MAAM5b,GAAO,IAAM,CAAC,EAOd31C,GAAU,MAAM,QA4XhBgyD,GAAY,OAA0D,EAAE,EAOxEC,GAAmB,OAAkE,EAAE,ECpP7F,SAASC,GAAkBruD,EAAGC,EAAG,CAChC,OAAQD,EAAE,SAAWA,MAAQC,EAAE,SAAWA,EAC3C,CACA,SAASquD,GAA0BtuD,EAAGC,EAAG,CACxC,GAAI,OAAO,KAAKD,CAAC,EAAE,SAAW,OAAO,KAAKC,CAAC,EAAE,OAAQ,MAAO,GAC5D,QAAS7E,KAAO4E,EAAG,GAAI,CAACuuD,GAA+BvuD,EAAE5E,CAAG,EAAG6E,EAAE7E,CAAG,CAAC,EAAG,MAAO,GAC/E,MAAO,EACR,CACA,SAASmzD,GAA+BvuD,EAAGC,EAAG,CAC7C,OAAO9D,GAAQ6D,CAAC,EAAIwuD,GAAkBxuD,EAAGC,CAAC,EAAI9D,GAAQ8D,CAAC,EAAIuuD,GAAkBvuD,EAAGD,CAAC,GAAKA,GAAKA,EAAE,cAAgBC,GAAKA,EAAE,UACrH,CAQA,SAASuuD,GAAkBxuD,EAAGC,EAAG,CAChC,OAAO9D,GAAQ8D,CAAC,EAAID,EAAE,SAAWC,EAAE,QAAUD,EAAE,MAAM,CAAClD,EAAOd,IAAMc,IAAUmD,EAAEjE,CAAC,CAAC,EAAIgE,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAMC,CACjH,CCsqBA,SAASwuD,GAAQhvD,EAAO,CACvB,MAAMivD,EAAS74C,GAAOs4C,EAAS,EACzBQ,EAAe94C,GAAOu4C,EAAgB,EAGtCQ,EAAQnqD,GAAS,IAAM,CAC5B,MAAMulB,EAAK1c,EAAM7N,EAAM,EAAE,EAMzB,OAAOivD,EAAO,QAAQ1kC,CAAE,CACzB,CAAC,EACK6kC,EAAoBpqD,GAAS,IAAM,CACxC,KAAM,CAAE,QAAAlE,GAAYquD,EAAM,MACpB,CAAE,OAAA9kB,GAAWvpC,EACbuuD,EAAevuD,EAAQupC,EAAS,CAAC,EACjCilB,EAAiBJ,EAAa,QACpC,GAAI,CAACG,GAAgB,CAACC,EAAe,OAAQ,MAAO,GACpD,MAAMvuD,EAAQuuD,EAAe,UAAUV,GAAkB,KAAK,KAAMS,CAAY,CAAC,EACjF,GAAItuD,EAAQ,GAAI,OAAOA,EACvB,MAAMwuD,EAAmBC,GAAgB1uD,EAAQupC,EAAS,CAAC,CAAC,EAC5D,OAAOA,EAAS,GAAKmlB,GAAgBH,CAAY,IAAME,GAAoBD,EAAeA,EAAe,OAAS,CAAC,EAAE,OAASC,EAAmBD,EAAe,UAAUV,GAAkB,KAAK,KAAM9tD,EAAQupC,EAAS,CAAC,CAAC,CAAC,EAAItpC,CAChO,CAAC,EACK0uD,EAAWzqD,GAAS,IAAMoqD,EAAkB,MAAQ,IAAMM,GAAeR,EAAa,OAAQC,EAAM,MAAM,MAAM,CAAC,EACjHQ,EAAgB3qD,GAAS,IAAMoqD,EAAkB,MAAQ,IAAMA,EAAkB,QAAUF,EAAa,QAAQ,OAAS,GAAKL,GAA0BK,EAAa,OAAQC,EAAM,MAAM,MAAM,CAAC,EACtM,SAASS,EAASrrD,EAAI,GAAI,CACzB,GAAIsrD,GAAWtrD,CAAC,EAAG,CAClB,MAAM2O,EAAI+7C,EAAOphD,EAAM7N,EAAM,OAAO,EAAI,UAAY,MAAM,EAAE6N,EAAM7N,EAAM,EAAE,CAAC,EAAE,MAAMqyC,EAAI,EACvF,OAAIryC,EAAM,gBAAkB,OAAO,SAAa,KAAe,wBAAyB,UAAU,SAAS,oBAAoB,IAAMkT,CAAC,EAC/HA,CACR,CACA,OAAO,QAAQ,SAChB,CAuBA,MAAO,CACN,MAAAi8C,EACA,KAAMnqD,GAAS,IAAMmqD,EAAM,MAAM,IAAI,EACrC,SAAAM,EACA,cAAAE,EACA,SAAAC,CAAA,CAEF,CACA,SAASE,GAAkBhqC,EAAQ,CAClC,OAAOA,EAAO,SAAW,EAAIA,EAAO,CAAC,EAAIA,CAC1C,CAIA,MAAMiqC,GAA6BrvC,GAAgB,CAClD,KAAM,aACN,aAAc,CAAE,KAAM,GACtB,MAAO,CACN,GAAI,CACH,KAAM,CAAC,OAAQ,MAAM,EACrB,SAAU,IAEX,QAAS,QACT,YAAa,OACb,iBAAkB,OAClB,OAAQ,QACR,iBAAkB,CACjB,KAAM,OACN,QAAS,QAEV,eAAgB,SAEjB,QAAAsuC,GACA,MAAMhvD,EAAO,CAAE,MAAAqd,GAAS,CACvB,MAAMxZ,EAAO8I,GAASqiD,GAAQhvD,CAAK,CAAC,EAC9B,CAAE,QAAAkQ,CAAA,EAAYkG,GAAOs4C,EAAS,EAC9BsB,EAAUhrD,GAAS,KAAO,CAC/B,CAACirD,GAAajwD,EAAM,YAAakQ,EAAQ,gBAAiB,oBAAoB,CAAC,EAAGrM,EAAK,SACvF,CAACosD,GAAajwD,EAAM,iBAAkBkQ,EAAQ,qBAAsB,0BAA0B,CAAC,EAAGrM,EAAK,eACtG,EACF,MAAO,IAAM,CACZ,MAAMyX,EAAW+B,EAAM,SAAWyyC,GAAkBzyC,EAAM,QAAQxZ,CAAI,CAAC,EACvE,OAAO7D,EAAM,OAASsb,EAAWuO,GAAE,IAAK,CACvC,eAAgBhmB,EAAK,cAAgB7D,EAAM,iBAAmB,KAC9D,KAAM6D,EAAK,KACX,QAASA,EAAK,SACd,MAAOmsD,EAAQ,OACb10C,CAAQ,CACZ,CACD,CACD,CAAC,EACD,SAASu0C,GAAW,EAAG,CACtB,GAAI,IAAE,SAAW,EAAE,QAAU,EAAE,SAAW,EAAE,WACxC,GAAE,kBACF,IAAE,SAAW,QAAU,EAAE,SAAW,GACxC,IAAI,EAAE,eAAiB,EAAE,cAAc,aAAc,CACpD,MAAMvpD,EAAS,EAAE,cAAc,aAAa,QAAQ,EACpD,GAAI,cAAc,KAAKA,CAAM,EAAG,MACjC,CACA,OAAI,EAAE,gBAAgB,EAAE,iBACjB,GACR,CACA,SAASopD,GAAeQ,EAAOC,EAAO,CACrC,UAAWx0D,KAAOw0D,EAAO,CACxB,MAAMC,EAAaD,EAAMx0D,CAAG,EACtB00D,EAAaH,EAAMv0D,CAAG,EAC5B,GAAIe,GAAQ0zD,CAAU,GACrB,GAAI,CAAC1zD,GAAQ2zD,CAAU,GAAKA,EAAW,SAAWD,EAAW,QAAUA,EAAW,KAAK,CAAC/yD,EAAOd,IAAMc,EAAM,YAAcgzD,EAAW9zD,CAAC,EAAE,SAAS,EAAG,MAAO,WAChJ6zD,IAAeC,EAAY,MAAO,EAC9C,CACA,MAAO,EACR,CAKA,SAASb,GAAgBc,EAAQ,CAChC,OAAOA,EAASA,EAAO,QAAUA,EAAO,QAAQ,KAAOA,EAAO,KAAO,EACtE,CAOA,MAAML,GAAe,CAACM,EAAWC,EAAaC,IAAiBF,GAAgCC,GAAoCC,ECthC7H,CAACC,EAAY,EAAI,OAAO,IAAI,QAAQ,SAAS,MAAM,GAAG,GAAK,GAC3DC,GAAQ,OAAO,SAASD,IAAgB,IAAI,EAC5CE,GAAWD,GAAQ,GACnBE,GAAaF,GAAQ,GCFrBG,GAA0C,OAAO,IAAI,mBAAmB,EAC9E,SAASC,IAAe,CACtB,OAAO36C,GAAO06C,GAAyB,CACrC,YAAa,GACb,iBAAkB,MACtB,CAAG,CACH,CCPA,MAAME,GAAc,CAACC,EAAKjxD,IAAU,CAClC,MAAMsG,EAAS2qD,EAAI,WAAaA,EAChC,SAAW,CAACt1D,EAAKC,CAAG,IAAKoE,EACvBsG,EAAO3K,CAAG,EAAIC,EAEhB,OAAO0K,CACT,ECAM4qD,GAAa,CAAE,MAAO,qBAAqB,EAC3CC,GAAa,CAAE,MAAO,kBAAkB,EACxCC,GAAa,CAAE,MAAO,kBAAkB,EACxCC,GAA4B3wC,GAAgB,CAChD,OAAQ,WACR,MAAO,CACL,UAAW,CAAE,QAAS,QAAQ,EAC9B,UAAW,CAAE,QAAS,MAAM,EAC5B,SAAU,CAAE,KAAM,OAAO,EACzB,SAAU,CAAE,KAAM,CAAC,OAAQ,OAAO,EAAG,QAAS,MAAM,EACpD,KAAM,CAAE,QAAS,MAAM,EACvB,QAAS,CAAE,KAAM,QAAS,QAAS,MAAM,EACzC,KAAM,CAAE,QAAS,QAAQ,EACzB,OAAQ,CAAE,QAAS,OAAO,EAC1B,KAAM,CAAE,QAAS,MAAM,EACvB,GAAI,CAAE,QAAS,MAAM,EACrB,KAAM,CAAE,QAAS,QAAQ,EACzB,QAAS,CAAE,QAAS,WAAW,EAC/B,KAAM,CAAE,KAAM,OAAO,CACzB,EACE,MAAO,CAAC,QAAS,gBAAgB,EACjC,MAAM4wC,EAAS,CAAE,KAAMC,CAAM,EAAI,CAC/B,MAAMvxD,EAAQsxD,EACRpkC,EAAOqkC,EACP,CAAE,iBAAAC,CAAgB,EAAKT,GAAY,EACnCU,EAAsBr7C,GAAOs4C,GAAW,IAAI,IAAM,KAClDrwB,EAAMr5B,GAAS,IACfysD,GAAuBzxD,EAAM,GACxB,aACEA,EAAM,KACR,IAEA,QAEV,EACK0xD,EAAkB1sD,GAAS,IAAMq5B,EAAI,QAAU,UAAY,OAAOr+B,EAAM,SAAY,SAAS,EAC7F2xD,EAAqB3sD,GAAS,IAC9BhF,EAAM,QACD,UAELA,EAAM,UAAY,IAASA,EAAM,UAAY,UACxC,YAEFA,EAAM,OACd,EACK4xD,EAAoB5sD,GAAS,IAAM2sD,EAAmB,MAAM,WAAW,UAAU,CAAC,EAClFE,EAAgB7sD,GAAS,IAAMhF,EAAM,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC,EAC5D8xD,EAAmB9sD,GAAS,IAAMhF,EAAM,UAAU,SAAS,GAAG,CAAC,EAC/D+xD,EAA2B37C,GAAO,0BAA2B,KAAO,IAAK,EAAK,EAC9E47C,EAAwBhtD,GAAS,IAAM+sD,GAA0B,EACjE7jC,EAAQlpB,GAAS,IAAM,CAC3B,GAAIq5B,EAAI,QAAU,aAChB,MAAO,CACL,GAAIr+B,EAAM,GACV,YAAa,QACvB,EACa,GAAIq+B,EAAI,QAAU,IACvB,MAAO,CACL,KAAMr+B,EAAM,MAAQ,IACpB,OAAQA,EAAM,OACd,IAAK,+BACL,SAAUA,EAAM,UAAY,MACtC,EACa,GAAIq+B,EAAI,QAAU,SACvB,MAAO,CACL,GAAG2zB,EAAsB,MACzB,eAAgBhyD,EAAM,QACtB,KAAMA,EAAM,KACZ,SAAUA,EAAM,QAC1B,CAGI,CAAC,EACD,SAASiyD,EAAQ9kC,EAAO,CAClBukC,EAAgB,OAClBxkC,EAAK,iBAAkB,CAACltB,EAAM,OAAO,EAEvCktB,EAAK,QAASC,CAAK,CACrB,CACA,MAAO,CAAC+kC,EAAMC,KACL5sC,EAAS,EAAIC,GAAY3B,GAAwBwa,EAAI,KAAK,EAAGtC,GAAW,CAC7E,MAAO,CAAC,aAAc,CACpB,oBAAoBu1B,EAAQ,IAAI,GAChC,CACE,CAAC,eAAeK,EAAmB,KAAK,EAAE,EAAGA,EAAmB,MAChE,uBAAwBC,EAAkB,MAC1C,mBAAoBN,EAAQ,KAC5B,CAAC,eAAeO,EAAc,KAAK,EAAE,EAAGA,EAAc,QAAU,SAChE,sBAAuBC,EAAiB,MACxC,qBAAsBjkD,EAAM+iD,EAAQ,EACpC,uBAAwB/iD,EAAMgjD,EAAU,CACpD,EACUhjD,EAAM2jD,CAAgB,CAChC,CAAS,EACD,aAAcF,EAAQ,SAC9B,EAASpjC,EAAM,MAAO,CAAE,QAAA+jC,CAAO,CAAE,EAAG,CAC5B,QAASt9C,GAAQ,IAAM,CACrBy9C,EAAmB,OAAQlB,GAAY,CACrCkB,EAAmB,OAAQjB,GAAY,CACrClsC,GAAWitC,EAAK,OAAQ,OAAQ,GAAI,OAAQ,EAAI,CAC9D,CAAa,EACDE,EAAmB,OAAQhB,GAAY,CACrCnsC,GAAWitC,EAAK,OAAQ,UAAW,GAAI,IAAM,CAC3Cl2B,GAAgBp6B,GAAgB0vD,EAAQ,IAAI,EAAG,CAAC,CAChE,EAAiB,EAAI,CACrB,CAAa,CACb,CAAW,CACX,CAAS,EACD,EAAG,CACX,EAAS,GAAI,CAAC,QAAS,YAAY,CAAC,EAElC,CACF,CAAC,EACKe,GAA2BrB,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECvH1F,OAAO,mBAAqB,OAAO,oBAAsB,EACzD,SAASiB,IAAkB,CACzB,MAAO,UAAU,OAAO,oBAAoB,EAC9C,CCCA,MAAMpB,GAAa,CAAC,iBAAiB,EAC/BC,GAAa,CACjB,IAAK,EACL,MAAO,sBACP,cAAe,MACjB,EACMC,GAAa,CAAC,IAAI,EAClBmB,GAAa,CACjB,IAAK,EACL,MAAO,4BACT,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,uBACT,EACMnB,GAA4B3wC,GAAgB,CAChD,OAAQ,iBACR,MAAO,CACL,YAAa,CAAE,QAAS,EAAE,EAC1B,KAAM,CAAE,QAAS,EAAE,CACvB,EACE,MAAM4wC,EAAS,CACb,MAAMmB,EAASH,GAAe,EAC9B,MAAO,CAACJ,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,kBAAmBjtB,EAAM4kD,CAAM,EAC/B,MAAO,gBACP,KAAM,MACd,EAAS,CACDP,EAAK,OAAO,MAAQ3sC,EAAS,EAAIuV,EAAmB,MAAOq2B,GAAY,CACrElsC,GAAWitC,EAAK,OAAQ,OAAQ,GAAI,OAAQ,EAAI,CAC1D,CAAS,GAAK10C,GAAmB,GAAI,EAAI,EACjC8zC,EAAQ,OAAS,IAAMY,EAAK,OAAO,MAAQ3sC,EAAS,EAAIuV,EAAmB,MAAO,CAChF,IAAK,EACL,GAAIjtB,EAAM4kD,CAAM,EAChB,MAAO,qBACjB,EAAW,CACDxtC,GAAWitC,EAAK,OAAQ,OAAQ,GAAI,IAAM,CACxCl2B,GAAgBp6B,GAAgB0vD,EAAQ,IAAI,EAAG,CAAC,CAC5D,EAAa,EAAI,CACjB,EAAW,EAAGF,EAAU,GAAK5zC,GAAmB,GAAI,EAAI,EAChD8zC,EAAQ,cAAgB,IAAMY,EAAK,OAAO,aAAe3sC,IAAauV,EAAmB,IAAKy3B,GAAY,CACxGttC,GAAWitC,EAAK,OAAQ,cAAe,GAAI,IAAM,CAC/Cl2B,GAAgBp6B,GAAgB0vD,EAAQ,WAAW,EAAG,CAAC,CACnE,EAAa,EAAI,CACjB,CAAS,GAAK9zC,GAAmB,GAAI,EAAI,EACjC00C,EAAK,OAAO,QAAU3sC,EAAS,EAAIuV,EAAmB,MAAO03B,GAAY,CACvEvtC,GAAWitC,EAAK,OAAQ,SAAU,GAAI,OAAQ,EAAI,CAC5D,CAAS,GAAK10C,GAAmB,GAAI,EAAI,CACzC,EAAS,EAAG0zC,EAAU,EAEpB,CACF,CAAC,EACKwB,GAAiC1B,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECzDhG,IAAIsB,GAAW,mDACXC,GAAwB,sLACxBC,GAAmB,2OAEnBC,GAAgB,0EAGhBC,GAAW,0DAGXC,GAA0B,8HAE1BC,GAAiB,gEACjBC,GAAkB,8DAGlBC,GAAW,gHAIXC,GAAiB,6HAMjBC,GAAiB,2GAEjBC,GAAW,iCACXC,GAAU,iCAIVC,GAAU,6JC7Bd,MAAMtC,GAAa,CAAC,cAAe,YAAY,EACzCC,GAAa,CACjB,IAAK,EACL,QAAS,YACT,MAAO,4BACT,EACMC,GAAa,CAAC,GAAG,EACjBmB,GAAa,CAAC,WAAW,EACzBlB,GAA4B3wC,GAAgB,CAChD,OAAQ,mBACR,MAAO,CACL,YAAa,CAAE,KAAM,OAAO,EAC5B,OAAQ,CAAE,KAAM,OAAO,EACvB,IAAK,CAAE,QAAS,EAAE,EAClB,KAAM,CAAE,QAAS,MAAM,EACvB,KAAM,CAAE,QAAS,EAAE,EACnB,KAAM,CAAE,QAAS,EAAE,CACvB,EACE,MAAM4wC,EAAS,CACbpuB,GAAYgvB,IAAU,CACpB,SAAYuB,EAAS,KAC3B,EAAM,EACF,MAAMzzD,EAAQsxD,EACRmC,EAAWzuD,GAAS,IAAM,OAAOhF,EAAM,MAAS,SAAW,GAAGA,EAAM,IAAI,KAAOA,EAAM,IAAI,EACzF0zD,EAAW1uD,GAAS,IAAM,CAC9B,GAAI,CAAChF,EAAM,KAAOA,EAAM,KACtB,OAEF,MAAM67C,EAAMkC,GAAU,SAAS/9C,EAAM,GAAG,EAClC2zD,EAAc,IAAI,UAAS,EAAG,gBAAgB9X,EAAK,eAAe,EACxE,OAAI8X,EAAY,cAAc,aAAa,EAElC,IAELA,EAAY,gBAAgB,IAC9BA,EAAY,gBAAgB,gBAAgB,IAAI,EAE3CA,EAAY,gBAAgB,UACrC,CAAC,EACD,MAAO,CAACzB,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,OAAQ,CAC7C,cAAew2B,EAAQ,KAAO,OAAS,OACvC,aAAcA,EAAQ,MAAQ,OAC9B,MAAOzxD,GAAe,CAAC,WAAY,CACjC,wBAAyByxD,EAAQ,YACjC,mBAAoBA,EAAQ,MACtC,CAAS,CAAC,EACF,KAAM,KACd,EAAS,CACAoC,EAAS,OAEHnuC,EAAS,EAAIuV,EAAmB,OAAQ,CAC7C,IAAK,EACL,UAAW44B,EAAS,KAC9B,EAAW,KAAM,EAAGnB,EAAU,IALHhtC,EAAS,EAAIuV,EAAmB,MAAOq2B,GAAY,CACpEiB,EAAmB,OAAQ,CAAE,EAAGd,EAAQ,MAAQ,KAAM,EAAGF,EAAU,CAC7E,CAAS,EAIT,EAAS,GAAIF,EAAU,EAErB,CACF,CAAC,EACK0C,GAAmC5C,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECzD5FH,GAAa,CAAC,MAAM,EACpBC,GAAa,CACjB,IAAK,EACL,MAAO,mBACT,EACMC,GAAa,CAAE,MAAO,gBAAgB,EACtCC,GAA4B3wC,GAAgB,CAChD,OAAQ,aACR,MAAO,CACL,QAAS,CAAE,QAAS,MAAM,EAC1B,UAAW,CAAE,KAAM,OAAO,EAC1B,KAAM,CAAE,QAAS,MAAM,EACvB,KAAM,CAAE,QAAS,SAAS,CAC9B,EACE,MAAM4wC,EAAS,CACb,MAAMtxD,EAAQsxD,EACRuC,EAAkB7uD,GAAS,IAAMhF,EAAM,WAAaA,EAAM,OAAS,OAAO,EAC1E8zD,EAAW9uD,GAAS,IAAM,CAC9B,OAAQhF,EAAM,KAAI,CAChB,IAAK,QACH,OAAO6yD,GACT,IAAK,UACH,OAAOG,GACT,IAAK,OACH,OAAOK,GAET,QACE,OAAOV,EACjB,CACI,CAAC,EACD,MAAO,CAACT,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,MAAOj7B,GAAe,CAAC,WAAY,CACjC,CAAC,aAAayxD,EAAQ,IAAI,EAAE,EAAGA,EAAQ,KACvC,mBAAoBzjD,EAAM+iD,EAAQ,CAC5C,CAAS,CAAC,EACF,KAAMiD,EAAgB,MAAQ,QAAU,MAChD,EAAS,CACD5uC,GAAWitC,EAAK,OAAQ,OAAQ,GAAI,IAAM,CACxCzsC,GAAY5X,EAAM+lD,EAAgB,EAAG,CACnC,KAAME,EAAS,MACf,MAAOj0D,GAAe,CAAC,iBAAkB,CAAE,0BAA2ByxD,EAAQ,OAAO,CAAE,CAAC,EACxF,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,OAAQ,OAAO,CAAC,CACvC,EAAW,EAAI,EACPc,EAAmB,MAAO,KAAM,CAC9Bd,EAAQ,SAAW/rC,EAAS,EAAIuV,EAAmB,IAAKq2B,GAAYvvD,GAAgB0vD,EAAQ,OAAO,EAAG,CAAC,GAAK9zC,GAAmB,GAAI,EAAI,EACvIyH,GAAWitC,EAAK,OAAQ,UAAW,GAAI,IAAM,CAC3CE,EAAmB,IAAKhB,GAAYxvD,GAAgB0vD,EAAQ,IAAI,EAAG,CAAC,CAChF,EAAa,EAAI,CACjB,CAAS,CACT,EAAS,GAAIJ,EAAU,EAErB,CACF,CAAC,EACK6C,GAA6B/C,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,wECzCvFA,GAAU,CACb,KAAM,iBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,mtCAAmtC,iDAX/tC4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,wCACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,kECO/B7C,GAAU,CACb,KAAM,+BACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,yFAAyF,iDAXrG4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,wDACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,kECbrB,SAASI,GAASC,EAAWC,EAAO,IAAKtkD,EAAU,GAAI,CACrE,GAAI,OAAOqkD,GAAc,WACxB,MAAM,IAAI,UAAU,wDAAwD,OAAOA,CAAS,KAAK,EAGlG,GAAIC,EAAO,EACV,MAAM,IAAI,WAAW,8BAA8B,EAGpD,GAAI,OAAOtkD,GAAY,UACtB,MAAM,IAAI,UAAU,4FAA4F,EAGjH,KAAM,CAAC,UAAAC,CAAS,EAAID,EAEpB,IAAIukD,EACAC,EACAC,EACA5G,EACAjlD,EAEJ,SAASlC,GAAM,CACd,MAAMguD,EAAcH,EACdI,EAAgBH,EACtB,OAAAD,EAAgB,OAChBC,EAAkB,OAClB5rD,EAASyrD,EAAU,MAAMK,EAAaC,CAAa,EAC5C/rD,CACR,CAEA,SAASgsD,GAAQ,CAChB,MAAMhyD,EAAO,KAAK,IAAG,EAAKirD,EAEtBjrD,EAAO0xD,GAAQ1xD,GAAQ,EAC1B6xD,EAAY,WAAWG,EAAON,EAAO1xD,CAAI,GAEzC6xD,EAAY,OAEPxkD,IACJrH,EAASlC,EAAG,GAGf,CAEA,MAAMmuD,EAAY,YAAaC,EAAY,CAC1C,GACCP,GACG,OAASA,GACT,OAAO,eAAe,IAAI,IAAM,OAAO,eAAeA,CAAa,EAEtE,MAAM,IAAI,MAAM,wEAAwE,EAGzFA,EAAgB,KAChBC,EAAkBM,EAClBjH,EAAY,KAAK,IAAG,EAEpB,MAAMkH,EAAU9kD,GAAa,CAACwkD,EAM9B,GAJKA,IACJA,EAAY,WAAWG,EAAON,CAAI,GAG/BS,EACH,OAAAnsD,EAASlC,EAAG,EACLkC,CAIT,EAEA,cAAO,eAAeisD,EAAW,YAAa,CAC7C,KAAM,CACL,OAAOJ,IAAc,MACtB,CACF,CAAE,EAEDI,EAAU,MAAQ,IAAM,CAClBJ,IAIL,aAAaA,CAAS,EACtBA,EAAY,OACZF,EAAgB,OAChBC,EAAkB,OACnB,EAEAK,EAAU,MAAQ,IAAM,CAClBJ,GAILI,EAAU,QAAO,CAClB,EAEAA,EAAU,QAAU,IAAM,CACzBjsD,EAASlC,EAAG,EAEZmuD,EAAU,MAAK,CAChB,EAEOA,CACR,CCeA,SAASG,GAAkBv3D,EAAIuF,EAAc,CAC5C,OAAIF,GAAe,GAClBC,GAAetF,EAAIuF,CAAY,EACxB,IAED,EACR,CA0IA,MAAMiyD,GAAW,OAAO,OAAW,KAAe,OAAO,SAAa,IACrD,OAAO,kBAAsB,KAAe,sBAAsB,kBAEnF,MAAMC,GAAcx5D,GAAQA,GAAO,KAI7By5D,GAAW,OAAO,UAAU,SAC5Bn4D,GAAYtB,GAAQy5D,GAAS,KAAKz5D,CAAG,IAAM,kBAI3Cy2C,GAAO,IAAM,CAAC,EAoRpB,SAASijB,GAAQj4D,EAAO,CACvB,OAAO,MAAM,QAAQA,CAAK,EAAIA,EAAQ,CAACA,CAAK,CAC7C,CAiBA,SAASk4D,GAAmBjvD,EAAQ,CACnC,OAAiBgQ,GAAkB,CACpC,CAglBA,SAASk/C,GAAa73D,EAAI83D,EAAO,GAAMnvD,EAAQ,CAC1CivD,GAAyB,EAAGz4C,GAAUnf,EAAI2I,CAAM,EAC3CmvD,EAAM93D,EAAE,EACZsV,GAAStV,CAAE,CACjB,CA8eA,SAAS+3D,GAAczlD,EAAI0lD,EAAW,IAAKzlD,EAAU,GAAI,CACxD,KAAM,CAAE,UAAAC,EAAY,GAAM,kBAAAylD,EAAoB,EAAK,EAAK1lD,EACxD,IAAI2lD,EAAQ,KACZ,MAAMpG,EAAW/hD,GAAW,EAAK,EACjC,SAASooD,GAAQ,CACZD,IACH,cAAcA,CAAK,EACnBA,EAAQ,KAEV,CACA,SAASE,GAAQ,CAChBtG,EAAS,MAAQ,GACjBqG,EAAK,CACN,CACA,SAASE,GAAS,CACjB,MAAMC,EAAgBloD,GAAQ4nD,CAAQ,EAClCM,GAAiB,IACrBxG,EAAS,MAAQ,GACbmG,GAAmB3lD,EAAE,EACzB6lD,EAAK,EACDrG,EAAS,QAAOoG,EAAQ,YAAY5lD,EAAIgmD,CAAa,GAC1D,CACA,OAAI9lD,GAAaglD,IAAUa,EAAM,GAC7Br0D,GAAMg0D,CAAQ,GAAK,OAAOA,GAAa,aAAYT,GAAkBllD,GAAM2lD,EAAU,IAAM,CAC1FlG,EAAS,OAAS0F,IAAUa,EAAM,CACvC,CAAC,CAAC,EACFd,GAAkBa,CAAK,EAChB,CACN,SAAUjpD,GAAgB2iD,CAAQ,EAClC,MAAAsG,EACA,OAAAC,CACF,CACA,CAgRA,SAASE,GAAeloD,EAAQiC,EAAIC,EAAS,CAC5C,OAAOF,GAAMhC,EAAQiC,EAAI,CACxB,GAAGC,EACH,UAAW,EACb,CAAE,CACF,CCzwDA,MAAMimD,GAAgBhB,GAAW,OAAS,OAW1C,SAASiB,GAAaC,EAAO,CAC5B,IAAIC,EACJ,MAAMC,EAAQxoD,GAAQsoD,CAAK,EAC3B,OAAQC,EAAqDC,GAAM,OAAS,MAAQD,IAAS,OAASA,EAAOC,CAC9G,CAGA,SAASC,MAAoBvuD,EAAM,CAClC,MAAMuhB,EAAW,CAACltB,EAAI6wB,EAAOspC,EAAUvmD,KACtC5T,EAAG,iBAAiB6wB,EAAOspC,EAAUvmD,CAAO,EACrC,IAAM5T,EAAG,oBAAoB6wB,EAAOspC,EAAUvmD,CAAO,GAEvDwmD,EAAoB1xD,GAAS,IAAM,CACxC,MAAM2xD,EAAOrB,GAAQvnD,GAAQ9F,EAAK,CAAC,CAAC,CAAC,EAAE,OAAQ1D,GAAMA,GAAK,IAAI,EAC9D,OAAOoyD,EAAK,MAAOpyD,GAAM,OAAOA,GAAM,QAAQ,EAAIoyD,EAAO,MAC1D,CAAC,EACD,OAAOT,GAAe,IAAM,CAC3B,IAAIU,EAAuBC,EAC3B,MAAO,EACLD,GAAyBC,EAAyBH,EAAkB,SAAW,MAAQG,IAA2B,OAAS,OAASA,EAAuB,IAAKtyD,GAAM6xD,GAAa7xD,CAAC,CAAC,KAAO,MAAQqyD,IAA0B,OAASA,EAAwB,CAACT,EAAa,EAAE,OAAQ5xD,GAAMA,GAAK,IAAI,EACvS+wD,GAAQvnD,GAAQ2oD,EAAkB,MAAQzuD,EAAK,CAAC,EAAIA,EAAK,CAAC,CAAC,CAAC,EAC5DqtD,GAAQznD,EAAM6oD,EAAkB,MAAQzuD,EAAK,CAAC,EAAIA,EAAK,CAAC,CAAC,CAAC,EAC1D8F,GAAQ2oD,EAAkB,MAAQzuD,EAAK,CAAC,EAAIA,EAAK,CAAC,CAAC,CACtD,CACC,EAAG,CAAC,CAAC6uD,EAAaC,EAAYC,EAAeC,CAAW,EAAGC,EAAG1kB,IAAc,CAC3E,GAAI,CAA4DskB,GAAY,QAAW,CAA0DC,GAAW,QAAW,CAAgEC,GAAc,OAAS,OAC9P,MAAMG,EAAej6D,GAAS+5D,CAAW,EAAI,CAAE,GAAGA,CAAW,EAAKA,EAC5DlnD,EAAW+mD,EAAY,QAASx6D,GAAOy6D,EAAW,QAAS5pC,GAAU6pC,EAAc,IAAKP,GAAajtC,EAASltB,EAAI6wB,EAAOspC,EAAUU,CAAY,CAAC,CAAC,CAAC,EACxJ3kB,EAAU,IAAM,CACfziC,EAAS,QAASpS,GAAOA,EAAE,CAAE,CAC9B,CAAC,CACF,EAAG,CAAE,MAAO,OAAQ,CACrB,CAuGA,SAASy5D,IAAa,CACrB,MAAMvrC,EAAYne,GAAW,EAAK,EAC5BkE,EAAW0E,GAAkB,EACnC,OAAI1E,GAAUkL,GAAU,IAAM,CAC7B+O,EAAU,MAAQ,EACnB,EAAGja,CAAQ,EACJia,CACR,CAIA,SAASwrC,GAAaxrD,EAAU,CAC/B,MAAMggB,EAAYurC,GAAU,EAC5B,OAAOpyD,GAAS,KACf6mB,EAAU,MACH,EAAQhgB,IACf,CACF,CAwFA,SAASyrD,GAAmBC,EAAW,CACtC,OAAI,OAAOA,GAAc,WAAmBA,EACnC,OAAOA,GAAc,SAAkBpqC,GAAUA,EAAM,MAAQoqC,EAC/D,MAAM,QAAQA,CAAS,EAAWpqC,GAAUoqC,EAAU,SAASpqC,EAAM,GAAG,EAC1E,IAAM,EACd,CACA,SAASqqC,MAAevvD,EAAM,CAC7B,IAAItM,EACAmuB,EACA5Z,EAAU,GACVjI,EAAK,SAAW,GACnBtM,EAAMsM,EAAK,CAAC,EACZ6hB,EAAU7hB,EAAK,CAAC,EAChBiI,EAAUjI,EAAK,CAAC,GACNA,EAAK,SAAW,EAAO,OAAOA,EAAK,CAAC,GAAM,UACpDtM,EAAM,GACNmuB,EAAU7hB,EAAK,CAAC,EAChBiI,EAAUjI,EAAK,CAAC,IAEhBtM,EAAMsM,EAAK,CAAC,EACZ6hB,EAAU7hB,EAAK,CAAC,IAGhBtM,EAAM,GACNmuB,EAAU7hB,EAAK,CAAC,GAEjB,KAAM,CAAE,OAAA3B,EAAS6vD,GAAe,UAAAsB,EAAY,UAAW,QAAAC,EAAU,GAAO,OAAAC,EAAS,EAAK,EAAKznD,EACrF0nD,EAAYN,GAAmB37D,CAAG,EAKxC,OAAO66D,GAAiBlwD,EAAQmxD,EAJdlzD,GAAM,CACnBA,EAAE,QAAUwJ,GAAQ4pD,CAAM,GAC1BC,EAAUrzD,CAAC,GAAGulB,EAAQvlB,CAAC,CAC5B,EACqDmzD,CAAO,CAC7D,CAsjFA,SAASG,GAAkBvxD,EAAQuF,EAAUqE,EAAU,GAAI,CAC1D,KAAM,CAAE,OAAA4tC,EAASqY,GAAe,GAAG2B,CAAe,EAAK5nD,EACvD,IAAI6nD,EACJ,MAAMC,EAA8BX,GAAa,IAAMvZ,GAAU,mBAAoBA,CAAM,EACrFn4C,EAAU,IAAM,CACjBoyD,IACHA,EAAS,WAAU,EACnBA,EAAW,OAEb,EACME,EAAYjoD,GAAMhL,GAAS,IAAM,CACtC,MAAMkzD,EAAWnqD,GAAQzH,CAAM,EAC/B,OAAO,MAAM,QAAQ4xD,CAAQ,EAAIA,EAAS,IAAK57D,GAAO85D,GAAa95D,CAAE,CAAC,EAAI,CAAC85D,GAAa8B,CAAQ,CAAC,CAClG,CAAC,EAAIC,GAAQ,CAEZ,GADAxyD,EAAO,EACHqyD,EAAY,OAASla,EAAQ,CAChCia,EAAW,IAAI,eAAelsD,CAAQ,EACtC,UAAWusD,KAAOD,EAASC,GAAKL,EAAS,QAAQK,EAAKN,CAAe,CACtE,CACD,EAAG,CACF,UAAW,GACX,MAAO,MACT,CAAE,EACKO,EAAO,IAAM,CAClB1yD,EAAO,EACPsyD,EAAS,CACV,EACA,OAAA/C,GAAkBmD,CAAI,EACf,CACN,YAAAL,EACA,KAAAK,CACF,CACA,CA2LA,SAASC,GAAehyD,EAAQiyD,EAAc,CAC7C,MAAO,EACP,OAAQ,CACT,EAAGroD,EAAU,GAAI,CAChB,KAAM,CAAE,OAAA4tC,EAASqY,GAAe,IAAAqC,EAAM,aAAa,EAAKtoD,EAClDyyB,EAAQ39B,GAAS,IAAM,CAC5B,IAAIyzD,EACJ,OAAQA,EAAgBrC,GAAa9vD,CAAM,KAAO,MAAQmyD,IAAkB,SAAWA,EAAgBA,EAAc,gBAAkB,MAAQA,IAAkB,OAAS,OAASA,EAAc,SAAS,KAAK,CAChN,CAAC,EACKC,EAAQhrD,GAAW6qD,EAAY,KAAK,EACpCI,EAASjrD,GAAW6qD,EAAY,MAAM,EACtC,CAAE,KAAMK,CAAK,EAAKf,GAAkBvxD,EAAQ,CAAC,CAACigD,CAAK,IAAM,CAC9D,MAAMsS,EAAUL,IAAQ,aAAejS,EAAM,cAAgBiS,IAAQ,cAAgBjS,EAAM,eAAiBA,EAAM,0BAClH,GAAIzI,GAAUnb,EAAM,MAAO,CAC1B,MAAMm2B,EAAQ1C,GAAa9vD,CAAM,EACjC,GAAIwyD,EAAO,CACV,MAAMC,EAAOD,EAAM,sBAAqB,EACxCJ,EAAM,MAAQK,EAAK,MACnBJ,EAAO,MAAQI,EAAK,MACrB,CACD,SAAWF,EAAS,CACnB,MAAMG,EAAgB1D,GAAQuD,CAAO,EACrCH,EAAM,MAAQM,EAAc,OAAO,CAAC1vD,EAAK,CAAE,WAAA2vD,KAAiB3vD,EAAM2vD,EAAY,CAAC,EAC/EN,EAAO,MAAQK,EAAc,OAAO,CAAC1vD,EAAK,CAAE,UAAA4vD,KAAgB5vD,EAAM4vD,EAAW,CAAC,CAC/E,MACCR,EAAM,MAAQnS,EAAM,YAAY,MAChCoS,EAAO,MAAQpS,EAAM,YAAY,MAEnC,EAAGr2C,CAAO,EACVslD,GAAa,IAAM,CAClB,MAAM2D,EAAM/C,GAAa9vD,CAAM,EAC/B,GAAI6yD,GAAO,gBAAiBA,EAAK,GAAIX,IAAQ,eAAiB1a,EAAQ,CACrE,MAAMsb,EAAKtb,EAAO,iBAAiBqb,CAAG,EAChCE,EAAO,OAAO,WAAWD,EAAG,WAAW,EAAI,OAAO,WAAWA,EAAG,YAAY,EAC5EE,EAAO,OAAO,WAAWF,EAAG,UAAU,EAAI,OAAO,WAAWA,EAAG,aAAa,EAC5EG,EAAM,OAAO,WAAWH,EAAG,eAAe,EAAI,OAAO,WAAWA,EAAG,gBAAgB,EACnFI,EAAM,OAAO,WAAWJ,EAAG,cAAc,EAAI,OAAO,WAAWA,EAAG,iBAAiB,EACzFV,EAAM,MAAQS,EAAI,YAAcE,EAAOE,EACvCZ,EAAO,MAAQQ,EAAI,aAAeG,EAAOE,CAC1C,MACCd,EAAM,MAAQS,EAAI,YAClBR,EAAO,MAAQQ,EAAI,kBAEXA,IACRT,EAAM,MAAQH,EAAY,MAC1BI,EAAO,MAAQJ,EAAY,OAE7B,CAAC,EACD,MAAMkB,EAAQzpD,GAAM,IAAMomD,GAAa9vD,CAAM,EAAI6yD,GAAQ,CACxDT,EAAM,MAAQS,EAAMZ,EAAY,MAAQ,EACxCI,EAAO,MAAQQ,EAAMZ,EAAY,OAAS,CAC3C,CAAC,EACD,SAASF,GAAO,CACfO,EAAK,EACLa,EAAK,CACN,CACA,MAAO,CACN,MAAAf,EACA,OAAAC,EACA,KAAAN,CACF,CACA,CAWA,SAASqB,GAAwBpzD,EAAQuF,EAAUqE,EAAU,GAAI,CAChE,KAAM,CAAE,KAAAwe,EAAM,WAAAirC,EAAY,UAAAC,EAAY,EAAG,OAAA9b,EAASqY,GAAe,UAAAhmD,EAAY,EAAI,EAAKD,EAChF8nD,EAA8BX,GAAa,IAAMvZ,GAAU,yBAA0BA,CAAM,EAC3F+b,EAAU70D,GAAS,IACjBswD,GAAQvnD,GAAQzH,CAAM,CAAC,EAAE,IAAI8vD,EAAY,EAAE,OAAOhB,EAAU,CACnE,EACD,IAAIzvD,EAAU0sC,GACd,MAAMod,EAAW/hD,GAAWyC,CAAS,EAC/B8nD,EAAYD,EAAY,MAAQhoD,GAAM,IAAM,CACjD6pD,EAAQ,MACRzD,GAAa1nC,CAAI,EACjB3gB,GAAQ4rD,CAAU,EAClBlK,EAAS,KACX,EAAI,CAAC,CAACoK,EAASnrC,EAAMirC,CAAU,IAAM,CAGnC,GAFAh0D,EAAO,EACH,CAAC8pD,EAAS,OACV,CAACoK,EAAQ,OAAQ,OACrB,MAAM9B,EAAW,IAAI,qBAAqBlsD,EAAU,CACnD,KAAMuqD,GAAa1nC,CAAI,EACvB,WAAAirC,EACA,UAAAC,CACH,CAAG,EACDC,EAAQ,QAASv9D,GAAOA,GAAMy7D,EAAS,QAAQz7D,CAAE,CAAC,EAClDqJ,EAAU,IAAM,CACfoyD,EAAS,WAAU,EACnBpyD,EAAU0sC,EACX,CACD,EAAG,CACF,UAAAliC,EACA,MAAO,MACT,CAAE,EAAIkiC,GACCgmB,EAAO,IAAM,CAClB1yD,EAAO,EACPsyD,EAAS,EACTxI,EAAS,MAAQ,EAClB,EACA,OAAAyF,GAAkBmD,CAAI,EACf,CACN,YAAAL,EACA,SAAAvI,EACA,OAAQ,CACP9pD,EAAO,EACP8pD,EAAS,MAAQ,EAClB,EACA,QAAS,CACRA,EAAS,MAAQ,EAClB,EACA,KAAA4I,CACF,CACA,CAs1GA,SAASyB,GAASxzD,EAAQ4J,EAAU,GAAI,CACvC,KAAM,CAAE,UAAA0pD,EAAY,GAAI,QAAAG,EAAS,WAAAC,EAAY,aAAAC,EAAc,QAAAvC,EAAU,EAAI,EAAKxnD,EACxEgqD,EAAcvtD,GAAS,CAC5B,EAAG,EACH,EAAG,CACL,CAAE,EACKwtD,EAAYxtD,GAAS,CAC1B,EAAG,EACH,EAAG,CACL,CAAE,EACKytD,EAAQp1D,GAAS,IAAMk1D,EAAY,EAAIC,EAAU,CAAC,EAClDE,EAAQr1D,GAAS,IAAMk1D,EAAY,EAAIC,EAAU,CAAC,EAClD,CAAE,IAAAxtB,EAAK,IAAA2tB,CAAG,EAAK,KACfC,EAAsBv1D,GAAS,IAAM2nC,EAAI2tB,EAAIF,EAAM,KAAK,EAAGE,EAAID,EAAM,KAAK,CAAC,GAAKT,CAAS,EACzFY,EAAY9sD,GAAW,EAAK,EAC5B+sD,EAAYz1D,GAAS,IACrBu1D,EAAoB,MACrBD,EAAIF,EAAM,KAAK,EAAIE,EAAID,EAAM,KAAK,EAAUD,EAAM,MAAQ,EAAI,OAAS,QAC/DC,EAAM,MAAQ,EAAI,KAAO,OAFE,MAGvC,EACKK,EAAuBn2D,GAAM,CAACA,EAAE,QAAQ,CAAC,EAAE,QAASA,EAAE,QAAQ,CAAC,EAAE,OAAO,EACxEo2D,EAAoB,CAACzyD,EAAG0jC,IAAM,CACnCsuB,EAAY,EAAIhyD,EAChBgyD,EAAY,EAAItuB,CACjB,EACMgvB,EAAkB,CAAC1yD,EAAG0jC,IAAM,CACjCuuB,EAAU,EAAIjyD,EACdiyD,EAAU,EAAIvuB,CACf,EACMivB,EAAkB,CACvB,QAAAnD,EACA,QAAS,CAACA,CACZ,EACOoD,EAAcv2D,GAAM,CACrBi2D,EAAU,OAAuDR,IAAWz1D,EAAGk2D,EAAU,KAAK,EAClGD,EAAU,MAAQ,EACnB,EACMO,EAAQ,CACbvE,GAAiBlwD,EAAQ,aAAe/B,GAAM,CAC7C,GAAIA,EAAE,QAAQ,SAAW,EAAG,OAC5B,KAAM,CAAC2D,EAAG0jC,CAAC,EAAI8uB,EAAoBn2D,CAAC,EACpCo2D,EAAkBzyD,EAAG0jC,CAAC,EACtBgvB,EAAgB1yD,EAAG0jC,CAAC,EACgCquB,IAAa11D,CAAC,CACnE,EAAGs2D,CAAe,EAClBrE,GAAiBlwD,EAAQ,YAAc/B,GAAM,CAC5C,GAAIA,EAAE,QAAQ,SAAW,EAAG,OAC5B,KAAM,CAAC2D,EAAG0jC,CAAC,EAAI8uB,EAAoBn2D,CAAC,EACpCq2D,EAAgB1yD,EAAG0jC,CAAC,EAChBivB,EAAgB,SAAW,CAACA,EAAgB,SAAW,KAAK,IAAIT,EAAM,KAAK,EAAI,KAAK,IAAIC,EAAM,KAAK,GAAG91D,EAAE,eAAc,EACtH,CAACi2D,EAAU,OAASD,EAAoB,QAAOC,EAAU,MAAQ,IACjEA,EAAU,OAAiDT,IAAQx1D,CAAC,CACzE,EAAGs2D,CAAe,EAClBrE,GAAiBlwD,EAAQ,CAAC,WAAY,aAAa,EAAGw0D,EAAYD,CAAe,CACnF,EAEC,MAAO,CACN,UAAAL,EACA,UAAAC,EACA,YAAAP,EACA,UAAAC,EACA,QAASC,EACT,QAASC,EACT,KARY,IAAMU,EAAM,QAAS/pD,GAAMA,GAAG,CAS5C,CACA,CCjuNA,MAAMgqD,EAAe,CACnB,OACA,YAAYC,EAAgB,CAC1B,KAAK,OAAS,CACZ,eAAAA,EACA,aAAc,EACpB,CACE,CASA,gBAAgBtN,EAAQ,CACtB,MAAMuN,EAAO,OAAO,OAAOvN,EAAO,aAAa,EAAE,GAAK,EAAE,EAAE,IAAI,CAAC,CAAE,MAAAwN,EAAO,aAAcC,EAAa,OAAAC,KAC7FD,IAAgB,OACX,CAAC,IAAID,CAAK,OAAOC,CAAW,IAAKC,CAAM,EAEzC,CAACF,EAAOE,EAAO,CAAC,CAAC,CACzB,EACD,KAAK,OAAO,aAAe,CACzB,GAAG,KAAK,OAAO,aACf,GAAG,OAAO,YAAYH,CAAI,CAChC,CACE,CAOA,QAAQvU,EAAU2U,EAAe,GAAI,CACnC,OAAO5O,GAAU,GAAI/F,EAAU2U,EAAc,OAAQ,CAAE,OAAQ,KAAK,OAAQ,CAC9E,CASA,SAASC,EAAU3N,EAAQ4N,EAAOF,EAAe,GAAI,CACnD,OAAO/N,GAAgB,GAAIgO,EAAU3N,EAAQ4N,EAAOF,EAAc,CAAE,OAAQ,KAAK,OAAQ,CAC3F,CACF,CACA,MAAMG,EAAe,CACnB,MAAQ,GACR,SAAW,KACX,aAAe,GACf,YAAYpP,EAAU,CACpB,YAAK,SAAWA,EACT,IACT,CAOA,cAAe,CACb,OAAO,KAAK,eAAc,CAC5B,CAKA,gBAAiB,CACf,OAAO,KAAK,YAAYF,GAAW,EAAG,QAAQ,IAAK,GAAG,CAAC,CACzD,CASA,eAAeE,EAAU7lC,EAAM,CAC7B,YAAK,aAAa6lC,CAAQ,EAAI7lC,EACvB,IACT,CACA,iBAAkB,CAChB,YAAK,MAAQ,GACN,IACT,CACA,OAAQ,CACF,KAAK,OACP,QAAQ,MAAM,0CAA0C,KAAK,QAAQ,EAAE,EAEzE,MAAMmY,EAAU,IAAIq8B,GAAgB,GAAMnN,GAAU,EAAG,KAAK,QAAQ,CAAC,EACrE,OAAI,KAAK,YAAY,KAAK,cACxBlvB,EAAQ,gBAAgB,KAAK,aAAa,KAAK,QAAQ,CAAC,EAEnDA,CACT,CACF,CACA,SAAS+8B,IAAoB,CAC3B,OAAO,IAAID,EACb,CCrGA,MAAME,GAAUD,GAAiB,EAAG,eAAc,EAAG,MAAK,EACpD78D,GAAI,IAAIoJ,IAAS0zD,GAAQ,SAAS,GAAG1zD,CAAI,EACzCi3B,GAAI,IAAIj3B,IAAS0zD,GAAQ,QAAQ,GAAG1zD,CAAI,EAC9C,SAASuhB,MAAYoyC,EAAQ,CAC3B,UAAWC,KAASD,EAClB,GAAI,CAAAC,EAAM,WAGV,UAAW,CAAE,EAAGxP,EAAU,EAAGyP,CAAY,IAAMD,EAAO,CACpD,GAAIxP,IAAaF,MAAiB,CAAC2P,EACjC,SAEF,MAAMC,EAAe,OAAO,YAAY,OAAO,QAAQD,CAAY,EAAE,IAAI,CAAC,CAAC1oD,EAAI/V,CAAK,IAAM,CACxF+V,EACA,CACE,MAAOA,EACP,aAAc/V,EAAM,EACpB,OAAQA,EAAM,CACxB,CACA,CAAO,CAAC,EACFs+D,GAAQ,gBAAgB,CACtB,aAAc,CACZ,GAAII,CACd,CACA,CAAO,CACH,CACAF,EAAM,WAAa,GAEvB,CAGA,MAAMG,GAAK,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,GAAK,WAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,WAAW,GAAK,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,GAAK,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,iBAAiB,GAAK,cAAe,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,cAAc,GAAK,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,IAAI,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,IAAI,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,aAAa,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,KAAK,GAAK,WAAY,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,IAAI,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,oBAAqB,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,WAAY,CAAE,EAAK,CAAC,IAAI,CAAC,EAAI,cAAe,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,EAAI,EAE5qQC,GAAK,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,MAAM,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,MAAM,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,aAAa,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,IAAI,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,OAAO,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,OAAO,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,EAAI,EAG3nGC,GAAK,CAAC,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,MAAO,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,MAAS,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,GAAK,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,UAAU,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,WAAW,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,GAAK,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,WAAW,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,GAAK,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,IAAM,CAAE,EAAK,QAAS,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,eAAe,GAAK,MAAS,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,OAAO,GAAK,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,MAAM,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,GAAK,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,QAAQ,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,GAAK,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,GAAK,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,KAAK,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,UAAU,GAAK,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,SAAS,GAAK,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,KAAK,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,GAAK,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,iBAAiB,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,GAAK,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,GAAK,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,WAAW,GAAK,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,UAAU,GAAK,MAAS,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,IAAO,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,IAAO,CAAE,EAAK,CAAC,KAAK,GAAK,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,MAAS,CAAE,EAAK,CAAC,OAAO,GAAK,MAAS,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,IAAO,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,EAAI,EACznPC,GAAK,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,QAAQ,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,WAAY,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,EAAI,EAK1xGC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,2BAA2B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,qCAAqC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,oCAAoC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,oCAAoC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,oCAAoC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,oCAAoC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,qCAAqC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,kCAAkC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,8BAA8B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,8BAA8B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,uCAAuC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,kCAAkC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,mCAAmC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,8BAA8B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,yCAAyC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,8BAA8B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,GAAK,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,6BAA8B,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,CAAE,EAK/wTC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,kBAAkB,GAAK,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,GAAK,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,GAAK,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,GAAK,aAAc,CAAE,EAAK,CAAC,YAAY,GAAK,QAAW,CAAE,EAAK,CAAC,SAAS,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,mBAAmB,GAAK,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,kBAAkB,GAAK,oBAAqB,CAAE,EAAK,CAAC,yBAAyB,GAAK,aAAc,CAAE,EAAK,CAAC,aAAa,GAAK,QAAW,CAAE,EAAK,CAAC,UAAU,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,GAAK,aAAc,CAAE,EAAK,CAAC,gBAAgB,GAAK,QAAW,CAAE,EAAK,CAAC,SAAS,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,sCAAsC,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,MAAM,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,eAAe,GAAK,oBAAqB,CAAE,EAAK,CAAC,kBAAkB,GAAK,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,OAAO,GAAK,oBAAqB,CAAE,EAAK,CAAC,iBAAiB,GAAK,aAAc,CAAE,EAAK,CAAC,MAAM,GAAK,QAAW,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,sBAAsB,GAAK,oBAAqB,CAAE,EAAK,CAAC,mCAAmC,GAAK,aAAc,CAAE,EAAK,CAAC,gBAAgB,GAAK,QAAW,CAAE,EAAK,CAAC,WAAW,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,oBAAoB,GAAK,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,GAAK,aAAc,CAAE,EAAK,CAAC,gBAAgB,GAAK,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,yBAAyB,GAAK,aAAc,CAAE,EAAK,CAAC,uBAAuB,GAAK,QAAW,CAAE,EAAK,CAAC,UAAU,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,YAAY,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,MAAM,GAAK,oBAAqB,CAAE,EAAK,CAAC,eAAe,GAAK,aAAc,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,iBAAkB,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,aAAc,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,QAAW,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,EAAI,EACnzTC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,UAAU,GAAK,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,GAAM,CAAE,EAAK,MAAO,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,GAAK,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,GAAK,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,GAAK,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,WAAW,GAAK,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,UAAU,GAAK,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,UAAU,GAAK,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,qBAAqB,GAAK,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,GAAK,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,GAAK,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,GAAK,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,gBAAgB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,oBAAoB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,+BAA+B,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,uBAAuB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,mBAAmB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,iBAAiB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,sBAAsB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,aAAa,GAAK,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,GAAK,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,GAAK,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,GAAK,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,GAAK,eAAgB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,GAAK,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,GAAK,eAAgB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,MAAM,GAAK,eAAgB,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,MAAM,GAAK,eAAgB,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,MAAM,GAAK,eAAgB,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,EAAI,EAC3+KC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,GAAM,CAAE,EAAK,MAAO,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,MAAS,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,EAAI,EAGn+FC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,MAAO,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,gCAAgC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,gCAAgC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,+BAA+B,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,iCAAiC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,qCAAqC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,oBAAqB,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,EAAI,EAGvnHC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,GAAM,CAAE,EAAK,MAAO,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,8BAA8B,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,4BAA4B,GAAK,gBAAiB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,oCAAoC,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,oCAAoC,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,oCAAoC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,kCAAkC,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,gCAAgC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,6BAA6B,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,gCAAgC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,wBAAwB,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,mCAAmC,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,mCAAmC,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,0BAA0B,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,iCAAiC,GAAK,gBAAiB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,wBAAwB,GAAK,gBAAiB,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,gBAAiB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,kCAAkC,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,+BAA+B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,0BAA2B,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,EAAI,EACx0JC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,UAAU,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,aAAc,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,EAAI,EAM54GC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,MAAO,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,gBAAgB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,QAAS,EAAK,IAAM,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,yBAAyB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,cAAc,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,CAAE,EAC7sFC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,8BAA8B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,oCAAoC,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,+BAA+B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,wCAAwC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,wCAAwC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,kCAAkC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,kCAAkC,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,2CAA2C,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,iCAAiC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,iCAAiC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,iCAAiC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,iCAAiC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,2BAA2B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,oCAAoC,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,kCAAkC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,oCAAoC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,gDAAgD,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,+BAA+B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,kCAAkC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,2BAA2B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,8BAA8B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,gCAAgC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,+CAA+C,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,8BAA8B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,mCAAmC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,iCAAiC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,2BAA2B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,iCAAiC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,iCAAiC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,kCAAkC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,gCAAgC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,4BAA4B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,2BAA2B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,kCAAkC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,wBAAyB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,qBAAsB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,yBAA0B,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,CAAE,EACl4UC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,cAAc,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,WAAW,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,aAAa,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,QAAQ,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,YAAa,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,CAAE,EAGpzFC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,YAAY,EAAG,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uCAAuC,GAAK,SAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,yCAAyC,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,GAAK,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,GAAK,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,SAAS,GAAK,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,GAAK,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,UAAU,GAAK,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,OAAO,GAAK,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,GAAK,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,GAAK,SAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qCAAqC,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,UAAU,GAAK,kBAAmB,CAAE,EAAK,CAAC,sCAAsC,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,GAAK,kBAAmB,CAAE,EAAK,CAAC,qCAAqC,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,sCAAsC,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,GAAK,SAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,GAAK,kBAAmB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,GAAK,kBAAmB,CAAE,EAAK,CAAC,8BAA8B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mCAAmC,GAAK,SAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,+BAA+B,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,SAAS,GAAK,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,OAAO,GAAK,kBAAmB,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,UAAU,GAAK,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,aAAa,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,GAAK,SAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,YAAY,GAAK,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,GAAG,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,cAAc,GAAK,SAAY,CAAE,EAAK,CAAC,GAAG,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,GAAG,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,cAAc,GAAK,SAAY,CAAE,EAAK,CAAC,GAAG,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,IAAI,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,IAAI,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,UAAU,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,cAAc,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,6BAA6B,GAAK,SAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,eAAe,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,QAAQ,GAAK,kBAAmB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,GAAK,SAAY,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,iBAAiB,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,GAAK,SAAY,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,SAAS,GAAK,kBAAmB,CAAE,EAAK,CAAC,2BAA2B,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,0BAA0B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,QAAQ,GAAK,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,GAAK,kBAAmB,CAAE,EAAK,CAAC,6BAA6B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,0BAA0B,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,UAAU,GAAK,kBAAmB,CAAE,EAAK,CAAC,gCAAgC,CAAC,EAAI,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,UAAU,GAAK,kBAAmB,CAAE,EAAK,CAAC,kBAAkB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,GAAK,kBAAmB,CAAE,EAAK,CAAC,iCAAiC,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,UAAU,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qCAAqC,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,4BAA4B,GAAK,SAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,GAAK,SAAY,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,WAAW,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,GAAK,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,WAAW,GAAK,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,kBAAkB,GAAK,SAAY,CAAE,EAAK,CAAC,YAAY,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,OAAO,GAAK,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,SAAS,GAAK,kBAAmB,CAAE,EAAK,CAAC,+BAA+B,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,KAAK,GAAK,kBAAmB,CAAE,EAAK,CAAC,OAAO,CAAC,EAAI,SAAY,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,OAAO,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,OAAO,GAAK,SAAY,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,KAAQ,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,OAAO,GAAK,SAAY,CAAE,EAAK,CAAC,KAAK,CAAC,EAAI,kBAAmB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,EAAI,EAI9wVC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,gBAAgB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,0BAA0B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,aAAa,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,qBAAqB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,0BAA0B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,0BAA0B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,gBAAiB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,EAAI,EAEnrHC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,MAAM,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,YAAY,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,MAAM,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,IAAI,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,UAAU,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,KAAK,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,KAAK,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,OAAU,CAAE,EAAK,CAAC,IAAI,CAAC,CAAE,EAAI,EAGz9FC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,IAAM,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,WAAW,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,QAAQ,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,2BAA2B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,uBAAuB,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,kBAAmB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,EAAI,EAEvzHC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,+BAA+B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,kCAAkC,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,kCAAkC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,GAAM,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,+BAA+B,EAAG,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,+BAA+B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,gCAAgC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,0BAA0B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,gCAAgC,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,WAAW,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,0BAA0B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,2BAA2B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,0BAA0B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,sBAAuB,CAAE,EAAK,CAAC,OAAO,CAAC,CAAE,EAAI,EAG73IC,GAAM,CAAC,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,MAAO,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,mBAAmB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,8BAA8B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,yBAAyB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,aAAa,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,GAAM,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,2BAA2B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,kBAAkB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,4BAA4B,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,SAAS,CAAC,EAAI,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,SAAS,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,qBAAqB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,oBAAoB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,4BAA4B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,EAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,eAAe,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,uBAAuB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,mBAAmB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,wBAAwB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,oBAAoB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,cAAc,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,sBAAsB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,gBAAgB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,wBAAwB,EAAG,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,iBAAiB,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,KAAM,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,6BAA6B,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,CAAE,EAAI,CAAE,EAAK,QAAS,EAAK,CAAE,eAAgB,CAAE,EAAK,CAAC,MAAM,CAAC,CAAE,EAAI,ECpF7vHjM,GAAa,CAAC,YAAY,EAC1BC,GAAa,CAAC,QAAS,QAAQ,EAC/BC,GAAa,CAAC,MAAM,EACpBmB,GAAa,CAAC,MAAM,EACpBC,GAAa,CAAE,IAAK,CAAC,EACrBnB,GAA4B3wC,GAAgB,CAChD,OAAQ,gBACR,MAAO,CACL,WAAY,CAAE,QAAS,MAAM,EAC7B,KAAM,CAAE,QAAS,EAAE,EACnB,KAAM,CAAE,QAAS,EAAE,CACvB,EACE,MAAM4wC,EAAS,CACb,MAAMtxD,EAAQsxD,EACR8L,EAASp4D,GAAS,IAAM,CAC5B,MAAMq4D,EAAU,CAAC,OAAQ,MAAM,EAC/B,OAAIr9D,EAAM,aAAe,QAChBq9D,EACEr9D,EAAM,aAAe,OACvBq9D,EAAQ,QAAO,EAEjB,CAAC,6BAA8B,2BAA2B,CACnE,CAAC,EACD,MAAO,CAACnL,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,OAAQ,CAC7C,aAAcw2B,EAAQ,KACtB,KAAM,MACN,MAAO,mCACf,EAAS,EACA/rC,EAAS,EAAIuV,EAAmB,MAAO,CACtC,MAAOw2B,EAAQ,KACf,OAAQA,EAAQ,KAChB,QAAS,WACnB,EAAW,CACDc,EAAmB,OAAQ,CACzB,KAAMgL,EAAO,MAAM,CAAC,EACpB,EAAG,8CACf,EAAa,KAAM,EAAGhM,EAAU,EACtBgB,EAAmB,OAAQ,CACzB,KAAMgL,EAAO,MAAM,CAAC,EACpB,EAAG,8CACf,EAAa,CACD9L,EAAQ,MAAQ/rC,EAAS,EAAIuV,EAAmB,QAAS03B,GAAY5wD,GAAgB0vD,EAAQ,IAAI,EAAG,CAAC,GAAK9zC,GAAmB,GAAI,EAAI,CACjJ,EAAa,EAAG+0C,EAAU,CAC1B,EAAW,EAAGpB,EAAU,EACxB,EAAS,EAAGD,EAAU,EAEpB,CACF,CAAC,EACKoM,GAAgCtM,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC/C/F7nC,GAASqzC,EAAG,EACZ,MAAMxL,GAA4B3wC,GAAgB,CAChD,OAAQ,iBACR,MAAO,CACL,SAAU,CAAE,KAAM,SAAU,QAAS,IAAM,CAC3C,CAAC,EACD,SAAU,CAAE,KAAM,QAAS,QAAS,EAAK,EACzC,KAAM,CAAE,QAAS,MAAM,EACvB,MAAO,GACP,KAAM,CAAE,QAAS,QAAQ,EACzB,QAAS,CAAE,QAAS,UAAU,CAClC,EACE,MAAO,CAAC,OAAO,EACf,MAAM4wC,EAAS,CAAE,KAAMC,CAAM,EAAI,CAC/B,MAAMvxD,EAAQsxD,EACRpkC,EAAOqkC,EACPgM,EAAY/vD,GAAI,EAAK,EAC3B,eAAegwD,EAAYj5D,EAAG,CAC5B,GAAI,CAAAg5D,EAAU,MAGd,CAAAA,EAAU,MAAQ,GAClB,GAAI,CACF,MAAMr4C,EAAWllB,EAAM,OAAS,QAAU,GAAQ,OAC5C8I,EAAS,MAAM9I,EAAM,WAAQ,GAAQklB,EACvCpc,IAAW,IACbokB,EAAK,QAAS3oB,EAAGuE,CAAM,CAE3B,SACEy0D,EAAU,MAAQ,EACpB,EACF,CACA,MAAO,CAACrL,EAAMC,KACL5sC,EAAS,EAAIC,GAAY3X,EAAMwkD,EAAQ,EAAG,CAC/C,aAAcf,EAAQ,MACtB,SAAUA,EAAQ,SAClB,KAAMA,EAAQ,KACd,QAASA,EAAQ,QACjB,QAASkM,CACjB,EAAS,CACD,KAAM7oD,GAAQ,IAAM,CAClBsQ,GAAWitC,EAAK,OAAQ,OAAQ,GAAI,IAAM,CACxCqL,EAAU,OAASh4C,EAAS,EAAIC,GAAY3X,EAAMyvD,EAAa,EAAG,CAChE,IAAK,EACL,KAAMzvD,EAAMqxB,EAAC,EAAE,WAAW,CAExC,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKoyB,EAAQ,OAAS,QAAU/rC,EAAS,EAAIC,GAAY3X,EAAM+lD,EAAgB,EAAG,CACpG,IAAK,EACL,IAAKtC,EAAQ,IAC3B,EAAe,KAAM,EAAG,CAAC,KAAK,CAAC,GAAK9zC,GAAmB,GAAI,EAAI,CAC/D,CAAW,CACX,CAAS,EACD,QAAS7I,GAAQ,IAAM,CACrBqnB,GAAgBp6B,GAAgB0vD,EAAQ,KAAK,EAAI,IAAK,CAAC,CACjE,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,aAAc,WAAY,OAAQ,SAAS,CAAC,EAEvD,CACF,CAAC,EC1DD,IAAImM,GAAqB,CAAC,oCAAqC,qCAAsC,uCAAwC,sCAAuC,yCAA0C,qCAAsC,mDAAoD,8CAA+C,8CAA+C,+EAAgF,4DAA6D,qCAAqC,EACpkBC,GAAmCD,GAAmB,KAAK,GAAG,EAC9DE,GAAY,OAAO,QAAY,IAC/BzV,GAAUyV,GAAY,UAAY,CAAC,EAAI,QAAQ,UAAU,SAAW,QAAQ,UAAU,mBAAqB,QAAQ,UAAU,sBAC7HC,GAAc,CAACD,IAAa,QAAQ,UAAU,YAAc,SAAUrjB,EAAS,CACjF,IAAIujB,EACJ,OAAOvjB,GAAY,OAAuCujB,EAAuBvjB,EAAQ,eAAiB,MAAQujB,IAAyB,OAA3F,OAA6GA,EAAqB,KAAKvjB,CAAO,CAChM,EAAI,SAAUA,EAAS,CACrB,OAAyDA,GAAQ,aACnE,EAUIwjB,GAAW,SAAiB/hD,EAAMgiD,EAAQ,CAC5C,IAAIC,EACAD,IAAW,SACbA,EAAS,IAKX,IAAIE,EAAWliD,GAAS,OAAoCiiD,EAAqBjiD,EAAK,gBAAkB,MAAQiiD,IAAuB,OAArF,OAAuGA,EAAmB,KAAKjiD,EAAM,OAAO,EAC1LmiD,EAAQD,IAAa,IAAMA,IAAa,OAKxCn1D,EAASo1D,GAASH,GAAUhiD,IAGhC,OAAOA,EAAK,SAAY,WAAaA,EAAK,QAAQ,SAAS,EAAI+hD,GAAS/hD,EAAK,UAAU,GACvF,OAAOjT,CACT,EAOIq1D,GAAoB,SAA2BpiD,EAAM,CACvD,IAAIqiD,EAIAC,EAAWtiD,GAAS,OAAoCqiD,EAAsBriD,EAAK,gBAAkB,MAAQqiD,IAAwB,OAAvF,OAAyGA,EAAoB,KAAKriD,EAAM,iBAAiB,EAC3M,OAAOsiD,IAAa,IAAMA,IAAa,MACzC,EAQIC,GAAgB,SAAuBhiE,EAAIiiE,EAAkBC,EAAQ,CAGvE,GAAIV,GAASxhE,CAAE,EACb,MAAO,GAET,IAAIuE,EAAa,MAAM,UAAU,MAAM,MAAMvE,EAAG,iBAAiBohE,EAAiB,CAAC,EACnF,OAAIa,GAAoBrW,GAAQ,KAAK5rD,EAAIohE,EAAiB,GACxD78D,EAAW,QAAQvE,CAAE,EAEvBuE,EAAaA,EAAW,OAAO29D,CAAM,EAC9B39D,CACT,EAoCI49D,GAA4B,SAAkCC,EAAUH,EAAkBruD,EAAS,CAGrG,QAFIrP,EAAa,GACb89D,EAAkB,MAAM,KAAKD,CAAQ,EAClCC,EAAgB,QAAQ,CAC7B,IAAIrkB,EAAUqkB,EAAgB,MAAK,EACnC,GAAI,CAAAb,GAASxjB,EAAS,EAAK,EAK3B,GAAIA,EAAQ,UAAY,OAAQ,CAE9B,IAAIskB,EAAWtkB,EAAQ,iBAAgB,EACnC9b,EAAUogC,EAAS,OAASA,EAAWtkB,EAAQ,SAC/CukB,EAAmBJ,GAA0BjgC,EAAS,GAAMtuB,CAAO,EACnEA,EAAQ,QACVrP,EAAW,KAAK,MAAMA,EAAYg+D,CAAgB,EAElDh+D,EAAW,KAAK,CACd,YAAay5C,EACb,WAAYukB,CACtB,CAAS,CAEL,KAAO,CAEL,IAAIC,EAAiB5W,GAAQ,KAAK5N,EAASojB,EAAiB,EACxDoB,GAAkB5uD,EAAQ,OAAOoqC,CAAO,IAAMikB,GAAoB,CAACG,EAAS,SAASpkB,CAAO,IAC9Fz5C,EAAW,KAAKy5C,CAAO,EAIzB,IAAIyL,EAAazL,EAAQ,YAEzB,OAAOpqC,EAAQ,eAAkB,YAAcA,EAAQ,cAAcoqC,CAAO,EAKxEykB,EAAkB,CAACjB,GAAS/X,EAAY,EAAK,IAAM,CAAC71C,EAAQ,kBAAoBA,EAAQ,iBAAiBoqC,CAAO,GACpH,GAAIyL,GAAcgZ,EAAiB,CAOjC,IAAIC,EAAoBP,GAA0B1Y,IAAe,GAAOzL,EAAQ,SAAWyL,EAAW,SAAU,GAAM71C,CAAO,EACzHA,EAAQ,QACVrP,EAAW,KAAK,MAAMA,EAAYm+D,CAAiB,EAEnDn+D,EAAW,KAAK,CACd,YAAay5C,EACb,WAAY0kB,CACxB,CAAW,CAEL,MAGEL,EAAgB,QAAQ,MAAMA,EAAiBrkB,EAAQ,QAAQ,CAEnE,CACF,CACA,OAAOz5C,CACT,EAQIo+D,GAAc,SAAqBljD,EAAM,CAC3C,MAAO,CAAC,MAAM,SAASA,EAAK,aAAa,UAAU,EAAG,EAAE,CAAC,CAC3D,EAQImjD,GAAc,SAAqBnjD,EAAM,CAC3C,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,kBAAkB,EAEpC,OAAIA,EAAK,SAAW,IAQb,0BAA0B,KAAKA,EAAK,OAAO,GAAKoiD,GAAkBpiD,CAAI,IAAM,CAACkjD,GAAYljD,CAAI,EACzF,EAGJA,EAAK,QACd,EAUIojD,GAAuB,SAA8BpjD,EAAMqjD,EAAS,CACtE,IAAIC,EAAWH,GAAYnjD,CAAI,EAC/B,OAAIsjD,EAAW,GAAKD,GAAW,CAACH,GAAYljD,CAAI,EACvC,EAEFsjD,CACT,EACIC,GAAuB,SAA8B/+D,EAAGC,EAAG,CAC7D,OAAOD,EAAE,WAAaC,EAAE,SAAWD,EAAE,cAAgBC,EAAE,cAAgBD,EAAE,SAAWC,EAAE,QACxF,EACI++D,GAAU,SAAiBxjD,EAAM,CACnC,OAAOA,EAAK,UAAY,OAC1B,EACIyjD,GAAgB,SAAuBzjD,EAAM,CAC/C,OAAOwjD,GAAQxjD,CAAI,GAAKA,EAAK,OAAS,QACxC,EACI0jD,GAAuB,SAA8B1jD,EAAM,CAC7D,IAAIxO,EAAIwO,EAAK,UAAY,WAAa,MAAM,UAAU,MAAM,MAAMA,EAAK,QAAQ,EAAE,KAAK,SAAUN,EAAO,CACrG,OAAOA,EAAM,UAAY,SAC3B,CAAC,EACD,OAAOlO,CACT,EACImyD,GAAkB,SAAyBxZ,EAAOyZ,EAAM,CAC1D,QAASpjE,EAAI,EAAGA,EAAI2pD,EAAM,OAAQ3pD,IAChC,GAAI2pD,EAAM3pD,CAAC,EAAE,SAAW2pD,EAAM3pD,CAAC,EAAE,OAASojE,EACxC,OAAOzZ,EAAM3pD,CAAC,CAGpB,EACIqjE,GAAkB,SAAyB7jD,EAAM,CACnD,GAAI,CAACA,EAAK,KACR,MAAO,GAET,IAAI8jD,EAAa9jD,EAAK,MAAQ6hD,GAAY7hD,CAAI,EAC1C+jD,EAAc,SAAqBhgE,EAAM,CAC3C,OAAO+/D,EAAW,iBAAiB,6BAA+B//D,EAAO,IAAI,CAC/E,EACIigE,EACJ,GAAI,OAAO,OAAW,KAAe,OAAO,OAAO,IAAQ,KAAe,OAAO,OAAO,IAAI,QAAW,WACrGA,EAAWD,EAAY,OAAO,IAAI,OAAO/jD,EAAK,IAAI,CAAC,MAEnD,IAAI,CACFgkD,EAAWD,EAAY/jD,EAAK,IAAI,CAClC,OAASrX,EAAK,CAEZ,eAAQ,MAAM,2IAA4IA,EAAI,OAAO,EAC9J,EACT,CAEF,IAAI0mC,EAAUs0B,GAAgBK,EAAUhkD,EAAK,IAAI,EACjD,MAAO,CAACqvB,GAAWA,IAAYrvB,CACjC,EACIikD,GAAU,SAAiBjkD,EAAM,CACnC,OAAOwjD,GAAQxjD,CAAI,GAAKA,EAAK,OAAS,OACxC,EACIkkD,GAAqB,SAA4BlkD,EAAM,CACzD,OAAOikD,GAAQjkD,CAAI,GAAK,CAAC6jD,GAAgB7jD,CAAI,CAC/C,EAGImkD,GAAiB,SAAwBnkD,EAAM,CACjD,IAAIokD,EAwBAC,EAAWrkD,GAAQ6hD,GAAY7hD,CAAI,EACnCskD,GAAgBF,EAAYC,KAAc,MAAQD,IAAc,OAAS,OAASA,EAAU,KAI5FG,EAAW,GACf,GAAIF,GAAYA,IAAarkD,EAAM,CACjC,IAAIwkD,EAAeC,EAAuBC,EAE1C,IADAH,EAAW,CAAC,GAAGC,EAAgBF,KAAkB,MAAQE,IAAkB,SAAWC,EAAwBD,EAAc,iBAAmB,MAAQC,IAA0B,QAAUA,EAAsB,SAASH,CAAY,GAAKtkD,GAAS,OAA4B0kD,EAAsB1kD,EAAK,iBAAmB,MAAQ0kD,IAAwB,QAAUA,EAAoB,SAAS1kD,CAAI,GAClY,CAACukD,GAAYD,GAAc,CAChC,IAAIK,EAAYC,EAAgBC,EAIhCR,EAAWxC,GAAYyC,CAAY,EACnCA,GAAgBK,EAAaN,KAAc,MAAQM,IAAe,OAAS,OAASA,EAAW,KAC/FJ,EAAW,CAAC,GAAGK,EAAiBN,KAAkB,MAAQM,IAAmB,SAAWC,EAAwBD,EAAe,iBAAmB,MAAQC,IAA0B,QAAUA,EAAsB,SAASP,CAAY,EAC3O,CACF,CACA,OAAOC,CACT,EACIO,GAAa,SAAoB9kD,EAAM,CACzC,IAAI+kD,EAAwB/kD,EAAK,sBAAqB,EACpD28C,EAAQoI,EAAsB,MAC9BnI,EAASmI,EAAsB,OACjC,OAAOpI,IAAU,GAAKC,IAAW,CACnC,EACIoI,GAAW,SAAkBhlD,EAAMi8B,EAAM,CAC3C,IAAIgpB,EAAehpB,EAAK,aACtB8G,EAAgB9G,EAAK,cACvB,GAAIgpB,IAAiB,eACf,oBAAqBjlD,EAAM,CAG7B,IAAIklD,EAAUllD,EAAK,gBAAgB,CAGjC,aAAc,GACd,gBAAiB,GACjB,sBAAuB,GACvB,mBAAoB,GAKpB,mBAAoB,EAC5B,CAAO,EACD,MAAO,CAACklD,CACV,CASF,IAAIC,EAAoB,iBAAiBnlD,CAAI,EAC3ColD,EAAaD,EAAkB,WACjC,GAAIC,IAAe,UAAYA,IAAe,WAC5C,MAAO,GAET,IAAIC,EAAkBlZ,GAAQ,KAAKnsC,EAAM,+BAA+B,EACpEslD,EAAmBD,EAAkBrlD,EAAK,cAAgBA,EAC9D,GAAImsC,GAAQ,KAAKmZ,EAAkB,uBAAuB,EACxD,MAAO,GAET,GAAI,CAACL,GAAgBA,IAAiB,QAGtCA,IAAiB,eAAiBA,IAAiB,cAAe,CAChE,GAAI,OAAOliB,GAAkB,WAAY,CAIvC,QADIwiB,EAAevlD,EACZA,GAAM,CACX,IAAIwlD,EAAgBxlD,EAAK,cACrBylD,EAAW5D,GAAY7hD,CAAI,EAC/B,GAAIwlD,GAAiB,CAACA,EAAc,YAAcziB,EAAcyiB,CAAa,IAAM,GAIjF,OAAOV,GAAW9kD,CAAI,EACbA,EAAK,aAEdA,EAAOA,EAAK,aACH,CAACwlD,GAAiBC,IAAazlD,EAAK,cAE7CA,EAAOylD,EAAS,KAGhBzlD,EAAOwlD,CAEX,CACAxlD,EAAOulD,CACT,CAWA,GAAIpB,GAAenkD,CAAI,EAKrB,MAAO,CAACA,EAAK,eAAc,EAAG,OAmBhC,GAAIilD,IAAiB,cACnB,MAAO,EAGX,SAAWA,IAAiB,gBAM1B,OAAOH,GAAW9kD,CAAI,EAKxB,MAAO,EACT,EAKI0lD,GAAyB,SAAgC1lD,EAAM,CACjE,GAAI,mCAAmC,KAAKA,EAAK,OAAO,EAGtD,QAFIpC,EAAaoC,EAAK,cAEfpC,GAAY,CACjB,GAAIA,EAAW,UAAY,YAAcA,EAAW,SAAU,CAE5D,QAASpd,EAAI,EAAGA,EAAIod,EAAW,SAAS,OAAQpd,IAAK,CACnD,IAAIkf,EAAQ9B,EAAW,SAAS,KAAKpd,CAAC,EAEtC,GAAIkf,EAAM,UAAY,SAGpB,OAAOysC,GAAQ,KAAKvuC,EAAY,sBAAsB,EAAI,GAAO,CAAC8B,EAAM,SAASM,CAAI,CAEzF,CAEA,MAAO,EACT,CACApC,EAAaA,EAAW,aAC1B,CAKF,MAAO,EACT,EACI+nD,GAAkC,SAAyCxxD,EAAS6L,EAAM,CAC5F,MAAI,EAAAA,EAAK,UAAYyjD,GAAczjD,CAAI,GAAKglD,GAAShlD,EAAM7L,CAAO,GAElEuvD,GAAqB1jD,CAAI,GAAK0lD,GAAuB1lD,CAAI,EAI3D,EACI4lD,GAAiC,SAAwCzxD,EAAS6L,EAAM,CAC1F,MAAI,EAAAkkD,GAAmBlkD,CAAI,GAAKmjD,GAAYnjD,CAAI,EAAI,GAAK,CAAC2lD,GAAgCxxD,EAAS6L,CAAI,EAIzG,EACI6lD,GAAuB,SAA8BC,EAAgB,CACvE,IAAIxC,EAAW,SAASwC,EAAe,aAAa,UAAU,EAAG,EAAE,EACnE,MAAI,SAAMxC,CAAQ,GAAKA,GAAY,EAMrC,EAMIyC,GAAe,SAAqBjhE,EAAY,CAClD,IAAIkhE,EAAmB,GACnBC,EAAmB,GACvB,OAAAnhE,EAAW,QAAQ,SAAU1B,EAAM5C,EAAG,CACpC,IAAI6iE,EAAU,CAAC,CAACjgE,EAAK,YACjBm7C,EAAU8kB,EAAUjgE,EAAK,YAAcA,EACvC8iE,EAAoB9C,GAAqB7kB,EAAS8kB,CAAO,EACzDV,EAAWU,EAAU0C,GAAa3iE,EAAK,UAAU,EAAIm7C,EACrD2nB,IAAsB,EACxB7C,EAAU2C,EAAiB,KAAK,MAAMA,EAAkBrD,CAAQ,EAAIqD,EAAiB,KAAKznB,CAAO,EAEjG0nB,EAAiB,KAAK,CACpB,cAAezlE,EACf,SAAU0lE,EACV,KAAM9iE,EACN,QAASigE,EACT,QAASV,CACjB,CAAO,CAEL,CAAC,EACMsD,EAAiB,KAAK1C,EAAoB,EAAE,OAAO,SAAUh2D,EAAK44D,EAAU,CACjF,OAAAA,EAAS,QAAU54D,EAAI,KAAK,MAAMA,EAAK44D,EAAS,OAAO,EAAI54D,EAAI,KAAK44D,EAAS,OAAO,EAC7E54D,CACT,EAAG,EAAE,EAAE,OAAOy4D,CAAgB,CAChC,EACII,GAAW,SAAkBvpD,EAAW1I,EAAS,CACnDA,EAAUA,GAAW,GACrB,IAAIrP,EACJ,OAAIqP,EAAQ,cACVrP,EAAa49D,GAA0B,CAAC7lD,CAAS,EAAG1I,EAAQ,iBAAkB,CAC5E,OAAQyxD,GAA+B,KAAK,KAAMzxD,CAAO,EACzD,QAAS,GACT,cAAeA,EAAQ,cACvB,iBAAkB0xD,EACxB,CAAK,EAED/gE,EAAay9D,GAAc1lD,EAAW1I,EAAQ,iBAAkByxD,GAA+B,KAAK,KAAMzxD,CAAO,CAAC,EAE7G4xD,GAAajhE,CAAU,CAChC,EACIuhE,GAAY,SAAmBxpD,EAAW1I,EAAS,CACrDA,EAAUA,GAAW,GACrB,IAAIrP,EACJ,OAAIqP,EAAQ,cACVrP,EAAa49D,GAA0B,CAAC7lD,CAAS,EAAG1I,EAAQ,iBAAkB,CAC5E,OAAQwxD,GAAgC,KAAK,KAAMxxD,CAAO,EAC1D,QAAS,GACT,cAAeA,EAAQ,aAC7B,CAAK,EAEDrP,EAAay9D,GAAc1lD,EAAW1I,EAAQ,iBAAkBwxD,GAAgC,KAAK,KAAMxxD,CAAO,CAAC,EAE9GrP,CACT,EACIwhE,GAAa,SAAoBtmD,EAAM7L,EAAS,CAElD,GADAA,EAAUA,GAAW,GACjB,CAAC6L,EACH,MAAM,IAAI,MAAM,kBAAkB,EAEpC,OAAImsC,GAAQ,KAAKnsC,EAAM2hD,EAAiB,IAAM,GACrC,GAEFiE,GAA+BzxD,EAAS6L,CAAI,CACrD,EACIumD,GAA4C7E,GAAmB,OAAO,oCAAoC,EAAE,KAAK,GAAG,EACpH8E,GAAc,SAAqBxmD,EAAM7L,EAAS,CAEpD,GADAA,EAAUA,GAAW,GACjB,CAAC6L,EACH,MAAM,IAAI,MAAM,kBAAkB,EAEpC,OAAImsC,GAAQ,KAAKnsC,EAAMumD,EAA0B,IAAM,GAC9C,GAEFZ,GAAgCxxD,EAAS6L,CAAI,CACtD,ECrkBA,SAASm7B,GAAkB3pC,EAAGhN,EAAG,EACtBA,GAAR,MAAaA,EAAIgN,EAAE,UAAYhN,EAAIgN,EAAE,QACtC,QAAShJ,EAAI,EAAG1F,EAAI,MAAM0B,CAAC,EAAGgE,EAAIhE,EAAGgE,IAAK1F,EAAE0F,CAAC,EAAIgJ,EAAEhJ,CAAC,EACpD,OAAO1F,CACT,CACA,SAAS2jE,GAAmBj1D,EAAG,CAC7B,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAO2pC,GAAkB3pC,CAAC,CAClD,CACA,SAASk1D,GAA2Bl1D,EAAGhJ,EAAG,CACxC,IAAI26B,EAAmB,OAAO,OAAtB,KAAgC3xB,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC5E,GAAI,CAAC2xB,EAAG,CACN,GAAI,MAAM,QAAQ3xB,CAAC,IAAM2xB,EAAIsY,GAA4BjqC,CAAC,IAAMhJ,EAAG,CACjE26B,IAAM3xB,EAAI2xB,GACV,IAAIrgC,EAAI,EACN6jE,EAAI,UAAY,CAAC,EACnB,MAAO,CACLA,EACA,EAAG,UAAY,CACb,OAAO7jE,GAAK0O,EAAE,OAAS,CACrB,KAAM,EAClB,EAAc,CACF,KAAM,GACN,MAAOA,EAAE1O,GAAG,CACxB,CACQ,EACA,EAAG,SAAU0O,EAAG,CACd,MAAMA,CACR,EACA,EAAGm1D,CACX,CACI,CACA,MAAM,IAAI,UAAU;AAAA,mFAAuI,CAC7J,CACA,IAAI1wB,EACFzxC,EAAI,GACJi2B,EAAI,GACN,MAAO,CACL,EAAG,UAAY,CACb0I,EAAIA,EAAE,KAAK3xB,CAAC,CACd,EACA,EAAG,UAAY,CACb,IAAIA,EAAI2xB,EAAE,KAAI,EACd,OAAO3+B,EAAIgN,EAAE,KAAMA,CACrB,EACA,EAAG,SAAUA,EAAG,CACdipB,EAAI,GAAMwb,EAAIzkC,CAChB,EACA,EAAG,UAAY,CACb,GAAI,CACFhN,GAAa2+B,EAAE,QAAV,MAAoBA,EAAE,OAAM,CACnC,SACE,GAAI1I,EAAG,MAAMwb,CACf,CACF,CACJ,CACA,CACA,SAAS2wB,GAAgB,EAAGp1D,EAAG2xB,EAAG,CAChC,OAAQ3xB,EAAIq1D,GAAer1D,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAChE,MAAO2xB,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACd,CAAG,EAAI,EAAE3xB,CAAC,EAAI2xB,EAAG,CACjB,CACA,SAAS2jC,GAAiBt1D,EAAG,CAC3B,GAAmB,OAAO,OAAtB,KAAwCA,EAAE,OAAO,QAAQ,GAAzB,MAAsCA,EAAE,YAAY,GAAtB,KAAyB,OAAO,MAAM,KAAKA,CAAC,CAChH,CACA,SAASu1D,IAAqB,CAC5B,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAC5J,CACA,SAASC,GAAQ,EAAGx1D,EAAG,CACrB,IAAI2xB,EAAI,OAAO,KAAK,CAAC,EACrB,GAAI,OAAO,sBAAuB,CAChC,IAAI8S,EAAI,OAAO,sBAAsB,CAAC,EACtCzkC,IAAMykC,EAAIA,EAAE,OAAO,SAAUzkC,EAAG,CAC9B,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAC/C,CAAC,GAAI2xB,EAAE,KAAK,MAAMA,EAAG8S,CAAC,CACxB,CACA,OAAO9S,CACT,CACA,SAAS8jC,GAAe,EAAG,CACzB,QAASz1D,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAI2xB,EAAY,UAAU3xB,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,GAC9CA,EAAI,EAAIw1D,GAAQ,OAAO7jC,CAAC,EAAG,EAAI,EAAE,QAAQ,SAAU3xB,EAAG,CACpDo1D,GAAgB,EAAGp1D,EAAG2xB,EAAE3xB,CAAC,CAAC,CAC5B,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0B2xB,CAAC,CAAC,EAAI6jC,GAAQ,OAAO7jC,CAAC,CAAC,EAAE,QAAQ,SAAU3xB,EAAG,CAChJ,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyB2xB,EAAG3xB,CAAC,CAAC,CACnE,CAAC,CACH,CACA,OAAO,CACT,CACA,SAAS01D,GAAmB11D,EAAG,CAC7B,OAAOi1D,GAAmBj1D,CAAC,GAAKs1D,GAAiBt1D,CAAC,GAAKiqC,GAA4BjqC,CAAC,GAAKu1D,GAAkB,CAC7G,CACA,SAASI,GAAahkC,EAAG3xB,EAAG,CAC1B,GAAgB,OAAO2xB,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EACvC,IAAI36B,EAAI26B,EAAE,OAAO,WAAW,EAC5B,GAAe36B,IAAX,OAAc,CAChB,IAAIhI,EAAIgI,EAAE,KAAK26B,EAAG3xB,CAAC,EACnB,GAAgB,OAAOhR,GAAnB,SAAsB,OAAOA,EACjC,MAAM,IAAI,UAAU,8CAA8C,CACpE,CACA,OAAqBgR,IAAb,SAAiB,OAAS,QAAQ2xB,CAAC,CAC7C,CACA,SAAS0jC,GAAe1jC,EAAG,CACzB,IAAI3iC,EAAI2mE,GAAahkC,EAAG,QAAQ,EAChC,OAAmB,OAAO3iC,GAAnB,SAAuBA,EAAIA,EAAI,EACxC,CACA,SAASi7C,GAA4BjqC,EAAGhN,EAAG,CACzC,GAAIgN,EAAG,CACL,GAAgB,OAAOA,GAAnB,SAAsB,OAAO2pC,GAAkB3pC,EAAGhN,CAAC,EACvD,IAAI2+B,EAAI,GAAG,SAAS,KAAK3xB,CAAC,EAAE,MAAM,EAAG,EAAE,EACvC,OAAoB2xB,IAAb,UAAkB3xB,EAAE,cAAgB2xB,EAAI3xB,EAAE,YAAY,MAAiB2xB,IAAV,OAAyBA,IAAV,MAAc,MAAM,KAAK3xB,CAAC,EAAoB2xB,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAIgY,GAAkB3pC,EAAGhN,CAAC,EAAI,MACvN,CACF,CAEA,IAAI4iE,GAAmB,CAErB,cAAe,SAAuBC,EAAW,CAC/C,OAA2DA,GAAU,OAAU,EACtEA,EAAUA,EAAU,OAAS,CAAC,EAEhC,IACT,EAEA,aAAc,SAAsBA,EAAWC,EAAM,CACnD,IAAIC,EAAaH,GAAiB,cAAcC,CAAS,EACrDC,IAASC,GACXH,GAAiB,UAAUC,CAAS,EAEtC,IAAIG,EAAYH,EAAU,QAAQC,CAAI,EAClCE,IAAc,IAIhBH,EAAU,OAAOG,EAAW,CAAC,EAC7BH,EAAU,KAAKC,CAAI,CAEvB,EAEA,eAAgB,SAAwBD,EAAWC,EAAM,CACvD,IAAIE,EAAYH,EAAU,QAAQC,CAAI,EAClCE,IAAc,IAChBH,EAAU,OAAOG,EAAW,CAAC,EAE/BJ,GAAiB,YAAYC,CAAS,CACxC,EAEA,UAAW,SAAmBA,EAAW,CACvC,IAAIE,EAAaH,GAAiB,cAAcC,CAAS,EACTE,GAAW,gBAAgB,EAAI,CACjF,EAEA,YAAa,SAAqBF,EAAW,CAC3C,IAAIE,EAAaH,GAAiB,cAAcC,CAAS,EACrDE,GAAc,CAACA,EAAW,qBAC5BA,EAAW,gBAAgB,EAAK,CAEpC,CACF,EACIE,GAAoB,SAA2BznD,EAAM,CACvD,OAAOA,EAAK,SAAWA,EAAK,QAAQ,YAAW,IAAO,SAAW,OAAOA,EAAK,QAAW,UAC1F,EACI0nD,GAAgB,SAAuBl/D,EAAG,CAC5C,OAA8CA,GAAE,MAAS,UAAmDA,GAAE,MAAS,OAAgDA,GAAE,UAAa,EACxL,EACIm/D,GAAa,SAAoBn/D,EAAG,CACtC,OAA8CA,GAAE,MAAS,OAAgDA,GAAE,UAAa,CAC1H,EAGIo/D,GAAe,SAAsBp/D,EAAG,CAC1C,OAAOm/D,GAAWn/D,CAAC,GAAK,CAACA,EAAE,QAC7B,EAGIq/D,GAAgB,SAAuBr/D,EAAG,CAC5C,OAAOm/D,GAAWn/D,CAAC,GAAKA,EAAE,QAC5B,EACIs/D,GAAQ,SAAelmE,EAAI,CAC7B,OAAO,WAAWA,EAAI,CAAC,CACzB,EASImmE,GAAiB,SAAwBzmE,EAAO,CAClD,QAAS86C,EAAO,UAAU,OAAQlC,EAAS,IAAI,MAAMkC,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAGr2C,EAAO,EAAGA,EAAOq2C,EAAMr2C,IACpGm0C,EAAOn0C,EAAO,CAAC,EAAI,UAAUA,CAAI,EAEnC,OAAO,OAAOzE,GAAU,WAAaA,EAAM,MAAM,OAAQ44C,CAAM,EAAI54C,CACrE,EACI0mE,GAAkB,SAAyB52C,EAAO,CAQpD,OAAOA,EAAM,OAAO,YAAc,OAAOA,EAAM,cAAiB,WAAaA,EAAM,aAAY,EAAG,CAAC,EAAIA,EAAM,MAC/G,EAII62C,GAAoB,GACpBC,GAAkB,SAAyBvF,EAAUwF,EAAa,CAGpE,IAAIhmC,EAAiEgmC,GAAY,UAAa,SAC1Fd,EAAuEc,GAAY,WAAcF,GACjGG,EAASnB,GAAe,CAC1B,wBAAyB,GACzB,kBAAmB,GACnB,kBAAmB,GACnB,iBAAkB,GAClB,gBAAiB,GACjB,aAAcW,GACd,cAAeC,EACnB,EAAKM,CAAW,EACVrnD,EAAQ,CAGV,WAAY,GAkBZ,gBAAiB,GAOjB,eAAgB,GAGhB,iBAAkB,IAAI,IAGtB,cAAe,IAAI,IACnB,4BAA6B,KAC7B,wBAAyB,KACzB,OAAQ,GACR,OAAQ,GACR,eAAgB,GAGhB,uBAAwB,OAExB,eAAgB,MACpB,EACMwmD,EAUAe,EAAY,SAAmBC,EAAuBC,EAAYC,EAAkB,CACtF,OAAOF,GAAyBA,EAAsBC,CAAU,IAAM,OAAYD,EAAsBC,CAAU,EAAIH,EAAOI,GAAoBD,CAAU,CAC7J,EAYIE,EAAqB,SAA4BlqB,EAASntB,EAAO,CACnE,IAAIs3C,EAAe,OAAsDt3C,GAAM,cAAkB,WAAaA,EAAM,aAAY,EAAK,OAIrI,OAAOtQ,EAAM,gBAAgB,UAAU,SAAUm7B,EAAM,CACrD,IAAIp/B,EAAYo/B,EAAK,UACnB0sB,GAAgB1sB,EAAK,cACvB,OAAOp/B,EAAU,SAAS0hC,CAAO,GAI2BmqB,GAAa,SAAS7rD,CAAS,GAAM8rD,GAAc,KAAK,SAAU3oD,GAAM,CAClI,OAAOA,KAASu+B,CAClB,CAAC,CACH,CAAC,CACH,EAoBIqqB,EAAmB,SAA0BL,EAAY,CAC3D,IAAI3pB,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EiqB,EAAoBjqB,EAAM,YAC1BkqB,EAAcD,IAAsB,OAAS,GAAQA,EACrDE,EAAenqB,EAAM,OACrB1E,GAAS6uB,IAAiB,OAAS,GAAKA,EACtCC,GAAcZ,EAAOG,CAAU,EAOnC,GANI,OAAOS,IAAgB,aACzBA,GAAcA,GAAY,MAAM,OAAQ9B,GAAmBhtB,EAAM,CAAC,GAEhE8uB,KAAgB,KAClBA,GAAc,QAEZ,CAACA,GAAa,CAChB,GAAIA,KAAgB,QAAaA,KAAgB,GAC/C,OAAOA,GAIT,MAAM,IAAI,MAAM,IAAI,OAAOT,EAAY,8DAA8D,CAAC,CACxG,CACA,IAAIvoD,GAAOgpD,GAEX,GAAI,OAAOA,IAAgB,SAAU,CACnC,GAAI,CACFhpD,GAAOmiB,EAAI,cAAc6mC,EAAW,CACtC,OAASrgE,EAAK,CACZ,MAAM,IAAI,MAAM,IAAI,OAAO4/D,EAAY,8CAA+C,EAAE,OAAO5/D,EAAI,QAAS,GAAI,EAAG,CACjH,MAAOA,CACjB,CAAS,CACH,CACA,GAAI,CAACqX,IACC,CAAC8oD,EACH,MAAM,IAAI,MAAM,IAAI,OAAOP,EAAY,uCAAuC,CAAC,CAKrF,CACA,OAAOvoD,EACT,EAUIipD,EAAoB,SAA0B1oE,EAAI,CACpD,IAAI2oE,EAAgB3oE,EAAG,cACvB,OAAK2oE,EAGDA,EAAc,YAAcA,EAAc,WAAW,gBAAkB,KAClED,EAAkBC,EAAc,UAAU,EAE5CA,EALE,IAMX,EACIC,EAAsB,UAA+B,CACvD,IAAInpD,EAAO4oD,EAAiB,eAAgB,CAC1C,YAAa,EACnB,CAAK,EAGD,GAAI5oD,IAAS,GACX,MAAO,GAET,GAAIA,IAAS,QAAaA,GAAQ,CAACwmD,GAAYxmD,EAAMooD,EAAO,eAAe,EAAG,CAC5E,IAAIc,EAAgBD,EAAkB9mC,CAAG,EAGzC,GAAIsmC,EAAmBS,CAAa,GAAK,EACvClpD,EAAOkpD,MACF,CACL,IAAIE,EAAqBtoD,EAAM,eAAe,CAAC,EAC3CuoD,EAAoBD,GAAsBA,EAAmB,kBAGjEppD,EAAOqpD,GAAqBT,EAAiB,eAAe,CAC9D,CACF,MAAW5oD,IAAS,OAGlBA,EAAO4oD,EAAiB,eAAe,GAEzC,GAAI,CAAC5oD,EACH,MAAM,IAAI,MAAM,8DAA8D,EAEhF,OAAOA,CACT,EACIspD,EAAsB,UAA+B,CA4EvD,GA3EAxoD,EAAM,gBAAkBA,EAAM,WAAW,IAAI,SAAUjE,EAAW,CAChE,IAAI8rD,EAAgBvC,GAASvpD,EAAWurD,EAAO,eAAe,EAK1DmB,EAAiBlD,GAAUxpD,EAAWurD,EAAO,eAAe,EAC5DiB,EAAoBV,EAAc,OAAS,EAAIA,EAAc,CAAC,EAAI,OAClEa,EAAmBb,EAAc,OAAS,EAAIA,EAAcA,EAAc,OAAS,CAAC,EAAI,OACxFc,GAAuBF,EAAe,KAAK,SAAUvpD,EAAM,CAC7D,OAAOsmD,GAAWtmD,CAAI,CACxB,CAAC,EACG0pD,GAAsBH,EAAe,MAAK,EAAG,UAAU,KAAK,SAAUvpD,EAAM,CAC9E,OAAOsmD,GAAWtmD,CAAI,CACxB,CAAC,EACG2pD,GAAqB,CAAC,CAAChB,EAAc,KAAK,SAAU3oD,EAAM,CAC5D,OAAOmjD,GAAYnjD,CAAI,EAAI,CAC7B,CAAC,EACD,MAAO,CACL,UAAWnD,EACX,cAAe8rD,EACf,eAAgBY,EAEhB,mBAAoBI,GAEpB,kBAAmBN,EAEnB,iBAAkBG,EASlB,qBAAsBC,GAEtB,oBAAqBC,GASrB,iBAAkB,SAA0B1pD,EAAM,CAChD,IAAI4pD,GAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EC,GAAUlB,EAAc,QAAQ3oD,CAAI,EACxC,OAAI6pD,GAAU,EAORD,GACKL,EAAe,MAAMA,EAAe,QAAQvpD,CAAI,EAAI,CAAC,EAAE,KAAK,SAAUzf,EAAI,CAC/E,OAAO+lE,GAAW/lE,CAAE,CACtB,CAAC,EAEIgpE,EAAe,MAAM,EAAGA,EAAe,QAAQvpD,CAAI,CAAC,EAAE,QAAO,EAAG,KAAK,SAAUzf,EAAI,CACxF,OAAO+lE,GAAW/lE,CAAE,CACtB,CAAC,EAEIooE,EAAckB,IAAWD,GAAU,EAAI,GAAG,CACnD,CACR,CACI,CAAC,EACD9oD,EAAM,eAAiBA,EAAM,gBAAgB,OAAO,SAAUgpD,EAAO,CACnE,OAAOA,EAAM,cAAc,OAAS,CACtC,CAAC,EAGGhpD,EAAM,eAAe,QAAU,GAAK,CAAC8nD,EAAiB,eAAe,EAEvE,MAAM,IAAI,MAAM,qGAAqG,EAUvH,GAAI9nD,EAAM,gBAAgB,KAAK,SAAU8f,EAAG,CAC1C,OAAOA,EAAE,kBACX,CAAC,GAAK9f,EAAM,gBAAgB,OAAS,EACnC,MAAM,IAAI,MAAM,+KAA+K,CAEnM,EACIipD,EAAY,SAAkB/pD,EAAM,CACtC,GAAIA,IAAS,GAGb,IAAIA,IAASipD,EAAkB9mC,CAAG,EAAG,CACnCrhB,EAAM,wBAA0Bd,EAChC,MACF,CACA,GAAI,CAACA,GAAQ,CAACA,EAAK,MAAO,CACxB+pD,EAAUZ,EAAmB,CAAE,EAC/B,MACF,CACAnpD,EAAK,MAAM,CACT,cAAe,CAAC,CAACooD,EAAO,aAC9B,CAAK,EAEDtnD,EAAM,wBAA0Bd,EAC5BynD,GAAkBznD,CAAI,GACxBA,EAAK,OAAM,EAEf,EACIgqD,EAAqB,SAA4BC,EAAuB,CAC1E,IAAIjqD,EAAO4oD,EAAiB,iBAAkB,CAC5C,OAAQ,CAACqB,CAAqB,CACpC,CAAK,EACD,OAAOjqD,IAAcA,IAAS,GAAQ,GAAQiqD,EAChD,EAaIC,EAAkB,SAAyBrrB,EAAO,CACpD,IAAIt0C,EAASs0C,EAAM,OACjBztB,EAAQytB,EAAM,MACdsrB,EAAmBtrB,EAAM,WACzBurB,EAAaD,IAAqB,OAAS,GAAQA,EACrD5/D,EAASA,GAAUy9D,GAAgB52C,CAAK,EACxCk4C,EAAmB,EACnB,IAAIe,GAAkB,KACtB,GAAIvpD,EAAM,eAAe,OAAS,EAAG,CAInC,IAAIwpD,GAAiB7B,EAAmBl+D,EAAQ6mB,CAAK,EACjDm5C,GAAiBD,IAAkB,EAAIxpD,EAAM,gBAAgBwpD,EAAc,EAAI,OACnF,GAAIA,GAAiB,EAGfF,EAEFC,GAAkBvpD,EAAM,eAAeA,EAAM,eAAe,OAAS,CAAC,EAAE,iBAGxEupD,GAAkBvpD,EAAM,eAAe,CAAC,EAAE,0BAEnCspD,EAAY,CAIrB,IAAII,EAAoB1pD,EAAM,eAAe,UAAU,SAAU2pD,GAAO,CACtE,IAAIpB,GAAoBoB,GAAM,kBAC9B,OAAOlgE,IAAW8+D,EACpB,CAAC,EAUD,GATImB,EAAoB,IAAMD,GAAe,YAAchgE,GAAUi8D,GAAYj8D,EAAQ69D,EAAO,eAAe,GAAK,CAAC9B,GAAW/7D,EAAQ69D,EAAO,eAAe,GAAK,CAACmC,GAAe,iBAAiBhgE,EAAQ,EAAK,KAO/MigE,EAAoBF,IAElBE,GAAqB,EAAG,CAI1B,IAAIE,GAAwBF,IAAsB,EAAI1pD,EAAM,eAAe,OAAS,EAAI0pD,EAAoB,EACxGG,GAAmB7pD,EAAM,eAAe4pD,EAAqB,EACjEL,GAAkBlH,GAAY54D,CAAM,GAAK,EAAIogE,GAAiB,iBAAmBA,GAAiB,mBACpG,MAAYhD,GAAWv2C,CAAK,IAG1Bi5C,GAAkBE,GAAe,iBAAiBhgE,EAAQ,EAAK,EAEnE,KAAO,CAIL,IAAIqgE,EAAmB9pD,EAAM,eAAe,UAAU,SAAU+pD,GAAO,CACrE,IAAIrB,GAAmBqB,GAAM,iBAC7B,OAAOtgE,IAAWi/D,EACpB,CAAC,EAUD,GATIoB,EAAmB,IAAML,GAAe,YAAchgE,GAAUi8D,GAAYj8D,EAAQ69D,EAAO,eAAe,GAAK,CAAC9B,GAAW/7D,EAAQ69D,EAAO,eAAe,GAAK,CAACmC,GAAe,iBAAiBhgE,CAAM,KAOvMqgE,EAAmBN,IAEjBM,GAAoB,EAAG,CAIzB,IAAIE,GAAyBF,IAAqB9pD,EAAM,eAAe,OAAS,EAAI,EAAI8pD,EAAmB,EACvGG,GAAoBjqD,EAAM,eAAegqD,EAAsB,EACnET,GAAkBlH,GAAY54D,CAAM,GAAK,EAAIwgE,GAAkB,kBAAoBA,GAAkB,oBACvG,MAAYpD,GAAWv2C,CAAK,IAG1Bi5C,GAAkBE,GAAe,iBAAiBhgE,CAAM,EAE5D,CACF,MAGE8/D,GAAkBzB,EAAiB,eAAe,EAEpD,OAAOyB,EACT,EAIIW,EAAmB,SAA0BxiE,EAAG,CAClD,IAAI+B,EAASy9D,GAAgBx/D,CAAC,EAC9B,GAAI,EAAAigE,EAAmBl+D,EAAQ/B,CAAC,GAAK,GAIrC,IAAIu/D,GAAeK,EAAO,wBAAyB5/D,CAAC,EAAG,CAErD8+D,EAAK,WAAW,CAOd,YAAac,EAAO,uBAC5B,CAAO,EACD,MACF,CAKIL,GAAeK,EAAO,kBAAmB5/D,CAAC,GAM9CA,EAAE,eAAc,EAClB,EAMIyiE,EAAe,SAAsB75C,EAAO,CAC9C,IAAI7mB,EAASy9D,GAAgB52C,CAAK,EAC9B85C,EAAkBzC,EAAmBl+D,EAAQ6mB,CAAK,GAAK,EAG3D,GAAI85C,GAAmB3gE,aAAkB,SACnC2gE,IACFpqD,EAAM,wBAA0BvW,OAE7B,CAEL6mB,EAAM,yBAAwB,EAK9B,IAAI+5C,EACAC,EAAsB,GAC1B,GAAItqD,EAAM,wBACR,GAAIqiD,GAAYriD,EAAM,uBAAuB,EAAI,EAAG,CAElD,IAAIuqD,GAAkB5C,EAAmB3nD,EAAM,uBAAuB,EAKlE6nD,GAAgB7nD,EAAM,gBAAgBuqD,EAAe,EAAE,cAC3D,GAAI1C,GAAc,OAAS,EAAG,CAE5B,IAAI2C,GAAY3C,GAAc,UAAU,SAAU3oD,EAAM,CACtD,OAAOA,IAASc,EAAM,uBACxB,CAAC,EACGwqD,IAAa,IACXlD,EAAO,aAAatnD,EAAM,cAAc,EACtCwqD,GAAY,EAAI3C,GAAc,SAChCwC,EAAWxC,GAAc2C,GAAY,CAAC,EACtCF,EAAsB,IAKpBE,GAAY,GAAK,IACnBH,EAAWxC,GAAc2C,GAAY,CAAC,EACtCF,EAAsB,IAO9B,CAKF,MAKOtqD,EAAM,gBAAgB,KAAK,SAAU8f,EAAG,CAC3C,OAAOA,EAAE,cAAc,KAAK,SAAU99B,GAAG,CACvC,OAAOqgE,GAAYrgE,EAAC,EAAI,CAC1B,CAAC,CACH,CAAC,IAICsoE,EAAsB,SAQ1BA,EAAsB,GAEpBA,IACFD,EAAWjB,EAAgB,CAGzB,OAAQppD,EAAM,wBACd,WAAYsnD,EAAO,cAActnD,EAAM,cAAc,CAC/D,CAAS,GAGDipD,EADEoB,GAGQrqD,EAAM,yBAA2BqoD,GAFzB,CAItB,CACAroD,EAAM,eAAiB,MACzB,EAMIyqD,EAAc,SAAqBn6C,EAAO,CAC5C,IAAIg5C,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACrFtpD,EAAM,eAAiBsQ,EACvB,IAAIi5C,EAAkBH,EAAgB,CACpC,MAAO94C,EACP,WAAYg5C,CAClB,CAAK,EACGC,IACE1C,GAAWv2C,CAAK,GAKlBA,EAAM,eAAc,EAEtB24C,EAAUM,CAAe,EAG7B,EACImB,EAAc,SAAqBp6C,EAAO,EACxCg3C,EAAO,aAAah3C,CAAK,GAAKg3C,EAAO,cAAch3C,CAAK,IAC1Dm6C,EAAYn6C,EAAOg3C,EAAO,cAAch3C,CAAK,CAAC,CAElD,EAGIq6C,EAAiB,SAAwBr6C,EAAO,CAC9Cs2C,GAAct2C,CAAK,GAAK22C,GAAeK,EAAO,kBAAmBh3C,CAAK,IAAM,KAC9EA,EAAM,eAAc,EACpBk2C,EAAK,WAAU,EAEnB,EACIoE,EAAa,SAAoBljE,EAAG,CACtC,IAAI+B,EAASy9D,GAAgBx/D,CAAC,EAC1BigE,EAAmBl+D,EAAQ/B,CAAC,GAAK,GAGjCu/D,GAAeK,EAAO,wBAAyB5/D,CAAC,GAGhDu/D,GAAeK,EAAO,kBAAmB5/D,CAAC,IAG9CA,EAAE,eAAc,EAChBA,EAAE,yBAAwB,EAC5B,EAaImjE,EAAe,UAAwB,CACzC,GAAK7qD,EAAM,OAKX,CAAAsmD,GAAiB,aAAaC,EAAWC,CAAI,EAK7C,IAAIsE,EACJ,OAAIxD,EAAO,kBAGTwD,EAAU,IAAI,QAAQ,SAAUvjD,EAAS,CACvCvH,EAAM,uBAAyBgnD,GAAM,UAAY,CAC/CiC,EAAUZ,EAAmB,CAAE,EAC/B9gD,EAAO,CACT,CAAC,CACH,CAAC,EAED0hD,EAAUZ,EAAmB,CAAE,EAEjChnC,EAAI,iBAAiB,UAAW8oC,EAAc,EAAI,EAClD9oC,EAAI,iBAAiB,YAAa6oC,EAAkB,CAClD,QAAS,GACT,QAAS,EACf,CAAK,EACD7oC,EAAI,iBAAiB,aAAc6oC,EAAkB,CACnD,QAAS,GACT,QAAS,EACf,CAAK,EACD7oC,EAAI,iBAAiB,QAASupC,EAAY,CACxC,QAAS,GACT,QAAS,EACf,CAAK,EACDvpC,EAAI,iBAAiB,UAAWqpC,EAAa,CAC3C,QAAS,GACT,QAAS,EACf,CAAK,EACDrpC,EAAI,iBAAiB,UAAWspC,CAAc,EACvCG,EACT,EAOIC,EAA0B,SAAiC5gB,EAAY,CAErEnqC,EAAM,QAAU,CAACA,EAAM,QACzBwmD,EAAK,qBAAqB,EAAK,EAEjCxmD,EAAM,iBAAiB,MAAK,EAC5BA,EAAM,cAAc,MAAK,EAGzB,IAAIgrD,EAAqB,IAAI,IACzBC,EAAmB,IAAI,IAGvBC,EAAYtF,GAA2Bzb,CAAU,EACnDghB,EACF,GAAI,CACF,IAAKD,EAAU,EAAC,EAAI,EAAEC,EAAQD,EAAU,EAAC,GAAI,MAAO,CAClD,IAAInvD,GAAYovD,EAAM,MACtBH,EAAmB,IAAIjvD,EAAS,EAGhC,QAFIqvD,GAAmB,OAAO,WAAe,KAAervD,GAAU,YAAW,YAAc,WAC3FhW,GAAUgW,GACPhW,IAAS,CACdilE,EAAmB,IAAIjlE,EAAO,EAC9B,IAAIgtB,EAAShtB,GAAQ,cACjBslE,GAAW,GACXt4C,EACFs4C,GAAWt4C,EAAO,SACT,CAACA,GAAUq4C,KACpBC,GAAWtlE,GAAQ,YAAW,EAAG,SACjCgtB,EAAShtB,GAAQ,YAAW,EAAG,KAC/BqlE,GAAmB,OAAO,WAAe,KAAer4C,EAAO,YAAW,YAAc,YAI1F,IAAIu4C,GAAa1F,GAA2ByF,EAAQ,EAClDE,EACF,GAAI,CACF,IAAKD,GAAW,EAAC,EAAI,EAAEC,EAASD,GAAW,EAAC,GAAI,MAAO,CACrD,IAAI1sD,GAAQ2sD,EAAO,MACnBN,EAAiB,IAAIrsD,EAAK,CAC5B,CACF,OAAS/W,GAAK,CACZyjE,GAAW,EAAEzjE,EAAG,CAClB,SACEyjE,GAAW,EAAC,CACd,CACAvlE,GAAUgtB,CACZ,CACF,CAIF,OAASlrB,GAAK,CACZqjE,EAAU,EAAErjE,EAAG,CACjB,SACEqjE,EAAU,EAAC,CACb,CACAF,EAAmB,QAAQ,SAAUvrE,GAAI,CACvCwrE,EAAiB,OAAUxrE,EAAE,CAC/B,CAAC,EACDugB,EAAM,iBAAmBirD,CAC3B,EACIO,EAAkB,UAA2B,CAC/C,GAAKxrD,EAAM,OAGX,OAAAqhB,EAAI,oBAAoB,UAAW8oC,EAAc,EAAI,EACrD9oC,EAAI,oBAAoB,YAAa6oC,EAAkB,EAAI,EAC3D7oC,EAAI,oBAAoB,aAAc6oC,EAAkB,EAAI,EAC5D7oC,EAAI,oBAAoB,QAASupC,EAAY,EAAI,EACjDvpC,EAAI,oBAAoB,UAAWqpC,EAAa,EAAI,EACpDrpC,EAAI,oBAAoB,UAAWspC,CAAc,EAC1CnE,CACT,EAMIiF,EAAkB,SAAyBC,EAAW,CACxD,IAAIC,EAAc3rD,EAAM,wBACxB,GAAK2rD,EAGL,KAAIC,EAAuBF,EAAU,KAAK,SAAUG,EAAU,CAC5D,IAAIC,GAAe,MAAM,KAAKD,EAAS,YAAY,EACnD,OAAOC,GAAa,KAAK,SAAU5sD,GAAM,CACvC,OAAOA,KAASysD,GAAe,OAAOzsD,GAAK,UAAa,YAAcA,GAAK,SAASysD,CAAW,CACjG,CAAC,CACH,CAAC,EAID,GAAIC,GAAwB5rD,EAAM,WAAW,KAAK,SAAUjE,EAAW,CACrE,OAA6DA,GAAU,WACzE,CAAC,EAAG,CAGFysD,EAAmB,EACnB,IAAIuD,EAAmB1D,EAAmB,EAC1CY,EAAU8C,CAAgB,CAC5B,EACF,EAIIC,EAAmB,OAAO,OAAW,KAAe,qBAAsB,OAAS,IAAI,iBAAiBP,CAAe,EAAI,OAC3HQ,EAAsB,UAA+B,CAClDD,IAGLA,EAAiB,WAAU,EACvBhsD,EAAM,QAAU,CAACA,EAAM,QACzBA,EAAM,WAAW,IAAI,SAAUjE,EAAW,CACxCiwD,EAAiB,QAAQjwD,EAAW,CAClC,QAAS,GACT,UAAW,EACrB,CAAS,CACH,CAAC,EAEL,EAMA,OAAAyqD,EAAO,CACL,IAAI,QAAS,CACX,OAAOxmD,EAAM,MACf,EACA,IAAI,QAAS,CACX,OAAOA,EAAM,MACf,EACA,SAAU,SAAkBksD,EAAiB,CAC3C,GAAIlsD,EAAM,OACR,OAAO,KAET,IAAImsD,EAAa5E,EAAU2E,EAAiB,YAAY,EACpDE,EAAiB7E,EAAU2E,EAAiB,gBAAgB,EAC5DG,EAAoB9E,EAAU2E,EAAiB,mBAAmB,EAIlEI,EAAkBhG,GAAiB,cAAcC,CAAS,EAC1DgG,GAAc,GAClB,GAAID,GAAmB,CAACA,EAAgB,OAAQ,CAC9C,IAAIE,IAIHA,GAAwBF,EAAgB,wBAA0B,MAAQE,KAA0B,QAAUA,GAAsB,KAAKF,EAAiB,EAAK,EAChKC,GAAc,EAChB,CACA,GAAI,CACGF,GACH7D,EAAmB,EAErBxoD,EAAM,OAAS,GACfA,EAAM,OAAS,GACfA,EAAM,4BAA8BmoD,EAAkB9mC,CAAG,EACT8qC,IAAW,CACzD,KAAM3F,CAChB,CAAS,EACD,IAAIiG,GAAmB,UAA4B,CAC7CJ,GACF7D,EAAmB,EAErB,IAAIkE,GAAiB,UAA0B,CAC7ClG,EAAK,qBAAqB,EAAI,EAC9ByF,EAAmB,EACqCG,IAAe,CACrE,KAAM5F,CACpB,CAAa,CACH,EAOImG,GAAmB9B,EAAY,EAC/B8B,GACFA,GAAiB,KAAKD,EAAc,EAEpCA,GAAc,CAElB,EACA,GAAIL,EACF,OAAAA,EAAkBrsD,EAAM,WAAW,OAAM,CAAE,EAAE,KAAKysD,GAAkBA,EAAgB,EAC7E,KAETA,GAAgB,CAClB,OAAS7kE,GAAO,CAGd,GAAI0kE,IAAoBhG,GAAiB,cAAcC,CAAS,GAAKgG,GAAa,CAChF,IAAIK,GAIHA,EAAyBN,EAAgB,wBAA0B,MAAQM,IAA2B,QAAUA,EAAuB,KAAKN,EAAiB,EAAI,CACpK,CACA,MAAM1kE,EACR,CACA,OAAO,IACT,EACA,WAAY,SAAoBilE,EAAmB,CACjD,GAAI,CAAC7sD,EAAM,OACT,OAAO,KAET,IAAI3M,EAAU8yD,GAAe,CAC3B,aAAcmB,EAAO,aACrB,iBAAkBA,EAAO,iBACzB,oBAAqBA,EAAO,mBACpC,EAASuF,CAAiB,EACpB,aAAa7sD,EAAM,sBAAsB,EACzCA,EAAM,uBAAyB,OAM1BA,EAAM,QACTwmD,EAAK,qBAAqB,EAAK,EAEjCxmD,EAAM,cAAc,MAAK,EACzBwrD,EAAe,EACfxrD,EAAM,OAAS,GACfA,EAAM,OAAS,GACfisD,EAAmB,EACnB3F,GAAiB,eAAeC,EAAWC,CAAI,EAC/C,IAAIsG,EAAevF,EAAUl0D,EAAS,cAAc,EAChD05D,EAAmBxF,EAAUl0D,EAAS,kBAAkB,EACxD25D,EAAsBzF,EAAUl0D,EAAS,qBAAqB,EAC9D45D,GAAmB1F,EAAUl0D,EAAS,kBAAkB,EACxD65D,GAAc3F,EAAUl0D,EAAS,cAAe,yBAAyB,EACzBy5D,IAAa,CAC/D,KAAMtG,CACd,CAAO,EACD,IAAI2G,GAAuB,UAAgC,CACrDD,IACFjE,EAAUC,EAAmBlpD,EAAM,2BAA2B,CAAC,EAEL+sD,IAAiB,CAC3E,KAAMvG,CAChB,CAAS,CACH,EACI4G,EAAqB,UAA8B,CACjDH,IAAoBC,GACtBlG,GAAMmG,EAAoB,EAE1BA,GAAoB,CAExB,EACA,OAAID,IAAeF,GACjBA,EAAoB9D,EAAmBlpD,EAAM,2BAA2B,CAAC,EAAE,KAAKotD,EAAoBA,CAAkB,EAC/G,OAETA,EAAkB,EACX,KACT,EACA,MAAO,SAAeC,EAAc,CAClC,OAAKrtD,EAAM,QAGXA,EAAM,eAAiB,GAChB,KAAK,gBAAgB,GAAMqtD,CAAY,GAHrC,IAIX,EACA,QAAS,SAAiBC,EAAgB,CACxC,OAAKttD,EAAM,QAGXA,EAAM,eAAiB,GACnBumD,EAAUA,EAAU,OAAS,CAAC,IAAM,KAC/B,KAEF,KAAK,gBAAgB,GAAO+G,CAAc,GANxC,IAOX,EACA,wBAAyB,SAAiCC,EAAmB,CAC3E,IAAIC,EAAkB,GAAG,OAAOD,CAAiB,EAAE,OAAO,OAAO,EACjE,OAAAvtD,EAAM,WAAawtD,EAAgB,IAAI,SAAU/vB,EAAS,CACxD,OAAO,OAAOA,GAAY,SAAWpc,EAAI,cAAcoc,CAAO,EAAIA,CACpE,CAAC,EACG6pB,EAAO,iBACTyD,EAAwB/qD,EAAM,UAAU,EAEtCA,EAAM,SACRwoD,EAAmB,EACdxoD,EAAM,QACTwmD,EAAK,qBAAqB,EAAI,GAGlCyF,EAAmB,EACZ,IACT,CACJ,EACE,OAAO,iBAAiBzF,EAAM,CAC5B,kBAAmB,CACjB,MAAO,UAAiB,CACtB,OAAOxmD,EAAM,cACf,CACN,EACI,gBAAiB,CACf,MAAO,SAAeytD,EAAQp6D,EAAS,CACrC,GAAI2M,EAAM,SAAWytD,EACnB,OAAO,KAGT,GADAztD,EAAM,OAASytD,EACXA,EAAQ,CACV,IAAIC,EAAUnG,EAAUl0D,EAAS,SAAS,EACtCs6D,EAAcpG,EAAUl0D,EAAS,aAAa,EACRq6D,IAAQ,CAChD,KAAMlH,CAClB,CAAW,EACDgF,EAAe,EACfhF,EAAK,qBAAqB,EAAK,EAC/ByF,EAAmB,EAC+B0B,IAAY,CAC5D,KAAMnH,CAClB,CAAW,CACH,KAAO,CACL,IAAIoH,EAAYrG,EAAUl0D,EAAS,WAAW,EAC1Cw6D,GAAgBtG,EAAUl0D,EAAS,eAAe,EACRu6D,IAAU,CACtD,KAAMpH,CAClB,CAAW,EACD,IAAIsH,GAAgB,UAAyB,CAC3CtF,EAAmB,EACnB,IAAIkE,GAAiB,UAA0B,CAC7ClG,EAAK,qBAAqB,EAAI,EAC9ByF,EAAmB,EACmC4B,KAAc,CAClE,KAAMrH,CACtB,CAAe,CACH,EAOImG,EAAmB9B,EAAY,EAC/B8B,EACFA,EAAiB,KAAKD,EAAc,EAEpCA,GAAc,CAElB,EACAoB,GAAa,CACf,CACA,OAAO,IACT,CACN,EACI,qBAAsB,CACpB,MAAO,SAAeC,EAAW,CAC3BzG,EAAO,iBACTtnD,EAAM,iBAAiB,QAAQ,SAAUvgB,EAAI,CAC3C,IAAIuuE,EACAD,EACMzG,EAAO,kBACR,gBAGC7nE,EAAG,aAAe,UAAYuuE,EAAmBvuE,EAAG,aAAa,aAAa,KAAO,MAAQuuE,IAAqB,OAAS,OAASA,EAAiB,YAAW,KAAQ,SAC1KhuD,EAAM,cAAc,IAAIvgB,CAAE,EAE5BA,EAAG,aAAa,cAAe,MAAM,KAKjCA,EAAG,OAASA,EAAG,aAAa,OAAO,IACrCugB,EAAM,cAAc,IAAIvgB,CAAE,EAE5BA,EAAG,aAAa,QAAS,EAAI,GAI7BugB,EAAM,cAAc,IAAIvgB,CAAE,IACpB6nE,EAAO,kBACR,cACH7nE,EAAG,gBAAgB,aAAa,EAGhCA,EAAG,gBAAgB,OAAO,EAKpC,CAAC,CAEL,CACN,CACA,CAAG,EAGD+mE,EAAK,wBAAwB3E,CAAQ,EAC9B2E,CACT,EC/wCA,SAASyH,IAAe,CACtB,cAAO,iBAAmB,GACnB,OAAO,cAChB,CACA,SAASC,IAA4B,CACnC,IAAIC,EAAc,GAClB,MAAO,CAIL,OAAQ,CACNA,EAAc,CAAC,GAAGF,IAAc,EAChC,UAAWzH,KAAQ2H,EACjB3H,EAAK,MAAK,CAEd,EAKA,SAAU,CACR,GAAI2H,EAAY,SAAWF,GAAY,EAAG,OACxC,UAAWzH,KAAQ2H,EACjB3H,EAAK,QAAO,EAGhB2H,EAAc,EAChB,CACJ,CACA,CC3BA,SAASC,GAAoBC,EAAah7D,EAAU,GAAI,CACtD,MAAMi7D,EAAsBJ,GAAyB,EACrD/6D,GAAMk7D,EAAa,IAAM,CACnBn9D,GAAQmC,EAAQ,QAAQ,IAGxBnC,GAAQm9D,CAAW,EACrBC,EAAoB,MAAK,EAEzBA,EAAoB,QAAO,EAE/B,CAAC,EACDvoD,GAAY,IAAM,CAChBuoD,EAAoB,QAAO,CAC7B,CAAC,CACH,CCZA,MAAMC,GAAQ,CAAC,MAAO,QAAS,SAAU,MAAM,EACzCC,GAAa,CAAC,QAAS,KAAK,EAC5BC,GAA0BF,GAAM,OAAO,CAAC9hE,EAAKiiE,IAASjiE,EAAI,OAAOiiE,EAAMA,EAAO,IAAMF,GAAW,CAAC,EAAGE,EAAO,IAAMF,GAAW,CAAC,CAAC,EAAG,EAAE,EAClIz7B,GAAM,KAAK,IACXjD,GAAM,KAAK,IAOX6+B,GAAkB,CACtB,KAAM,QACN,MAAO,OACP,OAAQ,MACR,IAAK,QACP,EACA,SAASC,GAAMp4D,EAAOhW,EAAOiW,EAAK,CAChC,OAAOq5B,GAAIt5B,EAAOu8B,GAAIvyC,EAAOiW,CAAG,CAAC,CACnC,CACA,SAASo4D,GAASruE,EAAOsuE,EAAO,CAC9B,OAAO,OAAOtuE,GAAU,WAAaA,EAAMsuE,CAAK,EAAItuE,CACtD,CACA,SAASuuE,GAAQC,EAAW,CAC1B,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CACA,SAASC,GAAaD,EAAW,CAC/B,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CACA,SAASE,GAAgBC,EAAM,CAC7B,OAAOA,IAAS,IAAM,IAAM,GAC9B,CACA,SAASC,GAAcD,EAAM,CAC3B,OAAOA,IAAS,IAAM,SAAW,OACnC,CACA,SAASE,GAAYL,EAAW,CAC9B,MAAMM,EAAYN,EAAU,CAAC,EAC7B,OAAOM,IAAc,KAAOA,IAAc,IAAM,IAAM,GACxD,CACA,SAASC,GAAiBP,EAAW,CACnC,OAAOE,GAAgBG,GAAYL,CAAS,CAAC,CAC/C,CACA,SAASQ,GAAkBR,EAAWS,EAAOC,EAAK,CAC5CA,IAAQ,SACVA,EAAM,IAER,MAAMC,EAAYV,GAAaD,CAAS,EAClCY,EAAgBL,GAAiBP,CAAS,EAC1CxhC,EAAS4hC,GAAcQ,CAAa,EAC1C,IAAIC,EAAoBD,IAAkB,IAAMD,KAAeD,EAAM,MAAQ,SAAW,QAAU,OAASC,IAAc,QAAU,SAAW,MAC9I,OAAIF,EAAM,UAAUjiC,CAAM,EAAIiiC,EAAM,SAASjiC,CAAM,IACjDqiC,EAAoBC,GAAqBD,CAAiB,GAErD,CAACA,EAAmBC,GAAqBD,CAAiB,CAAC,CACpE,CACA,SAASE,GAAsBf,EAAW,CACxC,MAAMgB,EAAoBF,GAAqBd,CAAS,EACxD,MAAO,CAACiB,GAA8BjB,CAAS,EAAGgB,EAAmBC,GAA8BD,CAAiB,CAAC,CACvH,CACA,SAASC,GAA8BjB,EAAW,CAChD,OAAOA,EAAU,SAAS,OAAO,EAAIA,EAAU,QAAQ,QAAS,KAAK,EAAIA,EAAU,QAAQ,MAAO,OAAO,CAC3G,CACA,MAAMkB,GAAc,CAAC,OAAQ,OAAO,EAC9BC,GAAc,CAAC,QAAS,MAAM,EAC9BC,GAAc,CAAC,MAAO,QAAQ,EAC9BC,GAAc,CAAC,SAAU,KAAK,EACpC,SAASC,GAAY5B,EAAM6B,EAASb,EAAK,CACvC,OAAQhB,EAAI,CACV,IAAK,MACL,IAAK,SACH,OAAIgB,EAAYa,EAAUJ,GAAcD,GACjCK,EAAUL,GAAcC,GACjC,IAAK,OACL,IAAK,QACH,OAAOI,EAAUH,GAAcC,GACjC,QACE,MAAO,EACb,CACA,CACA,SAASG,GAA0BxB,EAAWyB,EAAe7S,EAAW8R,EAAK,CAC3E,MAAMC,EAAYV,GAAaD,CAAS,EACxC,IAAIhgC,EAAOshC,GAAYvB,GAAQC,CAAS,EAAGpR,IAAc,QAAS8R,CAAG,EACrE,OAAIC,IACF3gC,EAAOA,EAAK,IAAI0/B,GAAQA,EAAO,IAAMiB,CAAS,EAC1Cc,IACFzhC,EAAOA,EAAK,OAAOA,EAAK,IAAIihC,EAA6B,CAAC,IAGvDjhC,CACT,CACA,SAAS8gC,GAAqBd,EAAW,CACvC,MAAMN,EAAOK,GAAQC,CAAS,EAC9B,OAAOL,GAAgBD,CAAI,EAAIM,EAAU,MAAMN,EAAK,MAAM,CAC5D,CACA,SAASgC,GAAoBC,EAAS,CACpC,IAAIC,EAAcC,EAAgBC,EAAiBC,EACnD,MAAO,CACL,KAAMH,EAAeD,EAAQ,MAAQ,KAAOC,EAAe,EAC3D,OAAQC,EAAiBF,EAAQ,QAAU,KAAOE,EAAiB,EACnE,QAASC,EAAkBH,EAAQ,SAAW,KAAOG,EAAkB,EACvE,MAAOC,EAAgBJ,EAAQ,OAAS,KAAOI,EAAgB,CACnE,CACA,CACA,SAASC,GAAiBL,EAAS,CACjC,OAAO,OAAOA,GAAY,SAAWD,GAAoBC,CAAO,EAAI,CAClE,IAAKA,EACL,MAAOA,EACP,OAAQA,EACR,KAAMA,CACV,CACA,CACA,SAASM,GAAiB/U,EAAM,CAC9B,KAAM,CACJ,EAAA7wD,EACA,EAAA0jC,EACA,MAAA8sB,EACA,OAAAC,CACJ,EAAMI,EACJ,MAAO,CACL,MAAAL,EACA,OAAAC,EACA,IAAK/sB,EACL,KAAM1jC,EACN,MAAOA,EAAIwwD,EACX,OAAQ9sB,EAAI+sB,EACZ,EAAAzwD,EACA,EAAA0jC,CACJ,CACA,CClIA,SAASmiC,GAA2B/1B,EAAM6zB,EAAWU,EAAK,CACxD,GAAI,CACF,UAAAyB,EACA,SAAAC,CACJ,EAAMj2B,EACJ,MAAMk2B,EAAWhC,GAAYL,CAAS,EAChCY,EAAgBL,GAAiBP,CAAS,EAC1CsC,EAAclC,GAAcQ,CAAa,EACzClB,EAAOK,GAAQC,CAAS,EACxBuC,EAAaF,IAAa,IAC1BG,EAAUL,EAAU,EAAIA,EAAU,MAAQ,EAAIC,EAAS,MAAQ,EAC/DK,EAAUN,EAAU,EAAIA,EAAU,OAAS,EAAIC,EAAS,OAAS,EACjEM,EAAcP,EAAUG,CAAW,EAAI,EAAIF,EAASE,CAAW,EAAI,EACzE,IAAIK,EACJ,OAAQjD,EAAI,CACV,IAAK,MACHiD,EAAS,CACP,EAAGH,EACH,EAAGL,EAAU,EAAIC,EAAS,MAClC,EACM,MACF,IAAK,SACHO,EAAS,CACP,EAAGH,EACH,EAAGL,EAAU,EAAIA,EAAU,MACnC,EACM,MACF,IAAK,QACHQ,EAAS,CACP,EAAGR,EAAU,EAAIA,EAAU,MAC3B,EAAGM,CACX,EACM,MACF,IAAK,OACHE,EAAS,CACP,EAAGR,EAAU,EAAIC,EAAS,MAC1B,EAAGK,CACX,EACM,MACF,QACEE,EAAS,CACP,EAAGR,EAAU,EACb,EAAGA,EAAU,CACrB,CACA,CACE,MAAMxB,EAAYV,GAAaD,CAAS,EACxC,OAAIW,IACFgC,EAAO/B,CAAa,GAAK8B,GAAe/B,IAAc,MAAQ,EAAI,KAAOD,GAAO6B,EAAa,GAAK,IAE7FI,CACT,CAUA,eAAeC,GAAe5xD,EAAO3M,EAAS,CAC5C,IAAIw+D,EACAx+D,IAAY,SACdA,EAAU,IAEZ,KAAM,CACJ,EAAAhI,EACA,EAAA0jC,EACA,SAAA+iC,EACA,MAAArC,EACA,SAAA5N,EACA,SAAAkQ,CACJ,EAAM/xD,EACE,CACJ,SAAAgyD,EAAW,oBACX,aAAAC,EAAe,WACf,eAAAC,EAAiB,WACjB,YAAAC,EAAc,GACd,QAAAxB,EAAU,CACd,EAAM9B,GAASx7D,EAAS2M,CAAK,EACrBoyD,EAAgBpB,GAAiBL,CAAO,EAExClzB,EAAUokB,EAASsQ,EADND,IAAmB,WAAa,YAAc,WACbA,CAAc,EAC5DG,EAAqBpB,GAAiB,MAAMa,EAAS,gBAAgB,CACzE,SAAWD,EAAwB,MAAOC,EAAS,WAAa,KAAO,OAASA,EAAS,UAAUr0B,CAAO,KAAO,MAAOo0B,EAAgCp0B,EAAUA,EAAQ,gBAAmB,MAAOq0B,EAAS,oBAAsB,KAAO,OAASA,EAAS,mBAAmBjQ,EAAS,QAAQ,GAChS,SAAAmQ,EACA,aAAAC,EACA,SAAAF,CACJ,CAAG,CAAC,EACI7V,EAAOgW,IAAmB,WAAa,CAC3C,EAAA7mE,EACA,EAAA0jC,EACA,MAAO0gC,EAAM,SAAS,MACtB,OAAQA,EAAM,SAAS,MAC3B,EAAMA,EAAM,UACJ6C,EAAe,MAAOR,EAAS,iBAAmB,KAAO,OAASA,EAAS,gBAAgBjQ,EAAS,QAAQ,GAC5G0Q,EAAe,MAAOT,EAAS,WAAa,KAAO,OAASA,EAAS,UAAUQ,CAAY,IAAQ,MAAOR,EAAS,UAAY,KAAO,OAASA,EAAS,SAASQ,CAAY,IAAO,CACxL,EAAG,EACH,EAAG,CACP,EACQE,EAAoBvB,GAAiBa,EAAS,sDAAwD,MAAMA,EAAS,sDAAsD,CAC/K,SAAAjQ,EACA,KAAA3F,EACA,aAAAoW,EACA,SAAAP,CACJ,CAAG,EAAI7V,CAAI,EACT,MAAO,CACL,KAAMmW,EAAmB,IAAMG,EAAkB,IAAMJ,EAAc,KAAOG,EAAY,EACxF,QAASC,EAAkB,OAASH,EAAmB,OAASD,EAAc,QAAUG,EAAY,EACpG,MAAOF,EAAmB,KAAOG,EAAkB,KAAOJ,EAAc,MAAQG,EAAY,EAC5F,OAAQC,EAAkB,MAAQH,EAAmB,MAAQD,EAAc,OAASG,EAAY,CACpG,CACA,CAGA,MAAME,GAAkB,GASlBC,GAAkB,MAAOvB,EAAWC,EAAU9J,IAAW,CAC7D,KAAM,CACJ,UAAA0H,EAAY,SACZ,SAAA+C,EAAW,WACX,WAAAY,EAAa,GACb,SAAAb,CACJ,EAAMxK,EACEsL,EAA6Bd,EAAS,eAAiBA,EAAW,CACtE,GAAGA,EACH,eAAAF,EACJ,EACQlC,EAAM,MAAOoC,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMV,CAAQ,GAC5E,IAAI3B,EAAQ,MAAMqC,EAAS,gBAAgB,CACzC,UAAAX,EACA,SAAAC,EACA,SAAAW,CACJ,CAAG,EACG,CACF,EAAA1mE,EACA,EAAA0jC,CACJ,EAAMmiC,GAA2BzB,EAAOT,EAAWU,CAAG,EAChDmD,EAAoB7D,EACpB8D,EAAa,EACjB,MAAMC,EAAiB,GACvB,QAASrzE,EAAI,EAAGA,EAAIizE,EAAW,OAAQjzE,IAAK,CAC1C,MAAMszE,EAAoBL,EAAWjzE,CAAC,EACtC,GAAI,CAACszE,EACH,SAEF,KAAM,CACJ,KAAA/vE,EACA,GAAAnC,CACN,EAAQkyE,EACE,CACJ,EAAGC,EACH,EAAGC,EACH,KAAAvpD,EACA,MAAA7O,CACN,EAAQ,MAAMha,EAAG,CACX,EAAAuK,EACA,EAAA0jC,EACA,iBAAkBigC,EAClB,UAAW6D,EACX,SAAAd,EACA,eAAAgB,EACA,MAAAtD,EACA,SAAUmD,EACV,SAAU,CACR,UAAAzB,EACA,SAAAC,CACR,CACA,CAAK,EACD/lE,EAAI4nE,GAAwB5nE,EAC5B0jC,EAAImkC,GAAwBnkC,EAC5BgkC,EAAe9vE,CAAI,EAAI,CACrB,GAAG8vE,EAAe9vE,CAAI,EACtB,GAAG0mB,CACT,EACQ7O,GAASg4D,EAAaL,KACxBK,IACI,OAAOh4D,GAAU,WACfA,EAAM,YACR+3D,EAAoB/3D,EAAM,WAExBA,EAAM,QACR20D,EAAQ30D,EAAM,QAAU,GAAO,MAAMg3D,EAAS,gBAAgB,CAC5D,UAAAX,EACA,SAAAC,EACA,SAAAW,CACZ,CAAW,EAAIj3D,EAAM,OAEZ,CACC,EAAAzP,EACA,EAAA0jC,CACV,EAAYmiC,GAA2BzB,EAAOoD,EAAmBnD,CAAG,GAE9DhwE,EAAI,GAER,CACA,MAAO,CACL,EAAA2L,EACA,EAAA0jC,EACA,UAAW8jC,EACX,SAAAd,EACA,eAAAgB,CACJ,CACA,EAOMI,GAAQ9/D,IAAY,CACxB,KAAM,QACN,QAAAA,EACA,MAAM,GAAG2M,EAAO,CACd,KAAM,CACJ,EAAA3U,EACA,EAAA0jC,EACA,UAAAigC,EACA,MAAAS,EACA,SAAAqC,EACA,SAAAjQ,EACA,eAAAkR,CACN,EAAQ/yD,EAEE,CACJ,QAAAy9B,EACA,QAAAkzB,EAAU,CAChB,EAAQ9B,GAASx7D,EAAS2M,CAAK,GAAK,GAChC,GAAIy9B,GAAW,KACb,MAAO,GAET,MAAM20B,EAAgBpB,GAAiBL,CAAO,EACxCgB,EAAS,CACb,EAAAtmE,EACA,EAAA0jC,CACN,EACUogC,EAAOI,GAAiBP,CAAS,EACjCxhC,EAAS4hC,GAAcD,CAAI,EAC3BiE,EAAkB,MAAMtB,EAAS,cAAcr0B,CAAO,EACtD41B,EAAUlE,IAAS,IACnBmE,EAAUD,EAAU,MAAQ,OAC5BE,EAAUF,EAAU,SAAW,QAC/BG,EAAaH,EAAU,eAAiB,cACxCI,EAAUhE,EAAM,UAAUjiC,CAAM,EAAIiiC,EAAM,UAAUN,CAAI,EAAIwC,EAAOxC,CAAI,EAAIM,EAAM,SAASjiC,CAAM,EAChGkmC,EAAY/B,EAAOxC,CAAI,EAAIM,EAAM,UAAUN,CAAI,EAC/CwE,EAAoB,MAAO7B,EAAS,iBAAmB,KAAO,OAASA,EAAS,gBAAgBr0B,CAAO,GAC7G,IAAIm2B,EAAaD,EAAoBA,EAAkBH,CAAU,EAAI,GAGjE,CAACI,GAAc,CAAE,MAAO9B,EAAS,WAAa,KAAO,OAASA,EAAS,UAAU6B,CAAiB,MACpGC,EAAa/R,EAAS,SAAS2R,CAAU,GAAK/D,EAAM,SAASjiC,CAAM,GAErE,MAAMqmC,EAAoBJ,EAAU,EAAIC,EAAY,EAI9CI,EAAyBF,EAAa,EAAIR,EAAgB5lC,CAAM,EAAI,EAAI,EACxEumC,EAAahhC,GAAIq/B,EAAckB,CAAO,EAAGQ,CAAsB,EAC/DE,EAAajhC,GAAIq/B,EAAcmB,CAAO,EAAGO,CAAsB,EAI/DhkC,EAAM8jC,EAAaR,EAAgB5lC,CAAM,EAAIwmC,EAC7CC,EAASL,EAAa,EAAIR,EAAgB5lC,CAAM,EAAI,EAAIqmC,EACxD1nC,EAASyiC,GAAMmF,EAAYE,EAAQnkC,CAAG,EAMtCokC,EAAkB,CAACnB,EAAe,OAAS9D,GAAaD,CAAS,GAAK,MAAQiF,IAAW9nC,GAAUsjC,EAAM,UAAUjiC,CAAM,EAAI,GAAKymC,EAASF,EAAaA,EAAaC,GAAcZ,EAAgB5lC,CAAM,EAAI,EAAI,EACjN2mC,EAAkBD,EAAkBD,EAASF,EAAaE,EAASF,EAAaE,EAASnkC,EAAM,EACrG,MAAO,CACL,CAACq/B,CAAI,EAAGwC,EAAOxC,CAAI,EAAIgF,EACvB,KAAM,CACJ,CAAChF,CAAI,EAAGhjC,EACR,aAAc8nC,EAAS9nC,EAASgoC,EAChC,GAAID,GAAmB,CACrB,gBAAAC,CACV,CACA,EACM,MAAOD,CACb,CACE,CACF,GAEA,SAASE,GAAiBzE,EAAW0E,EAAeC,EAAmB,CAErE,OAD2C3E,EAAY,CAAC,GAAG2E,EAAkB,OAAOtF,GAAaC,GAAaD,CAAS,IAAMW,CAAS,EAAG,GAAG2E,EAAkB,OAAOtF,GAAaC,GAAaD,CAAS,IAAMW,CAAS,CAAC,EAAI2E,EAAkB,OAAOtF,GAAaD,GAAQC,CAAS,IAAMA,CAAS,GACxP,OAAOA,GAC3CW,EACKV,GAAaD,CAAS,IAAMW,IAAc0E,EAAgBpE,GAA8BjB,CAAS,IAAMA,EAAY,IAErH,EACR,CACH,CAOA,MAAMuF,GAAgB,SAAUlhE,EAAS,CACvC,OAAIA,IAAY,SACdA,EAAU,IAEL,CACL,KAAM,gBACN,QAAAA,EACA,MAAM,GAAG2M,EAAO,CACd,IAAIw0D,EAAuBC,EAAwBC,EACnD,KAAM,CACJ,MAAAjF,EACA,eAAAsD,EACA,UAAA/D,EACA,SAAA8C,EACA,SAAAjQ,CACR,EAAU7hD,EACE,CACJ,UAAA20D,EAAY,GACZ,UAAAhF,EACA,kBAAA2E,EAAoB7F,GACpB,cAAA4F,EAAgB,GAChB,GAAGO,CACX,EAAU/F,GAASx7D,EAAS2M,CAAK,EACrB60D,EAAelF,IAAc,QAAa2E,IAAsB7F,GAAa2F,GAAiBzE,GAAa,KAAM0E,EAAeC,CAAiB,EAAIA,EACrJQ,IAAiBN,EAAwBzB,EAAe,gBAAkB,KAAO,OAASyB,EAAsB,QAAU,EAC1HO,EAAmBF,EAAaC,CAAY,EAClD,GAAIC,GAAoB,KACtB,MAAO,GAIT,GAAI/F,IAAc+F,EAChB,MAAO,CACL,MAAO,CACL,UAAWF,EAAa,CAAC,CACrC,CACA,EAEM,MAAMG,EAAW,MAAMlD,EAAS,eAAe9xD,EAAO40D,CAAqB,EACrEK,EAAiBzF,GAAkBuF,EAAkBtF,EAAO,MAAOqC,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMjQ,EAAS,QAAQ,EAAE,EACvIqT,EAAmB,CAACF,EAASjG,GAAQgG,CAAgB,CAAC,EAAGC,EAASC,EAAe,CAAC,CAAC,EAAGD,EAASC,EAAe,CAAC,CAAC,CAAC,EACjHE,EAAe,CAAC,KAAMV,EAAyB1B,EAAe,gBAAkB,KAAO,OAAS0B,EAAuB,YAAc,GAAK,CAC9I,UAAWM,EACX,UAAWG,CACnB,CAAO,EACKE,EAAgBP,EAAaC,EAAe,CAAC,EAGnD,GAAIM,EACF,MAAO,CACL,KAAM,CACJ,MAAON,EAAe,EACtB,UAAWK,CACvB,EACU,MAAO,CACL,UAAWC,CACvB,CACA,EAEM,MAAMC,EAA8BF,EAAa,IAAIxvC,GAAK,CACxD,MAAMgqC,EAAYV,GAAatpC,EAAE,SAAS,EAC1C,MAAO,CAACA,EAAE,UAAWgqC,GAAagF,EAElChvC,EAAE,UAAU,MAAM,EAAG,CAAC,EAAE,OAAO,CAACl5B,EAAKpH,IAAMoH,EAAMpH,EAAG,CAAC,EAErDsgC,EAAE,UAAU,CAAC,EAAGA,EAAE,SAAS,CAC7B,CAAC,EAAE,KAAK,CAACjiC,EAAGC,IAAMD,EAAE,CAAC,EAAIC,EAAE,CAAC,CAAC,EAKvB2xE,IAAmBZ,EAJWW,EAA4B,OAAO1vC,GAAKA,EAAE,CAAC,EAAE,MAAM,EAGvFspC,GAAatpC,EAAE,CAAC,CAAC,EAAI,EAAI,CAAC,EAAE,MAAMtgC,GAAKA,GAAK,CAAC,CAAC,EAC+B,CAAC,IAAM,KAAO,OAASqvE,EAAsB,CAAC,IAAMW,EAA4B,CAAC,EAAE,CAAC,EACjK,OAAIC,IAAmBtG,EACd,CACL,KAAM,CACJ,MAAO8F,EAAe,EACtB,UAAWK,CACvB,EACU,MAAO,CACL,UAAWG,CACvB,CACA,EAEa,EACT,CACJ,CACA,EAQMC,GAAO,SAAUliE,EAAS,CAC9B,OAAIA,IAAY,SACdA,EAAU,IAEL,CACL,KAAM,OACN,QAAAA,EACA,MAAM,GAAG2M,EAAO,CACd,IAAIw1D,EAAuBC,EAC3B,KAAM,CACJ,UAAAzG,EACA,eAAA+D,EACA,MAAAtD,EACA,iBAAAiG,EACA,SAAA5D,EACA,SAAAjQ,CACR,EAAU7hD,EACE,CACJ,SAAU21D,EAAgB,GAC1B,UAAWC,EAAiB,GAC5B,mBAAoBC,EACpB,iBAAAC,EAAmB,UACnB,0BAAAC,EAA4B,OAC5B,cAAAtF,EAAgB,GAChB,GAAGmE,CACX,EAAU/F,GAASx7D,EAAS2M,CAAK,EAM3B,IAAKw1D,EAAwBzC,EAAe,QAAU,MAAQyC,EAAsB,gBAClF,MAAO,GAET,MAAM9G,EAAOK,GAAQC,CAAS,EACxBgH,EAAkB3G,GAAYqG,CAAgB,EAC9CO,EAAkBlH,GAAQ2G,CAAgB,IAAMA,EAChDhG,EAAM,MAAOoC,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMjQ,EAAS,QAAQ,GAC/EqU,EAAqBL,IAAgCI,GAAmB,CAACxF,EAAgB,CAACX,GAAqB4F,CAAgB,CAAC,EAAI3F,GAAsB2F,CAAgB,GAC1KS,EAA+BJ,IAA8B,OAC/D,CAACF,GAA+BM,GAClCD,EAAmB,KAAK,GAAG1F,GAA0BkF,EAAkBjF,EAAesF,EAA2BrG,CAAG,CAAC,EAEvH,MAAMjB,EAAa,CAACiH,EAAkB,GAAGQ,CAAkB,EACrDlB,EAAW,MAAMlD,EAAS,eAAe9xD,EAAO40D,CAAqB,EACrEwB,EAAY,GAClB,IAAIC,IAAkBZ,EAAuB1C,EAAe,OAAS,KAAO,OAAS0C,EAAqB,YAAc,GAIxH,GAHIE,GACFS,EAAU,KAAKpB,EAAStG,CAAI,CAAC,EAE3BkH,EAAgB,CAClB,MAAMrH,EAAQiB,GAAkBR,EAAWS,EAAOC,CAAG,EACrD0G,EAAU,KAAKpB,EAASzG,EAAM,CAAC,CAAC,EAAGyG,EAASzG,EAAM,CAAC,CAAC,CAAC,CACvD,CAOA,GANA8H,EAAgB,CAAC,GAAGA,EAAe,CACjC,UAAArH,EACA,UAAAoH,CACR,CAAO,EAGG,CAACA,EAAU,MAAM1H,GAAQA,GAAQ,CAAC,EAAG,CACvC,IAAI4H,EAAuBC,EAC3B,MAAMz6C,KAAew6C,EAAwBvD,EAAe,OAAS,KAAO,OAASuD,EAAsB,QAAU,GAAK,EACpHlB,EAAgB3G,EAAW3yC,CAAS,EAC1C,GAAIs5C,IAEE,EAD4BQ,IAAmB,aAAcI,IAAoB3G,GAAY+F,CAAa,IAI9GiB,EAAc,MAAM1wC,IAAK0pC,GAAY1pC,GAAE,SAAS,IAAMqwC,EAAkBrwC,GAAE,UAAU,CAAC,EAAI,EAAI,EAAI,GAE/F,MAAO,CACL,KAAM,CACJ,MAAO7J,EACP,UAAWu6C,CAC3B,EACc,MAAO,CACL,UAAWjB,CAC3B,CACA,EAMQ,IAAIE,GAAkBiB,EAAwBF,EAAc,OAAO1wC,IAAKA,GAAE,UAAU,CAAC,GAAK,CAAC,EAAE,KAAK,CAACjiC,GAAGC,KAAMD,GAAE,UAAU,CAAC,EAAIC,GAAE,UAAU,CAAC,CAAC,EAAE,CAAC,IAAM,KAAO,OAAS4yE,EAAsB,UAG1L,GAAI,CAACjB,EACH,OAAQQ,EAAgB,CACtB,IAAK,UACH,CACE,IAAIU,EACJ,MAAMxH,IAAawH,EAAyBH,EAAc,OAAO1wC,IAAK,CACpE,GAAIwwC,EAA8B,CAChC,MAAMM,GAAkBpH,GAAY1pC,GAAE,SAAS,EAC/C,OAAO8wC,KAAoBT,GAG3BS,KAAoB,GACtB,CACA,MAAO,EACT,CAAC,EAAE,IAAI9wC,IAAK,CAACA,GAAE,UAAWA,GAAE,UAAU,OAAOqvC,IAAYA,GAAW,CAAC,EAAE,OAAO,CAACvoE,GAAKuoE,IAAavoE,GAAMuoE,EAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAACtxE,GAAGC,KAAMD,GAAE,CAAC,EAAIC,GAAE,CAAC,CAAC,EAAE,CAAC,IAAM,KAAO,OAAS6yE,EAAuB,CAAC,EAC7LxH,KACFsG,EAAiBtG,IAEnB,KACF,CACF,IAAK,mBACHsG,EAAiBI,EACjB,KACd,CAEQ,GAAI1G,IAAcsG,EAChB,MAAO,CACL,MAAO,CACL,UAAWA,CACzB,CACA,CAEM,CACA,MAAO,EACT,CACJ,CACA,EAoMMoB,GAA2B,IAAI,IAAI,CAAC,OAAQ,KAAK,CAAC,EAKxD,eAAeC,GAAqB32D,EAAO3M,EAAS,CAClD,KAAM,CACJ,UAAA27D,EACA,SAAA8C,EACA,SAAAjQ,CACJ,EAAM7hD,EACE0vD,EAAM,MAAOoC,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMjQ,EAAS,QAAQ,GAC/E6M,EAAOK,GAAQC,CAAS,EACxBW,EAAYV,GAAaD,CAAS,EAClCuC,EAAalC,GAAYL,CAAS,IAAM,IACxC4H,EAAgBF,GAAY,IAAIhI,CAAI,EAAI,GAAK,EAC7CmI,EAAiBnH,GAAO6B,EAAa,GAAK,EAC1CpiE,EAAW0/D,GAASx7D,EAAS2M,CAAK,EAGxC,GAAI,CACF,SAAA82D,EACA,UAAAnC,EACA,cAAA/E,CACJ,EAAM,OAAOzgE,GAAa,SAAW,CACjC,SAAUA,EACV,UAAW,EACX,cAAe,IACnB,EAAM,CACF,SAAUA,EAAS,UAAY,EAC/B,UAAWA,EAAS,WAAa,EACjC,cAAeA,EAAS,aAC5B,EACE,OAAIwgE,GAAa,OAAOC,GAAkB,WACxC+E,EAAYhF,IAAc,MAAQC,EAAgB,GAAKA,GAElD2B,EAAa,CAClB,EAAGoD,EAAYkC,EACf,EAAGC,EAAWF,CAClB,EAAM,CACF,EAAGE,EAAWF,EACd,EAAGjC,EAAYkC,CACnB,CACA,CASA,MAAM1qC,GAAS,SAAU94B,EAAS,CAChC,OAAIA,IAAY,SACdA,EAAU,GAEL,CACL,KAAM,SACN,QAAAA,EACA,MAAM,GAAG2M,EAAO,CACd,IAAI+2D,EAAuBvB,EAC3B,KAAM,CACJ,EAAAnqE,EACA,EAAA0jC,EACA,UAAAigC,EACA,eAAA+D,CACR,EAAU/yD,EACEg3D,EAAa,MAAML,GAAqB32D,EAAO3M,CAAO,EAI5D,OAAI27D,MAAgB+H,EAAwBhE,EAAe,SAAW,KAAO,OAASgE,EAAsB,aAAevB,EAAwBzC,EAAe,QAAU,MAAQyC,EAAsB,gBACjM,GAEF,CACL,EAAGnqE,EAAI2rE,EAAW,EAClB,EAAGjoC,EAAIioC,EAAW,EAClB,KAAM,CACJ,GAAGA,EACH,UAAAhI,CACV,CACA,CACI,CACJ,CACA,EAOMiI,GAAQ,SAAU5jE,EAAS,CAC/B,OAAIA,IAAY,SACdA,EAAU,IAEL,CACL,KAAM,QACN,QAAAA,EACA,MAAM,GAAG2M,EAAO,CACd,KAAM,CACJ,EAAA3U,EACA,EAAA0jC,EACA,UAAAigC,EACA,SAAA8C,CACR,EAAU9xD,EACE,CACJ,SAAU21D,EAAgB,GAC1B,UAAWC,EAAiB,GAC5B,QAAAsB,EAAU,CACR,GAAI/7B,GAAQ,CACV,GAAI,CACF,EAAA9vC,EACA,EAAA0jC,CACd,EAAgBoM,EACJ,MAAO,CACL,EAAA9vC,EACA,EAAA0jC,CACd,CACU,CACV,EACQ,GAAG6lC,CACX,EAAU/F,GAASx7D,EAAS2M,CAAK,EACrB2xD,EAAS,CACb,EAAAtmE,EACA,EAAA0jC,CACR,EACYimC,EAAW,MAAMlD,EAAS,eAAe9xD,EAAO40D,CAAqB,EACrED,EAAYtF,GAAYL,CAAS,EACjC8H,EAAW5H,GAAgByF,CAAS,EAC1C,IAAIwC,EAAgBxF,EAAOmF,CAAQ,EAC/BM,EAAiBzF,EAAOgD,CAAS,EACrC,MAAM0C,EAAa,CAAClI,EAAMmI,IAAU1I,GAAM0I,EAAQtC,EAAS7F,IAAS,IAAM,MAAQ,MAAM,EAAGmI,EAAOA,EAAQtC,EAAS7F,IAAS,IAAM,SAAW,OAAO,CAAC,EACjJwG,IACFwB,EAAgBE,EAAWP,EAAUK,CAAa,GAEhDvB,IACFwB,EAAiBC,EAAW1C,EAAWyC,CAAc,GAEvD,MAAMG,EAAgBL,EAAQ,GAAG,CAC/B,GAAGl3D,EACH,CAAC82D,CAAQ,EAAGK,EACZ,CAACxC,CAAS,EAAGyC,CACrB,CAAO,EACD,MAAO,CACL,GAAGG,EACH,KAAM,CACJ,EAAGA,EAAc,EAAIlsE,EACrB,EAAGksE,EAAc,EAAIxoC,EACrB,QAAS,CACP,CAAC+nC,CAAQ,EAAGnB,EACZ,CAAChB,CAAS,EAAGiB,CACzB,CACA,CACA,CACI,CACJ,CACA,EAkFMznC,GAAO,SAAU96B,EAAS,CAC9B,OAAIA,IAAY,SACdA,EAAU,IAEL,CACL,KAAM,OACN,QAAAA,EACA,MAAM,GAAG2M,EAAO,CACd,KAAM,CACJ,UAAAgvD,EACA,MAAAS,EACA,SAAAqC,EACA,SAAAjQ,CACR,EAAU7hD,EACE,CACJ,MAAAzU,EAAQ,IAAM,CAAC,EACf,GAAGqpE,CACX,EAAU/F,GAASx7D,EAAS2M,CAAK,EACrBg1D,EAAW,MAAMlD,EAAS,eAAe9xD,EAAO40D,CAAqB,EACrElG,EAAOK,GAAQC,CAAS,EACxBW,EAAYV,GAAaD,CAAS,EAClCqE,EAAUhE,GAAYL,CAAS,IAAM,IACrC,CACJ,MAAAnT,EACA,OAAAC,CACR,EAAU2T,EAAM,SACV,IAAI+H,EACAC,EACA/I,IAAS,OAASA,IAAS,UAC7B8I,EAAa9I,EACb+I,EAAY9H,KAAgB,MAAOmC,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMjQ,EAAS,QAAQ,GAAM,QAAU,OAAS,OAAS,UAEvI4V,EAAY/I,EACZ8I,EAAa7H,IAAc,MAAQ,MAAQ,UAE7C,MAAM+H,EAAwB5b,EAASkZ,EAAS,IAAMA,EAAS,OACzD2C,EAAuB9b,EAAQmZ,EAAS,KAAOA,EAAS,MACxD4C,EAA0B7kC,GAAI+oB,EAASkZ,EAASwC,CAAU,EAAGE,CAAqB,EAClFG,EAAyB9kC,GAAI8oB,EAAQmZ,EAASyC,CAAS,EAAGE,CAAoB,EAC9EG,EAAY93D,EAAM,eAAe,MACjC+3D,EAAU,CAACD,EACjB,IAAIE,EAAkBJ,EAClBK,EAAiBJ,EACjBC,GAAa,MAAQA,EAAU,QAAQ,IACzCG,EAAiBN,GAEfG,GAAa,MAAQA,EAAU,QAAQ,IACzCE,EAAkBN,GAEhBK,GAAW,CAACpI,IACV0D,EACF4E,EAAiBpc,EAAQ,EAAI/rB,GAAIklC,EAAS,KAAMA,EAAS,KAAK,EAE9DgD,EAAkBlc,EAAS,EAAIhsB,GAAIklC,EAAS,IAAKA,EAAS,MAAM,GAGpE,MAAMzpE,EAAM,CACV,GAAGyU,EACH,eAAAi4D,EACA,gBAAAD,CACR,CAAO,EACD,MAAME,EAAiB,MAAMpG,EAAS,cAAcjQ,EAAS,QAAQ,EACrE,OAAIhG,IAAUqc,EAAe,OAASpc,IAAWoc,EAAe,OACvD,CACL,MAAO,CACL,MAAO,EACnB,CACA,EAEa,EACT,CACJ,CACA,EC3gC0L,SAASl2E,GAAEqgC,EAAE,CAAC,IAAI36B,EAAE,QAAcA,EAAE26B,EAAE,gBAAX,KAA0B,OAAO36B,EAAE,cAAc,MAAM,CAAC,SAASytC,GAAE9S,EAAE,CAAC,OAAOrgC,GAAEqgC,CAAC,EAAE,iBAAiBA,CAAC,CAAC,CAAC,MAAM3iC,GAAE,KAAK,IAAIgR,GAAE,KAAK,IAAI/K,GAAE,KAAK,MAAM,SAASzE,GAAEmhC,EAAE,CAAC,MAAM36B,EAAEytC,GAAE9S,CAAC,EAAE,IAAI,EAAE,WAAW36B,EAAE,KAAK,EAAEhI,EAAE,WAAWgI,EAAE,MAAM,EAAE,MAAMgJ,EAAE2xB,EAAE,YAAYnhC,EAAEmhC,EAAE,aAAaluB,EAAExO,GAAE,CAAC,IAAI+K,GAAG/K,GAAEjG,CAAC,IAAIwB,EAAE,OAAOiT,IAAI,EAAEzD,EAAEhR,EAAEwB,GAAG,CAAC,MAAM,EAAE,OAAOxB,EAAE,SAASyU,CAAC,CAAC,CAAC,SAASA,GAAEkuB,EAAE,CAAC,OAAOrV,GAAEqV,CAAC,GAAGA,EAAE,UAAU,IAAI,YAAW,EAAG,EAAE,CAAC,IAAImY,GAAE,SAAS7gB,IAAG,CAAC,GAAG6gB,GAAE,OAAOA,GAAE,MAAMnY,EAAE,UAAU,cAAc,OAAOA,GAAG,MAAM,QAAQA,EAAE,MAAM,GAAGmY,GAAEnY,EAAE,OAAO,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,QAAO,EAAG,KAAK,GAAG,EAAEmY,IAAG,UAAU,SAAS,CAAC,SAAS92C,GAAE2+B,EAAE,CAAC,OAAOA,aAAargC,GAAEqgC,CAAC,EAAE,WAAW,CAAC,SAASsD,GAAEtD,EAAE,CAAC,OAAOA,aAAargC,GAAEqgC,CAAC,EAAE,OAAO,CAAC,SAASrV,GAAEqV,EAAE,CAAC,OAAOA,aAAargC,GAAEqgC,CAAC,EAAE,IAAI,CAAC,SAAShsB,GAAEgsB,EAAE,CAAC,OAAgB,OAAO,WAApB,IAAqC,GAAUA,aAAargC,GAAEqgC,CAAC,EAAE,YAAYA,aAAa,UAAU,CAAC,SAASvC,GAAEuC,EAAE,CAAC,KAAK,CAAC,SAAS36B,EAAE,UAAU,EAAE,UAAUhI,EAAE,QAAQgR,CAAC,EAAEykC,GAAE9S,CAAC,EAAE,MAAM,kCAAkC,KAAK36B,EAAEhI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,SAASgR,CAAC,CAAC,CAAC,SAAS8c,GAAE6U,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,SAASluB,GAAEkuB,CAAC,CAAC,CAAC,CAAC,SAAS0M,GAAE1M,EAAE,CAAC,MAAM36B,EAAE,WAAW,KAAKiyB,IAAG,EAAE,EAAEwb,GAAE9S,CAAC,EAAE3iC,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,OAAe,EAAE,YAAX,QAA+B,EAAE,cAAX,QAAwB,CAAC,CAACA,GAAYA,IAAT,QAAYgI,GAAc,EAAE,aAAb,UAAyBA,GAAG,CAAC,CAAC,EAAE,QAAiB,EAAE,SAAX,QAAmB,CAAC,YAAY,aAAa,EAAE,MAAM26B,GAAG,EAAE,WAAW,SAASA,CAAC,EAAC,GAAI,CAAC,QAAQ,SAAS,SAAS,SAAS,EAAE,MAAMA,GAAG,CAAC,MAAM36B,EAAE,EAAE,QAAQ,OAAaA,GAAN,MAASA,EAAE,SAAS26B,CAAC,CAAC,EAAC,CAAE,CAAC,SAASh3B,IAAG,CAAC,MAAM,CAAC,iCAAiC,KAAKsuB,GAAC,CAAE,CAAC,CAAC,SAASw+C,GAAE91C,EAAE,CAAC,MAAM,CAAC,OAAO,OAAO,WAAW,EAAE,SAASluB,GAAEkuB,CAAC,CAAC,CAAC,CAAC,SAASh9B,GAAEg9B,EAAE,CAAC,OAAOsD,GAAEtD,CAAC,EAAEA,EAAEA,EAAE,cAAc,CAAC,MAAM1+B,GAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAASy0E,GAAE/1C,EAAE,CAAC,MAAM36B,EAAErC,GAAEg9B,CAAC,EAAE,GAAG,CAAC3+B,GAAEgE,CAAC,EAAE,OAAO/D,GAAE,MAAM,EAAE+D,EAAE,sBAAqB,EAAG,CAAC,MAAMytC,EAAE,OAAOz1C,EAAE,SAASgR,CAAC,EAAExP,GAAEwG,CAAC,EAAE,IAAIyM,GAAGzD,EAAE/K,GAAE,EAAE,KAAK,EAAE,EAAE,OAAOwvC,EAAEqF,GAAG9pC,EAAE/K,GAAE,EAAE,MAAM,EAAE,EAAE,QAAQjG,EAAE,OAAOyU,GAAG,OAAO,SAASA,CAAC,IAAIA,EAAE,GAAGqmC,GAAG,OAAO,SAASA,CAAC,IAAIA,EAAE,GAAG,CAAC,EAAErmC,EAAE,EAAEqmC,CAAC,CAAC,CAAC,SAAS9G,GAAErR,EAAE36B,EAAEytC,EAAEz1C,EAAE,CAAC,IAAIgR,EAAE/K,EAAW+B,IAAT,SAAaA,EAAE,IAAaytC,IAAT,SAAaA,EAAE,IAAI,MAAMj0C,EAAEmhC,EAAE,wBAAwBluB,EAAE9O,GAAEg9B,CAAC,EAAE,IAAImY,EAAE72C,GAAE+D,IAAIhI,EAAEimC,GAAEjmC,CAAC,IAAI86C,EAAE49B,GAAE14E,CAAC,GAAG86C,EAAE49B,GAAE/1C,CAAC,GAAG,MAAM1I,EAAExlB,EAAEnS,GAAEmS,CAAC,EAAE,OAAOzQ,EAAE,CAAC2H,MAAK8pC,EAAE,IAAInoB,GAAG9rB,EAAE,MAAMwC,KAAWgN,EAAEipB,EAAE,iBAAX,KAA2B,OAAOjpB,EAAE,aAAa,IAAI8pC,EAAE,EAAEnkC,GAAGnV,EAAE,KAAKwC,KAAWiC,EAAEg0B,EAAE,iBAAX,KAA2B,OAAOh0B,EAAE,YAAY,IAAI60C,EAAE,EAAE1a,EAAE5+B,EAAE,MAAMs5C,EAAE,EAAEhtB,EAAEtsB,EAAE,OAAOs5C,EAAE,EAAE,GAAGrmC,EAAE,CAAC,MAAMkuB,EAAErgC,GAAEmS,CAAC,EAAEzM,EAAEhI,GAAGimC,GAAEjmC,CAAC,EAAEsC,GAAEtC,CAAC,EAAEA,EAAE,IAAIy1C,EAAE9S,EAAE,aAAa,KAAK8S,GAAGz1C,GAAGgI,IAAI26B,GAAG,CAAC,MAAMA,EAAE+1C,GAAEjjC,CAAC,EAAEztC,EAAEytC,EAAE,sBAAqB,EAAGz1C,EAAE,iBAAiBy1C,CAAC,EAAEztC,EAAE,IAAIytC,EAAE,WAAW,WAAWz1C,EAAE,WAAW,GAAG2iC,EAAE,EAAE36B,EAAE,IAAIytC,EAAE,UAAU,WAAWz1C,EAAE,UAAU,GAAG2iC,EAAE,EAAErV,GAAGqV,EAAE,EAAEhsB,GAAGgsB,EAAE,EAAEvC,GAAGuC,EAAE,EAAE7U,GAAG6U,EAAE,EAAErV,GAAGtlB,EAAE,EAAE2O,GAAG3O,EAAE,EAAEytC,EAAEnzC,GAAEmzC,CAAC,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,MAAMrV,EAAE,OAAOtS,EAAE,IAAInX,EAAE,MAAM2W,EAAE8S,EAAE,OAAOzpB,EAAEmX,EAAE,KAAKR,EAAE,EAAEA,EAAE,EAAE3W,CAAC,CAAC,CAAC,SAASgiE,GAAEh2C,EAAE,CAAC,QAAQrV,GAAEqV,CAAC,EAAEA,EAAE,cAAcA,EAAE,WAAW,OAAO,UAAU,eAAe,CAAC,SAASi2C,GAAEj2C,EAAE,CAAC,OAAOsD,GAAEtD,CAAC,EAAE,CAAC,WAAWA,EAAE,WAAW,UAAUA,EAAE,SAAS,EAAE,CAAC,WAAWA,EAAE,YAAY,UAAUA,EAAE,WAAW,CAAC,CAAC,SAASk2C,GAAEl2C,EAAE,CAAC,OAAOqR,GAAE2kC,GAAEh2C,CAAC,CAAC,EAAE,KAAKi2C,GAAEj2C,CAAC,EAAE,UAAU,CAAC,SAASwjC,GAAExjC,EAAE,CAAC,GAAYluB,GAAEkuB,CAAC,IAAZ,OAAc,OAAOA,EAAE,MAAM36B,EAAE26B,EAAE,cAAcA,EAAE,YAAYhsB,GAAEgsB,CAAC,GAAGA,EAAE,MAAMg2C,GAAEh2C,CAAC,EAAE,OAAOhsB,GAAE3O,CAAC,EAAEA,EAAE,KAAKA,CAAC,CAAC,SAAS8wE,GAAEn2C,EAAE,CAAC,MAAM36B,EAAEm+D,GAAExjC,CAAC,EAAE,OAAO81C,GAAEzwE,CAAC,EAAEA,EAAE,cAAc,KAAKhE,GAAEgE,CAAC,GAAGo4B,GAAEp4B,CAAC,EAAEA,EAAE8wE,GAAE9wE,CAAC,CAAC,CAAC,SAAS+wE,GAAEp2C,EAAE36B,EAAE,CAAC,IAAIytC,EAAWztC,IAAT,SAAaA,EAAE,IAAI,MAAMhI,EAAE84E,GAAEn2C,CAAC,EAAE3xB,EAAEhR,MAAYy1C,EAAE9S,EAAE,gBAAX,KAA0B,OAAO8S,EAAE,MAAMxvC,EAAE3D,GAAEtC,CAAC,EAAE,OAAOgR,EAAEhJ,EAAE,OAAO/B,EAAEA,EAAE,gBAAgB,GAAGm6B,GAAEpgC,CAAC,EAAEA,EAAE,EAAE,EAAEgI,EAAE,OAAOhI,EAAE+4E,GAAE/4E,CAAC,CAAC,CAAC,CAAC,SAASg5E,GAAE,EAAEh5E,EAAEiG,EAAE,CAAC,OAAmBjG,IAAb,WAAe2iC,IAAE,SAASA,EAAE36B,EAAE,CAAC,MAAMytC,EAAEnzC,GAAEqgC,CAAC,EAAE3iC,EAAE24E,GAAEh2C,CAAC,EAAE3xB,EAAEykC,EAAE,eAAe,IAAIxvC,EAAEjG,EAAE,YAAYwB,EAAExB,EAAE,aAAayU,EAAE,EAAEqmC,EAAE,EAAE,GAAG9pC,EAAE,CAAC/K,EAAE+K,EAAE,MAAMxP,EAAEwP,EAAE,OAAO,MAAM2xB,EAAEh3B,GAAC,GAAIg3B,GAAG,CAACA,GAAa36B,IAAV,WAAeyM,EAAEzD,EAAE,WAAW8pC,EAAE9pC,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM/K,EAAE,OAAOzE,EAAE,EAAEiT,EAAE,EAAEqmC,CAAC,CAAC,GAAE,EAAE70C,CAAC,CAAC,EAAEggC,GAAEjmC,CAAC,EAAE2iC,IAAE,SAASA,EAAE36B,EAAE,CAAC,MAAM1F,EAAE0xC,GAAErR,EAAE,GAAa36B,IAAV,OAAW,EAAEytC,EAAEnzC,EAAE,IAAIqgC,EAAE,UAAU3iC,EAAEsC,EAAE,KAAKqgC,EAAE,WAAW3xB,EAAEhN,GAAE2+B,CAAC,EAAE+1C,GAAE/1C,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,MAAMA,EAAE,YAAY3xB,EAAE,EAAE,OAAO2xB,EAAE,aAAa3xB,EAAE,EAAE,EAAEhR,EAAEgR,EAAE,EAAE,EAAEykC,EAAEzkC,EAAE,CAAC,CAAC,GAAEhR,EAAEiG,CAAC,CAAC,EAAE08B,IAAE,SAASA,EAAE,CAAC,MAAM36B,EAAE2wE,GAAEh2C,CAAC,EAAErgC,EAAEs2E,GAAEj2C,CAAC,EAAE3iC,EAAE2iC,EAAE,cAAc,KAAK18B,EAAE+K,GAAEhJ,EAAE,YAAYA,EAAE,YAAYhI,EAAE,YAAYA,EAAE,WAAW,EAAEwB,EAAEwP,GAAEhJ,EAAE,aAAaA,EAAE,aAAahI,EAAE,aAAaA,EAAE,YAAY,EAAE,IAAIyU,EAAE,CAACnS,EAAE,WAAWu2E,GAAEl2C,CAAC,EAAE,MAAMmY,EAAE,CAACx4C,EAAE,UAAU,OAAcmzC,GAAEz1C,CAAC,EAAE,YAAb,QAAyByU,GAAGzD,GAAEhJ,EAAE,YAAYhI,EAAE,WAAW,EAAEiG,GAAG,CAAC,MAAMA,EAAE,OAAOzE,EAAE,EAAEiT,EAAE,EAAEqmC,CAAC,CAAC,GAAE69B,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAASM,GAAEt2C,EAAE,CAAC,OAAO3+B,GAAE2+B,CAAC,GAAa8S,GAAE9S,CAAC,EAAE,WAAf,QAAwBA,EAAE,aAAa,IAAI,CAAC,SAASu2C,GAAEv2C,EAAE,CAAC,MAAM36B,EAAE1F,GAAEqgC,CAAC,EAAE,IAAI3iC,EAAEi5E,GAAEt2C,CAAC,EAAE,KAAK3iC,GAAG8tB,GAAE9tB,CAAC,GAAcy1C,GAAEz1C,CAAC,EAAE,WAAhB,UAA0BA,EAAEi5E,GAAEj5E,CAAC,EAAE,OAAOA,IAAayU,GAAEzU,CAAC,IAAZ,QAAwByU,GAAEzU,CAAC,IAAZ,QAA0By1C,GAAEz1C,CAAC,EAAE,WAAhB,UAA0B,CAACqvC,GAAErvC,CAAC,GAAGgI,EAAEhI,IAAG,SAAS2iC,EAAE,CAAC,IAAI36B,EAAEm+D,GAAExjC,CAAC,EAAE,KAAK3+B,GAAEgE,CAAC,GAAG,CAACywE,GAAEzwE,CAAC,GAAG,CAAC,GAAGqnC,GAAErnC,CAAC,EAAE,OAAOA,EAAEA,EAAEm+D,GAAEn+D,CAAC,CAAC,CAAC,OAAO,IAAI,GAAE26B,CAAC,GAAG36B,CAAC,CAAC,SAASmxE,GAAEx2C,EAAE36B,EAAE,EAAE,CAAC,MAAMytC,EAAEzxC,GAAEgE,CAAC,EAAEhI,EAAE24E,GAAE3wE,CAAC,EAAEgJ,EAAEgjC,GAAErR,EAAE,GAAa,IAAV,QAAY36B,CAAC,EAAE,IAAI/B,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,MAAMzE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAGi0C,GAAG,CAACA,GAAa,IAAV,QAAY,IAAahhC,GAAEzM,CAAC,IAAZ,QAAeo4B,GAAEpgC,CAAC,KAAKiG,EAAE2yE,GAAE5wE,CAAC,GAAGhE,GAAEgE,CAAC,EAAE,CAAC,MAAM26B,EAAEqR,GAAEhsC,EAAE,EAAE,EAAExG,EAAE,EAAEmhC,EAAE,EAAE36B,EAAE,WAAWxG,EAAE,EAAEmhC,EAAE,EAAE36B,EAAE,SAAS,MAAMhI,IAAIwB,EAAE,EAAEq3E,GAAE74E,CAAC,GAAG,MAAM,CAAC,EAAEgR,EAAE,KAAK/K,EAAE,WAAWzE,EAAE,EAAE,EAAEwP,EAAE,IAAI/K,EAAE,UAAUzE,EAAE,EAAE,MAAMwP,EAAE,MAAM,OAAOA,EAAE,MAAM,CAAC,CAAC,MAAMooE,GAAE,CAAC,gBAAgB,SAASz2C,EAAE,CAAC,GAAG,CAAC,QAAQ36B,EAAE,SAAS,EAAE,aAAa/B,EAAE,SAASzE,CAAC,EAAEmhC,EAAE,MAAMmY,EAAwB,IAAtB,qBAAwB,SAASnY,EAAE36B,EAAE,CAAC,MAAM1F,EAAE0F,EAAE,IAAI26B,CAAC,EAAE,GAAGrgC,EAAE,OAAOA,EAAE,IAAItC,EAAE+4E,GAAEp2C,CAAC,EAAE,QAAQA,GAAGsD,GAAEtD,CAAC,GAAYluB,GAAEkuB,CAAC,IAAZ,OAAa,EAAG3xB,EAAE,KAAK,MAAM/K,EAAYwvC,GAAE9S,CAAC,EAAE,WAAf,QAAwB,IAAInhC,EAAEyE,EAAEkgE,GAAExjC,CAAC,EAAEA,EAAE,KAAKsD,GAAEzkC,CAAC,GAAG,CAACi3E,GAAEj3E,CAAC,GAAG,CAAC,MAAMmhC,EAAE8S,GAAEj0C,CAAC,EAAEwG,EAAEqnC,GAAE7tC,CAAC,GAAGyE,EAAE+B,GAAGgJ,EAAEhJ,GAAc26B,EAAE,WAAb,UAAuB,CAAC3xB,GAAG,CAAC,CAAC,WAAW,OAAO,EAAE,SAASA,EAAE,QAAQ,GAAGA,EAAE2xB,EAAE3iC,EAAEA,EAAE,QAAQ2iC,GAAGA,IAAInhC,IAAIA,EAAE2kE,GAAE3kE,CAAC,CAAC,CAAC,OAAOwG,EAAE,IAAI26B,EAAE3iC,CAAC,EAAEA,CAAC,GAAEgI,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,EAAEiyB,EAAE,CAAC,GAAG6gB,EAAE70C,CAAC,EAAEjC,EAAEi2B,EAAE,CAAC,EAAE3M,EAAE2M,EAAE,QAAQ,CAAC0I,EAAErgC,IAAI,CAAC,MAAMmzC,EAAEujC,GAAEhxE,EAAE1F,EAAEd,CAAC,EAAE,OAAOmhC,EAAE,IAAI3xB,GAAEykC,EAAE,IAAI9S,EAAE,GAAG,EAAEA,EAAE,MAAM3iC,GAAEy1C,EAAE,MAAM9S,EAAE,KAAK,EAAEA,EAAE,OAAO3iC,GAAEy1C,EAAE,OAAO9S,EAAE,MAAM,EAAEA,EAAE,KAAK3xB,GAAEykC,EAAE,KAAK9S,EAAE,IAAI,EAAEA,CAAC,GAAGq2C,GAAEhxE,EAAEhE,EAAExC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM8rB,EAAE,MAAMA,EAAE,KAAK,OAAOA,EAAE,OAAOA,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,GAAG,CAAC,EAAE,sDAAsD,SAASqV,EAAE,CAAC,GAAG,CAAC,KAAK36B,EAAE,aAAa,EAAE,SAASytC,CAAC,EAAE9S,EAAE,MAAM3iC,EAAEgE,GAAE,CAAC,EAAEgN,EAAE2nE,GAAE,CAAC,EAAE,GAAG,IAAI3nE,EAAE,OAAOhJ,EAAE,IAAI/B,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,EAAEzE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAMs5C,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI96C,GAAG,CAACA,GAAay1C,IAAV,YAAyBhhC,GAAE,CAAC,IAAZ,QAAe2rB,GAAEpvB,CAAC,KAAK/K,EAAE2yE,GAAE,CAAC,GAAG50E,GAAE,CAAC,GAAG,CAAC,MAAM2+B,EAAEqR,GAAE,CAAC,EAAExyC,EAAEk3E,GAAE,CAAC,EAAE59B,EAAE,EAAEnY,EAAE,EAAE,EAAE,WAAWmY,EAAE,EAAEnY,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM36B,EAAE,MAAMxG,EAAE,EAAE,OAAOwG,EAAE,OAAOxG,EAAE,EAAE,EAAEwG,EAAE,EAAExG,EAAE,EAAEyE,EAAE,WAAWzE,EAAE,EAAEs5C,EAAE,EAAE,EAAE9yC,EAAE,EAAExG,EAAE,EAAEyE,EAAE,UAAUzE,EAAE,EAAEs5C,EAAE,CAAC,CAAC,EAAE,UAAU7U,GAAE,cAAc,SAAStD,EAAE,CAAC,OAAO3+B,GAAE2+B,CAAC,EAAEnhC,GAAEmhC,CAAC,EAAEA,EAAE,sBAAqB,CAAE,EAAE,gBAAgBu2C,GAAE,mBAAmBP,GAAE,SAASD,GAAE,MAAM,gBAAgB/1C,EAAE,CAAC,GAAG,CAAC,UAAU36B,EAAE,SAAS,EAAE,SAASytC,CAAC,EAAE9S,EAAE,MAAM3iC,EAAE,KAAK,iBAAiBk5E,GAAEloE,EAAE,KAAK,cAAc,MAAM,CAAC,UAAUmoE,GAAEnxE,EAAE,MAAMhI,EAAE,CAAC,EAAEy1C,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,MAAMzkC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe2xB,GAAG,MAAM,KAAKA,EAAE,eAAc,CAAE,EAAE,MAAMA,GAAW8S,GAAE9S,CAAC,EAAE,YAAb,KAAsB,EAAqyB02C,GAAE,CAAC12C,EAAErgC,EAAEmzC,IAAI,CAAC,MAAMz1C,EAAE,IAAI,IAAIgR,EAAE,CAAC,SAASooE,GAAE,GAAG3jC,CAAC,EAAExvC,EAAE,CAAC,GAAG+K,EAAE,SAAS,GAAGhR,CAAC,EAAE,OAAOgI,GAAE26B,EAAErgC,EAAE,CAAC,GAAG0O,EAAE,SAAS/K,CAAC,CAAC,CAAC,ECMnrOqnB,GAAI,CAER,SAAU,GAEV,SAAU,EAEV,SAAU,EAEV,UAAW,OAEX,SAAU,OAEV,YAAa,GAEb,eAAgB,IAEhB,eAAgB,GAEhB,SAAU,WAEV,gBAAiB,GAEjB,KAAM,GAEN,MAAO,GAEP,gBAAiB,EAEjB,aAAc,EAEd,cAAe,GAIf,oBAAqB,GAErB,OAAQ,CACN,QAAS,CAEP,UAAW,MAEX,SAAU,CAAC,QAAS,QAAS,OAAO,EAEpC,aAAe,GAAM,CAAC,GAAG,EAAG,OAAO,EAEnC,MAAO,CACL,KAAM,IACN,KAAM,CACd,EAEM,aAAc,GAEd,KAAM,GAEN,eAAgB,KACtB,EACI,SAAU,CAER,UAAW,SAEX,SAAU,CAAC,OAAO,EAElB,MAAO,EAEP,aAAc,GAEd,SAAU,EAChB,EACI,KAAM,CACJ,QAAS,WACT,SAAU,CAAC,QAAS,OAAO,EAC3B,eAAgB,CAAC,OAAO,EACxB,MAAO,CACL,KAAM,EACN,KAAM,GACd,CACA,CACA,CACA,EACA,SAAS0rD,GAAE,EAAG,EAAG,CACf,IAAIvjC,EAAInoB,GAAE,OAAO,CAAC,GAAK,GAAIttB,EAC3B,GACEA,EAAIy1C,EAAE,CAAC,EAAG,OAAOz1C,EAAI,IAAMy1C,EAAE,QAAUA,EAAInoB,GAAE,OAAOmoB,EAAE,OAAO,GAAK,IAAMA,EAAI,KAAMz1C,EAAIstB,GAAE,CAAC,GAAKmoB,EAAI,WAC7FA,GACP,OAAOz1C,CACT,CACA,SAASs5E,GAAG,EAAG,CACb,MAAM,EAAI,CAAC,CAAC,EACZ,IAAI7jC,EAAInoB,GAAE,OAAO,CAAC,GAAK,GACvB,GACEmoB,EAAE,SAAW,CAACA,EAAE,WAAa,EAAE,KAAKA,EAAE,OAAO,EAAGA,EAAInoB,GAAE,OAAOmoB,EAAE,OAAO,GAAK,IAAMA,EAAI,WAChFA,GACP,OAAO,EAAE,IAAKz1C,GAAM,mBAAmBA,CAAC,EAAE,CAC5C,CACA,SAASu5E,GAAG,EAAG,CACb,MAAM,EAAI,CAAC,CAAC,EACZ,IAAI9jC,EAAInoB,GAAE,OAAO,CAAC,GAAK,GACvB,GACEmoB,EAAE,SAAW,EAAE,KAAKA,EAAE,OAAO,EAAGA,EAAInoB,GAAE,OAAOmoB,EAAE,OAAO,GAAK,IAAMA,EAAI,WAChEA,GACP,OAAO,CACT,CACA,IAAI+jC,GAAI,GACR,GAAI,OAAO,OAAS,IAAK,CACvBA,GAAI,GACJ,GAAI,CACF,MAAM,EAAI,OAAO,eAAe,GAAI,UAAW,CAC7C,KAAM,CACJA,GAAI,EACN,CACN,CAAK,EACD,OAAO,iBAAiB,OAAQ,KAAM,CAAC,CACzC,MAAQ,CACR,CACF,CACA,IAAIC,GAAK,GACT,OAAO,OAAS,KAAO,OAAO,UAAY,MAAQA,GAAK,mBAAmB,KAAK,UAAU,SAAS,GAAK,CAAC,OAAO,UAC/G,MAAMC,GAAK,CAAC,OAAQ,MAAO,SAAU,OAAQ,OAAO,EAAE,OAAO,CAAC,EAAG,IAAM,EAAE,OAAO,CAC9E,EACA,GAAG,CAAC,SACJ,GAAG,CAAC,MACN,CAAC,EAAG,EAAE,EAAGC,GAAK,CACZ,MAAO,aACP,MAAO,QACP,MAAO,QACP,MAAO,aACP,QAAS,aACX,EAAGC,GAAK,CACN,MAAO,aACP,MAAO,OACP,MAAO,QACP,MAAO,WACP,QAAS,WACX,EACA,SAASC,GAAG,EAAG,EAAG,CAChB,MAAMpkC,EAAI,EAAE,QAAQ,CAAC,EACrBA,IAAM,IAAM,EAAE,OAAOA,EAAG,CAAC,CAC3B,CACA,SAASqkC,IAAI,CACX,OAAO,IAAI,QAAS,GAAM,sBAAsB,IAAM,CACpD,sBAAsB,CAAC,CACzB,CAAC,CAAC,CACJ,CACA,MAAM7zC,GAAI,GACV,IAAI7F,GAAI,KACR,MAAM25C,GAAK,GACX,SAASC,GAAG,EAAG,CACb,IAAI,EAAID,GAAG,CAAC,EACZ,OAAO,IAAM,EAAIA,GAAG,CAAC,EAAI,IAAK,CAChC,CACA,IAAIE,GAAI,UAAW,CACnB,EACA,OAAO,OAAS,MAAQA,GAAI,OAAO,SACnC,SAAS33E,GAAE,EAAG,CACZ,OAAO,SAAS,EAAG,CACjB,OAAO02E,GAAE,EAAE,MAAO,CAAC,CACrB,CACF,CACA,MAAMkB,GAAI,yBAA0BC,GAAI,IAAMhB,GAAE,CAC9C,KAAM,UACN,SAAU,CACR,MAAO,CACL,CAACe,EAAC,EAAG,CACH,aAAc,IACtB,CACA,CACE,EACA,OAAQ,CACN,CAACA,EAAC,EAAG,CAAE,QAAS,IAAI,CACxB,EACE,MAAO,CACL,MAAO,CACL,KAAM,OACN,SAAU,EAChB,EACI,YAAa,CACX,KAAM,SACN,SAAU,EAChB,EACI,cAAe,CACb,KAAM,SACN,QAAS,IACf,EACI,WAAY,CACV,KAAM,SACN,SAAU,EAChB,EACI,MAAO,CACL,KAAM,QACN,QAAS,EACf,EACI,UAAW,CACT,KAAM,OACN,QAAS,IACf,EAEI,OAAQ,CACN,QAAS,IACf,EACI,SAAU,CACR,KAAM,QACN,QAAS53E,GAAE,UAAU,CAC3B,EACI,oBAAqB,CACnB,KAAM,QACN,QAASA,GAAE,qBAAqB,CACtC,EACI,UAAW,CACT,KAAM,OACN,QAASA,GAAE,WAAW,EACtB,UAAY,GAAMo3E,GAAG,SAAS,CAAC,CACrC,EACI,MAAO,CACL,KAAM,CAAC,OAAQ,OAAQ,MAAM,EAC7B,QAASp3E,GAAE,OAAO,CACxB,EACI,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAASA,GAAE,UAAU,CAC3B,EACI,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAASA,GAAE,UAAU,CAC3B,EACI,SAAU,CACR,KAAM,MACN,QAASA,GAAE,UAAU,CAC3B,EACI,aAAc,CACZ,KAAM,CAAC,MAAO,QAAQ,EACtB,QAASA,GAAE,cAAc,CAC/B,EACI,aAAc,CACZ,KAAM,CAAC,MAAO,QAAQ,EACtB,QAASA,GAAE,cAAc,CAC/B,EACI,eAAgB,CACd,KAAM,MACN,QAASA,GAAE,gBAAgB,CACjC,EACI,mBAAoB,CAClB,KAAM,CAAC,MAAO,QAAQ,EACtB,QAASA,GAAE,oBAAoB,CACrC,EACI,mBAAoB,CAClB,KAAM,CAAC,MAAO,QAAQ,EACtB,QAASA,GAAE,oBAAoB,CACrC,EACI,UAAW,CACT,KAAM,CAAC,OAAQ,OAAQ23E,GAAG,OAAO,EACjC,QAAS33E,GAAE,WAAW,CAC5B,EACI,SAAU,CACR,KAAM,CAAC,OAAQ23E,EAAC,EAChB,QAAS33E,GAAE,UAAU,CAC3B,EACI,SAAU,CACR,KAAM,OACN,UAAY,GAAM,CAAC,WAAY,OAAO,EAAE,SAAS,CAAC,EAClD,QAASA,GAAE,UAAU,CAC3B,EACI,SAAU,CACR,KAAM,CAAC,QAAS,QAAQ,EACxB,QAASA,GAAE,UAAU,CAC3B,EACI,aAAc,CACZ,KAAM,QACN,QAASA,GAAE,cAAc,CAC/B,EACI,YAAa,CACX,KAAM,QACN,QAASA,GAAE,aAAa,CAC9B,EACI,WAAY,CACV,KAAM,QACN,QAASA,GAAE,YAAY,CAC7B,EACI,YAAa,CACX,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAASA,GAAE,aAAa,CAC9B,EACI,uBAAwB,CACtB,KAAM,QACN,QAASA,GAAE,wBAAwB,CACzC,EAII,YAAa,CACX,KAAM,QACN,QAASA,GAAE,aAAa,CAC9B,EACI,SAAU,CACR,KAAM,CAAC,QAAS,MAAM,EACtB,QAASA,GAAE,UAAU,CAC3B,EAII,YAAa,CACX,KAAM,QACN,QAASA,GAAE,aAAa,CAC9B,EACI,oBAAqB,CACnB,KAAM,QACN,QAASA,GAAE,qBAAqB,CACtC,EACI,gBAAiB,CACf,KAAM,QACN,QAASA,GAAE,iBAAiB,CAClC,EACI,gBAAiB,CACf,KAAM,CAAC,OAAQ,MAAM,EACrB,QAASA,GAAE,iBAAiB,CAClC,EACI,aAAc,CACZ,KAAM,CAAC,OAAQ,MAAM,EACrB,QAASA,GAAE,cAAc,CAC/B,EACI,cAAe,CACb,KAAM,QACN,QAASA,GAAE,eAAe,CAChC,EACI,KAAM,CACJ,KAAM,QACN,QAASA,GAAE,MAAM,CACvB,EACI,MAAO,CACL,KAAM,QACN,QAASA,GAAE,OAAO,CACxB,EACI,eAAgB,CACd,KAAM,QACN,QAASA,GAAE,gBAAgB,CACjC,EACI,YAAa,CACX,KAAM,QACN,QAASA,GAAE,aAAa,CAC9B,EACI,eAAgB,CACd,KAAM,OACN,QAASA,GAAE,gBAAgB,CACjC,CACA,EACE,MAAO,CACL,KAAM,IAAM,GACZ,KAAM,IAAM,GACZ,eAAiB,GAAM,GACvB,aAAc,IAAM,GACpB,aAAc,IAAM,GACpB,cAAe,IAAM,GACrB,kBAAmB,IAAM,GACzB,YAAa,IAAM,GACnB,OAAQ,IAAM,EAClB,EACE,MAAO,CACL,MAAO,CACL,QAAS,GACT,UAAW,GACX,eAAgB,GAChB,QAAS,CACP,SAAU,GACV,OAAQ,GACR,SAAU,GACV,OAAQ,EAChB,EACM,OAAQ,CACN,EAAG,EACH,EAAG,EACH,UAAW,GACX,SAAU,KAAK,SACf,MAAO,CACL,EAAG,EACH,EAAG,EACH,aAAc,CACxB,EACQ,gBAAiB,IACzB,EACM,SAAU,UAAU,CAAC,KAAK,SAAU,KAAK,IAAG,CAAE,EAAE,IAAK,GAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,GACrG,cAA+B,IAAI,IACnC,aAAc,GACd,YAAa,GACb,qBAAsB,GACtB,WAAY,GACZ,kBAAmB,EACzB,CACE,EACA,SAAU,CACR,UAAW,CACT,OAAO,KAAK,QAAU,KAAO,KAAK,OAAS,KAAK,QAClD,EACA,oBAAqB,CACnB,OAAO,KAAK,YAAc,KAAK,SACjC,EACA,UAAW,CACT,MAAO,CACL,SAAU,KAAK,SACf,QAAS,KAAK,QACd,mBAAoB,KAAK,mBACzB,eAAgB,KAAK,eACrB,SAAU,OAAO,KAAK,UAAY,WAAa,KAAK,aAAe,KAAK,SACxE,KAAM,KAAK,KACX,KAAM,KAAK,KACX,aAAc,KAAK,aACnB,SAAU,KAAK,SACf,QAAS,CACP,GAAG,KAAK,QACR,YAAa,KAAK,WAC5B,EACQ,OAAQ,KAAK,oBAAsB,KAAO,KAAK,OAC/C,MAAO,KAAK,MACpB,CACI,EACA,cAAe,CACb,IAAI,EACJ,OAAQ,EAAI,KAAK43E,EAAC,IAAM,KAAO,OAAS,EAAE,YAC5C,EACA,2BAA4B,CAC1B,IAAI,EAAG,EACP,QAAS,EAAI,KAAK,iBAAmB,KAAO,OAAS,EAAE,SAAS,OAAO,MAAQ,EAAI,KAAK,qBAAuB,KAAO,OAAS,EAAE,SAAS,OAAO,EACnJ,CACJ,EACE,MAAO,CACL,MAAO,iBACP,SAAS,EAAG,CACV,EAAI,KAAK,UAAY,KAAK,KAAI,CAChC,EACA,MAAM,WAAY,CAChB,KAAK,UAAY,KAAK,iBAAgB,EAAI,MAAM,KAAK,oBACvD,EACA,SAAU,CACR,QAAS,qBACT,KAAM,EACZ,EACI,oBAAqB,qBACrB,GAAG,CACD,YACA,WACA,WACA,WACA,WACA,kBACA,eACA,kBACA,QACA,iBACA,MACN,EAAM,OAAO,CAAC,EAAG,KAAO,EAAE,CAAC,EAAI,oBAAqB,GAAI,EAAE,CAC1D,EACE,SAAU,CACR,KAAK,aAAe,QAAQ,KAAK,kFAAkF,EAAG,KAAK,aAAe,QAAQ,KAAK,uFAAuF,CAChP,EACA,SAAU,CACR,KAAK,KAAI,EAAI,KAAK,mBAAkB,CACtC,EACA,WAAY,CACV,KAAK,eAAc,CACrB,EACA,aAAc,CACZ,KAAK,KAAI,CACX,EACA,eAAgB,CACd,KAAK,QAAO,CACd,EACA,QAAS,CACP,KAAK,CAAE,MAAO,EAAI,KAAM,UAAW,EAAI,GAAI,MAAOzkC,EAAI,EAAE,EAAK,GAAI,CAC/D,IAAIz1C,EAAG,GACNA,EAAI,KAAK,eAAiB,MAAQA,EAAE,aAAe,KAAK,aAAa,cAAgB,OAAS,KAAK,YAAc,IAAKy1C,GAAK,CAAC,KAAK,cAAgB,EAAI,KAAK,eAAiB,KAAO,OAAS,EAAE,eAAiB,OAAS,KAAK,aAAa,YAAc,MAAO,KAAK,eAAe,EAAG,CAAC,EAAG,KAAK,MAAM,MAAM,EAAG,KAAK,kBAAoB,GAAI,sBAAsB,IAAM,CACrW,KAAK,kBAAoB,EAC3B,CAAC,GAAI,KAAK,MAAM,eAAgB,EAAE,EACpC,EACA,KAAK,CAAE,MAAO,EAAI,KAAM,UAAW,EAAI,EAAE,EAAK,GAAI,CAChD,IAAIA,EACJ,GAAI,CAAC,KAAK,iBAAkB,CAC1B,GAAI,KAAK,cAAc,KAAO,EAAG,CAC/B,KAAK,YAAc,GACnB,MACF,CACA,GAAI,KAAK,2BAA6B,KAAK,iBAAgB,EAAI,CAC7D,KAAK,eAAiB,KAAK,aAAa,YAAc,KAAM,aAAa,KAAK,aAAa,gBAAgB,EAAG,KAAK,aAAa,iBAAmB,WAAW,IAAM,CAClK,KAAK,aAAa,cAAgB,OAAS,KAAK,aAAa,YAAY,KAAK,CAAE,UAAW,CAAC,CAAE,EAAG,KAAK,aAAa,YAAc,KACnI,EAAG,GAAG,GACN,MACF,GACEA,EAAI,KAAK,eAAiB,KAAO,OAASA,EAAE,eAAiB,OAAS,KAAK,aAAa,YAAc,MAAO,KAAK,YAAc,GAAI,KAAK,eAAe,EAAG,CAAC,EAAG,KAAK,MAAM,MAAM,EAAG,KAAK,MAAM,eAAgB,EAAE,CACpN,CACF,EACA,MAAO,CACL,IAAI,EACJ,KAAK,aAAe,KAAK,WAAa,GAAI,KAAK,UAAY,GAAI,KAAK,SAAW,GAAI,KAAK,cAAgB,GAAI,KAAK,kBAAoB,EAAI,KAAK,gBAAkB,KAAO,OAAS,EAAE,KAAK,IAAI,IAAM,KAAK,IAAK,KAAK,cAAgB,KAAK,YAAW,EAAG,OAAQ,GAAM,EAAE,WAAa,EAAE,YAAY,EAAG,KAAK,aAAe,KAAK,WAAU,EAAI,KAAK,YAAc,KAAK,aAAa,cAAc,kBAAkB,EAAG,KAAK,YAAc,KAAK,aAAa,cAAc,4BAA4B,EAAG,KAAK,kBAAkB,QAAS,qBAAqB,EAAG,KAAK,mBAAkB,EAAI,KAAK,SAAS,QAAU,KAAK,oBAAmB,EAAI,KAAK,OAAS,KAAK,OAC9nB,EACA,SAAU,CACR,KAAK,aAAe,KAAK,WAAa,GAAI,KAAK,uBAAsB,EAAI,KAAK,KAAK,CAAE,UAAW,EAAE,CAAE,EAAG,KAAK,qBAAsB,KAAK,UAAY,GAAI,KAAK,QAAU,GAAI,KAAK,4BAA4B,EAAE,EAAG,KAAK,kBAAkB,sBAAuB,OAAO,EACvQ,EACA,MAAM,UAAW,CACf,KAAK,UAAY,MAAM,KAAK,kBAAiB,EAAI,KAAK,MAAM,QAAQ,EACtE,EACA,MAAM,mBAAoB,CACxB,GAAI,KAAK,YAAc,KAAK,oBAC1B,OACF,MAAM,EAAI,CACR,SAAU,KAAK,SACf,WAAY,EACpB,GACO,KAAK,UAAY,KAAK,WAAa,EAAE,WAAW,KAAK2kC,GAAG,CACvD,SAAU,KAAK,SACf,UAAW,KAAK,QACxB,CAAO,CAAC,EACF,MAAM,EAAI,KAAK,UAAU,WAAW,MAAM,EAC1C,GAAI,EAAI,EAAE,WAAW,KAAKC,GAAG,CAC3B,UAAW,KAAK,UAAU,MAAM,GAAG,EAAE,CAAC,GAAK,EACnD,CAAO,CAAC,EAAI,EAAE,UAAY,KAAK,UAAW,KAAK,kBAAoB,KAAK,OAAS,EAAE,WAAW,KAAKC,GAAG,CAC9F,QAAS,KAAK,gBACd,SAAU,KAAK,SACf,UAAW,KAAK,cACxB,CAAO,CAAC,EAAG,CAAC,GAAK,KAAK,MAAQ,EAAE,WAAW,KAAKC,GAAG,CAC3C,QAAS,KAAK,gBACd,SAAU,KAAK,QACvB,CAAO,CAAC,GAAI,EAAE,WAAW,KAAKC,GAAG,CACzB,QAAS,KAAK,YACd,QAAS,KAAK,YACtB,CAAO,CAAC,EAAG,KAAK,eAAiB,EAAE,WAAW,KAAK,CAC3C,KAAM,gBACN,GAAI,CAAC,CAAE,UAAWx6E,EAAG,MAAO,EAAG,eAAgBgR,KAAQ,CACrD,IAAI2F,EACJ,KAAM,CAAE,aAAc3S,CAAC,EAAKgN,EAAE,MAC9B,OAAOhR,EAAE,WAAW,KAAK,GAAKA,EAAE,WAAW,QAAQ,EAAI2W,EAAI,KAAK,IAAI3S,CAAC,EAAI,EAAE,UAAU,MAAQ,EAAI2S,EAAI,KAAK,IAAI3S,CAAC,EAAI,EAAE,UAAU,OAAS,EAAG,CACzI,KAAM,CACJ,SAAU2S,CACxB,CACA,CACQ,CACR,CAAO,EAAG,KAAK,aAAe,KAAK,SAAU,CACrC,MAAM3W,EAAI,KAAK,SAAW,KAAK,SAAW,KAAK,YAAc,MAAQ,KACrE,EAAE,WAAW,KAAK,CAChB,KAAM,WACN,GAAI,CAAC,CAAE,MAAO,EAAG,UAAWgR,EAAG,eAAgB2F,KAAQ,CACrD,IAAIsjB,EACJ,IAAKA,EAAItjB,EAAE,WAAa,MAAQsjB,EAAE,KAChC,MAAO,GACT,IAAIj2B,EAAGiC,EACP,OAAO+K,EAAE,WAAW,KAAK,GAAKA,EAAE,WAAW,QAAQ,EAAIhN,EAAI,EAAE,UAAU,MAAQiC,EAAI,EAAE,UAAU,OAAQ,KAAK,YAAY,MAAMjG,IAAM,MAAQ,WAAaA,IAAM,MAAQ,WAAa,OAAO,EAAIgE,GAAK,KAAO,GAAGA,CAAC,KAAO,KAAM,KAAK,YAAY,MAAMhE,IAAM,MAAQ,YAAcA,IAAM,MAAQ,YAAc,QAAQ,EAAIiG,GAAK,KAAO,GAAGA,CAAC,KAAO,KAAM,CAClV,KAAM,CACJ,KAAM,EACtB,EACc,MAAO,CACL,MAAO,EACvB,CACA,CACU,CACV,CAAS,CACH,EACC,KAAK,aAAe,KAAK,uBAAyB,KAAK,YAAY,MAAM,SAAW,KAAM,KAAK,YAAY,MAAM,UAAY,KAAM,EAAE,WAAW,KAAKw0E,GAAG,CACvJ,SAAU,KAAK,SACf,QAAS,KAAK,gBACd,MAAO,CAAC,CAAE,eAAgBz6E,EAAG,gBAAiB,CAAC,IAAO,CACpD,KAAK,YAAY,MAAM,SAAWA,GAAK,KAAO,GAAGA,CAAC,KAAO,KAAM,KAAK,YAAY,MAAM,UAAY,GAAK,KAAO,GAAG,CAAC,KAAO,IAC3H,CACR,CAAO,CAAC,GACF,MAAMy1C,EAAI,MAAMilC,GAAG,KAAK,gBAAiB,KAAK,aAAc,CAAC,EAC7D,OAAO,OAAO,KAAK,OAAQ,CACzB,EAAGjlC,EAAE,EACL,EAAGA,EAAE,EACL,UAAWA,EAAE,UACb,SAAUA,EAAE,SACZ,MAAO,CACL,GAAGA,EAAE,eAAe,MACpB,GAAGA,EAAE,eAAe,aAC9B,CACA,CAAO,CACH,EACA,eAAe,EAAG,EAAI,GAAI,CACxB,GAAI,KAAK,4BAA4B,EAAE,EAAG,KAAK,iBAAmB,GAAI,aAAa,KAAK,eAAe,EAAGrV,IAAK,KAAK,aAAeA,GAAE,aAAeA,KAAM,KAAK,aAAc,CAC3KA,GAAE,YAAY,EAAE,EAAG,KAAK,YAAY,EAAE,EACtC,MACF,CACA,EAAI,KAAK,YAAW,EAAK,KAAK,gBAAkB,WAAW,KAAK,YAAY,KAAK,IAAI,EAAG,KAAK,eAAe,MAAM,CAAC,CACrH,EACA,eAAe,EAAG,EAAI,GAAI,CACxB,GAAI,KAAK,cAAc,KAAO,EAAG,CAC/B,KAAK,YAAc,GACnB,MACF,CACA,KAAK,4BAA4B,EAAE,EAAG,KAAK,iBAAmB,GAAI,aAAa,KAAK,eAAe,EAAG,KAAK,UAAYA,GAAI,MAAO,EAAI,KAAK,YAAW,EAAK,KAAK,gBAAkB,WAAW,KAAK,YAAY,KAAK,IAAI,EAAG,KAAK,eAAe,MAAM,CAAC,CACvP,EACA,eAAe,EAAG,CAChB,MAAM,EAAI,KAAK,MACf,OAAO,SAAS,GAAK,EAAE,CAAC,GAAK,GAAK,CAAC,CACrC,EACA,MAAM,YAAY,EAAI,GAAI,CACxB,aAAa,KAAK,cAAc,EAAG,aAAa,KAAK,eAAe,EAAG,KAAK,eAAiB,EAAG,CAAC,KAAK,UAAY,KAAK,iBAAgB,EAAI,MAAM05C,GAAC,EAAI,MAAM,KAAK,kBAAiB,EAAI,MAAM,KAAK,kBAAiB,EAAI,KAAK,qBAAuB,KAAK,yBAAyB,CAC9Q,GAAGa,GAAG,KAAK,eAAe,EAC1B,GAAGA,GAAG,KAAK,YAAY,CAC/B,EAAS,SAAU,IAAM,CACjB,KAAK,kBAAiB,CACxB,CAAC,EACH,EACA,MAAM,mBAAoB,CACxB,GAAI,KAAK,iBACP,OACF,GAAI,KAAK,uBAAwB,CAC/B,MAAM,EAAI,KAAK,gBAAgB,sBAAqB,EAAIllC,EAAI,KAAK,aAAa,cAAc,oBAAoB,EAAGz1C,EAAIy1C,EAAE,WAAW,sBAAqB,EAAI,EAAI,EAAE,EAAI,EAAE,MAAQ,GAAKz1C,EAAE,KAAOy1C,EAAE,YAAazkC,EAAI,EAAE,EAAI,EAAE,OAAS,GAAKhR,EAAE,IAAMy1C,EAAE,WAClP,KAAK,OAAO,gBAAkB,GAAG,CAAC,MAAMzkC,CAAC,IAC3C,CACA,KAAK,QAAU,GAAI,KAAK,qBAAqB,CAC3C,mBAAoB,KAAK,SACzB,oBAAqB,EAC7B,CAAO,EACD,MAAM,EAAI,KAAK,UACf,GAAI,EAAG,CACL,IAAI,EACJ,QAASykC,EAAI,EAAGA,EAAIxP,GAAE,OAAQwP,IAC5B,EAAIxP,GAAEwP,CAAC,EAAG,EAAE,YAAc,IAAM,EAAE,KAAI,EAAI,EAAE,MAAM,aAAa,EACnE,CACAxP,GAAE,KAAK,IAAI,EAAG,SAAS,KAAK,UAAU,IAAI,qBAAqB,EAC/D,UAAW,KAAKszC,GAAG,KAAK,KAAK,EAC3BS,GAAG,CAAC,EAAE,KAAK,IAAI,EAAG,SAAS,KAAK,UAAU,IAAI,wBAAwB,CAAC,EAAE,EAC3E,KAAK,MAAM,YAAY,EAAG,KAAK,QAAQ,SAAW,GAAI,KAAK,QAAQ,OAAS,GAAI,KAAK,QAAQ,SAAW,GAAI,KAAK,QAAQ,OAAS,GAAI,MAAMF,GAAC,EAAI,KAAK,QAAQ,SAAW,GAAI,KAAK,QAAQ,OAAS,GAAI,KAAK,aAAe,KAAK,aAAa,MAAK,CACpP,EACA,MAAM,YAAY,EAAI,GAAI,CACxB,GAAI,KAAK,cAAc,KAAO,EAAG,CAC/B,KAAK,YAAc,GAAI,KAAK,iBAAmB,GAC/C,MACF,CACA,GAAI,aAAa,KAAK,eAAe,EAAG,CAAC,KAAK,QAC5C,OACF,KAAK,eAAiB,EAAGD,GAAG5zC,GAAG,IAAI,EAAGA,GAAE,SAAW,GAAK,SAAS,KAAK,UAAU,OAAO,qBAAqB,EAC5G,UAAWwP,KAAK8jC,GAAG,KAAK,KAAK,EAAG,CAC9B,MAAMv5E,EAAIg6E,GAAGvkC,CAAC,EACdokC,GAAG75E,EAAG,IAAI,EAAGA,EAAE,SAAW,GAAK,SAAS,KAAK,UAAU,OAAO,wBAAwBy1C,CAAC,EAAE,CAC3F,CACArV,KAAM,OAASA,GAAI,MAAO,KAAK,QAAU,GAAI,KAAK,qBAAqB,CACrE,mBAAoB,OACpB,oBAAqB,MAC7B,CAAO,EAAG,aAAa,KAAK,cAAc,EACpC,MAAM,EAAI,KAAK,eACf,IAAM,OAAS,KAAK,eAAiB,WAAW,IAAM,CACpD,KAAK,eAAiB,KAAK,mBAAkB,EAAI,KAAK,UAAY,GACpE,EAAG,CAAC,GAAI,KAAK,uBAAuB,QAAQ,EAAG,KAAK,MAAM,YAAY,EAAG,KAAK,QAAQ,SAAW,GAAI,KAAK,QAAQ,OAAS,GAAI,KAAK,QAAQ,SAAW,GAAI,KAAK,QAAQ,OAAS,GAAI,MAAM05C,GAAC,EAAI,KAAK,QAAQ,SAAW,GAAI,KAAK,QAAQ,OAAS,EACpP,EACA,gBAAiB,CACf,KAAK,MAAQ,KAAK,KAAI,EAAK,KAAK,KAAI,CACtC,EACA,kBAAmB,CACjB,GAAI,KAAK,WACP,OACF,IAAI,EAAI,KAAK,UACb,GAAI,OAAO,GAAK,SAAW,EAAI,OAAO,SAAS,cAAc,CAAC,EAAI,IAAM,KAAO,EAAI,KAAK,cAAc,CAAC,EAAE,YAAa,CAAC,EACrH,MAAM,IAAI,MAAM,6BAA+B,KAAK,SAAS,EAC/D,EAAE,YAAY,KAAK,YAAY,EAAG,KAAK,UAAY,EACrD,EACA,qBAAsB,CACpB,MAAM,EAAKrkC,GAAM,CACf,KAAK,SAAW,CAAC,KAAK,mBAAqBA,EAAE,cAAgB,GAAI,CAAC,KAAK,eAAiB,KAAK,KAAK,CAAE,MAAOA,CAAC,CAAE,EAChH,EACA,KAAK,2BAA2B,KAAK,cAAekkC,GAAI,KAAK,SAAU,KAAK,aAAc,CAAC,EAAG,KAAK,2BAA2B,CAAC,KAAK,YAAY,EAAGA,GAAI,KAAK,eAAgB,KAAK,mBAAoB,CAAC,EACtM,MAAM,EAAKlkC,GAAM,CACfA,EAAE,eAAiB,KAAK,KAAK,CAAE,MAAOA,EAAG,CAC3C,EACA,KAAK,2BAA2B,KAAK,cAAemkC,GAAI,KAAK,SAAU,KAAK,aAAc,CAAC,EAAG,KAAK,2BAA2B,CAAC,KAAK,YAAY,EAAGA,GAAI,KAAK,eAAgB,KAAK,mBAAoB,CAAC,CACxM,EACA,yBAAyB,EAAG,EAAGnkC,EAAG,CAChC,KAAK,SAAS,KAAK,CAAE,YAAa,EAAG,UAAW,EAAG,QAASA,CAAC,CAAE,EAAG,EAAE,QAASz1C,GAAMA,EAAE,iBAAiB,EAAGy1C,EAAG+jC,GAAI,CAC9G,QAAS,EACjB,EAAU,MAAM,CAAC,CACb,EACA,2BAA2B,EAAG,EAAG/jC,EAAGz1C,EAAG,EAAG,CACxC,IAAIgR,EAAIykC,EACRz1C,GAAK,OAASgR,EAAI,OAAOhR,GAAK,WAAaA,EAAEgR,CAAC,EAAIhR,GAAIgR,EAAE,QAAS2F,GAAM,CACrE,MAAM3S,EAAI,EAAE2S,CAAC,EACb3S,GAAK,KAAK,yBAAyB,EAAGA,EAAG,CAAC,CAC5C,CAAC,CACH,EACA,uBAAuB,EAAG,CACxB,MAAM,EAAI,GACV,KAAK,SAAS,QAASyxC,GAAM,CAC3B,KAAM,CAAE,YAAaz1C,EAAG,UAAW,EAAG,QAASgR,CAAC,EAAKykC,EACrD,CAAC,GAAK,IAAM,EAAIz1C,EAAE,QAAS2W,GAAMA,EAAE,oBAAoB,EAAG3F,CAAC,CAAC,EAAI,EAAE,KAAKykC,CAAC,CAC1E,CAAC,EAAG,KAAK,SAAW,CACtB,EACA,oBAAqB,CACnB,KAAK,aAAe,KAAK,uBAAsB,EAAI,KAAK,sBAC1D,EACA,oBAAoB,EAAG,EAAI,GAAI,CAC7B,KAAK,oBAAsB,KAAK,KAAK,CAAE,MAAO,EAAG,EAAG,EAAE,aAAe,KAAK,MAAM,iBAAiB,EAAI,KAAK,MAAM,WAAW,EAAG,IAAM,KAAK,cAAgB,GAAI,WAAW,IAAM,CAC5K,KAAK,cAAgB,EACvB,EAAG,GAAG,GACR,EACA,oBAAqB,CACnB,KAAK,aAAa,YAAc,KAAK,aAAa,WAAW,YAAY,KAAK,YAAY,CAC5F,EACA,kBAAkB,EAAG,EAAG,CACtB,UAAWA,KAAK,KAAK,cAAe,CAClC,MAAMz1C,EAAIy1C,EAAE,aAAa,CAAC,EAC1Bz1C,IAAMy1C,EAAE,gBAAgB,CAAC,EAAGA,EAAE,aAAa,EAAGz1C,CAAC,EACjD,CACF,EACA,qBAAqB,EAAG,CACtB,UAAW,KAAK,KAAK,cACnB,UAAWy1C,KAAK,EAAG,CACjB,MAAMz1C,EAAI,EAAEy1C,CAAC,EACbz1C,GAAK,KAAO,EAAE,gBAAgBy1C,CAAC,EAAI,EAAE,aAAaA,EAAGz1C,CAAC,CACxD,CACJ,EACA,4BAA4B,EAAG,CAC7B,IAAI,EAAI,KAAK,aACb,KAAO,GACL,EAAI,EAAE,cAAc,IAAI,KAAK,QAAQ,GAAK,EAAE,cAAc,OAAO,KAAK,QAAQ,EAAG,EAAE,aAAe,EAAE,QAAS,EAAI,EAAE,YACvH,EACA,kBAAmB,CACjB,MAAM,EAAI,KAAK,gBAAgB,sBAAqB,EACpD,GAAIqvC,IAAK,EAAE,MAAQA,IAAK,EAAE,OAASsrB,IAAK,EAAE,KAAOA,IAAK,EAAE,OAAQ,CAC9D,MAAM,EAAI,KAAK,aAAa,sBAAqB,EAAIllB,EAAIpG,GAAI7tC,GAAGxB,EAAI26D,GAAI7sC,GAAG9c,EAAI,EAAE,KAAO,EAAE,MAAQ,EAAIxP,IAAK,EAAE,IAAM,EAAE,OAAS,GAAKssB,GAAI,EAAE,MAAQ,EAAE,OAAQnX,EAAInV,GAAIi0C,EAAIzkC,EAAGhN,EAAI8pB,GAAI9tB,EAAIgR,EACtL,OAAO6nE,GAAEr3E,GAAGssB,GAAGnX,EAAG3S,EAAG,EAAE,KAAM,EAAE,IAAK,EAAE,KAAM,EAAE,MAAM,GACpD60E,GAAEr3E,GAAGssB,GAAGnX,EAAG3S,EAAG,EAAE,KAAM,EAAE,IAAK,EAAE,MAAO,EAAE,GAAG,GAC3C60E,GAAEr3E,GAAGssB,GAAGnX,EAAG3S,EAAG,EAAE,MAAO,EAAE,IAAK,EAAE,MAAO,EAAE,MAAM,GAC/C60E,GAAEr3E,GAAGssB,GAAGnX,EAAG3S,EAAG,EAAE,KAAM,EAAE,OAAQ,EAAE,MAAO,EAAE,MAAM,CACnD,CACA,MAAO,EACT,CACJ,EACE,QAAS,CACP,OAAO,KAAK,OAAO,QAAQ,KAAK,QAAQ,CAC1C,CACF,CAAC,EACD,GAAI,OAAO,SAAW,KAAO,OAAO,OAAS,IAAK,CAChD,GAAIy1E,GAAI,CACN,MAAM,EAAID,GAAI,CACZ,QAAS,GACT,QAAS,EACf,EAAQ,GACJ,SAAS,iBAAiB,aAAe,GAAMoB,GAAG,CAAK,EAAG,CAAC,EAAG,SAAS,iBAAiB,WAAa,GAAMC,GAAG,EAAG,EAAE,EAAG,CAAC,CACzH,MACE,OAAO,iBAAiB,YAAc,GAAMD,GAAG,CAAK,EAAG,EAAE,EAAG,OAAO,iBAAiB,QAAU,GAAMC,GAAG,EAAG,EAAE,EAAG,EAAE,EACnH,OAAO,iBAAiB,SAAUt5C,EAAE,CACtC,CACA,SAASq5C,GAAG,EAAG,EAAG,CAId,QAASnlC,EAAI,EAAGA,EAAIxP,GAAE,OAAQwP,IAAK,CACjC,MAAMz1C,EAAIimC,GAAEwP,CAAC,EACb,GAAI,CACFz1C,EAAE,kBAAoBA,EAAE,WAAU,EAAG,SAAS,EAAE,MAAM,CACxD,MAAQ,CACR,CACF,CACJ,CACA,SAAS66E,GAAG,EAAG,EAAG,CACSC,GAAG,EAAG,CAAC,CAClC,CACA,SAASA,GAAG,EAAG,EAAG,CAChB,MAAMrlC,EAAI,GACV,QAASz1C,EAAIimC,GAAE,OAAS,EAAGjmC,GAAK,EAAGA,IAAK,CACtC,MAAM,EAAIimC,GAAEjmC,CAAC,EACb,GAAI,CACF,MAAMgR,EAAI,EAAE,qBAAuB,EAAE,mBAAqB,EAAE,WAAU,EAAG,SAAS,EAAE,MAAM,EAC1F,EAAE,YAAc,GAAI,sBAAsB,IAAM,CAC9C,GAAI,EAAE,YAAc,GAAI,CAACykC,EAAE,EAAE,QAAQ,GAAKslC,GAAG,EAAG/pE,EAAG,CAAC,EAAG,CACrD,GAAI,EAAE,oBAAoB,EAAG,CAAC,EAAG,CAAC,EAAE,iBAAmB,EAAE,cAAgBA,EAAG,CAC1E,IAAIhN,EAAI,EAAE,aACV,KAAOA,GACLyxC,EAAEzxC,EAAE,QAAQ,EAAI,GAAIA,EAAIA,EAAE,aAC5B,MACF,CACA,IAAI2S,EAAI,EAAE,aACV,KAAOA,GAAKokE,GAAGpkE,EAAGA,EAAE,qBAAsB,CAAC,GACzCA,EAAE,oBAAoB,EAAG,CAAC,EAC1BA,EAAIA,EAAE,YAEV,CACF,CAAC,CACH,MAAQ,CACR,CACF,CACF,CACA,SAASokE,GAAG,EAAG,EAAGtlC,EAAG,CACnB,OAAOA,EAAE,iBAAmBA,EAAE,cAAgB,GAAKulC,GAAG,EAAGvlC,CAAC,GAAK,CAAC,CAClE,CACA,SAASulC,GAAG,EAAG,EAAG,CAChB,GAAI,OAAO,EAAE,UAAY,WAAY,CACnC,MAAMvlC,EAAI,EAAE,SAAS,CAAC,EACtB,OAAO,EAAE,aAAeA,EAAGA,CAC7B,CACA,OAAO,EAAE,QACX,CACA,SAASlU,IAAK,CACZ,QAAS,EAAI,EAAG,EAAI0E,GAAE,OAAQ,IAC5BA,GAAE,CAAC,EAAE,kBAAiB,CAC1B,CAKA,IAAIzkC,GAAI,EAAGssB,GAAI,EAAGuhB,GAAI,EAAGsrB,GAAI,EAC7B,OAAO,OAAS,KAAO,OAAO,iBAAiB,YAAc,GAAM,CACjEn5D,GAAI6tC,GAAGvhB,GAAI6sC,GAAGtrB,GAAI,EAAE,QAASsrB,GAAI,EAAE,OACrC,EAAG6e,GAAI,CACL,QAAS,EACX,EAAI,MAAM,EACV,SAASX,GAAE,EAAG,EAAGpjC,EAAGz1C,EAAG,EAAGgR,EAAG2F,EAAG3S,EAAG,CACjC,MAAMiC,IAAM0Q,EAAI,IAAM,EAAI3F,IAAMhN,EAAIgN,IAAM,EAAI,MAAQhN,EAAIgN,IAAMykC,EAAI,IAAM9+B,EAAI,IAAM3W,EAAI,IAAKi6B,IAAMwb,EAAI,IAAM,EAAIzkC,IAAMhR,EAAI,IAAM,EAAI,MAAQgE,EAAIgN,IAAMykC,EAAI,IAAM9+B,EAAI,IAAM3W,EAAI,IAC/K,OAAOiG,GAAK,GAAKA,GAAK,GAAKg0B,GAAK,GAAKA,GAAK,CAC5C,CACA,MAAMghD,GAAK,CACT,QAASd,GAAC,CACZ,EAAGd,GAAI,CAAC,EAAG,IAAM,CACf,MAAM5jC,EAAI,EAAE,WAAa,EACzB,SAAW,CAACz1C,EAAG,CAAC,IAAK,EACnBy1C,EAAEz1C,CAAC,EAAI,EACT,OAAOy1C,CACT,EACA,SAASylC,GAAG,EAAG,EAAGzlC,EAAGz1C,EAAG,EAAGgR,EAAG,CAC5B,OAAO8pC,EAAC,EAAI89B,EAAE,MAAO,CACnB,IAAK,YACL,MAAOuC,GAAE,CAAC,WAAY,CACpB,kBAAmB,EAAE,SAAS,OACpC,CAAK,CAAC,CACN,EAAK,CACDlC,GAAE,EAAE,OAAQ,UAAWmC,GAAGC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC7C,EAAK,CAAC,CACN,CACA,MAAMC,GAAqBjC,GAAE4B,GAAI,CAAC,CAAC,SAAUC,EAAE,CAAC,CAAC,EACjD,SAASK,IAAK,CACZ,IAAI,EAAI,OAAO,UAAU,UAAW,EAAI,EAAE,QAAQ,OAAO,EACzD,GAAI,EAAI,EACN,OAAO,SAAS,EAAE,UAAU,EAAI,EAAG,EAAE,QAAQ,IAAK,CAAC,CAAC,EAAG,EAAE,EAC3D,IAAI9lC,EAAI,EAAE,QAAQ,UAAU,EAC5B,GAAIA,EAAI,EAAG,CACT,IAAIz1C,EAAI,EAAE,QAAQ,KAAK,EACvB,OAAO,SAAS,EAAE,UAAUA,EAAI,EAAG,EAAE,QAAQ,IAAKA,CAAC,CAAC,EAAG,EAAE,CAC3D,CACA,IAAI,EAAI,EAAE,QAAQ,OAAO,EACzB,OAAO,EAAI,EAAI,SAAS,EAAE,UAAU,EAAI,EAAG,EAAE,QAAQ,IAAK,CAAC,CAAC,EAAG,EAAE,EAAI,EACvE,CACA,IAAIw7E,GACJ,SAASC,IAAI,CACXA,GAAE,OAASA,GAAE,KAAO,GAAID,GAAID,GAAE,IAAO,GACvC,CACA,IAAIvnC,GAAI,CACN,KAAM,iBACN,MAAO,CACL,YAAa,CACX,KAAM,QACN,QAAS,EACf,EACI,YAAa,CACX,KAAM,QACN,QAAS,EACf,EACI,aAAc,CACZ,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CACL,QACJ,EACE,SAAU,CACRynC,GAAC,EAAIC,GAAG,IAAM,CACZ,KAAK,GAAK,KAAK,IAAI,YAAa,KAAK,GAAK,KAAK,IAAI,aAAc,KAAK,aAAe,KAAK,SAAQ,CACpG,CAAC,EACD,MAAM,EAAI,SAAS,cAAc,QAAQ,EACzC,KAAK,cAAgB,EAAG,EAAE,aAAa,cAAe,MAAM,EAAG,EAAE,aAAa,WAAY,EAAE,EAAG,EAAE,OAAS,KAAK,kBAAmB,EAAE,KAAO,YAAaF,IAAK,KAAK,IAAI,YAAY,CAAC,EAAG,EAAE,KAAO,cAAeA,IAAK,KAAK,IAAI,YAAY,CAAC,CAC3O,EACA,eAAgB,CACd,KAAK,qBAAoB,CAC3B,EACA,QAAS,CACP,kBAAmB,EAChB,CAAC,KAAK,aAAe,KAAK,KAAO,KAAK,IAAI,aAAe,CAAC,KAAK,cAAgB,KAAK,KAAO,KAAK,IAAI,gBAAkB,KAAK,GAAK,KAAK,IAAI,YAAa,KAAK,GAAK,KAAK,IAAI,aAAc,KAAK,SAAQ,EACvM,EACA,UAAW,CACT,KAAK,MAAM,SAAU,CACnB,MAAO,KAAK,GACZ,OAAQ,KAAK,EACrB,CAAO,CACH,EACA,mBAAoB,CAClB,KAAK,cAAc,gBAAgB,YAAY,iBAAiB,SAAU,KAAK,gBAAgB,EAAG,KAAK,iBAAgB,CACzH,EACA,sBAAuB,CACrB,KAAK,eAAiB,KAAK,cAAc,SAAW,CAACA,IAAK,KAAK,cAAc,iBAAmB,KAAK,cAAc,gBAAgB,YAAY,oBAAoB,SAAU,KAAK,gBAAgB,EAAG,KAAK,IAAI,YAAY,KAAK,aAAa,EAAG,KAAK,cAAc,OAAS,KAAM,KAAK,cAAgB,KACxS,CACJ,CACA,EACA,MAAMvuC,GAAqB0uC,GAAoB,EAC/CC,GAAG,iBAAiB,EACpB,MAAMC,GAAK,CACT,MAAO,kBACP,SAAU,IACZ,EACAC,GAAE,EACF,MAAMC,GAAqB9uC,GAAG,CAAC,EAAG,EAAGwI,EAAGz1C,EAAG,EAAGgR,KAAO8pC,EAAC,EAAIkhC,GAAE,MAAOH,EAAE,EAAE,EACvE7nC,GAAE,OAAS+nC,GACX/nC,GAAE,UAAY,kBACdA,GAAE,OAAS,oCACX,MAAMioC,GAAI,CAAC,EAAI,WAAa,CAC1B,SAAU,CACR,YAAa,CACX,OAAO3C,GAAG,KAAK,CAAC,CAAC,CACnB,CACJ,CACA,GAAI4C,GAAK/C,GAAE,CACT,KAAM,iBACN,WAAY,CACV,eAAgBnlC,EACpB,EACE,OAAQ,CACNioC,GAAC,CACL,EACE,MAAO,CACL,SAAU,OACV,MAAO,OACP,MAAO,QACP,QAAS,QACT,eAAgB,QAChB,SAAU,QACV,aAAc,QACd,QAAS,OACT,OAAQ,MACZ,EACE,MAAO,CACL,OACA,QACJ,EACE,QAAS,CACP,KAAK,EAAG,CACN,OAAO,GAAK,MAAQ,CAAC,MAAM,CAAC,EAAI,GAAG,CAAC,KAAO,IAC7C,CACJ,CACA,CAAC,EAAGE,GAAK,CAAC,KAAM,cAAe,WAAY,uBAAuB,EAAGC,GAAK,CACxE,IAAK,QACL,MAAO,iBACT,EAAGC,GAAqB5D,EAAE,MAAO,CAAE,MAAO,uBAAuB,EAAI,KAAM,EAAE,EAAG6D,GAAqB7D,EAAE,MAAO,CAAE,MAAO,uBAAuB,EAAI,KAAM,EAAE,EAAG8D,GAAK,CAChKF,GACAC,EACF,EACA,SAASE,GAAG,EAAG,EAAG/mC,EAAGz1C,EAAG,EAAGgR,EAAG,CAC5B,MAAM2F,EAAIyiE,GAAE,gBAAgB,EAC5B,OAAOt+B,EAAC,EAAI89B,EAAE,MAAO,CACnB,GAAI,EAAE,SACN,IAAK,UACL,MAAOuC,GAAE,CAAC,mBAAoB,CAC5B,EAAE,WACF,EAAE,QAAQ,YACV,CACE,0BAA2B,EAAE,MAC7B,2BAA4B,CAAC,EAAE,MAC/B,8BAA+B,EAAE,QAAQ,SACzC,4BAA6B,EAAE,QAAQ,OACvC,8BAA+B,EAAE,QAAQ,SACzC,4BAA6B,EAAE,QAAQ,OACvC,oCAAqC,EAAE,eACvC,mCAAoC,EAAE,QAAU,EAAE,OAAO,MAAM,SAC/D,mCAAoC,CAAC,EAAE,MAC/C,CACA,CAAK,CAAC,EACF,MAAOrC,GAAE,EAAE,OAAS,CAClB,SAAU,EAAE,OAAO,SACnB,UAAW,eAAe,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,OAClF,EAAQ,MAAM,EACV,cAAe,EAAE,MAAQ,QAAU,OACnC,SAAU,EAAE,SAAW,EAAI,OAC3B,wBAAyB,EAAE,OAAS,EAAE,OAAO,UAAY,OACzD,QAAS,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI2D,GAAIz4E,GAAM,EAAE,UAAY,EAAE,MAAM,MAAM,EAAG,CAAC,KAAK,CAAC,EAC7E,EAAK,CACDy0E,EAAE,MAAO,CACP,MAAO,qBACP,QAAS,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKz0E,GAAM,EAAE,UAAY,EAAE,MAAM,MAAM,EAClE,CAAK,EACDy0E,EAAE,MAAO,CACP,MAAO,oBACP,MAAOK,GAAE,EAAE,OAAS,CAClB,gBAAiB,EAAE,OAAO,eAClC,EAAU,MAAM,CAChB,EAAO,CACDL,EAAE,MAAO2D,GAAI,CACX,EAAE,SAAWthC,IAAK89B,EAAE8D,GAAI,CAAE,IAAK,GAAK,CAClCjE,EAAE,MAAO,KAAM,CACbQ,GAAE,EAAE,OAAQ,SAAS,CACjC,CAAW,EACD,EAAE,cAAgBn+B,IAAKkhC,GAAErlE,EAAG,CAC1B,IAAK,EACL,SAAU,EAAE,CAAC,IAAM,EAAE,CAAC,EAAK3S,GAAM,EAAE,MAAM,SAAUA,CAAC,EAChE,CAAW,GAAK24E,GAAG,GAAI,EAAE,CACzB,EAAW,EAAE,GAAKA,GAAG,GAAI,EAAE,CAC3B,EAAS,GAAG,EACNlE,EAAE,MAAO,CACP,IAAK,QACL,MAAO,4BACP,MAAOK,GAAE,EAAE,OAAS,CAClB,KAAM,EAAE,KAAK,EAAE,OAAO,MAAM,CAAC,EAC7B,IAAK,EAAE,KAAK,EAAE,OAAO,MAAM,CAAC,CACtC,EAAY,MAAM,CAClB,EAASyD,GAAI,CAAC,CACd,EAAO,CAAC,CACR,EAAK,GAAIJ,EAAE,CACX,CACA,MAAMS,GAAqBvD,GAAE6C,GAAI,CAAC,CAAC,SAAUM,EAAE,CAAC,CAAC,EAAGK,GAAK,CACvD,QAAS,CACP,QAAQ,EAAG,CACT,OAAO,KAAK,MAAM,OAAO,KAAK,GAAG,CAAC,CACpC,EACA,QAAQ,EAAG,CACT,OAAO,KAAK,MAAM,OAAO,KAAK,GAAG,CAAC,CACpC,EACA,WAAW,EAAG,CACZ,OAAO,KAAK,MAAM,OAAO,QAAQ,GAAG,CAAC,CACvC,EACA,YAAY,EAAG,CACb,OAAO,KAAK,MAAM,OAAO,SAAS,GAAG,CAAC,CACxC,CACJ,CACA,EACA,IAAIC,GAAI,UAAW,CACnB,EACA,OAAO,OAAS,MAAQA,GAAI,OAAO,SACnC,MAAMC,GAAK5D,GAAE,CACX,KAAM,iBACN,WAAY,CACV,OAAQmC,GACR,cAAesB,EACnB,EACE,OAAQ,CACNC,GACAZ,GAAE,YAAY,CAClB,EACE,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,IACf,EACI,cAAe,CACb,KAAM,SACN,QAAS,IACf,EACI,MAAO,CACL,KAAM,QACN,QAAS,EACf,EACI,UAAW,CACT,KAAM,OACN,QAAS,IACf,EAEI,OAAQ,CACN,QAAS,IACf,EACI,SAAU,CACR,KAAM,QACN,QAAS,MACf,EACI,oBAAqB,CACnB,KAAM,QACN,QAAS,MACf,EACI,UAAW,CACT,KAAM,OACN,QAAS,MACf,EACI,MAAO,CACL,KAAM,CAAC,OAAQ,OAAQ,MAAM,EAC7B,QAAS,MACf,EACI,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACf,EACI,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACf,EACI,SAAU,CACR,KAAM,MACN,QAAS,MACf,EACI,aAAc,CACZ,KAAM,CAAC,MAAO,QAAQ,EACtB,QAAS,MACf,EACI,aAAc,CACZ,KAAM,CAAC,MAAO,QAAQ,EACtB,QAAS,MACf,EACI,eAAgB,CACd,KAAM,MACN,QAAS,MACf,EACI,mBAAoB,CAClB,KAAM,CAAC,MAAO,QAAQ,EACtB,QAAS,MACf,EACI,mBAAoB,CAClB,KAAM,CAAC,MAAO,QAAQ,EACtB,QAAS,MACf,EACI,UAAW,CACT,KAAM,CAAC,OAAQ,OAAQa,GAAG,OAAO,EACjC,QAAS,MACf,EACI,SAAU,CACR,KAAM,CAAC,OAAQA,EAAC,EAChB,QAAS,MACf,EACI,SAAU,CACR,KAAM,OACN,QAAS,MACf,EACI,SAAU,CACR,KAAM,CAAC,QAAS,QAAQ,EACxB,QAAS,MACf,EACI,aAAc,CACZ,KAAM,QACN,QAAS,MACf,EACI,YAAa,CACX,KAAM,QACN,QAAS,MACf,EACI,WAAY,CACV,KAAM,QACN,QAAS,MACf,EACI,YAAa,CACX,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,MACf,EACI,uBAAwB,CACtB,KAAM,QACN,QAAS,MACf,EAII,YAAa,CACX,KAAM,QACN,QAAS,MACf,EACI,SAAU,CACR,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,MACf,EAII,YAAa,CACX,KAAM,QACN,QAAS,MACf,EACI,oBAAqB,CACnB,KAAM,QACN,QAAS,MACf,EACI,gBAAiB,CACf,KAAM,QACN,QAAS,MACf,EACI,gBAAiB,CACf,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACf,EACI,aAAc,CACZ,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACf,EACI,cAAe,CACb,KAAM,QACN,QAAS,MACf,EACI,KAAM,CACJ,KAAM,QACN,QAAS,MACf,EACI,MAAO,CACL,KAAM,QACN,QAAS,MACf,EACI,eAAgB,CACd,KAAM,QACN,QAAS,MACf,EACI,YAAa,CACX,KAAM,QACN,QAAS,MACf,EACI,eAAgB,CACd,KAAM,OACN,QAAS,MACf,CACA,EACE,MAAO,CACL,KAAM,IAAM,GACZ,KAAM,IAAM,GACZ,eAAiB,GAAM,GACvB,aAAc,IAAM,GACpB,aAAc,IAAM,GACpB,cAAe,IAAM,GACrB,kBAAmB,IAAM,GACzB,YAAa,IAAM,GACnB,OAAQ,IAAM,EAClB,EACE,SAAU,CACR,YAAa,CACX,OAAO,KAAK,OAAS,KAAK,SAAS,YACrC,CACJ,EACE,QAAS,CACP,gBAAiB,CACf,OAAO,MAAM,KAAK,KAAK,IAAI,QAAQ,EAAE,OAAQ,GAAM,IAAM,KAAK,MAAM,cAAc,GAAG,CACvF,CACJ,CACA,CAAC,EACD,SAASE,GAAG,EAAG,EAAGvnC,EAAGz1C,EAAG,EAAGgR,EAAG,CAC5B,MAAM2F,EAAIyiE,GAAE,eAAe,EAAGp1E,EAAIo1E,GAAE,QAAQ,EAC5C,OAAOt+B,EAAC,EAAIkhC,GAAEh4E,EAAGi5E,GAAG,CAAE,IAAK,QAAQ,EAAI,EAAE,OAAQ,CAC/C,MAAO,EAAE,WACT,eAAgB,EAAE,eAClB,cAAe,IAAM,EAAE,MAAM,cAAc,IAC3C,MAAO,CACL,EAAE,UACR,EACI,OAAQ,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI,IAAM,EAAE,MAAM,MAAM,GAC5C,OAAQ,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI,IAAM,EAAE,MAAM,MAAM,GAC5C,iBAAkB,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKh3E,GAAM,EAAE,MAAM,eAAgBA,CAAC,GAClE,YAAa,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI,IAAM,EAAE,MAAM,YAAY,GACvD,YAAa,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI,IAAM,EAAE,MAAM,YAAY,GACvD,aAAc,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI,IAAM,EAAE,MAAM,aAAa,GACzD,iBAAkB,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI,IAAM,EAAE,MAAM,iBAAiB,GACjE,WAAY,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI,IAAM,EAAE,MAAM,WAAW,GACrD,SAAU,EAAE,CAAC,IAAM,EAAE,CAAC,EAAI,IAAM,EAAE,MAAM,QAAQ,EACpD,CAAG,EAAG,CACF,QAASi3E,GAAE,CAAC,CACV,SAAUj3E,EACV,QAASg0B,EACT,mBAAoBy+C,EACpB,eAAgBK,EAChB,SAAUoE,EACV,KAAMhX,EACN,KAAMxgE,EACN,aAAcgzE,EACd,SAAUlwD,EACV,QAAS20D,EACT,OAAQC,CACd,IAAU,CACJpE,GAAE,EAAE,OAAQ,UAAW,CACrB,MAAOh/C,EACP,KAAMksC,EACN,KAAMxgE,CACd,CAAO,EACD23E,GAAG3mE,EAAG,CACJ,IAAK,gBACL,YAAa1Q,EACb,MAAO,EAAE,WACT,MAAOg0B,EACP,QAASy+C,EACT,kBAAmBK,EACnB,YAAaoE,EACb,gBAAiBxE,EACjB,QAASyE,EACT,OAAQC,EACR,OAAQ13E,EACR,SAAU8iB,CAClB,EAAS,CACD,QAASy0D,GAAE,IAAM,CACfjE,GAAE,EAAE,OAAQ,SAAU,CACpB,MAAOh/C,EACP,KAAMt0B,CAClB,CAAW,CACX,CAAS,EACD,EAAG,CACX,EAAS,KAAM,CAAC,YAAa,QAAS,QAAS,UAAW,kBAAmB,YAAa,gBAAiB,UAAW,SAAU,SAAU,UAAU,CAAC,CACrJ,CAAK,EACD,EAAG,CACP,EAAK,GAAI,CAAC,QAAS,eAAgB,cAAe,OAAO,CAAC,CAC1D,CACK,MAAC4kC,GAAoB8uC,GAAE0D,GAAI,CAAC,CAAC,SAAUC,EAAE,CAAC,CAAC,EAAGO,GAAK,CACtD,GAAGhzC,GACH,KAAM,YACN,aAAc,UAChB,GAAQ,CACN,GAAGA,EAGL,EAAQ,CACN,GAAGA,EAGL,GAGY4vC,GAAC,EAiPR,MAUFqD,GAAKlwD,GAAuCmwD,GAAKF,GC7gDpD,SAASG,GAAyB/xE,EAAG,CACpC,OAAOA,GAAKA,EAAE,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAG,SAAS,EAAIA,EAAE,QAAaA,CACjG,CAEA,IAAIgyE,GAAU,CAAC,QAAS,EAAC,EAGrBC,GAAUD,GAAQ,QAAU,GAO5BE,GACAC,GAEJ,SAASC,IAAmB,CACxB,MAAM,IAAI,MAAM,iCAAiC,CACrD,CACA,SAASC,IAAuB,CAC5B,MAAM,IAAI,MAAM,mCAAmC,CACvD,EACC,UAAY,CACT,GAAI,CACI,OAAO,YAAe,WACtBH,GAAmB,WAEnBA,GAAmBE,EAE3B,MAAY,CACRF,GAAmBE,EACvB,CACA,GAAI,CACI,OAAO,cAAiB,WACxBD,GAAqB,aAErBA,GAAqBE,EAE7B,MAAY,CACRF,GAAqBE,EACzB,CACJ,KACA,SAASC,GAAWC,EAAK,CACrB,GAAIL,KAAqB,WAErB,OAAO,WAAWK,EAAK,CAAC,EAG5B,IAAKL,KAAqBE,IAAoB,CAACF,KAAqB,WAChE,OAAAA,GAAmB,WACZ,WAAWK,EAAK,CAAC,EAE5B,GAAI,CAEA,OAAOL,GAAiBK,EAAK,CAAC,CAClC,MAAU,CACN,GAAI,CAEA,OAAOL,GAAiB,KAAK,KAAMK,EAAK,CAAC,CAC7C,MAAU,CAEN,OAAOL,GAAiB,KAAK,KAAMK,EAAK,CAAC,CAC7C,CACJ,CAGJ,CACA,SAASC,GAAgBC,EAAQ,CAC7B,GAAIN,KAAuB,aAEvB,OAAO,aAAaM,CAAM,EAG9B,IAAKN,KAAuBE,IAAuB,CAACF,KAAuB,aACvE,OAAAA,GAAqB,aACd,aAAaM,CAAM,EAE9B,GAAI,CAEA,OAAON,GAAmBM,CAAM,CACpC,MAAW,CACP,GAAI,CAEA,OAAON,GAAmB,KAAK,KAAMM,CAAM,CAC/C,MAAW,CAGP,OAAON,GAAmB,KAAK,KAAMM,CAAM,CAC/C,CACJ,CAIJ,CACA,IAAIjoE,GAAQ,GACRkoE,GAAW,GACXC,GACAC,GAAa,GAEjB,SAASC,IAAkB,CACnB,CAACH,IAAY,CAACC,KAGlBD,GAAW,GACPC,GAAa,OACbnoE,GAAQmoE,GAAa,OAAOnoE,EAAK,EAEjCooE,GAAa,GAEbpoE,GAAM,QACNsoE,GAAA,EAER,CAEA,SAASA,IAAa,CAClB,GAAI,CAAAJ,GAGJ,KAAIr5C,EAAUi5C,GAAWO,EAAe,EACxCH,GAAW,GAGX,QADIvgD,EAAM3nB,GAAM,OACV2nB,GAAK,CAGP,IAFAwgD,GAAenoE,GACfA,GAAQ,GACD,EAAEooE,GAAazgD,GACdwgD,IACAA,GAAaC,EAAU,EAAE,MAGjCA,GAAa,GACbzgD,EAAM3nB,GAAM,MAChB,CACAmoE,GAAe,KACfD,GAAW,GACXF,GAAgBn5C,CAAO,EAC3B,CAEA44C,GAAQ,SAAW,SAAUM,EAAK,CAC9B,IAAIxyE,EAAO,IAAI,MAAM,UAAU,OAAS,CAAC,EACzC,GAAI,UAAU,OAAS,EACnB,QAAS1L,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAClC0L,EAAK1L,EAAI,CAAC,EAAI,UAAUA,CAAC,EAGjCmW,GAAM,KAAK,IAAIuoE,GAAKR,EAAKxyE,CAAI,CAAC,EAC1ByK,GAAM,SAAW,GAAK,CAACkoE,IACvBJ,GAAWQ,EAAU,CAE7B,EAGA,SAASC,GAAKR,EAAKpzE,EAAO,CACtB,KAAK,IAAMozE,EACX,KAAK,MAAQpzE,CACjB,CACA4zE,GAAK,UAAU,IAAM,UAAY,CAC7B,KAAK,IAAI,MAAM,KAAM,KAAK,KAAK,CACnC,EACAd,GAAQ,MAAQ,UAChBA,GAAQ,QAAU,GAClBA,GAAQ,IAAM,GACdA,GAAQ,KAAO,GACfA,GAAQ,QAAU,GAClBA,GAAQ,SAAW,GAEnB,SAAS9nC,IAAO,CAAC,CAEjB8nC,GAAQ,GAAK9nC,GACb8nC,GAAQ,YAAc9nC,GACtB8nC,GAAQ,KAAO9nC,GACf8nC,GAAQ,IAAM9nC,GACd8nC,GAAQ,eAAiB9nC,GACzB8nC,GAAQ,mBAAqB9nC,GAC7B8nC,GAAQ,KAAO9nC,GACf8nC,GAAQ,gBAAkB9nC,GAC1B8nC,GAAQ,oBAAsB9nC,GAE9B8nC,GAAQ,UAAY,SAAUr6E,EAAM,CAAE,MAAO,EAAG,EAEhDq6E,GAAQ,QAAU,SAAUr6E,EAAM,CAC9B,MAAM,IAAI,MAAM,kCAAkC,CACtD,EAEAq6E,GAAQ,IAAM,UAAY,CAAE,MAAO,GAAI,EACvCA,GAAQ,MAAQ,SAAU1kE,EAAK,CAC3B,MAAM,IAAI,MAAM,gCAAgC,CACpD,EACA0kE,GAAQ,MAAQ,UAAW,CAAE,MAAO,EAAG,EAEvC,IAAIe,GAAiBhB,GAAQ,QAC7B,MAAMiB,MAAiDD,EAAc,wDCtLrE,OAAAE,GAPE,OAAOjB,IAAY,UACnBkB,GACAA,EAAY,YACZ,cAAc,KAAKA,EAAY,UAAU,EACvC,IAAIpzE,IAAS,QAAQ,MAAM,SAAU,GAAGA,CAAI,EAC5C,IAAM,CAAC,kDCJX,MAAMqzE,EAAsB,QAEtBC,EAAa,IACbC,EAAmB,OAAO,kBACL,iBAGrBC,EAA4B,GAI5BC,EAAwBH,EAAa,EAY3C,OAAAI,GAAiB,CACf,WAAAJ,EACA,0BAAAE,EACA,sBAAAC,EACA,iBAAAF,EACA,cAfoB,CACpB,QACA,WACA,QACA,WACA,QACA,WACA,YACF,EAQE,oBAAAF,EACA,wBAAyB,EACzB,WAAY,CACd,0EClCA,KAAM,CACJ,0BAAAG,EACA,sBAAAC,EACA,WAAAH,CACF,EAAIK,GAAA,EACEC,EAAQC,GAAA,EACdryC,EAAUsyC,EAAA,QAAiB,GAG3B,MAAMjG,EAAKrsC,EAAA,GAAa,GAClBuyC,EAASvyC,EAAA,OAAiB,GAC1B6H,EAAM7H,EAAA,IAAc,GACpBwyC,EAAUxyC,EAAA,QAAkB,GAC5BvK,EAAIuK,EAAA,EAAY,GACtB,IAAIyrC,EAAI,EAER,MAAMgH,EAAmB,eAQnBC,EAAwB,CAC5B,CAAC,MAAO,CAAC,EACT,CAAC,MAAOZ,CAAU,EAClB,CAACW,EAAkBR,CAAqB,CAC1C,EAEMU,EAAiB/+E,GAAU,CAC/B,SAAW,CAACg/E,EAAO1vC,CAAG,IAAKwvC,EACzB9+E,EAAQA,EACL,MAAM,GAAGg/E,CAAK,GAAG,EAAE,KAAK,GAAGA,CAAK,MAAM1vC,CAAG,GAAG,EAC5C,MAAM,GAAG0vC,CAAK,GAAG,EAAE,KAAK,GAAGA,CAAK,MAAM1vC,CAAG,GAAG,EAEjD,OAAOtvC,CACT,EAEMi/E,EAAc,CAACx8E,EAAMzC,EAAOk/E,IAAa,CAC7C,MAAMC,EAAOJ,EAAc/+E,CAAK,EAC1B0D,EAAQm0E,IACd2G,EAAM/7E,EAAMiB,EAAO1D,CAAK,EACxB6hC,EAAEp/B,CAAI,EAAIiB,EACVuwC,EAAIvwC,CAAK,EAAI1D,EACb4+E,EAAQl7E,CAAK,EAAIy7E,EACjB1G,EAAG/0E,CAAK,EAAI,IAAI,OAAO1D,EAAOk/E,EAAW,IAAM,MAAS,EACxDP,EAAOj7E,CAAK,EAAI,IAAI,OAAOy7E,EAAMD,EAAW,IAAM,MAAS,CAC7D,EAQAD,EAAY,oBAAqB,aAAa,EAC9CA,EAAY,yBAA0B,MAAM,EAM5CA,EAAY,uBAAwB,gBAAgBJ,CAAgB,GAAG,EAKvEI,EAAY,cAAe,IAAIhrC,EAAIpS,EAAE,iBAAiB,CAAC,QAChCoS,EAAIpS,EAAE,iBAAiB,CAAC,QACxBoS,EAAIpS,EAAE,iBAAiB,CAAC,GAAG,EAElDo9C,EAAY,mBAAoB,IAAIhrC,EAAIpS,EAAE,sBAAsB,CAAC,QACrCoS,EAAIpS,EAAE,sBAAsB,CAAC,QAC7BoS,EAAIpS,EAAE,sBAAsB,CAAC,GAAG,EAO5Do9C,EAAY,uBAAwB,MAAMhrC,EAAIpS,EAAE,oBAAoB,KAChEoS,EAAIpS,EAAE,iBAAiB,CAAC,GAAG,EAE/Bo9C,EAAY,4BAA6B,MAAMhrC,EAAIpS,EAAE,oBAAoB,KACrEoS,EAAIpS,EAAE,sBAAsB,CAAC,GAAG,EAMpCo9C,EAAY,aAAc,QAAQhrC,EAAIpS,EAAE,oBAAoB,UACnDoS,EAAIpS,EAAE,oBAAoB,CAAC,MAAM,EAE1Co9C,EAAY,kBAAmB,SAAShrC,EAAIpS,EAAE,yBAAyB,UAC9DoS,EAAIpS,EAAE,yBAAyB,CAAC,MAAM,EAK/Co9C,EAAY,kBAAmB,GAAGJ,CAAgB,GAAG,EAMrDI,EAAY,QAAS,UAAUhrC,EAAIpS,EAAE,eAAe,UAC3CoS,EAAIpS,EAAE,eAAe,CAAC,MAAM,EAWrCo9C,EAAY,YAAa,KAAKhrC,EAAIpS,EAAE,WAAW,IAC5CoS,EAAIpS,EAAE,UAAU,CAAC,IAClBoS,EAAIpS,EAAE,KAAK,CAAC,GAAG,EAEjBo9C,EAAY,OAAQ,IAAIhrC,EAAIpS,EAAE,SAAS,CAAC,GAAG,EAK3Co9C,EAAY,aAAc,WAAWhrC,EAAIpS,EAAE,gBAAgB,IACxDoS,EAAIpS,EAAE,eAAe,CAAC,IACvBoS,EAAIpS,EAAE,KAAK,CAAC,GAAG,EAEjBo9C,EAAY,QAAS,IAAIhrC,EAAIpS,EAAE,UAAU,CAAC,GAAG,EAE7Co9C,EAAY,OAAQ,cAAc,EAKlCA,EAAY,wBAAyB,GAAGhrC,EAAIpS,EAAE,sBAAsB,CAAC,UAAU,EAC/Eo9C,EAAY,mBAAoB,GAAGhrC,EAAIpS,EAAE,iBAAiB,CAAC,UAAU,EAErEo9C,EAAY,cAAe,YAAYhrC,EAAIpS,EAAE,gBAAgB,CAAC,WACjCoS,EAAIpS,EAAE,gBAAgB,CAAC,WACvBoS,EAAIpS,EAAE,gBAAgB,CAAC,OAC3BoS,EAAIpS,EAAE,UAAU,CAAC,KACrBoS,EAAIpS,EAAE,KAAK,CAAC,OACR,EAEzBo9C,EAAY,mBAAoB,YAAYhrC,EAAIpS,EAAE,qBAAqB,CAAC,WACtCoS,EAAIpS,EAAE,qBAAqB,CAAC,WAC5BoS,EAAIpS,EAAE,qBAAqB,CAAC,OAChCoS,EAAIpS,EAAE,eAAe,CAAC,KAC1BoS,EAAIpS,EAAE,KAAK,CAAC,OACR,EAE9Bo9C,EAAY,SAAU,IAAIhrC,EAAIpS,EAAE,IAAI,CAAC,OAAOoS,EAAIpS,EAAE,WAAW,CAAC,GAAG,EACjEo9C,EAAY,cAAe,IAAIhrC,EAAIpS,EAAE,IAAI,CAAC,OAAOoS,EAAIpS,EAAE,gBAAgB,CAAC,GAAG,EAI3Eo9C,EAAY,cAAe,oBACDb,CAAyB,kBACrBA,CAAyB,oBACzBA,CAAyB,MAAM,EAC7Da,EAAY,SAAU,GAAGhrC,EAAIpS,EAAE,WAAW,CAAC,cAAc,EACzDo9C,EAAY,aAAchrC,EAAIpS,EAAE,WAAW,EAC7B,MAAMoS,EAAIpS,EAAE,UAAU,CAAC,QACjBoS,EAAIpS,EAAE,KAAK,CAAC,gBACJ,EAC5Bo9C,EAAY,YAAahrC,EAAIpS,EAAE,MAAM,EAAG,EAAI,EAC5Co9C,EAAY,gBAAiBhrC,EAAIpS,EAAE,UAAU,EAAG,EAAI,EAIpDo9C,EAAY,YAAa,SAAS,EAElCA,EAAY,YAAa,SAAShrC,EAAIpS,EAAE,SAAS,CAAC,OAAQ,EAAI,EAC9DuK,EAAA,iBAA2B,MAE3B6yC,EAAY,QAAS,IAAIhrC,EAAIpS,EAAE,SAAS,CAAC,GAAGoS,EAAIpS,EAAE,WAAW,CAAC,GAAG,EACjEo9C,EAAY,aAAc,IAAIhrC,EAAIpS,EAAE,SAAS,CAAC,GAAGoS,EAAIpS,EAAE,gBAAgB,CAAC,GAAG,EAI3Eo9C,EAAY,YAAa,SAAS,EAElCA,EAAY,YAAa,SAAShrC,EAAIpS,EAAE,SAAS,CAAC,OAAQ,EAAI,EAC9DuK,EAAA,iBAA2B,MAE3B6yC,EAAY,QAAS,IAAIhrC,EAAIpS,EAAE,SAAS,CAAC,GAAGoS,EAAIpS,EAAE,WAAW,CAAC,GAAG,EACjEo9C,EAAY,aAAc,IAAIhrC,EAAIpS,EAAE,SAAS,CAAC,GAAGoS,EAAIpS,EAAE,gBAAgB,CAAC,GAAG,EAG3Eo9C,EAAY,kBAAmB,IAAIhrC,EAAIpS,EAAE,IAAI,CAAC,QAAQoS,EAAIpS,EAAE,UAAU,CAAC,OAAO,EAC9Eo9C,EAAY,aAAc,IAAIhrC,EAAIpS,EAAE,IAAI,CAAC,QAAQoS,EAAIpS,EAAE,SAAS,CAAC,OAAO,EAIxEo9C,EAAY,iBAAkB,SAAShrC,EAAIpS,EAAE,IAAI,SACzCoS,EAAIpS,EAAE,UAAU,CAAC,IAAIoS,EAAIpS,EAAE,WAAW,CAAC,IAAK,EAAI,EACxDuK,EAAA,sBAAgC,SAMhC6yC,EAAY,cAAe,SAAShrC,EAAIpS,EAAE,WAAW,CAAC,cAE/BoS,EAAIpS,EAAE,WAAW,CAAC,QACf,EAE1Bo9C,EAAY,mBAAoB,SAAShrC,EAAIpS,EAAE,gBAAgB,CAAC,cAEpCoS,EAAIpS,EAAE,gBAAgB,CAAC,QACpB,EAG/Bo9C,EAAY,OAAQ,iBAAiB,EAErCA,EAAY,OAAQ,2BAA2B,EAC/CA,EAAY,UAAW,6BAA6B,4EC3NpD,MAAMG,EAAc,OAAO,OAAO,CAAE,MAAO,EAAI,CAAE,EAC3CC,EAAY,OAAO,OAAO,EAAG,EAYnC,OAAAC,GAXqBzsE,GACdA,EAID,OAAOA,GAAY,SACdusE,EAGFvsE,EAPEwsE,kDCLX,MAAME,EAAU,WACVC,EAAqB,CAACt8E,EAAGC,IAAM,CACnC,GAAI,OAAOD,GAAM,UAAY,OAAOC,GAAM,SACxC,OAAOD,IAAMC,EAAI,EAAID,EAAIC,EAAI,GAAK,EAGpC,MAAMs8E,EAAOF,EAAQ,KAAKr8E,CAAC,EACrBw8E,EAAOH,EAAQ,KAAKp8E,CAAC,EAE3B,OAAIs8E,GAAQC,IACVx8E,EAAI,CAACA,EACLC,EAAI,CAACA,GAGAD,IAAMC,EAAI,EACZs8E,GAAQ,CAACC,EAAQ,GACjBA,GAAQ,CAACD,EAAQ,EAClBv8E,EAAIC,EAAI,GACR,CACN,EAIA,OAAAw8E,GAAiB,CACf,mBAAAH,EACA,oBAJ0B,CAACt8E,EAAGC,IAAMq8E,EAAmBr8E,EAAGD,CAAC,CAK7D,kDC1BA,MAAMs7E,EAAQD,GAAA,EACR,CAAE,WAAAL,EAAY,iBAAAC,CAAgB,EAAKM,GAAA,EACnC,CAAE,OAAQhG,EAAI,EAAA52C,CAAC,EAAK+9C,GAAA,EAEpBC,EAAeC,GAAA,EACf,CAAE,mBAAAN,CAAkB,EAAKO,GAAA,EAC/B,MAAMC,CAAO,CACX,YAAatxD,EAAS7b,EAAS,CAG7B,GAFAA,EAAUgtE,EAAahtE,CAAO,EAE1B6b,aAAmBsxD,EAAQ,CAC7B,GAAItxD,EAAQ,QAAU,CAAC,CAAC7b,EAAQ,OAC9B6b,EAAQ,oBAAsB,CAAC,CAAC7b,EAAQ,kBACxC,OAAO6b,EAEPA,EAAUA,EAAQ,OAE1B,SAAe,OAAOA,GAAY,SAC5B,MAAM,IAAI,UAAU,gDAAgD,OAAOA,CAAO,IAAI,EAGxF,GAAIA,EAAQ,OAASwvD,EACnB,MAAM,IAAI,UACR,0BAA0BA,CAAU,aAC5C,EAGIM,EAAM,SAAU9vD,EAAS7b,CAAO,EAChC,KAAK,QAAUA,EACf,KAAK,MAAQ,CAAC,CAACA,EAAQ,MAGvB,KAAK,kBAAoB,CAAC,CAACA,EAAQ,kBAEnC,MAAMma,EAAI0B,EAAQ,KAAI,EAAG,MAAM7b,EAAQ,MAAQ4lE,EAAG52C,EAAE,KAAK,EAAI42C,EAAG52C,EAAE,IAAI,CAAC,EAEvE,GAAI,CAAC7U,EACH,MAAM,IAAI,UAAU,oBAAoB0B,CAAO,EAAE,EAUnD,GAPA,KAAK,IAAMA,EAGX,KAAK,MAAQ,CAAC1B,EAAE,CAAC,EACjB,KAAK,MAAQ,CAACA,EAAE,CAAC,EACjB,KAAK,MAAQ,CAACA,EAAE,CAAC,EAEb,KAAK,MAAQmxD,GAAoB,KAAK,MAAQ,EAChD,MAAM,IAAI,UAAU,uBAAuB,EAG7C,GAAI,KAAK,MAAQA,GAAoB,KAAK,MAAQ,EAChD,MAAM,IAAI,UAAU,uBAAuB,EAG7C,GAAI,KAAK,MAAQA,GAAoB,KAAK,MAAQ,EAChD,MAAM,IAAI,UAAU,uBAAuB,EAIxCnxD,EAAE,CAAC,EAGN,KAAK,WAAaA,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,IAAKjX,GAAO,CAC5C,GAAI,WAAW,KAAKA,CAAE,EAAG,CACvB,MAAMm1B,EAAM,CAACn1B,EACb,GAAIm1B,GAAO,GAAKA,EAAMizC,EACpB,OAAOjzC,CAEnB,CACQ,OAAOn1B,CACf,CAAO,EAVD,KAAK,WAAa,GAapB,KAAK,MAAQiX,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,MAAM,GAAG,EAAI,GACtC,KAAK,OAAM,CACf,CAEE,QAAU,CACR,YAAK,QAAU,GAAG,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,GACpD,KAAK,WAAW,SAClB,KAAK,SAAW,IAAI,KAAK,WAAW,KAAK,GAAG,CAAC,IAExC,KAAK,OAChB,CAEE,UAAY,CACV,OAAO,KAAK,OAChB,CAEE,QAASizD,EAAO,CAEd,GADAzB,EAAM,iBAAkB,KAAK,QAAS,KAAK,QAASyB,CAAK,EACrD,EAAEA,aAAiBD,GAAS,CAC9B,GAAI,OAAOC,GAAU,UAAYA,IAAU,KAAK,QAC9C,MAAO,GAETA,EAAQ,IAAID,EAAOC,EAAO,KAAK,OAAO,CAC5C,CAEI,OAAIA,EAAM,UAAY,KAAK,QAClB,EAGF,KAAK,YAAYA,CAAK,GAAK,KAAK,WAAWA,CAAK,CAC3D,CAEE,YAAaA,EAAO,CAKlB,OAJMA,aAAiBD,IACrBC,EAAQ,IAAID,EAAOC,EAAO,KAAK,OAAO,GAGpC,KAAK,MAAQA,EAAM,MACd,GAEL,KAAK,MAAQA,EAAM,MACd,EAEL,KAAK,MAAQA,EAAM,MACd,GAEL,KAAK,MAAQA,EAAM,MACd,EAEL,KAAK,MAAQA,EAAM,MACd,GAEL,KAAK,MAAQA,EAAM,MACd,EAEF,CACX,CAEE,WAAYA,EAAO,CAMjB,GALMA,aAAiBD,IACrBC,EAAQ,IAAID,EAAOC,EAAO,KAAK,OAAO,GAIpC,KAAK,WAAW,QAAU,CAACA,EAAM,WAAW,OAC9C,MAAO,GACF,GAAI,CAAC,KAAK,WAAW,QAAUA,EAAM,WAAW,OACrD,MAAO,GACF,GAAI,CAAC,KAAK,WAAW,QAAU,CAACA,EAAM,WAAW,OACtD,SAGF,IAAI/gF,EAAI,EACR,EAAG,CACD,MAAMgE,EAAI,KAAK,WAAWhE,CAAC,EACrBiE,EAAI88E,EAAM,WAAW/gF,CAAC,EAE5B,GADAs/E,EAAM,qBAAsBt/E,EAAGgE,EAAGC,CAAC,EAC/BD,IAAM,QAAaC,IAAM,OAC3B,MAAO,GACF,GAAIA,IAAM,OACf,MAAO,GACF,GAAID,IAAM,OACf,MAAO,GACF,GAAIA,IAAMC,EAGf,OAAOq8E,EAAmBt8E,EAAGC,CAAC,CAEtC,OAAa,EAAEjE,EACf,CAEE,aAAc+gF,EAAO,CACbA,aAAiBD,IACrBC,EAAQ,IAAID,EAAOC,EAAO,KAAK,OAAO,GAGxC,IAAI/gF,EAAI,EACR,EAAG,CACD,MAAMgE,EAAI,KAAK,MAAMhE,CAAC,EAChBiE,EAAI88E,EAAM,MAAM/gF,CAAC,EAEvB,GADAs/E,EAAM,gBAAiBt/E,EAAGgE,EAAGC,CAAC,EAC1BD,IAAM,QAAaC,IAAM,OAC3B,MAAO,GACF,GAAIA,IAAM,OACf,MAAO,GACF,GAAID,IAAM,OACf,MAAO,GACF,GAAIA,IAAMC,EAGf,OAAOq8E,EAAmBt8E,EAAGC,CAAC,CAEtC,OAAa,EAAEjE,EACf,CAIE,IAAKghF,EAAS7vB,EAAY8vB,EAAgB,CACxC,GAAID,EAAQ,WAAW,KAAK,EAAG,CAC7B,GAAI,CAAC7vB,GAAc8vB,IAAmB,GACpC,MAAM,IAAI,MAAM,iDAAiD,EAGnE,GAAI9vB,EAAY,CACd,MAAM/tD,EAAQ,IAAI+tD,CAAU,GAAG,MAAM,KAAK,QAAQ,MAAQooB,EAAG52C,EAAE,eAAe,EAAI42C,EAAG52C,EAAE,UAAU,CAAC,EAClG,GAAI,CAACv/B,GAASA,EAAM,CAAC,IAAM+tD,EACzB,MAAM,IAAI,MAAM,uBAAuBA,CAAU,EAAE,CAE7D,CACA,CAEI,OAAQ6vB,EAAO,CACb,IAAK,WACH,KAAK,WAAW,OAAS,EACzB,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,QACL,KAAK,IAAI,MAAO7vB,EAAY8vB,CAAc,EAC1C,MACF,IAAK,WACH,KAAK,WAAW,OAAS,EACzB,KAAK,MAAQ,EACb,KAAK,QACL,KAAK,IAAI,MAAO9vB,EAAY8vB,CAAc,EAC1C,MACF,IAAK,WAIH,KAAK,WAAW,OAAS,EACzB,KAAK,IAAI,QAAS9vB,EAAY8vB,CAAc,EAC5C,KAAK,IAAI,MAAO9vB,EAAY8vB,CAAc,EAC1C,MAGF,IAAK,aACC,KAAK,WAAW,SAAW,GAC7B,KAAK,IAAI,QAAS9vB,EAAY8vB,CAAc,EAE9C,KAAK,IAAI,MAAO9vB,EAAY8vB,CAAc,EAC1C,MACF,IAAK,UACH,GAAI,KAAK,WAAW,SAAW,EAC7B,MAAM,IAAI,MAAM,WAAW,KAAK,GAAG,sBAAsB,EAE3D,KAAK,WAAW,OAAS,EACzB,MAEF,IAAK,SAMD,KAAK,QAAU,GACf,KAAK,QAAU,GACf,KAAK,WAAW,SAAW,IAE3B,KAAK,QAEP,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,WAAa,GAClB,MACF,IAAK,SAKC,KAAK,QAAU,GAAK,KAAK,WAAW,SAAW,IACjD,KAAK,QAEP,KAAK,MAAQ,EACb,KAAK,WAAa,GAClB,MACF,IAAK,QAKC,KAAK,WAAW,SAAW,GAC7B,KAAK,QAEP,KAAK,WAAa,GAClB,MAGF,IAAK,MAAO,CACV,MAAMzzD,EAAO,OAAOyzD,CAAc,EAAI,EAAI,EAE1C,GAAI,KAAK,WAAW,SAAW,EAC7B,KAAK,WAAa,CAACzzD,CAAI,MAClB,CACL,IAAIxtB,EAAI,KAAK,WAAW,OACxB,KAAO,EAAEA,GAAK,GACR,OAAO,KAAK,WAAWA,CAAC,GAAM,WAChC,KAAK,WAAWA,CAAC,IACjBA,EAAI,IAGR,GAAIA,IAAM,GAAI,CAEZ,GAAImxD,IAAe,KAAK,WAAW,KAAK,GAAG,GAAK8vB,IAAmB,GACjE,MAAM,IAAI,MAAM,uDAAuD,EAEzE,KAAK,WAAW,KAAKzzD,CAAI,CACrC,CACA,CACQ,GAAI2jC,EAAY,CAGd,IAAI+vB,EAAa,CAAC/vB,EAAY3jC,CAAI,EAC9ByzD,IAAmB,KACrBC,EAAa,CAAC/vB,CAAU,GAEtBmvB,EAAmB,KAAK,WAAW,CAAC,EAAGnvB,CAAU,IAAM,EACrD,MAAM,KAAK,WAAW,CAAC,CAAC,IAC1B,KAAK,WAAa+vB,GAGpB,KAAK,WAAaA,CAE9B,CACQ,KACR,CACM,QACE,MAAM,IAAI,MAAM,+BAA+BF,CAAO,EAAE,CAChE,CACI,YAAK,IAAM,KAAK,OAAM,EAClB,KAAK,MAAM,SACb,KAAK,KAAO,IAAI,KAAK,MAAM,KAAK,GAAG,CAAC,IAE/B,IACX,CACA,CAEA,OAAAG,GAAiBL,kDC1UjB,MAAMA,EAASzB,GAAA,EAEf,OAAA+B,GADc,CAACp9E,EAAGq9E,IAAU,IAAIP,EAAO98E,EAAGq9E,CAAK,EAAE,kFCDjD,MAAMP,EAASzB,GAAA,EAef,OAAAiC,GAdc,CAAC9xD,EAAS7b,EAAS4tE,EAAc,KAAU,CACvD,GAAI/xD,aAAmBsxD,EACrB,OAAOtxD,EAET,GAAI,CACF,OAAO,IAAIsxD,EAAOtxD,EAAS7b,CAAO,CACtC,OAAW6tE,EAAI,CACX,GAAI,CAACD,EACH,OAAO,KAET,MAAMC,CACV,CACA,kDCbA,MAAMC,EAAQpC,GAAA,EAKd,OAAAqC,GAJc,CAAClyD,EAAS7b,IAAY,CAClC,MAAMhO,EAAI87E,EAAMjyD,EAAS7b,CAAO,EAChC,OAAOhO,EAAIA,EAAE,QAAU,IACzB,iCCAA,MAAMg8E,EAAS,CACb,IACA,YAAYC,EAAM,CACZ,OAAOA,EAAK,YAAe,YAAc,CAACC,GAAMD,EAAK,WAAU,CAAE,EACnE,QAAQ,KAAK,0DAA0D,EAC9DxtB,GAAMwtB,EAAK,WAAU,CAAE,IAAMxtB,GAAM,KAAK,WAAU,CAAE,GAC7D,QAAQ,KACN,oCAAsCwtB,EAAK,WAAU,EAAK,SAAW,KAAK,WAAU,CAC5F,EAEI,KAAK,IAAMA,CACb,CACA,YAAa,CACX,MAAO,OACT,CACA,UAAUr+E,EAAMgqB,EAAS,CACvB,KAAK,IAAI,UAAUhqB,EAAMgqB,CAAO,CAClC,CACA,YAAYhqB,EAAMgqB,EAAS,CACzB,KAAK,IAAI,YAAYhqB,EAAMgqB,CAAO,CACpC,CACA,KAAKhqB,KAASqtB,EAAO,CACnB,KAAK,IAAI,KAAKrtB,EAAM,GAAGqtB,CAAK,CAC9B,CACF,CAKA,MAAMkxD,EAAU,CACd,SAA2B,IAAI,IAC/B,YAAa,CACX,MAAO,OACT,CACA,UAAUv+E,EAAMgqB,EAAS,CACvB,KAAK,SAAS,IACZhqB,GACC,KAAK,SAAS,IAAIA,CAAI,GAAK,IAAI,OAC9BgqB,CACR,CACA,CACE,CACA,YAAYhqB,EAAMgqB,EAAS,CACzB,KAAK,SAAS,IACZhqB,GACC,KAAK,SAAS,IAAIA,CAAI,GAAK,IAAI,OAAQ+pB,GAAMA,IAAMC,CAAO,CACjE,CACE,CACA,KAAKhqB,KAASqtB,EAAO,EACF,KAAK,SAAS,IAAIrtB,CAAI,GAAK,IACnC,QAAS+pB,GAAM,CACtB,GAAI,CAEFA,EAAEsD,EAAM,CAAC,CAAC,CACZ,OAAS5oB,EAAG,CACV,QAAQ,MAAM,kCAAmCA,CAAC,CACpD,CACF,CAAC,CACH,CACF,CAKA,IAAI+5E,GAAM,KACV,SAASC,IAAS,CAChB,OAAID,KAAQ,KACHA,GAEL,OAAO,OAAW,IACb,IAAI,MAAM,GAAI,CACnB,IAAK,IACI,IAAM,QAAQ,MACnB,wDACV,CAEA,CAAK,GAEC,OAAO,IAAI,WAAa,OAAO,OAAO,cAAkB,MAC1D,QAAQ,KACN,oEACN,EACI,OAAO,cAAgB,OAAO,GAAG,WAE/B,OAAO,QAAQ,cAAkB,IACnCA,GAAM,IAAIJ,GAAS,OAAO,aAAa,EAEvCI,GAAM,OAAO,cAAgB,IAAID,GAE5BC,GACT,CACA,SAASE,GAAU1+E,EAAMgqB,EAAS,CAChCy0D,KAAS,UAAUz+E,EAAMgqB,CAAO,CAClC,CACA,SAAS20D,GAAY3+E,EAAMgqB,EAAS,CAClCy0D,KAAS,YAAYz+E,EAAMgqB,CAAO,CACpC,CACA,SAASoD,GAAKptB,KAASqtB,EAAO,CAC5BoxD,KAAS,KAAKz+E,EAAM,GAAGqtB,CAAK,CAC9B,CCrGe,MAAMuxD,EAAc,CAC/B,OAAO,sBAAwB,gBAC/B,OAAO,wBAA0B,gBACjC,MACA,QACA,YAAYttE,EAAOutE,EAASC,EAAY,CACpC,KAAK,MAAQ,GAAGA,EAAaF,GAAc,wBAA0BA,GAAc,qBAAqB,IAAI,KAAKttE,CAAK,CAAC,IACvH,KAAK,QAAUutE,CACnB,CACA,SAAShjF,EAAK,CACV,MAAO,GAAG,KAAK,KAAK,GAAGA,CAAG,EAC9B,CACA,QAAQA,EAAK0B,EAAO,CAChB,KAAK,QAAQ,QAAQ,KAAK,SAAS1B,CAAG,EAAG0B,CAAK,CAClD,CACA,QAAQ1B,EAAK,CACT,OAAO,KAAK,QAAQ,QAAQ,KAAK,SAASA,CAAG,CAAC,CAClD,CACA,WAAWA,EAAK,CACZ,KAAK,QAAQ,WAAW,KAAK,SAASA,CAAG,CAAC,CAC9C,CACA,OAAQ,CACJ,OAAO,KAAK,KAAK,OAAO,EACnB,OAAQA,GAAQA,EAAI,WAAW,KAAK,KAAK,CAAC,EAC1C,IAAI,KAAK,QAAQ,WAAW,KAAK,KAAK,OAAO,CAAC,CACvD,CACJ,CCzBe,MAAMkjF,EAAe,CAChC,MACA,UAAY,GACZ,gBAAkB,GAClB,YAAYryB,EAAO,CACf,KAAK,MAAQA,CACjB,CACA,QAAQsyB,EAAU,GAAM,CACpB,YAAK,UAAYA,EACV,IACX,CACA,cAAcC,EAAQ,GAAM,CACxB,YAAK,gBAAkBA,EAChB,IACX,CACA,OAAQ,CACJ,OAAO,IAAIL,GAAc,KAAK,MAAO,KAAK,UAAY,OAAO,aAAe,OAAO,eAAgB,CAAC,KAAK,eAAe,CAC5H,CACJ,CCZO,SAASM,GAAWxyB,EAAO,CAC9B,OAAO,IAAIqyB,GAAeryB,CAAK,CACnC,CCVAyyB,GAAwB,EACxB,SAASC,IAAkB,CACzB,OAAI,WAAW,sBACN,WAAW,sBAEhB,WAAW,SACN,SAAS,KAAK,QAAQ,cAAgB,KAExC,IACT,CACA,SAASC,GAAgB9C,EAAO,CAC9B,GAAI,CAACA,GAAS,OAAOA,GAAU,SAC7B,MAAM,IAAI,MAAM,2BAA4B,CAAE,MAAO,CAAE,MAAAA,CAAK,EAAI,EAE9D,WAAW,wBAA0BA,IAGzC,WAAW,sBAAwBA,EAC/B,WAAW,WACb,SAAS,KAAK,QAAQ,aAAeA,GAEvCnvD,GAAK,oBAAqB,CAAE,MAAAmvD,EAAO,UAAW,EAAI,CAAE,EACtD,CACA,eAAe+C,IAAoB,CACjC,MAAMppC,EAAMO,GAAY,YAAY,EAC9B8oC,EAAW,MAAM,MAAMrpC,CAAG,EAChC,GAAI,CAACqpC,EAAS,GACZ,MAAM,IAAI,MAAM,sCAAuC,CAAE,MAAOA,CAAQ,CAAE,EAE5E,GAAI,CACF,KAAM,CAAE,MAAAhD,CAAK,EAAK,MAAMgD,EAAS,KAAI,EACrC,OAAAF,GAAgB9C,CAAK,EACdA,CACT,OAAS53E,EAAO,CACd,MAAM,IAAI,MAAM,+CAAgD,CAAE,MAAOA,CAAK,CAAE,CAClF,CACF,CACA,SAAS66E,GAAqBvnB,EAAU,CACtC,MAAMp5B,EAAU,MAAO,CAAE,MAAA09C,KAAY,CACnC,GAAI,CACFtkB,EAASskB,CAAK,CAChB,OAAS53E,EAAO,CACd,QAAQ,MAAM,qCAAsCA,CAAK,CAC3D,CACF,EACA,OAAA+5E,GAAU,oBAAqB7/C,CAAO,EAC/B,IAAM8/C,GAAY,oBAAqB9/C,CAAO,CACvD,CACA,SAASsgD,IAA2B,CAClCT,GAAU,oBAAqB,CAAC,CAAE,MAAAnC,EAAO,UAAAkD,CAAS,IAAO,CAClDA,GACHJ,GAAgB9C,CAAK,CAEzB,CAAC,CACH,CAauB2C,GAAW,QAAQ,EAAE,QAAO,EAAG,MAAK,EAoD3D,IAAIQ,GACJ,SAASC,GAAanjF,EAAI6oD,EAAW,CACnC,OAAI7oD,EACKA,EAAG,aAAa6oD,CAAS,EAE3B,IACT,CACA,SAASu6B,IAAiB,CACxB,GAAIF,KAAgB,OAClB,OAAOA,GAET,MAAM76E,EAAO,UAAU,qBAAqB,MAAM,EAAE,CAAC,EACrD,GAAI,CAACA,EACH,OAAO,KAET,MAAM63B,EAAMijD,GAAa96E,EAAM,WAAW,EAC1C,OAAI63B,IAAQ,MACVgjD,GAAc,KACPA,KAETA,GAAc,CACZ,IAAAhjD,EACA,YAAaijD,GAAa96E,EAAM,uBAAuB,EACvD,QAAS,CAAC,CAAC,OAAO,WACtB,EACS66E,GACT,CCnJA,IAAIG,IAA6BC,IAC/BA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QAC7BA,IACND,IAAY,EAAE,EACjB,MAAME,EAAc,CAClB,QACA,YAAYn0D,EAAS,CACnB,KAAK,QAAUA,GAAW,EAC5B,CACA,cAAco0D,EAASC,EAAOr0D,EAAS,CACrC,IAAImlB,EAAM,IAAM8uC,GAASI,CAAK,EAAE,YAAW,EAAK,KAIhD,OAHIr0D,GAAWA,EAAQ,MACrBmlB,GAAOnlB,EAAQ,IAAM,MAEnB,OAAOo0D,GAAY,SAAiBjvC,EAAMivC,GAC9CjvC,GAAO,cAAcivC,EAAQ,IAAI,GAC7BA,EAAQ,UAASjvC,GAAO,KAAKivC,EAAQ,OAAO,KAC5CC,IAAUJ,GAAS,OAASG,EAAQ,QAAOjvC,GAAO;;AAAA;AAAA,EAGxDivC,EAAQ,KAAK,IACJjvC,EACT,CACA,IAAIkvC,EAAOD,EAASp0D,EAAS,CAC3B,GAAI,SAAO,KAAK,SAAS,OAAU,UAAYq0D,EAAQ,KAAK,SAAS,OAMrE,OAHI,OAAOD,GAAY,UAAYp0D,GAAS,QAAU,SACpDA,EAAQ,MAAQo0D,GAEVC,EAAK,CACX,KAAKJ,GAAS,MACZ,QAAQ,MAAM,KAAK,cAAcG,EAASH,GAAS,MAAOj0D,CAAO,EAAGA,CAAO,EAC3E,MACF,KAAKi0D,GAAS,KACZ,QAAQ,KAAK,KAAK,cAAcG,EAASH,GAAS,KAAMj0D,CAAO,EAAGA,CAAO,EACzE,MACF,KAAKi0D,GAAS,KACZ,QAAQ,KAAK,KAAK,cAAcG,EAASH,GAAS,KAAMj0D,CAAO,EAAGA,CAAO,EACzE,MACF,KAAKi0D,GAAS,MACZ,QAAQ,MAAM,KAAK,cAAcG,EAASH,GAAS,MAAOj0D,CAAO,EAAGA,CAAO,EAC3E,MACF,KAAKi0D,GAAS,MACd,QACE,QAAQ,MAAM,KAAK,cAAcG,EAASH,GAAS,MAAOj0D,CAAO,EAAGA,CAAO,EAC3E,KACR,CACE,CACA,MAAMo0D,EAASp0D,EAAS,CACtB,KAAK,IAAIi0D,GAAS,MAAOG,EAAS,OAAO,OAAO,GAAI,KAAK,QAASp0D,CAAO,CAAC,CAC5E,CACA,KAAKo0D,EAASp0D,EAAS,CACrB,KAAK,IAAIi0D,GAAS,KAAMG,EAAS,OAAO,OAAO,GAAI,KAAK,QAASp0D,CAAO,CAAC,CAC3E,CACA,KAAKo0D,EAASp0D,EAAS,CACrB,KAAK,IAAIi0D,GAAS,KAAMG,EAAS,OAAO,OAAO,GAAI,KAAK,QAASp0D,CAAO,CAAC,CAC3E,CACA,MAAMo0D,EAASp0D,EAAS,CACtB,KAAK,IAAIi0D,GAAS,MAAOG,EAAS,OAAO,OAAO,GAAI,KAAK,QAASp0D,CAAO,CAAC,CAC5E,CACA,MAAMo0D,EAASp0D,EAAS,CACtB,KAAK,IAAIi0D,GAAS,MAAOG,EAAS,OAAO,OAAO,GAAI,KAAK,QAASp0D,CAAO,CAAC,CAC5E,CACF,CACA,SAASs0D,GAAmBt0D,EAAS,CACnC,OAAO,IAAIm0D,GAAcn0D,CAAO,CAClC,CACA,MAAMu0D,EAAc,CAClB,QACA,QACA,YAAY5xE,EAAS,CACnB,KAAK,QAAU,GACf,KAAK,QAAUA,CACjB,CAMA,OAAOm+C,EAAO,CACZ,YAAK,QAAQ,IAAMA,EACZ,IACT,CAMA,YAAYuzB,EAAO,CACjB,YAAK,QAAQ,MAAQA,EACd,IACT,CAQA,OAAOvjD,EAAK,CACV,YAAK,QAAQ,IAAMA,EACZ,IACT,CAIA,YAAa,CACX,MAAM0jD,EAAOR,GAAc,EAC3B,OAAIQ,IAAS,OACX,KAAK,QAAQ,IAAMA,EAAK,KAEnB,IACT,CAIA,gBAAiB,CACf,MAAMx3E,EAAO,KACPy3E,EAAW,IAAM,CACjB,SAAS,aAAe,YAAc,SAAS,aAAe,eAChEz3E,EAAK,QAAQ,MAAQ,OAAO,YAAY,UAAYi3E,GAAS,KACzD,OAAO,YACTj3E,EAAK,QAAQ,MAAQi3E,GAAS,OAEhC,SAAS,oBAAoB,mBAAoBQ,CAAQ,GAEzD,SAAS,iBAAiB,mBAAoBA,CAAQ,CAE1D,EACA,OAAAA,EAAQ,EACD,IACT,CAEA,OAAQ,CACN,OAAI,KAAK,QAAQ,QAAU,QACzB,KAAK,eAAc,EAEd,KAAK,QAAQ,KAAK,OAAO,CAClC,CACF,CACA,SAASC,IAAmB,CAC1B,OAAO,IAAIH,GAAcD,EAAkB,CAC7C,CCnJA,MAAMK,GAASD,GAAgB,EAAG,WAAU,EAAG,OAAO,gBAAgB,EAAE,MAAK,ECAvEE,GAAQl0B,GAAK,ECObm0B,GAAc7/D,GAAgB,CAClC,KAAM,2BACN,SAAU,CACR,MAAO,CACL,0BAA2B,IAAM,KAAK,MACtC,0BAA2B,IAAM,KAAK,YAC5C,CACE,EACA,MAAO,CAIL,MAAO,CACL,KAAM,QACN,SAAU,EAChB,EAII,UAAW,CACT,KAAM,OACN,QAAS,MACf,CACA,EACE,SAAU,CACR,cAAe,CACb,MAAO,CACL,gBAAiB,KAAK,UACtB,gBAAiB,KAAK,MAAM,SAAQ,CAC5C,CACI,CACJ,EACE,QAAS,CACP,OAAO,KAAK,OAAO,UAAU,CAC3B,MAAO,KAAK,YAClB,CAAK,CACH,CACF,CAAC,EACK8/D,GAAY,mBACZC,GAAS,CACb,uBAAwB,8BACxB,UAAAD,EACF,EACME,GAAQ,eACdxwE,GAAQ,OAAOwwE,EAAK,EAAI,gBAAgBxwE,GAAQ,OAAO,QAAQ,EAC/D,MAAMmhD,GAAY,CAChB,KAAM,YACN,WAAY,CACd,SAAIsvB,GACA,yBAA0BJ,EAC9B,EACE,MAAO,CAKL,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,EACf,EAMI,oBAAqB,CACnB,KAAM,QAEN,QAAS,EACf,EAII,sBAAuB,CACrB,KAAM,QACN,QAAS,EACf,EAKI,UAAW,CACT,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,MACf,EAMI,MAAO,CACL,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,CACf,EAII,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAWI,UAAW,CACT,KAAM,OACN,QAAS,QACf,EAII,iBAAkB,CAChB,KAAM,OACN,QAAS,EACf,EAOI,gBAAiB,CACf,KAAM,CAAC,MAAO,MAAM,EACpB,QAAS,IACf,EAMI,UAAW,CACT,KAAM,OACN,QAAS,OACT,UAAYljF,GAAU,CAAC,OAAQ,UAAW,OAAQ,OAAQ,SAAU,MAAM,EAAE,SAASA,CAAK,CAChG,EAMI,eAAgB,CACd,QAAS,OACT,KAAM,CAAC,QAAS,YAAa,WAAY,OAAQ,QAAQ,CAC/D,EAII,MAAO,CACL,KAAM,QACN,QAAS,EACf,EAcI,SAAU,CACR,KAAM,CAAC,MAAO,MAAM,EACpB,QAAS,IAAM,CAAC,OAAO,CAC7B,CACA,EACE,MAAO,CACL,YACA,YACA,cACJ,EACE,OAAQ,CACN,MAAO,CACL,MAAAqjF,EACN,CACE,EACA,MAAO,CACL,MAAO,CACL,cAAe,KAAK,KAC1B,CACE,EACA,SAAU,CACR,gBAAiB,CACf,GAAI,KAAK,iBAAmB,MAAM,QAAQ,KAAK,eAAe,EAC5D,OAAO,KAAK,eAGhB,EACA,oBAAqB,CACnB,GAAI,KAAK,iBAAmB,OAAO,KAAK,iBAAoB,SAC1D,OAAO,KAAK,gBAAgB,IAGhC,EACA,oBAAqB,CACnB,GAAI,KAAK,iBAAmB,OAAO,KAAK,iBAAoB,SAC1D,OAAO,KAAK,gBAAgB,IAGhC,EACA,kBAAmB,CACjB,GAAI,KAAK,UAAY,MAAM,QAAQ,KAAK,QAAQ,EAC9C,OAAO,KAAK,QAGhB,EACA,cAAe,CACb,GAAI,KAAK,UAAY,OAAO,KAAK,UAAa,SAC5C,OAAO,KAAK,SAAS,IAGzB,EACA,cAAe,CACb,GAAI,KAAK,UAAY,OAAO,KAAK,UAAa,SAC5C,OAAO,KAAK,SAAS,IAGzB,EACA,mBAAoB,CAClB,OAAI,KAAK,YAAc,QACdJ,GAAQ,QAAU,OAChB,KAAK,YAAc,MACrBA,GAAQ,OAAS,QAEnB,KAAK,SACd,CACJ,EACE,MAAO,CACL,MAAMjjF,EAAO,CACX,KAAK,cAAgBA,CACvB,EACA,cAAcA,EAAO,CACnB,KAAK,MAAM,eAAgBA,CAAK,CAClC,CACJ,EACE,SAAU,CACR,KAAK,iBAAgB,CACvB,EACA,eAAgB,CACd,KAAK,eAAc,EACnB,KAAK,2BAA0B,CACjC,EACA,QAAS,CAKP,kBAAmB,CACb,OAAO,IAAI,OACY,KAAK,kCAAiC,EAChB,cAAc,iBAAiB,CAKlF,EAMA,kCAAmC,CAEjC,MAAMujF,EADmB,KAAK,kCAAiC,EACtB,iBAAiB,qBAAqB,EAC/E,UAAWtkF,KAAMskF,EACftkF,EAAG,gBAAgB,kBAAkB,CAEzC,EAIA,0BAA2B,CACzB,OAAO,KAAK,MAAM,SAAS,MAAM,eAAe,GAClD,EAIA,mCAAoC,CAClC,OAAO,KAAK,MAAM,SAAS,MAAM,QAAQ,MAAM,SACjD,EAIA,MAAM,cAAe,CAEnB,GADA,MAAM,KAAK,UAAS,EAChB,KAAK,YACP,OAEF,MAAMA,EAAK,KAAK,yBAAwB,EACxCA,EAAG,SAAW,GACTA,IAGL,KAAK,WAAa2nE,GAAgB3nE,EAAI,CAGpC,kBAAmB,GACnB,kBAAmB,GACnB,eAAgB,KAAK,eACrB,UAAWwuE,GAAY,EACvB,cAAexuE,CACvB,CAAO,EACD,KAAK,WAAW,SAAQ,EAC1B,EAMA,eAAeukF,EAAW,GAAI,CAC5B,GAAI,CACF,KAAK,YAAY,WAAWA,CAAQ,EACpC,KAAK,WAAa,IACpB,OAASp8E,EAAO,CACd47E,GAAO,KAAK,yCAA0C,CAAE,MAAA57E,CAAK,CAAE,CACjE,CACF,EAQA,0BAA2B,CACd,KAAK,yBAAwB,GACpC,iBAAiB,UAAW,KAAK,wBAAwB,CAC/D,EAIA,4BAA6B,CAChB,KAAK,yBAAwB,GACpC,oBAAoB,UAAW,KAAK,wBAAwB,CAClE,EAIA,yBAAyB0oB,EAAO,CAC1BA,EAAM,OAAS,WAAaA,EAAM,MAAQ,UAC5CA,EAAM,gBAAe,CAEzB,EACA,MAAM,WAAY,CAChB,KAAK,yBAAwB,EAAG,iBAAiB,gBAAiB,IAAM,CACtE,KAAK,MAAM,WAAW,CACxB,EAAG,CAAE,KAAM,GAAM,QAAS,EAAI,CAAE,EAChC,KAAK,iCAAgC,EACrC,MAAM,KAAK,UAAS,EACpB,MAAM,KAAK,aAAY,EACvB,KAAK,yBAAwB,CAC/B,EACA,WAAY,CACV,KAAK,yBAAwB,GAAI,iBAAiB,gBAAiB,IAAM,CACvE,KAAK,MAAM,WAAW,CACxB,EAAG,CAAE,KAAM,GAAM,QAAS,EAAI,CAAE,EAChC,KAAK,eAAc,EACnB,KAAK,2BAA0B,CACjC,CACJ,CACA,EACA,SAAS2zD,GAAY5uB,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CAClE,MAAMC,EAAsCz9D,GAAiB,0BAA0B,EACjF09D,EAAsB19D,GAAiB,UAAU,EACvD,OAAO8B,EAAS,EAAIC,GAAY27D,EAAqB,CACnD,IAAK,UACL,MAAOH,EAAM,cACb,iBAAkB,CAChB7uB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAW6sB,EAAM,cAAgB7sB,GAC5DhC,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAW6sB,EAAM,cAAgB7sB,EAClE,EACI,SAAU,CAACD,EAAO,uBAAyBA,EAAO,oBAClD,SAAUA,EAAO,UAAY,OAC7B,UAAWA,EAAO,UAClB,MAAOA,EAAO,MACd,SAAU,EACV,aAAc,GACd,YAAa,GACb,UAAW+sB,EAAS,kBACpB,YAAa,CAAC/uB,EAAK,OAAO,UAAWgC,EAAO,gBAAgB,EAC5D,eAAgB+sB,EAAS,eACzB,mBAAoBA,EAAS,mBAC7B,mBAAoBA,EAAS,mBAC7B,MAAOF,EAAO,MACd,SAAUE,EAAS,iBACnB,aAAcA,EAAS,aACvB,aAAcA,EAAS,aACvB,YAAaA,EAAS,UACtB,YAAaA,EAAS,SAC1B,EAAK,CACD,OAAQtsE,GAAS0Q,GAAc,CAC7BJ,GAAWitC,EAAK,OAAQ,UAAWnyD,GAAe27B,GAAmBrW,CAAS,CAAC,CAAC,CACtF,CAAK,EACD,QAAS1Q,GAAQ,IAAM,CACrB8Q,GAAYy7D,EAAqC,CAC/C,MAAOF,EAAM,cACb,UAAW9sB,EAAO,SAC1B,EAAS,CACD,QAASv/C,GAAS0Q,GAAc,CAC9BJ,GAAWitC,EAAK,OAAQ,UAAWnyD,GAAe27B,GAAmBrW,CAAS,CAAC,CAAC,CAC1F,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,QAAS,WAAW,CAAC,CAClC,CAAK,EACD,EAAG,CACP,EAAK,EAAG,CAAC,QAAS,WAAY,WAAY,YAAa,QAAS,YAAa,cAAe,iBAAkB,qBAAsB,qBAAsB,QAAS,WAAY,eAAgB,eAAgB,cAAe,aAAa,CAAC,CAC5O,CACA,MAAM0B,GAAa,CACjB,OAAU05D,EACZ,EACMW,GAA4BpwB,GAAYK,GAAW,CAAC,CAAC,SAAUyvB,EAAW,EAAG,CAAC,eAAgB/5D,EAAU,CAAC,CAAC,EC5a1Gs6D,GAA8C,OAAO,IAAI,0BAA0B,EACnFC,GAAwC,OAAO,IAAI,qBAAqB,ECQxEf,GAAc,CAClB,KAAM,qBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMrvB,GAAa,CAAC,cAAe,YAAY,EACzCC,GAAa,CAAC,OAAQ,QAAS,QAAQ,EACvCC,GAAa,CAAE,EAAG,gNAAgN,EAClOmB,GAAa,CAAE,IAAK,CAAC,EAC3B,SAASuuB,GAAY5uB,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CAClE,OAAO17D,EAAS,EAAIuV,EAAmB,OAAQiB,GAAWm2B,EAAK,OAAQ,CACrE,cAAegC,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,4CACP,KAAM,MACN,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWjC,EAAK,MAAM,QAASiC,CAAM,EAC7E,CAAG,EAAG,EACD5uC,EAAS,EAAIuV,EAAmB,MAAO,CACtC,KAAMo5B,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACD9B,EAAmB,OAAQhB,GAAY,CACrC8C,EAAO,OAAS3uC,EAAS,EAAIuV,EAAmB,QAASy3B,GAAY3wD,GAAgBsyD,EAAO,KAAK,EAAG,CAAC,GAAK12C,GAAmB,GAAI,EAAI,CAC7I,CAAO,CACP,EAAO,EAAG2zC,EAAU,EACpB,EAAK,GAAID,EAAU,CACnB,CACA,MAAMqwB,GAAqCvwB,GAAYuvB,GAAa,CAAC,CAAC,SAAUO,EAAW,CAAC,CAAC,EAC7Ft3D,GAASyyC,EAAE,EACX,SAASulB,GAAgB17D,EAAQ,CAC/B,OAAO,MAAM,QAAQA,CAAM,GAAKA,EAAO,KAAM/J,GAAS,CACpD,GAAIA,IAAS,KACX,MAAO,GACF,GAAI,OAAOA,GAAS,SAAU,CACnC,MAAM1G,EAAQ0G,EAKP,GAJH1G,EAAM,OAAS4I,IAER5I,EAAM,OAASoL,IAAY,CAAC+gE,GAAgBnsE,EAAM,QAAQ,GAE1DA,EAAM,OAASqe,IAAQ,CAACre,EAAM,SAAS,OAChD,MAAO,EAEX,CACA,MAAO,EACT,CAAC,CACH,CACA,MAAMosE,GAAoB,aACpBpwB,GAAY,CAChB,KAAM,YACN,WAAY,CACV,SAAAgB,GACA,UAAA+uB,EACJ,EACE,SAAU,CACR,MAAO,CAWL,CAACC,EAA2B,EAAGr8E,GAAS,IAAM,KAAK,0BAA4B,MAAM,EACrF,CAACs8E,EAAqB,EAAG,KAAK,SACpC,CACE,EACA,MAAO,CAIL,KAAM,CACJ,KAAM,QACN,QAAS,EACf,EAOI,WAAY,CACV,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,OACN,QAAS,IACf,EAII,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAMI,YAAa,CACX,KAAM,OACN,QAAS,EACf,EAQI,UAAW,CACT,KAAM,OACN,QAASpiD,GAAE,SAAS,CAC1B,EAII,UAAW,CACT,KAAM,OACN,QAAS,QACf,EAII,kBAAmB,CACjB,KAAM,QACN,QAAS,IAAM,SAAS,eAAe,aAAa,GAAK,SAAS,cAAc,MAAM,CAC5F,EAII,UAAW,CACT,KAAM,CAAC,QAAS,OAAQ,OAAQ,OAAO,EACvC,QAAS,MACf,EAII,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAKI,OAAQ,CACN,KAAM,OACN,QAAS,CACf,EAQI,QAAS,CACP,KAAM,OACN,UAAU7hC,EAAO,CACf,MAAO,CAAC,UAAW,YAAa,WAAY,yBAA0B,sBAAuB,QAAS,UAAW,SAAS,EAAE,SAASA,CAAK,CAC5I,EACA,QAAS,IACf,EAII,KAAM,CACJ,KAAM,QACN,QAAS,EACf,EAMI,KAAM,CACJ,KAAM,OACN,QAAS,SACT,UAAUA,EAAO,CACf,MAAO,CAAC,QAAS,SAAU,OAAO,EAAE,SAASA,CAAK,CACpD,CACN,CACA,EACE,MAAO,CACL,QACA,OACA,QACA,QACA,SACA,OACA,SACA,aACJ,EACE,OAAQ,CAEN,MAAO,CACL,SAFei1D,GAAe,CAGpC,CACE,EACA,MAAO,CACL,MAAO,CACL,OAAQ,KAAK,KACb,WAAY,EAIZ,wBAAyB,SAC/B,CACE,EACA,SAAU,CACR,sBAAuB,CACrB,OAAO,KAAK,UAAY,KAAK,QAAU,UAAY,KAAK,SAAW,YAAc,WACnF,EAIA,QAAS,CAoCP,MAnCgB,CACd,KAAM,CACJ,UAAW,OACX,oBAAqB,GACrB,kBAAmB,GACnB,cAAe,EACzB,EACQ,WAAY,CACV,UAAW,OACX,oBAAqB,GACrB,kBAAmB,GACnB,cAAe,EACzB,EACQ,OAAQ,CACN,UAAW,SACX,oBAAqB,GACrB,kBAAmB,GACnB,cAAe,EACzB,EACQ,QAAS,CACP,UAAW,OACX,oBAAqB,GACrB,kBAAmB,GACnB,cAAe,EACzB,EAGQ,QAAS,CACP,UAAW,OACX,KAAM,OACN,oBAAqB,GACrB,kBAAmB,GACnB,cAAe,EACzB,CACA,EACqB,KAAK,uBAAuB,CAC7C,EACA,eAAgB,CACd,OAAO,KAAK,OAAO,aACrB,CACJ,EACE,MAAO,CAEL,KAAKz1C,EAAO,CACNA,IAAU,KAAK,SAGnB,KAAK,OAASA,EAChB,EACA,QAAS,CACH,KAAK,OACP,SAAS,KAAK,iBAAiB,UAAW,KAAK,mBAAmB,EAElE,SAAS,KAAK,oBAAoB,UAAW,KAAK,mBAAmB,CAEzE,CACJ,EACE,SAAU,CACRouD,GAAoB,IAAM,KAAK,OAAQ,CACrC,SAAU,IAAM,KAAK,OAAO,aAClC,CAAK,EACG,eAAgB,KAAK,MAG3B,EACA,QAAS,CAOP,cAAcl2B,EAAQ,CACpB,OAAOA,GAAQ,MAAM,IACvB,EAQA,oBAAoBA,EAAQ,CAC1B,MAAO,CAAC,iBAAkB,eAAgB,gBAAgB,EAAE,SAAS,KAAK,cAAcA,CAAM,CAAC,CACjG,EACA,SAASA,EAAQ,CACf,OAAO,KAAK,cAAcA,CAAM,GAAG,aAAa,UAAU,CAC5D,EAMA,UAAUiB,EAAK,CACb,GAAI,CACF,MAAO,CAAC,CAAC,IAAI,IAAIA,EAAKA,EAAI,WAAW,GAAG,EAAI,OAAO,SAAS,OAAS,MAAM,CAC7E,MAAQ,CACN,MAAO,EACT,CACF,EAEA,WAAWn5B,EAAO,CACZA,EACF,KAAK,SAAQ,EAEb,KAAK,UAAS,CAElB,EACA,UAAW,CACL,KAAK,SAGT,KAAK,OAAS,GACd,KAAK,MAAM,cAAe,EAAI,EAC9B,KAAK,MAAM,MAAM,EACnB,EACA,MAAM,UAAUktD,EAAc,GAAM,CAC7B,KAAK,SAGV,MAAM,KAAK,UAAS,EACpB,KAAK,OAAS,GACd,KAAK,MAAM,SAAS,eAAe,CAAE,YAAAA,CAAW,CAAE,EAClD,KAAK,MAAM,cAAe,EAAK,EAC/B,KAAK,MAAM,OAAO,EAClB,KAAK,WAAa,EACdA,GACF,KAAK,MAAM,eAAe,IAAI,MAAK,EAEvC,EAIA,UAAW,CACT,KAAK,UAAU,IAAM,CACnB,KAAK,iBAAiB,IAAI,EAC1B,KAAK,MAAM,QAAQ,CACrB,CAAC,CACH,EACA,UAAW,CACT,KAAK,MAAM,QAAQ,CACrB,EAKA,iCAAkC,CAChC,OAAO,KAAK,MAAM,KAAK,cAAc,WAAW,CAClD,EAIA,8BAA+B,CAC7B,OAAO,KAAK,MAAM,KAAK,iBAAiB0X,EAAiB,CAC3D,EAMA,UAAUt0D,EAAO,CACf,GAAIA,EAAM,MAAQ,MAAO,CACvB,GAAI,KAAK,OAAO,cACd,OAEF,GAAI,CAAC,KAAK,OAAO,kBAAmB,CAClC,KAAK,UAAU,EAAI,EACnB,MACF,CACAA,EAAM,eAAc,EACpB,MAAMu0D,EAAY,KAAK,6BAA4B,EAC7CC,EAAa,CAAC,GAAGD,CAAS,EAAE,QAAQ,SAAS,aAAa,EAChE,GAAIC,IAAe,GACjB,OAEF,MAAMC,EAAgBz0D,EAAM,SAAWw0D,EAAa,EAAIA,EAAa,GACjEC,EAAgB,GAAKA,IAAkBF,EAAU,SACnD,KAAK,UAAU,EAAI,EAErB,KAAK,WAAaE,EAClB,KAAK,YAAW,EAChB,MACF,CACI,KAAK,OAAO,sBACVz0D,EAAM,MAAQ,WAChB,KAAK,oBAAoBA,CAAK,EAE5BA,EAAM,MAAQ,aAChB,KAAK,gBAAgBA,CAAK,EAExBA,EAAM,MAAQ,UAChB,KAAK,iBAAiBA,CAAK,EAEzBA,EAAM,MAAQ,YAChB,KAAK,gBAAgBA,CAAK,GAG9B,KAAK,oBAAoBA,CAAK,CAChC,EACA,iBAAiBA,EAAO,CAClBA,EAAM,MAAQ,UACZ,KAAK,0BAA4B,WACnC,KAAK,UAAS,CAGpB,EACA,oBAAoBA,EAAO,CACrBA,EAAM,MAAQ,WAChB,KAAK,UAAS,EACdA,EAAM,eAAc,EAExB,EACA,qBAAsB,CACpB,MAAM00D,EAAuB,KAAK,MAAM,KAAK,cAAc,WAAW,EAClEA,GACFA,EAAqB,UAAU,OAAO,QAAQ,CAElD,EACA,aAAc,CACZ,MAAMC,EAAe,KAAK,6BAA4B,EAAG,KAAK,UAAU,EACxE,GAAIA,EAAc,CAChB,KAAK,oBAAmB,EACxB,MAAMC,EAAeD,EAAa,QAAQ,WAAW,EACrDA,EAAa,MAAK,EACdC,GACFA,EAAa,UAAU,IAAI,QAAQ,CAEvC,CACF,EACA,oBAAoB50D,EAAO,CACrB,KAAK,SACH,KAAK,aAAe,EACtB,KAAK,gBAAgBA,CAAK,GAE1B,KAAK,eAAeA,CAAK,EACzB,KAAK,WAAa,KAAK,WAAa,GAEtC,KAAK,YAAW,EAEpB,EACA,gBAAgBA,EAAO,CACrB,GAAI,KAAK,OAAQ,CACf,MAAM60D,EAAc,KAAK,6BAA4B,EAAG,OAAS,EAC7D,KAAK,aAAeA,EACtB,KAAK,iBAAiB70D,CAAK,GAE3B,KAAK,eAAeA,CAAK,EACzB,KAAK,WAAa,KAAK,WAAa,GAEtC,KAAK,YAAW,CAClB,CACF,EACA,iBAAiBA,EAAO,CACtB,GAAI,KAAK,OAAQ,CACf,KAAK,eAAeA,CAAK,EACzB,MAAM80D,EAAoB,CAAC,GAAG,KAAK,6BAA4B,CAAE,EAAE,UAAWC,GACrEA,EAAO,aAAa,cAAc,IAAM,QAAUA,EAAO,aAAa,MAAM,IAAM,eAC1F,EACD,KAAK,WAAaD,EAAoB,GAAKA,EAAoB,EAC/D,KAAK,YAAW,CAClB,CACF,EACA,gBAAgB90D,EAAO,CACjB,KAAK,SACP,KAAK,eAAeA,CAAK,EACzB,KAAK,WAAa,KAAK,6BAA4B,EAAG,OAAS,EAC/D,KAAK,YAAW,EAEpB,EACA,eAAeA,EAAO,CAChBA,IACFA,EAAM,eAAc,EACpBA,EAAM,gBAAe,EAEzB,EACA,QAAQA,EAAO,CACb,KAAK,MAAM,QAASA,CAAK,CAC3B,EACA,OAAOA,EAAO,CACZ,KAAK,MAAM,OAAQA,CAAK,EACpB,KAAK,0BAA4B,WAC/B,KAAK,MAAM,MAAQ,KAAK,6BAA4B,EAAG,SAAW,GACpE,KAAK,UAAU,EAAK,CAG1B,EACA,QAAQA,EAAO,CACb,KAAK,MAAM,QAASA,CAAK,CAC3B,CACJ,EAME,QAAS,CACP,MAAMomB,EAAU,GACV4uC,EAAc,CAACr8D,EAAQs8D,IAAa,CACxCt8D,EAAO,QAASzQ,GAAU,CACxB,GAAI,KAAK,SAASA,CAAK,EAAG,CACxB+sE,EAAS,KAAK/sE,CAAK,EACnB,MACF,CACIA,EAAM,OAASoL,IACjB0hE,EAAY9sE,EAAM,SAAU+sE,CAAQ,CAExC,CAAC,CACH,EAEA,GADAD,EAAY,KAAK,OAAO,UAAO,EAAM5uC,CAAO,EACxCA,EAAQ,SAAW,EACrB,OAEF,IAAI8uC,EAAqB9uC,EAAQ,OAAO,KAAK,mBAAmB,EAC5D,KAAK,WAAa8uC,EAAmB,OAAS,GAAK,KAAK,OAAS,IAEnEA,EAAqB,IAEvB,MAAMC,EAAgBD,EAAmB,MAAM,EAAG,KAAK,MAAM,EACvDE,EAAchvC,EAAQ,OAAQwB,GAAW,CAACutC,EAAc,SAASvtC,CAAM,CAAC,EACxEytC,EAAmB,CAAC,iBAAkB,sBAAuB,mBAAoB,eAAe,EAChGC,EAAmB,CAAC,gBAAiB,sBAAsB,EAC3DC,EAAc,CAAC,eAAgB,gBAAgB,EAC/CC,EAAqBJ,EAAY,KAAMxtC,GAAW0tC,EAAiB,SAAS,KAAK,cAAc1tC,CAAM,CAAC,CAAC,EACvG6tC,EAAoBL,EAAY,KAAMxtC,GAAWytC,EAAiB,SAAS,KAAK,cAAcztC,CAAM,CAAC,CAAC,EACtG8tC,EAAgBN,EAAY,KAAMxtC,GAAW2tC,EAAY,SAAS,KAAK,cAAc3tC,CAAM,CAAC,CAAC,EAC/F4tC,EACF,KAAK,wBAA0B,SACtBC,EACT,KAAK,wBAA0B,OACtBC,EACT,KAAK,wBAA0B,aAEbtvC,EAAQ,OAAQwB,GAAW,KAAK,cAAcA,CAAM,EAAE,WAAW,UAAU,CAAC,EAChF,SAAWxB,EAAQ,OAC/B,KAAK,wBAA0B,UAE/B,KAAK,wBAA0B,UAGnC,MAAMuvC,EAAsB/tC,GAAW,CACrC,MAAMguC,EAAWhuC,GAAQ,OAAO,KAC1BiuC,EAAOjuC,GAAQ,UAAU,OAAI,IAAO,CAAC,IAAM,KAAK,UAAUguC,CAAQ,EAAIl5D,GAAE,MAAO,CAAE,MAAO,gCAAiC,IAAKk5D,EAAU,IAAK,EAAE,CAAE,EAAIl5D,GAAE,OAAQ,CAAE,MAAO,CAAC,OAAQk5D,CAAQ,CAAC,CAAE,GAC5L9mD,EAAO8Y,GAAQ,UAAU,UAAO,IAAO,CAAC,GAAG,UAAU,KAAI,EACzDkuC,EAAa,KAAK,UAAYhnD,EAAO,GAC3C,IAAIinD,EAAQnuC,GAAQ,OAAO,MACrB,KAAK,WAAamuC,IACtBA,EAAQjnD,GAEV,MAAMknD,EAAiB,CAAE,GAAGpuC,GAAQ,OAAS,EAAE,EACzCxuC,EAAO,CAAC,SAAU,OAAO,EAAE,SAAS48E,EAAe,IAAI,EAAIA,EAAe,WAAa,SAC7F,cAAOA,EAAe,WACtB,OAAOA,EAAe,KACft5D,GACLwoC,GACAt2B,GACEonD,EACA,CACE,MAAO,CACL,kCACA,CACE,oBAAqB,KAAK,IAC1C,CACA,EACY,aAAcpuC,GAAQ,QAAQ,YAAY,GAAK9Y,EAC/C,MAAAinD,EACA,SAAU,KAAK,UAAYnuC,GAAQ,OAAO,SAC1C,QAASA,GAAQ,OAAO,WACxB,KAAM,KAAK,KACX,KAAAxuC,EACA,KAAM,KAAK,KAEX,QAAS,KAAK,UAAY08E,EAAa,YAAc,YACrD,QAAS,KAAK,QACd,OAAQ,KAAK,OAEb,mBAAoBluC,GAAQ,QAAQ,qBAAqB,IAAM,IAAM,CACrE,EACZ,CACA,EACQ,CACE,QAAS,IAAMkuC,EACf,KAAM,IAAMD,CACtB,CACA,CACI,EACMI,EAAwBhB,GAAa,CACzC,MAAMiB,EAAc7B,GAAgB,KAAK,OAAO,OAAI,CAAI,EAAI,KAAK,OAAO,SAAW,KAAK,YAAc33D,GAAE,OAAQ,CAAE,MAAO,CAAC,OAAQ,KAAK,WAAW,EAAG,EAAIA,GAAE03D,GAAoB,CAAE,KAAM,EAAE,CAAE,EACrL+B,EAAkB,GAAG,KAAK,QAAQ,WACxC,OAAOz5D,GACLu3D,GACA,CACE,IAAK,UACL,MAAO,EACP,MAAO,KAAK,OACZ,UAAW,KAAK,UAChB,SAAU,KAAK,kBACf,oBAAqB,GACrB,UAAW,KAAK,UAChB,GAAG,KAAK,YAAc,CACpB,SAAU,EACtB,EACU,sBAAuB,KAAK,WAC5B,iBAAkB,sBAClB,UAAW,KAAK,OAAO,UACvB,eAAgB,KAAK,OAAO,cAAgB,KAAK,MAAM,eAAe,IAAM,OAC5E,YAAa,CAAC,KAAK,OAAO,cAC1B,iBAAkB,KAAK,WACvB,YAAa,KAAK,SAClB,YAAa,KAAK,QAC5B,EACQ,CACE,QAAS,IAAMv3D,GAAEwoC,GAAU,CACzB,GAAIixB,EACJ,MAAO,0BACP,SAAU,KAAK,SACf,KAAM,KAAK,KACX,QAAS,KAAK,qBACd,KAAM,KAAK,KACX,IAAK,gBACL,aAAc,KAAK,SAAW,KAAO,KAAK,UAE1C,gBAAiB,KAAK,QAAU,KAAK,OAAO,UAAY,KAAK,SAAW,KACxE,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,QAAS,KAAK,QACd,UAAW,KAAK,gBAC5B,EAAa,CACD,KAAM,IAAMD,EACZ,QAAS,IAAM,KAAK,QAChC,CAAW,EACD,QAAS,IAAMx5D,GAAE,MAAO,CACtB,MAAO,CACL,KAAM,KAAK,MACzB,EACY,SAAU,KACV,UAAW,KAAK,UAChB,IAAK,MACjB,EAAa,CACDA,GAAE,KAAM,CACN,GAAI,KAAK,SACT,SAAU,KACV,IAAK,WACL,KAAM,KAAK,OAAO,UAGlB,kBAAmBy5D,EACnB,aAAc,KAAK,0BAA4B,SAAW,OAAS,MACjF,EAAe,CACDlB,CACd,CAAa,CACb,CAAW,CACX,CACA,CACI,EACA,OAAI7uC,EAAQ,SAAW,GAAK8uC,EAAmB,SAAW,GAAK,CAAC,KAAK,UAC5DS,EAAmBvvC,EAAQ,CAAC,CAAC,GAEtC,KAAK,UAAU,IAAM,CACf,KAAK,QAAU,KAAK,MAAM,OACR,KAAK,MAAM,KAAK,cAAc,WAAW,GAAK,IAClD,SAAW,GACzB,KAAK,iBAAgB,CAG3B,CAAC,EACG+uC,EAAc,OAAS,GAAK,KAAK,OAAS,EACrCz4D,GACL,MACA,CACE,MAAO,CACL,eACA,gBAAgB,KAAK,oBAAoB,EACrD,CACA,EACQ,CAEE,GAAGy4D,EAAc,IAAIQ,CAAkB,EAEvCP,EAAY,OAAS,EAAI14D,GACvB,MACA,CACE,MAAO,CACL,cACA,CACE,oBAAqB,KAAK,MAC5C,CACA,CACA,EACY,CAACu5D,EAAqBb,CAAW,CAAC,CAC9C,EAAc,IACd,CACA,EAEW14D,GACL,MACA,CACE,MAAO,CACL,2CACA,gBAAgB,KAAK,oBAAoB,GACzC,CACE,oBAAqB,KAAK,OAC1B,oBAAqB,KAAK,IACtC,CACA,CACA,EACM,CACEu5D,EAAqB7vC,CAAO,CACpC,CACA,EACE,CACF,EACMgwC,GAA4BvyB,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECnwB3F7nC,GAASwyC,EAAE,EACX,MAAMwnB,GAAkB,CACtB,KAAMtkD,GAAE,mBAAmB,EAC3B,MAAOA,GAAE,aAAa,EAEtB,OAAQA,GAAE,UAAU,CAEtB,EACA,SAASukD,GAAsB11B,EAAY,KAAK,IAAG,EAAIC,EAAO,GAAI,CAChE,IAAI2G,EACJ,MAAM1G,EAAOjpD,GAAS,IAAM,IAAI,KAAK+I,GAAQggD,CAAS,CAAC,CAAC,EAClD79C,EAAUlL,GAAS,IAAM,CAC7B,KAAM,CAAE,SAAAqnD,EAAU,aAAcq3B,EAAe,cAAAC,CAAa,EAAK51E,GAAQigD,CAAI,EAC7E,MAAO,CACL,GAAG3B,GAAY,CAAE,SAAAA,CAAQ,EACzB,GAAGq3B,GAAiB,CAAE,aAAcA,CAAa,EACjD,cAAeC,EAAgBH,GAAgBE,GAAiB,MAAM,EAAI,EAChF,CACE,CAAC,EACKE,EAAep2E,GAAI,EAAE,EAC3BmJ,GAAYktE,CAAkB,EAC9B,SAASA,GAAqB,CAC5B,MAAMC,EAAa71B,EAAK,MAAM,QAAO,EACrC,GAAI,OAAO,MAAM61B,CAAU,EAAG,CAC5BF,EAAa,MAAQ1kD,GAAE,cAAc,EACrC,MACF,MACE0kD,EAAa,MAAQ91B,GAAmBG,EAAK,MAAO/9C,EAAQ,KAAK,EAEnE,GAAInC,GAAQigD,CAAI,EAAE,SAAW,GAAO,CAClC,MAAM+1B,EAAO,KAAK,IAAI,KAAK,IAAG,EAAKD,CAAU,EACvCnuB,EAAWouB,EAAO,MAAQ7zE,EAAQ,MAAM,cAAgB,KAAK,IAAI6zE,EAAO,GAAI,IAAI,EAAI,IAC1FpvB,EAAY,OAAO,WAAWkvB,EAAoBluB,CAAQ,CAC5D,CACF,CACA,OAAA/yC,GAAY,IAAM+xC,GAAa,OAAO,aAAaA,CAAS,CAAC,EACtDxqD,GAASy5E,CAAY,CAC9B,CACA,SAASI,GAAcj2B,EAAWC,EAAM,CACtC,MAAM99C,EAAUlL,GAAS,KAAO,CAC9B,OAAQknD,GAAkB,EAC1B,OAAQ,CAAE,UAAW,QAAS,UAAW,QAAQ,EACjD,GAAGn+C,GAAQigD,CAAI,CACnB,EAAI,EACIE,EAAYlpD,GAAS,IAAM,IAAI,KAAK,eAAekL,EAAQ,MAAM,OAAQA,EAAQ,MAAM,MAAM,CAAC,EACpG,OAAOlL,GAAS,IAAMkpD,EAAU,MAAM,OAAOngD,GAAQggD,CAAS,CAAC,CAAC,CAClE,CCjDA,MAAMk2B,GAAQ,0BAA0B,KAAK,UAAU,SAAS,ECE1DC,GAA2B,OAAO,KAAK,eAAe,2BAAwB,EAC9EC,GAAmB,gBACnBC,GAAyB,iBAC/B,SAASC,GAAkBl3D,EAAOjd,EAAS,CACzC,MAAI,EAAEid,EAAM,kBAAkB,cAAgBA,EAAM,kBAAkB,kBAAoBA,EAAM,kBAAkB,qBAAuBA,EAAM,kBAAkB,mBAAqBA,EAAM,OAAO,kBAC1L,GAELjd,EAAQ,aACH,GAEF,MAAM,KAAK,SAAS,uBAAuB,YAAY,CAAC,EAAE,OAAQ5T,GAAOA,EAAG,gBAAe,CAAE,EAAE,OAAS,CACjH,CACA,SAASgoF,GAAaz4E,EAAUqE,EAAS,CACvC,OAAQid,GAAU,CAEhB,IADuB82D,GAAQ92D,EAAM,QAAUA,EAAM,WAC9B,EAAQjd,EAAQ,KAEhC,CAIA,GAJIid,EAAM,SAAW,EAAQjd,EAAQ,KAEjCA,EAAQ,QAAU,QAAUid,EAAM,WAAa,EAAQjd,EAAQ,OAE/Dm0E,GAAkBl3D,EAAOjd,CAAO,EACzC,OAEEA,EAAQ,SACVid,EAAM,eAAc,EAElBjd,EAAQ,MACVid,EAAM,gBAAe,EAEvBthB,EAASshB,CAAK,EAChB,CACF,CACA,SAASo3D,GAAUC,EAAc34E,EAAW,IAAM,CAClD,EAAGqE,EAAU,GAAI,CACf,GAAIg0E,GACF,MAAO,IAAM,CACb,EAEF,MAAMO,EAAmB,CAACt3D,EAAOxxB,IAAQ,CACvC,GAAIwxB,EAAM,MAAQxxB,EAChB,MAAO,GAET,GAAIuU,EAAQ,cAAe,CACzB,MAAMw0E,EAAmB/oF,IAAQA,EAAI,YAAW,EAC1CgpF,EAAwBx3D,EAAM,MAAQA,EAAM,IAAI,YAAW,EACjE,GAAIu3D,IAAqBC,EACvB,MAAO,EAEX,CACA,OAAIR,GAAiB,KAAKxoF,CAAG,GAAKyoF,GAAuB,KAAKj3D,EAAM,GAAG,EAC9DA,EAAM,KAAK,QAAQ,wBAAyB,EAAE,IAAMxxB,EAAI,YAAW,EAErEwxB,EAAM,IAAI,YAAW,IAAOxxB,EAAI,YAAW,CACpD,EACM47D,EAAapqC,GACb,OAAOq3D,GAAiB,WACnBA,EAAar3D,CAAK,EAChB,OAAOq3D,GAAiB,SAC1BC,EAAiBt3D,EAAOq3D,CAAY,EAClC,MAAM,QAAQA,CAAY,EAC5BA,EAAa,KAAM7oF,GAAQ8oF,EAAiBt3D,EAAOxxB,CAAG,CAAC,EAEvD,GAGLipF,EAAcptB,GAAYD,EAAW+sB,GAAaz4E,EAAUqE,CAAO,EAAG,CAC1E,UAAW,UACX,OAAQ,GACR,QAAS,CAACA,EAAQ,OACtB,CAAG,EACK20E,EAAY30E,EAAQ,KAAOsnD,GAAYD,EAAW+sB,GAAaz4E,EAAUqE,CAAO,EAAG,CACvF,UAAW,QACX,QAAS,CAACA,EAAQ,OACtB,CAAG,EAAI,IAAM,CACX,EACA,MAAO,IAAM,CACX00E,EAAW,EACXC,EAAS,CACX,CACF,CClFA,SAASC,GAAiBxoF,EAAK,SAAS,KAAM,CAC5C,MAAMyoF,EAAyB,OAAO,iBAAiBzoF,CAAE,EAAE,iBAAiB,6BAA6B,EACzG,OAAIyoF,IAA2B,OACtBA,IAA2B,eAE7B,EACT,CACoBD,GAAgB,ECNpC,MAAME,GAAex3E,GAAIy3E,IAAqB,EAC9C,OAAO,iBAAiB,SAAU,IAAM,CACtCD,GAAa,MAAQC,GAAmB,CAC1C,CAAC,EACD,SAASA,IAAsB,CAC7B,OAAO,OAAO,cAAgB,OAAO,OAAO,MAC9C,CCNA,MAAMC,GAAoB,KACpBC,GAA0BD,GAAoB,EAC9CE,GAAwBC,GAAe,SAAS,gBAAgB,YAAcA,EAC9EC,GAAW93E,GAAI43E,GAAqBF,EAAiB,CAAC,EACtDK,GAAgB/3E,GAAI43E,GAAqBD,EAAuB,CAAC,EACvE,OAAO,iBAAiB,SAAU,IAAM,CACtCG,GAAS,MAAQF,GAAqBF,EAAiB,EACvDK,GAAc,MAAQH,GAAqBD,EAAuB,CACpE,EAAG,CAAE,QAAS,GAAM,EACpB,SAASK,IAAc,CACrB,OAAOr7E,GAASm7E,EAAQ,CAC1B,CCUA,SAASG,GAAkB7zE,EAAU,CAQnC,MAPI,CAACA,EAAS,QAGV,UAAWA,GAAY,UAAWA,EAAS,QAI3CA,EAAS,OAAO,UAAYA,EAAS,MAChC,KAEFA,EAAS,MAClB,CACA,SAAS8zE,GAAqB9zE,EAAU,CACtC,MAAM+zE,EAAY,CAAC/zE,CAAQ,EAC3B,IAAIge,EAAS61D,GAAkB7zE,CAAQ,EACvC,KAAOge,GACL+1D,EAAU,KAAK/1D,CAAM,EACrBA,EAAS61D,GAAkB71D,CAAM,EAEnC,OAAO+1D,CACT,CACA,SAASC,IAAkB,CACzB,MAAMh0E,EAAW0E,GAAkB,EACnC,GAAI,CAAC1E,EACH,MAAM,IAAI,MAAM,kDAAkD,EAGpE,MAAMi0E,EADoBH,GAAqB9zE,CAAQ,EACpB,IAAKk0E,GAAcA,EAAU,MAAM,OAAO,EAAE,OAAO,OAAO,EAE7F,OADqB,OAAO,YAAYD,EAAS,IAAK9wD,GAAY,CAACA,EAAS,EAAE,CAAC,CAAC,CAElF,CACAvL,GAAS+yC,GAAKO,EAAG,EACjB,MAAM5L,GAAa,CAAC,kBAAmB,kBAAkB,EACnDC,GAAa,CAAC,mBAAoB,iBAAiB,EACnDC,GAAa,CAAC,IAAI,EAClBmB,GAAa,CAAE,MAAO,YAAY,EAClCC,GAAa,CAAC,OAAO,EACrBuzB,GAAa,CAAC,IAAI,EAClBC,GAAa,CAAE,MAAO,0BAA0B,EAChD30B,GAA4B3wC,GAAgB,CAC3C,aAAc,GACnB,OAAQ,UACR,MAAuB6G,GAAY,CACjC,KAAM,CAAE,QAAS,EAAE,EACnB,YAAa,CAAE,KAAM,OAAO,EAC5B,QAAS,CAAE,KAAM,OAAO,EACxB,cAAe,CAAE,KAAM,OAAO,EAC9B,gBAAiB,CAAE,KAAM,OAAO,EAChC,eAAgB,CAAE,QAAS,GAAG,EAC9B,gBAAiB,CAAE,KAAM,OAAO,EAChC,aAAc,CAAE,KAAM,OAAO,EAC7B,iBAAkB,CAAE,KAAM,OAAO,EACjC,KAAM,CAAE,QAAS,QAAQ,EACzB,QAAS,CAAE,KAAM,OAAO,EACxB,oBAAqB,CAAE,KAAM,OAAO,EACpC,KAAM,CAAE,KAAM,OAAO,EACrB,cAAe,CAAE,KAAM,OAAO,EAC9B,UAAW,CAAE,QAAS,MAAM,EAC5B,mBAAoB,CAAE,KAAM,OAAO,EACnC,uBAAwB,CAAE,QAAS,IAAM,EAAE,EAC3C,cAAe,CAAE,QAAS,CAAC,EAC3B,QAAS,CAAE,QAAS,EAAE,EACtB,eAAgB,CAAE,QAAS,MAAM,CACrC,EAAK,CACD,KAAQ,CAAE,KAAM,QAAc,QAAS,EAAM,EAC7C,cAAiB,GACjB,iBAAoB,CAAE,KAAM,QAAc,QAAS,EAAO,EAC1D,0BAA6B,EACjC,CAAG,EACD,MAAuBA,GAAY,CAAC,OAAQ,WAAY,QAAS,aAAa,EAAG,CAAC,cAAe,yBAAyB,CAAC,EAC3H,MAAM+pC,EAAS,CAAE,KAAMC,CAAM,EAAI,CAC/BruB,GAAYgvB,IAAU,CACpB,UAAa+zB,EAAiB,MAC9B,UAAaC,EAAkB,KACrC,EAAM,EACF,MAAMC,EAAY75D,GAASglC,EAAS,MAAM,EACpC80B,EAAe95D,GAASglC,EAAS,kBAAkB,EACnDtxD,EAAQsxD,EACRpkC,EAAOqkC,EACP80B,EAAeT,GAAe,EAC9BU,EAAUh0B,GAAe,EACzBi0B,EAAc1lE,GAAe,MAAM,EACzC,IAAI2lE,EACJ5jE,GAAY,IAAM6jE,GAAgB,EAClCz2E,GAAM,IAAMhQ,EAAM,uBAAyB0+D,GAAa,CAClD8nB,GACFA,EAAU,wBAAwB,CAACD,EAAY,MAAO,GAAG7nB,CAAQ,CAAC,CAEtE,CAAC,EACD,KAAM,CACJ,SAAUgoB,EACV,MAAOC,EACP,OAAQC,CACd,EAAQlxB,GAAcmxB,EAAW53E,GAAM,IAAMjP,EAAM,cAAc,EAAG,CAAE,UAAW,GAAO,EAC9E8mF,EAAet5E,GAAI,CAAC,EAC1BmJ,GAAY,IAAM,CACZyvE,EAAa,OAAS,CAACpmF,EAAM,gBAC/B4mF,EAAc,EACLF,EAAU,OACnBC,EAAa,CAEjB,CAAC,EACD,MAAMT,EAAoBlhF,GAAS,IAAM,GAAGhF,EAAM,cAAc,IAAI,EAC9D,CAAE,KAAM+mF,GAAcjtB,GAASysB,EAAa,CAChD,WAAYS,CAClB,CAAK,EACDpkE,GAAYmkE,CAAS,EACrBxC,GAAU,SAAU,IAAM,CACNzZ,GAAY,EAChB,GAAG,EAAE,IAAM0b,GACvBS,EAAK,CAET,EAAG,CAAE,aAAc,GAAM,EACzB1C,GAAU,CAAC,YAAa,YAAY,EAAIp3D,GAAU,CAC5C,SAAS,eAAiB,CAACo5D,EAAY,MAAM,SAAS,SAAS,aAAa,IAG5Ep5D,EAAM,MAAQ,cAAgBmzD,GAChC4G,EAAa,EAEbL,EAAS,EAEb,EAAG,CAAE,aAAc,GAAM,EACzB,MAAMxpE,EAAQ4J,GAAQ,EAChBg/D,EAAmBjhF,GAAS,IAAM,CACtC,IAAIuuC,EAAU,EACd,OAAIvzC,EAAM,SAAWA,EAAM,iBACzBuzC,IAEE,CAACvzC,EAAM,SAAWA,EAAM,oBAC1BuzC,IAEEl2B,EAAM,SACRk2B,IAEKA,CACT,CAAC,EACK4zC,EAAYniF,GAAS,IAAMhF,EAAM,KAAK,KAAI,IAAO,IAAMimF,EAAiB,MAAQ,CAAC,EACvFnpE,GAAU,IAAM,CACV,CAAC9c,EAAM,MAASA,EAAM,OAG5B,CAAC,EACD,SAAS6mF,EAAU15D,EAAO,CACxB,GAAI,CAACntB,EAAM,QAAS,CAClBomF,EAAa,MAAQ,GACrB,MACF,CACIj5D,GAASu5D,EAAU,OACrBU,EAAgB,EAElBl6D,EAAK,OAAQC,CAAK,CACpB,CACA,SAAS+5D,EAAc/5D,EAAO,CACvBntB,EAAM,cAGPmtB,GAASu5D,EAAU,OACrBU,EAAgB,EAElBl6D,EAAK,WAAYC,CAAK,EACxB,CACA,SAAS65D,EAAYziF,EAAGk2D,EAAW,CACjC,GAAI,CAACz6D,EAAM,aAAc,CACvB,GAAIy6D,IAAc,QAAUA,IAAc,QACxC,OAEEA,IAAc,SAAW6lB,GAC3BuG,EAAUtiF,CAAC,EAEX2iF,EAAc3iF,CAAC,CAEnB,CACF,CACA,SAAS6iF,GAAmB,CAC1BT,EAAa,EACbC,EAAc,EACdE,EAAa,OACf,CACA,SAASG,EAAM95D,EAAO,CAChBntB,EAAM,UAGVmmF,EAAU,MAAQ,GAClB,WAAW,IAAM,CACfj5D,EAAK,QAASC,CAAK,CACrB,EAAG,GAAG,EACR,CACA,SAASk6D,EAAwBl6D,EAAO,CAClCntB,EAAM,qBACRinF,EAAM95D,CAAK,CAEf,CACA,eAAem6D,GAAe,CAC5B,GAAId,EACF,OAEF,MAAMvzE,GAAQ,EACd,MAAM/C,EAAU,CACd,kBAAmB,GACnB,cAAeq2E,EAAY,MAC3B,UAAWzb,GAAY,EAGvB,kBAAmB,GACnB,eAAgB9qE,EAAM,cAC9B,EACMwmF,EAAYviB,GAAgB,CAACsiB,EAAY,MAAO,GAAGvmF,EAAM,sBAAsB,EAAGkQ,CAAO,EACzFs2E,EAAU,SAAQ,CACpB,CACA,SAASC,GAAiB,CACnBD,IAGLA,GAAW,WAAU,EACrBA,EAAY,OACd,CACA,MAAO,CAACt0B,EAAMC,KACL5sC,EAAS,EAAIC,GAAYhJ,GAAU,CACxC,SAAU80C,EAAQ,YAAc,KAChC,GAAIA,EAAQ,SACpB,EAAS,CACD7rC,GAAY0Z,GAAY,CACtB,KAAM,OACN,OAAQ,GACR,aAAcmoD,EACd,cAAeb,CACzB,EAAW,CACD,QAAS9xE,GAAQ,IAAM,CACrBS,GAAeg9C,EAAmB,MAAOr2B,GAAW,CAAE,GAAGm2B,EAAK,OAAQ,GAAGrkD,EAAMw4E,CAAY,GAAK,CAC9F,IAAK,OACL,MAAO,CAAC,aAAc,CACpB,qBAAsB/0B,EAAQ,MAAQA,EAAQ,oBAAsBA,EAAQ,aAAeA,EAAQ,QACnG,oBAAqBA,EAAQ,aAC7C,CAAe,EACD,KAAM,SACN,aAAc,OACd,kBAAmBA,EAAQ,SAAW,cAAczjD,EAAMy4E,CAAO,CAAC,GAClE,mBAAoB,qBAAuBz4E,EAAMy4E,CAAO,EACxD,SAAU,IACxB,CAAa,EAAG,CACF7gE,GAAY0Z,GAAY,CACtB,KAAM,kBACN,OAAQ,EACxB,EAAiB,CACD,QAASxqB,GAAQ,IAAM,CACrBwyE,EAAU,OAAS5hE,IAAauV,EAAmB,MAAO,CACxD,IAAK,EACL,MAAO,eACP,mBAAoBw2B,EAAQ,cAC5B,kBAAmB,CAACA,EAAQ,aAChD,EAAqB,CACDA,EAAQ,KAAK,KAAI,IAAO,IAAM/rC,EAAS,EAAIuV,EAAmB,KAAM,CAClE,IAAK,EACL,GAAI,cAAgBjtB,EAAMy4E,CAAO,EACjC,MAAO,oBAC7B,EAAuB1kF,GAAgB0vD,EAAQ,IAAI,EAAG,EAAGF,EAAU,GAAK5zC,GAAmB,GAAI,EAAI,EAC/E40C,EAAmB,MAAOG,GAAY,CACpCjB,EAAQ,SAAWA,EAAQ,iBAAmB/rC,EAAS,EAAIuV,EAAmB,SAAU,CACtF,IAAK,EACL,MAAOj7B,GAAe,CAAC,mBAAoB,CAAE,2BAA4ByxD,EAAQ,eAAe,CAAE,CAAC,EACnG,MAAOzjD,EAAM64E,CAAS,EAAI74E,EAAMqxB,EAAC,EAAE,iBAAiB,EAAIrxB,EAAMqxB,EAAC,EAAE,iBAAiB,EAClF,KAAM,SACN,QAASizB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWiyB,EAAa,MAAQ,CAACA,EAAa,MAC1G,EAAyB,CACD3gE,GAAYmuC,GAAkB,CAC5B,MAAO,yBACP,OAAQ,GACR,KAAM/lD,EAAM64E,CAAS,EAAI74E,EAAMqxB,EAAC,EAAE,iBAAiB,EAAIrxB,EAAMqxB,EAAC,EAAE,iBAAiB,EACjF,KAAMrxB,EAAM64E,CAAS,EAAI74E,EAAMylD,EAAQ,EAAIzlD,EAAM0lD,EAAO,CAClF,EAA2B,KAAM,EAAG,CAAC,OAAQ,MAAM,CAAC,EAC5B1lD,EAAM64E,CAAS,GAAKnhE,EAAS,EAAIuV,EAAmB,MAAO,CACzD,IAAK,GAAGjtB,EAAMy4E,CAAO,CAAC,cAAcQ,EAAa,KAAK,GACtD,MAAO,eACjC,EAA2B,CAAC,GAAG30B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,CAC/BC,EAAmB,SAAU,CAC3B,MAAO,wBACP,OAAQ,QACR,eAAgB,IAChB,KAAM,cACN,GAAI,MACJ,GAAI,KAChC,EAA6B,KAAM,EAAE,CACrC,EAA0B,CAAC,GAAK50C,GAAmB,GAAI,EAAI,CAC3D,EAAyB,GAAIg1C,EAAU,GAAKh1C,GAAmB,GAAI,EAAI,EACjDiI,GAAY89D,GAAW,CACrB,MAAO,iBACP,OAAQjyB,EAAQ,aACxC,EAAyB,CACD,QAAS38C,GAAQ,IAAM,CACrBsQ,GAAWitC,EAAK,OAAQ,UAAW,GAAI,OAAQ,EAAI,CAC7E,CAAyB,EACD,EAAG,CAC3B,EAAyB,EAAG,CAAC,QAAQ,CAAC,EAChB,CAACZ,EAAQ,SAAWA,EAAQ,oBAAsB/rC,EAAS,EAAIC,GAAY6sC,GAAU,CACnF,IAAK,EACL,aAAcxkD,EAAMqxB,EAAC,EAAE,OAAO,EAC9B,MAAO,eACP,QAAS,WACT,QAAS+nD,CACjC,EAAyB,CACD,KAAMtyE,GAAQ,IAAM,CAClB8Q,GAAYmuC,GAAkB,CAAE,KAAM/lD,EAAMslD,EAAQ,CAAC,EAAI,KAAM,EAAG,CAAC,MAAM,CAAC,CACpG,CAAyB,EACD,EAAG,CAC3B,EAAyB,EAAG,CAAC,YAAY,CAAC,GAAK31C,GAAmB,GAAI,EAAI,CAC1E,CAAqB,CACrB,EAAqB,EAAG2zC,EAAU,GAAK3zC,GAAmB,GAAI,EAAI,CAClE,CAAiB,EACD,EAAG,CACnB,CAAe,EACDiI,GAAY0Z,GAAY,CACtB,KAAM,SAASmyB,EAAQ,cAAgB,MAAQ,IAAI,GACnD,OAAQ,EACxB,EAAiB,CACD,QAAS38C,GAAQ,IAAM,CACrBS,GAAeg9C,EAAmB,MAAO,CACvC,MAAOvyD,GAAe,CAAC,gBAAiB,CACtC,kBAAkByxD,EAAQ,IAAI,GAC9B,CACE,mCAAoCA,EAAQ,iBAC5C,2BAA4B,CAAC61B,EAAU,KAC/D,CACA,CAAqB,CAAC,EACF,YAAa3gD,GAAc6gD,EAAyB,CAAC,MAAM,CAAC,CAChF,EAAqB,CACD5hE,GAAY0Z,GAAY,CACtB,KAAM,kBACN,OAAQ,EAC9B,EAAuB,CACD,QAASxqB,GAAQ,IAAM,CACrBS,GAAeqQ,GAAY4sC,GAAU,CACnC,aAAcxkD,EAAMqxB,EAAC,EAAE,UAAU,EACjC,MAAO,OACP,QAAS,yBACT,QAASgoD,CACnC,EAA2B,CACD,KAAMvyE,GAAQ,IAAM,CAClB8Q,GAAYmuC,GAAkB,CAC5B,YAAa,GACb,KAAM/lD,EAAMolD,EAAc,EAC1B,KAAM,EACpC,EAA+B,KAAM,EAAG,CAAC,MAAM,CAAC,CAChD,CAA2B,EACD,EAAG,CAC7B,EAA2B,EAAG,CAAC,YAAY,CAAC,EAAG,CACrB,CAAClwB,GAAOuuB,EAAQ,WAAW,CACrD,CAAyB,CACzB,CAAuB,EACD,EAAG,CACzB,CAAqB,EACDc,EAAmB,MAAO,CACxB,GAAI,qBAAuBvkD,EAAMy4E,CAAO,EACxC,MAAO,iBAC7B,EAAuB,CACDl0B,EAAmB,MAAO4zB,GAAY,CACpC/gE,GAAWitC,EAAK,OAAQ,UAAW,GAAI,OAAQ,EAAI,CAC3E,CAAuB,EACD,CAACZ,EAAQ,SAAW,CAACA,EAAQ,oBAAsB/rC,EAAS,EAAIC,GAAY6sC,GAAU,CACpF,IAAK,EACL,aAAcxkD,EAAMqxB,EAAC,EAAE,OAAO,EAC9B,MAAO,yBACP,QAAS,WACT,QAAS+nD,CACjC,EAAyB,CACD,KAAMtyE,GAAQ,IAAM,CAClB8Q,GAAYmuC,GAAkB,CAAE,KAAM/lD,EAAMslD,EAAQ,CAAC,EAAI,KAAM,EAAG,CAAC,MAAM,CAAC,CACpG,CAAyB,EACD,EAAG,CAC3B,EAAyB,EAAG,CAAC,YAAY,CAAC,GAAK31C,GAAmB,GAAI,EAAI,CAC1E,EAAuB,EAAGuoE,EAAU,EAChBtgE,GAAY0Z,GAAY,CACtB,KAAM,kBACN,OAAQ,EAC9B,EAAuB,CACD,QAASxqB,GAAQ,IAAM,CACrBS,GAAeqQ,GAAY4sC,GAAU,CACnC,aAAcxkD,EAAMqxB,EAAC,EAAE,MAAM,EAC7B,MAAO,OACP,QAAS,yBACT,QAAS2nD,CACnC,EAA2B,CACD,KAAMlyE,GAAQ,IAAM,CAClB8Q,GAAYmuC,GAAkB,CAC5B,YAAa,GACb,KAAM/lD,EAAMqlD,EAAe,EAC3B,KAAM,EACpC,EAA+B,KAAM,EAAG,CAAC,MAAM,CAAC,CAChD,CAA2B,EACD,EAAG,CAC7B,EAA2B,EAAG,CAAC,YAAY,CAAC,EAAG,CACrB,CAACnwB,GAAOuuB,EAAQ,OAAO,CACjD,CAAyB,CACzB,CAAuB,EACD,EAAG,CACzB,CAAqB,CACrB,EAAqB,EAAE,EAAG,CACN,CAACvuB,GAAOojD,EAAU,KAAK,CAC3C,CAAmB,CACnB,CAAiB,EACD,EAAG,CACnB,EAAiB,EAAG,CAAC,MAAM,CAAC,CAC5B,EAAe,GAAIj1B,EAAU,EAAG,CAClB,CAACnuB,GAAOojD,EAAU,KAAK,CACrC,CAAa,CACb,CAAW,EACD,EAAG,CACb,CAAS,CACT,EAAS,EAAG,CAAC,WAAY,IAAI,CAAC,EAE5B,CACF,CAAC,EACKoB,GAA0Bv2B,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC5anFH,GAAa,CAAC,KAAM,aAAa,EACjCC,GAAa,CAAC,aAAc,iBAAiB,EAC7CC,GAAa,CAAE,MAAO,cAAc,EACpCmB,GAAa,CAAE,MAAO,iBAAiB,EACvClB,GAA4B3wC,GAAgB,CAChD,OAAQ,WACR,MAAuB6G,GAAY,CACjC,KAAM,GACN,QAAS,CAAE,QAAS,EAAE,EACtB,uBAAwB,CAAE,QAAS,IAAM,EAAE,EAC3C,UAAW,CAAE,QAAS,MAAM,EAC5B,KAAM,CAAE,QAAS,OAAO,EACxB,QAAS,CAAE,QAAS,IAAM,EAAE,EAC5B,OAAQ,CAAE,KAAM,OAAO,EACvB,QAAS,CAAE,KAAM,OAAO,EACxB,oBAAqB,CAAE,KAAM,OAAO,EACpC,cAAe,CAAE,KAAM,OAAO,EAC9B,oBAAqB,CAAE,QAAS,EAAE,EAClC,yBAA0B,CAAE,QAAS,EAAE,EACvC,eAAgB,CAAE,QAAS,EAAE,EAC7B,cAAe,CAAE,QAAS,EAAE,EAC5B,kBAAmB,CAAE,QAAS,EAAE,CACpC,EAAK,CACD,KAAQ,CAAE,KAAM,QAAc,QAAS,EAAM,EAC7C,cAAiB,EACrB,CAAG,EACD,MAAuBA,GAAY,CAAC,UAAW,QAAS,QAAQ,EAAG,CAAC,aAAa,CAAC,EAClF,MAAM+pC,EAAS,CAAE,KAAMC,CAAM,EAAI,CAC/B,MAAMi2B,EAAOl7D,GAASglC,EAAS,MAAM,EAC/BtxD,EAAQsxD,EACRpkC,EAAOqkC,EACPl0C,EAAQ4J,GAAQ,EAChBwgE,EAAiB5mE,GAAe,SAAS,EACzC,CAAE,MAAO6mE,CAAW,EAAKpvB,GAAemvB,EAAgB,CAAE,MAAO,IAAK,OAAQ,EAAG,EACjFE,EAAwB3iF,GAAS,IAAM0iF,EAAY,MAAQ,GAAG,EAC9DE,EAAgB5iF,GAAS,IAAMqY,GAAO,aAAe,MAAM,EAC3DwqE,EAAev1B,GAAe,EAC9Bw1B,EAA0B9iF,GAAS,IAAMhF,EAAM,qBAAuB,MAAM,EAC5E+nF,EAA+B/iF,GAAS,IAAM,CAClD,GAAI,CAAAhF,EAAM,oBAGV,OAAOA,EAAM,0BAA4B6nF,CAC3C,CAAC,EACKG,EAAoBnnE,GAAe,eAAe,EAClDonE,EAAgBjjF,GAAS,IAAMhF,EAAM,QAAU,CAAC4nF,EAAc,MAAQ,OAAS,KAAK,EACpFM,EAAkBljF,GAAS,IAC3BijF,EAAc,QAAU,OACnB,GAEF,CAIL,OAAO96D,EAAO,CACZA,EAAM,eAAc,EACpBD,EAAK,SAAUC,CAAK,CACtB,EAIA,MAAMA,EAAO,CACXA,EAAM,eAAc,EACpBD,EAAK,QAASC,CAAK,CACrB,CACR,CACK,EACKg5D,EAAY34E,GAAI,EAAI,EAC1B,SAAS26E,EAAkBjG,EAAQp5E,EAAQ,CACrCo5E,EAAO,OAAS,UAAY+F,EAAc,QAAU,QAAU,mBAAoBD,EAAkB,OAAS,CAACA,EAAkB,MAAM,eAAc,IAGxJI,EAAct/E,CAAM,EACpB,OAAO,WAAW,IAAMu/E,EAAY,EAAI,GAAG,EAC7C,CACA,SAASD,EAAct/E,EAAQ,CAC7Bq9E,EAAU,MAAQ,GAClBj5D,EAAK,UAAWpkB,CAAM,CACxB,CACA,SAASu/E,GAAe,CACtBlC,EAAU,MAAQ,GAClBqB,EAAK,MAAQ,EACf,CACA,MAAMc,EAAatjF,GAAS,KAAO,CACjC,QAAShF,EAAM,QACf,UAAWA,EAAM,YAAc,OAAS,OAASA,EAAM,UAIvD,QAAS6nF,EACT,KAAM7nF,EAAM,KACZ,KAAMwnF,EAAK,OAASrB,EAAU,MAC9B,cAAenmF,EAAM,cACrB,oBAAqBA,EAAM,oBAC3B,uBAAwBA,EAAM,sBACpC,EAAM,EACF,MAAO,CAACkyD,EAAMC,IACLq1B,EAAK,OAASjiE,EAAS,EAAIC,GAAY3X,EAAM05E,EAAO,EAAGxrD,GAAW,CACvE,IAAK,EACL,MAAO,gBACP,aAAc,EACtB,EAASusD,EAAW,MAAO,CACnB,QAASD,EACT,gBAAiBl2B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWi0B,EAAa,EAC5E,CAAO,EAAG,CACF,QAASzzE,GAAQ,IAAM,CACrBy9C,EAAmB,KAAM,CACvB,GAAIvkD,EAAMg6E,CAAY,EACtB,MAAO,eACP,YAAajmF,GAAgB0vD,EAAQ,IAAI,CACrD,EAAa,KAAM,EAAGJ,EAAU,GACrB3rC,EAAS,EAAIC,GAAY3B,GAAwBokE,EAAc,KAAK,EAAGlsD,GAAW,CACjF,IAAK,gBACL,MAAO,CAAC,SAAUu1B,EAAQ,aAAa,CACnD,EAAatrC,GAAWkiE,EAAgB,KAAK,CAAC,EAAG,CACrC,QAASvzE,GAAQ,IAAM,CACrBy9C,EAAmB,MAAO,CACxB,IAAK,UACL,MAAOvyD,GAAe,CAAC,kBAAmB,CAAC,CAAE,6BAA8B8nF,EAAsB,KAAK,CAAE,CAAC,CAAC,CAC1H,EAAiB,CACDC,EAAc,OAASriE,IAAauV,EAAmB,MAAO,CAC5D,IAAK,EACL,MAAOj7B,GAAe,CAAC,qBAAsByxD,EAAQ,iBAAiB,CAAC,EACvE,aAAcw2B,EAAwB,MACtC,kBAAmBC,EAA6B,KAClE,EAAmB,CACD9iE,GAAWitC,EAAK,OAAQ,aAAc,CAAE,YAAay1B,EAAsB,KAAK,EAAI,OAAQ,EAAI,CAClH,EAAmB,GAAIx2B,EAAU,GAAK3zC,GAAmB,GAAI,EAAI,EACjD40C,EAAmB,MAAO,CACxB,MAAOvyD,GAAe,CAAC,kBAAmByxD,EAAQ,cAAc,CAAC,CACnF,EAAmB,CACDrsC,GAAWitC,EAAK,OAAQ,UAAW,GAAI,IAAM,CAC3CE,EAAmB,IAAKhB,GAAYxvD,GAAgB0vD,EAAQ,OAAO,EAAG,CAAC,CAC3F,EAAqB,EAAI,CACzB,EAAmB,CAAC,CACpB,EAAiB,CAAC,EACJc,EAAmB,MAAOG,GAAY,CACpCttC,GAAWitC,EAAK,OAAQ,UAAW,GAAI,IAAM,EAC1C3sC,EAAU,EAAI,EAAGuV,EAAmBra,GAAU,KAAM6D,GAAWgtC,EAAQ,QAAS,CAAC4wB,EAAQqG,KACjFhjE,EAAS,EAAIC,GAAY3X,EAAM0yE,EAAW,EAAGxkD,GAAW,CAAE,IAAKwsD,CAAG,EAAI,CAAE,QAAS,EAAI,EAAIrG,EAAQ,CACtG,QAAS,CAAChrB,EAAGpuD,IAAWq/E,EAAkBjG,EAAQp5E,CAAM,CAC9E,CAAqB,EAAG,KAAM,GAAI,CAAC,SAAS,CAAC,EAC1B,EAAG,GAAG,EACzB,EAAmB,EAAI,CACvB,CAAe,CACf,CAAa,EACD,EAAG,CACf,EAAa,GAAI,CAAC,OAAO,CAAC,EAC1B,CAAS,EACD,EAAG,CACX,EAAS,EAAE,GAAK0U,GAAmB,GAAI,EAAI,CAEzC,CACF,CAAC,EACKgrE,GAA2Bx3B,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EChKpFA,GAAY3wC,GAAgB,CAChC,KAAM,WACN,MAAO,CAIL,OAAQ,CACN,KAAM,CAAC,MAAO,MAAM,EACpB,QAAS,IACf,CACA,EAIE,QAAS,CACP,OAAO,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAE,CACjD,CACF,CAAC,ECRM,SAAS+nE,GAAU38D,EAAKnwB,EAAKupB,EAAU,CAC1C,MAAMqZ,EAAW,kBAAkBzS,CAAG,IAAInwB,CAAG,GAC7C,GAAI,OAAO,mBAAmB,IAAI4iC,CAAQ,EACtC,OAAO,OAAO,kBAAkB,IAAIA,CAAQ,EAEtC,OAAO,oBACb,OAAO,kBAAoB,IAAI,KAEnC,MAAMmqD,EAAO,SAAS,cAAcnqD,CAAQ,EAC5C,GAAImqD,IAAS,KAAM,CACf,GAAIxjE,IAAa,OACb,OAAOA,EAEX,MAAM,IAAI,MAAM,gCAAgCvpB,CAAG,OAAOmwB,CAAG,EAAE,CACnE,CACA,GAAI,CACA,MAAM68D,EAAc,KAAK,MAAM,KAAKD,EAAK,KAAK,CAAC,EAC/C,cAAO,kBAAkB,IAAInqD,EAAUoqD,CAAW,EAC3CA,CACX,OACOlkF,EAAO,CAEV,GADA,QAAQ,MAAM,2DAA4D,CAAE,IAAA9I,EAAK,IAAAmwB,EAAK,MAAArnB,EAAO,EACzFygB,IAAa,OACb,OAAOA,EAEX,MAAM,IAAI,MAAM,iCAAiCvpB,CAAG,OAAOmwB,CAAG,GAAI,CAAE,MAAOrnB,EAAO,CACtF,CACJ,CC9BA,SAAS4L,GAAK6nC,EAAM,CAClB,IAAI0wC,EAAY,GACZ9/E,EACJ,MAAO,IAAIb,KACJ2gF,IACHA,EAAY,GACZ9/E,EAASovC,EAAK,GAAGjwC,CAAI,GAEhBa,EAEX,CACA,IAAI+/E,GAAc,mBAClB,GAAI,CACFA,GAAcC,EAChB,MAAQ,CACNzI,GAAO,MAAM,kFAAkF,CACjG,CACA,MAAM0I,GAAWF,GACjB,IAAIG,GAAiB,GACrB,GAAI,CACFA,GAAiBC,EACnB,MAAQ,CACN5I,GAAO,MAAM,qFAAqF,CACpG,CACA,MAAM6I,GAAcF,GACpB,SAASG,IAAa,CACpB,OAAO/yE,GAAO,UAAW2yE,EAAQ,CACnC,CACA,MAAMK,GAAsB/4E,GAAK,IAAM,CACrC,MAAMg5E,EAAOZ,GAAU,OAAQ,OAAQ,EAAE,EACnCa,EAAeH,GAAU,EAC/B,OAAOE,EAAK,KAAK,CAAC,CAAE,GAAAj2E,CAAE,IAAOA,IAAOk2E,CAAY,GAAG,MAAQA,CAC7D,CAAC,ECtCKC,GAAgD,OAAO,IAAI,kCAAkC,EAC7FC,GAAiD,OAAO,IAAI,4BAA4B,EAC9F,SAASC,IAAuB,CAC9B,OAAOrzE,GAAOmzE,EAA6B,CAC7C,CCMA,MAAMhJ,GAA8B7/D,GAAgB,CAClD,OAAQ,6BACR,MAAM4wC,EAAS,CACb,MAAMo4B,EAAStzE,GAAOozE,EAA8B,EAC9CG,EAAmBP,GAAmB,EAC5C,MAAO,CAACl3B,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,MAAOj7B,GAAe,CAACqyD,EAAK,OAAO,yBAA0B,CAAE,CAACA,EAAK,OAAO,gCAAgC,EAAGrkD,EAAM67E,CAAM,CAAC,CAAE,CAAC,CACvI,EAAS9nF,GAAgBiM,EAAM87E,CAAgB,CAAC,EAAI,IAAM/nF,GAAgBiM,EAAMq7E,EAAW,CAAC,EAAG,CAAC,EAE9F,CACF,CAAC,EACKU,GAA2B,kCAC3BC,GAAmC,0CACnCpJ,GAAS,CACb,uBAAwB,8BACxB,yBAAAmJ,GACA,iCAAAC,EACF,EACM9iE,GAAa,CACjB,OAAU05D,EACZ,EACMqJ,GAA6C94B,GAAYuvB,GAAa,CAAC,CAAC,eAAgBx5D,EAAU,CAAC,CAAC,EAC1GyC,GAAS0zC,EAAG,EACZ,MAAMhM,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,iBACT,EACMC,GAAa,CAAC,eAAgB,OAAQ,UAAW,WAAW,EAC5DmB,GAAa,CACjB,IAAK,EACL,MAAO,4BACT,EACMC,GAAa,CAAE,MAAO,4BAA4B,EAClDnB,GAA4B3wC,GAAgB,CAChD,OAAQ,sBACR,MAAuB6G,GAAY,CACjC,eAAgB,CAAE,KAAM,OAAO,EAC/B,UAAW,CAAE,QAAS,MAAM,EAC5B,KAAM,CAAE,QAAS,EAAE,EACnB,uBAAwB,CAAE,QAAS,IAAM,EAAE,EAC3C,OAAQ,CAAE,KAAM,QAAS,QAAS,EAAK,EACvC,UAAW,CAAE,KAAM,QAAS,QAAS,EAAK,CAC9C,EAAK,CACD,KAAQ,CAAE,KAAM,QAAc,SAAU,EAAM,EAC9C,cAAiB,EACrB,CAAG,EACD,MAAO,CAAC,aAAa,EACrB,MAAM+pC,EAAS,CACb,MAAMk2B,EAAOl7D,GAASglC,EAAS,MAAM,EAC/BtxD,EAAQsxD,EACdt7C,GAAQuzE,GAA+B,CACrC,gBAAAQ,EACA,kBAAAC,CACN,CAAK,EACDh0E,GAAQwzE,GAAgCv6E,GAAM,IAAMjP,EAAM,MAAM,CAAC,EACjE,MAAMiqF,EAA0BppE,GAAe,kBAAkB,EAC3DykE,EAAWE,GAAW,EACtB0E,EAAkB18E,GAAI,EAAE,EACxB28E,EAAc38E,GAAI,EAAK,EACvB48E,EAAqB58E,GAAI,EAAE,EAC3Bo6E,EAAgB5iF,GAAS,IAAM,CAACsgF,EAAS,OAAStlF,EAAM,cAAc,EACtEqqF,EAAqBrlF,GAAS,IAAMolF,EAAmB,MAAM,KAAK,CAAC,CAAE,KAAApH,CAAI,IAAO,CAAC,CAACA,CAAI,CAAC,EACvFsH,EAAwBh2B,GAAS,IAAM,CAC3C41B,EAAgB,MAAQ,GACpB,SAAS,eAAe,UAAU,SAAS,uBAAuB,GACpE,SAAS,cAAc,KAAI,CAE/B,EAAG,GAAG,EACAK,EAAmC,IAAI,IAC7CxtE,GAAgB,IAAM,CACpBwtE,EAAiB,MAAK,CACxB,CAAC,EACD,SAASC,EAA8BrrF,EAAM,CAC3CgrF,EAAY,MAAQ,GACpB,SAAS,eAAe,oBAAsBhrF,CAAI,EAAE,eAAe,CACjE,SAAU,SACV,OAAQ,SAChB,CAAO,EACD+qF,EAAgB,MAAQ/qF,EACxB,WAAW,IAAM,CACfgrF,EAAY,MAAQ,EACtB,EAAG,GAAG,CACR,CACA,SAASM,EAAiBC,EAAQ,CAC5BA,IAGJlD,EAAK,MAAQ,GACbyC,EAAwB,MAAM,UAAY,EAC5C,CACA,SAASU,GAAe,CAClBnD,EAAK,OAAS,CAAC2C,EAAY,OAC7BG,EAAqB,CAEzB,CACA,SAASP,EAAgB32E,EAAItT,EAAM8qF,EAAO5H,EAAM,CAC9C,GAAIoH,EAAmB,MAAM,KAAK,CAAC,CAAE,GAAIS,CAAO,IAAOz3E,IAAOy3E,CAAO,EACnE,MAAM,IAAI,MAAM,+BAA+Bz3E,CAAE,8DAA8D,EAE7Gg3E,EAAmB,MAAM,KAAK,CAAC,CAAE,KAAMU,CAAS,IAAOhrF,IAASgrF,CAAS,EAGzEF,IAAU,OACZL,EAAiB,IAAIn3E,EAAIw3E,CAAK,EACrBL,EAAiB,IAAIn3E,CAAE,EAChCw3E,EAAQL,EAAiB,IAAIn3E,CAAE,GAE/Bw3E,EAAQ,KAAK,IAAI,EAAG,GAAGL,EAAiB,OAAM,CAAE,EAAI,EACpDA,EAAiB,IAAIn3E,EAAIw3E,CAAK,GAEhCR,EAAmB,MAAQ,CAAC,GAAGA,EAAmB,MAAO,CAAE,GAAAh3E,EAAI,KAAAtT,EAAM,MAAA8qF,EAAO,KAAA5H,CAAI,CAAE,EAAE,KAAK,CAAC,CAAE,MAAO+H,CAAM,EAAI,CAAE,MAAOC,KAC7GD,EAASC,CACjB,EACGZ,EAAmB,MAAM,SAAW,IACtCF,EAAgB,MAAQ92E,EAE5B,CACA,SAAS42E,EAAkB52E,EAAI,CAC7Bg3E,EAAmB,MAAQA,EAAmB,MAAM,OAAO,CAAC,CAAE,GAAIS,CAAO,IAAOz3E,IAAOy3E,CAAO,EAC1FX,EAAgB,QAAU92E,IAC5B82E,EAAgB,MAAQE,EAAmB,MAAM,CAAC,GAAG,IAAM,GAE/D,CACA,MAAO,CAACl4B,EAAMC,IACLq1B,EAAK,OAASjiE,EAAS,EAAIC,GAAYgjE,GAAU,CACtD,IAAK,EACL,MAAO3oF,GAAe,CAAC,eAAgB,CAAE,uBAAwBgO,EAAMgjD,EAAU,CAAC,CAAE,CAAC,EACrF,eAAgB,wBAChB,kBAAmB,2BACnB,uBAAwBS,EAAQ,uBAChC,UAAWA,EAAQ,UACnB,oBAAqB,GACrB,wBAAyBzjD,EAAMqxB,EAAC,EAAE,qBAAqB,EACvD,KAAM,QACN,KAAMoyB,EAAQ,KACd,gBAAiBm5B,CACzB,EAAS5lE,GAAY,CACb,QAASlQ,GAAQ,IAAM,CACrBy9C,EAAmB,MAAO,CACxB,IAAK,mBACL,SAAUu4B,CACtB,EAAa,CACD1lE,GAAWitC,EAAK,OAAQ,UAAW,GAAI,OAAQ,EAAI,EAClDZ,EAAQ,UAAiF9zC,GAAmB,GAAI,EAAI,GAA/F+H,EAAS,EAAIC,GAAYskE,GAA4B,CAAE,IAAK,CAAC,CAAE,EACjG,EAAa,GAAG,CAChB,CAAS,EACD,EAAG,CACX,EAAS,CACDlC,EAAc,MAAQ,CACpB,KAAM,aACN,GAAIjzE,GAAQ,CAAC,CAAE,YAAAs2E,KAAkB,CAC9Bp9E,EAAMgjD,EAAU,EAA6FrzC,GAAmB,GAAI,EAAI,GAAnH+H,EAAS,EAAIuV,EAAmB,MAAOo2B,GAAYtvD,GAAgB0vD,EAAQ,IAAI,EAAG,CAAC,GACxG25B,EA0BKztE,GAAmB,GAAI,EAAI,GA1BjB+H,EAAS,EAAIuV,EAAmB,KAAMq2B,GAAY,EAC/D5rC,EAAU,EAAI,EAAGuV,EAAmBra,GAAU,KAAM6D,GAAW8lE,EAAmB,MAAQc,IAClF3lE,EAAS,EAAIuV,EAAmB,KAAM,CAC3C,IAAKowD,EAAQ,EAC/B,EAAmB,CACD94B,EAAmB,IAAK,CACtB,eAAgB,GAAG84B,EAAQ,KAAOhB,EAAgB,KAAK,GACvD,MAAOrqF,GAAe,CAAC,wBAAyB,CAC9C,gCAAiCqrF,EAAQ,KAAOhB,EAAgB,MAChE,8BAA+BG,EAAmB,KACxE,CAAqB,CAAC,EACF,KAAM,qBAAqBa,EAAQ,EAAE,GACrC,SAAU,IACV,QAAS1kD,GAAe2tB,GAAWq2B,EAA8BU,EAAQ,EAAE,EAAG,CAAC,SAAS,CAAC,EACzF,UAAWtkD,GAAUutB,GAAWq2B,EAA8BU,EAAQ,EAAE,EAAG,CAAC,OAAO,CAAC,CACxG,EAAqB,CACDb,EAAmB,OAAS9kE,EAAS,EAAIuV,EAAmB,MAAOy3B,GAAY,CAC7E24B,EAAQ,MAAQ3lE,IAAaC,GAAY2lE,GAAa,CACpD,IAAK,EACL,OAAQD,EAAQ,IACxC,EAAyB,KAAM,EAAG,CAAC,QAAQ,CAAC,GAAK1tE,GAAmB,GAAI,EAAI,CAC5E,CAAqB,GAAKA,GAAmB,GAAI,EAAI,EACjC40C,EAAmB,OAAQI,GAAY5wD,GAAgBspF,EAAQ,IAAI,EAAG,CAAC,CAC3F,EAAqB,GAAI95B,EAAU,CACnC,CAAiB,EACF,EAAG,GAAG,EACrB,CAAa,EACb,CAAW,EACD,IAAK,GACf,EAAY,MACZ,CAAO,EAAG,KAAM,CAAC,QAAS,yBAA0B,YAAa,wBAAyB,MAAM,CAAC,GAAK5zC,GAAmB,GAAI,EAAI,CAE/H,CACF,CAAC,EACK4tE,GAAsCp6B,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECrM/FH,GAAa,CAAC,KAAM,iBAAiB,EACrCC,GAAa,CAAC,IAAI,EAClBC,GAAa,CAAE,MAAO,mCAAmC,EACzDmB,GAAa,CAAE,MAAO,+BAA+B,EACrDlB,GAA4B3wC,GAAgB,CAChD,OAAQ,uBACR,MAAO,CACL,KAAM,GACN,YAAa,GACb,GAAI,GACJ,MAAO,EACX,EACE,MAAM4wC,EAAS,CACb,MAAMtxD,EAAQsxD,EACRj0C,EAAQ4J,GAAQ,EAChB,CAAE,gBAAA8iE,EAAiB,kBAAAC,CAAiB,EAAKP,GAAoB,EAC7DC,EAAStzE,GAAOozE,EAA8B,EAC9C6B,EAASrmF,GAAS,IAAM,oBAAsBhF,EAAM,EAAE,EAC5D,OAAAgQ,GAAM,IAAMhQ,EAAM,GAAI,IAAM,CACrB,iBAAiB,KAAKA,EAAM,EAAE,GACjCqgF,GAAO,KAAK,oBAAoBrgF,EAAM,EAAE,uDAAuD,CAEnG,EAAG,CAAE,UAAW,GAAM,EACtBgQ,GAAM,CAAC,IAAMhQ,EAAM,GAAI,IAAMA,EAAM,KAAM,IAAMA,EAAM,KAAK,EAAG,CAAC,CAACsrF,EAAOC,EAASC,CAAQ,EAAG,CAACC,OAAc,CACvGzB,EAAkByB,CAAK,EACvB1B,EAAgBuB,EAAOC,EAASC,EAAUnuE,GAAO,OAAI,CAAI,CAC3D,CAAC,EACDP,GAAU,IAAM,CACditE,EAAgB/pF,EAAM,GAAIA,EAAM,KAAMA,EAAM,MAAOqd,GAAO,QAAQ,CACpE,CAAC,EACDN,GAAgB,IAAM,CACpBitE,EAAkBhqF,EAAM,EAAE,CAC5B,CAAC,EACM,CAACkyD,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,UAAW,CAChD,GAAIuwD,EAAO,MACX,kBAAmB,GAAGA,EAAO,KAAK,UAClC,MAAOxrF,GAAe,CAAC,uBAAwB,CAAE,+BAAgCgO,EAAM67E,CAAM,EAAG,CAAC,CACzG,EAAS,CACDt3B,EAAmB,KAAM,CACvB,GAAI,GAAGi5B,EAAO,KAAK,UACnB,MAAO,4BACjB,EAAWzpF,GAAgB0vD,EAAQ,IAAI,EAAG,EAAGH,EAAU,EAC/CiB,EAAmB,MAAOhB,GAAYxvD,GAAgB0vD,EAAQ,WAAW,EAAG,CAAC,EAC7Ec,EAAmB,MAAOG,GAAY,CACpCttC,GAAWitC,EAAK,OAAQ,UAAW,GAAI,OAAQ,EAAI,CAC7D,CAAS,CACT,EAAS,GAAIhB,EAAU,EAErB,CACF,CAAC,EACKw6B,GAAuC16B,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECnDtG7nC,GAASmzC,EAAG,EACZ,MAAMtL,GAA4B3wC,GAAgB,CAChD,OAAQ,gCACR,MAAM4wC,EAAS,CACb,MAAO,CAACY,EAAMC,KACL5sC,EAAS,EAAIC,GAAYkmE,GAAsB,CACpD,GAAI,qBACJ,KAAM79E,EAAMqxB,EAAC,EAAE,oBAAoB,CAC3C,EAAS,CACD,QAASvqB,GAAQ,IAAM,CACrBy9C,EAAmB,MAAO,CACxB,MAAOvyD,GAAeqyD,EAAK,OAAO,2BAA2B,CACzE,EAAa,CACDjtC,GAAWitC,EAAK,OAAQ,SAAS,CAC7C,EAAa,CAAC,CACd,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,MAAM,CAAC,EAElB,CACF,CAAC,EACKy5B,GAA8B,qCAC9BlL,GAAS,CACb,4BAAAkL,EACF,EACM5kE,GAAa,CACjB,OAAU05D,EACZ,EACMmL,GAAgD56B,GAAYK,GAAW,CAAC,CAAC,eAAgBtqC,EAAU,CAAC,CAAC,EC5B3GyC,GAAS0yC,EAAE,EACX,MAAM7K,GAA4B3wC,GAAgB,CAChD,OAAQ,QACR,MAAO,CACL,OAAQ,CAAE,QAAS,MAAY,EAC/B,IAAK,CAAE,KAAM,QAAS,QAAS,IAAMujE,EAAK,CAC9C,EACE,MAAM3yB,EAAS,CACb,MAAMu6B,EAAS7mF,GAAS,KAAO,CAC7B,QAAS,IACT,UAAW,IACX,UAAW,IACX,WAAY,IACZ,QAAUssD,EAAQ,IAAkB,IAAZpyB,GAAE,MAAM,EAChC,IAAMoyB,EAAQ,IAAiB,IAAXpyB,GAAE,KAAK,EAC3B,MAAQoyB,EAAQ,IAAmB,IAAbpyB,GAAE,OAAO,EAC/B,MAAQoyB,EAAQ,IAAmB,IAAbpyB,GAAE,OAAO,EAC/B,IAAMoyB,EAAQ,IAAiB,IAAXpyB,GAAE,KAAK,EAC3B,OAASoyB,EAAQ,IAAoB,IAAdpyB,GAAE,QAAQ,EACjC,OAASoyB,EAAQ,IAAoB,IAAdpyB,GAAE,QAAQ,EACjC,MAAOA,GAAE,OAAO,CAEtB,EAAM,EACI4sD,EAAQ9mF,GAAS,IAAMssD,EAAQ,QAAUu6B,EAAO,MAAMv6B,EAAQ,MAAM,GAAKA,EAAQ,MAAM,EAC7F,MAAO,CAACY,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,MAAOj7B,GAAeqyD,EAAK,OAAO,GAAG,CAC7C,EAAS,CACDjtC,GAAWitC,EAAK,OAAQ,UAAW,GAAI,IAAM,CAC3Cl2B,GAAgBp6B,GAAgBkqF,EAAM,KAAK,EAAG,CAAC,CACzD,CAAS,CACT,EAAS,CAAC,EAER,CACF,CAAC,EACKC,GAAM,aACNtL,GAAS,CACb,uBAAwB,8BACxB,IAAAsL,EACF,EACMhlE,GAAa,CACjB,OAAU05D,EACZ,EACMuL,GAAwBh7B,GAAYK,GAAW,CAAC,CAAC,eAAgBtqC,EAAU,CAAC,CAAC,EC5C7EklE,GAAmB,gDACnB56B,GAA4B3wC,GAAgB,CAChD,OAAQ,WACR,MAAO,CACL,MAAO,CAAE,QAAS,MAAY,EAC9B,OAAQ,CAAE,QAAS,MAAY,CACnC,EACE,MAAM4wC,EAAS,CACb,MAAM46B,EAAUlnF,GAAS,IAChBssD,EAAQ,QAAQ,MAAM,KAAK,EAAE,IAAKtgD,GAAMA,EAAE,MAAM,CACxD,EACD,MAAO,CAACkhD,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,KAAM,CAC3C,MAAOj7B,GAAeqyD,EAAK,OAAO,MAAM,CAChD,EAAS,CACDE,EAAmB,OAAQ,CACzB,KAAM,OACN,MAAOvyD,GAAeqyD,EAAK,OAAO,YAAY,CACxD,EAAW,CACDjtC,GAAWitC,EAAK,OAAQ,SAAU,GAAI,IAAM,EACzC3sC,EAAU,EAAI,EAAGuV,EAAmBra,GAAU,KAAM6D,GAAW4nE,EAAQ,MAAO,CAACC,EAAQprF,KAC/EwkB,EAAS,EAAIC,GAAYwmE,GAAO,CACrC,IAAKjrF,EACL,OAAAorF,CAChB,EAAiB,KAAM,EAAG,CAAC,QAAQ,CAAC,EACvB,EAAG,GAAG,EACnB,CAAW,CACX,EAAW,CAAC,EACJ/5B,EAAmB,OAAQ,CACzB,KAAM,aACN,MAAOvyD,GAAeqyD,EAAK,OAAO,aAAa,CACzD,EAAW,CACDjtC,GAAWitC,EAAK,OAAQ,UAAW,GAAI,IAAM,CAC3Cl2B,GAAgBp6B,GAAgB0vD,EAAQ,OAAS26B,EAAgB,EAAG,CAAC,CACjF,CAAW,CACX,EAAW,CAAC,CACZ,EAAS,CAAC,EAER,CACF,CAAC,EACKG,GAAS,gBACTC,GAAgB,uBAChBC,GAAe,sBACf7L,GAAS,CACb,uBAAwB,8BACxB,OAAA2L,GACA,cAAAC,GACA,aAAAC,EACF,EACMvlE,GAAa,CACjB,OAAU05D,EACZ,EACM8L,GAA2Bv7B,GAAYK,GAAW,CAAC,CAAC,eAAgBtqC,EAAU,CAAC,CAAC,ECnDtFyC,GAASmzC,EAAG,EACZ,MAAMtL,GAA4B3wC,GAAgB,CAChD,OAAQ,eACR,MAAO,CACL,MAAO,CAAE,QAAS,MAAY,CAClC,EACE,MAAM4wC,EAAS,CACb,MAAMk7B,EAAU,gBAAgBl6B,GAAe,CAAE,GACjD,MAAO,CAACJ,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,MAAOj7B,GAAeqyD,EAAK,OAAO,UAAU,CACpD,EAAS,CACDE,EAAmB,MAAO,CACxB,GAAIo6B,EACJ,MAAO3sF,GAAe,CAACqyD,EAAK,OAAO,oBAAqB,CAAE,kBAAmB,CAACZ,EAAQ,MAAO,CAAC,CACxG,EAAW1vD,GAAgB0vD,EAAQ,OAASzjD,EAAMqxB,EAAC,EAAE,oBAAoB,CAAC,EAAG,CAAC,EACtEkzB,EAAmB,KAAM,CAAE,kBAAmBo6B,CAAO,EAAI,CACvDvnE,GAAWitC,EAAK,OAAQ,SAAS,CAC3C,CAAS,CACT,EAAS,CAAC,EAER,CACF,CAAC,EACKu6B,GAAa,oBACbC,GAAsB,6BACtBjM,GAAS,CACb,WAAAgM,GACA,oBAAAC,EACF,EACM3lE,GAAa,CACjB,OAAU05D,EACZ,EACMkM,GAA+B37B,GAAYK,GAAW,CAAC,CAAC,eAAgBtqC,EAAU,CAAC,CAAC,osCCpC1F,SAAS6lE,IAAkB,CACzB,GAAI,CACF,OAAOnE,GAAU,OAAQ,cAAc,CACzC,MAAgB,CAEd,OADA,QAAQ,MAAM,yEAAyE,EACjF,qBAAsB,OAGrB,OAAO,iBAFL,EAGX,CACF,CCg1DO,IAAIt1B,GAAW,gHClyDtB,MAAM05B,GAAYnxB,GAAiB,EAAG,eAAc,EACpD,UAAWl1C,IAAQ,CAAC,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAgB,eAAgB,eAAgB,iBAAkB,eAAgB,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4CAA4C,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,MAAO,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qDAAqD,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,uDAAuD,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,4DAA4D,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,sDAAsD,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,iBAAiB,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,wGAAyG,OAAU,CAAC,mHAAmH,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,6EAA8E,OAAU,CAAC,6FAA6F,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wDAAwD,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,iBAAkB,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,kGAAkG,CAAC,EAAI,CAAE,MAAS,+EAAgF,OAAU,CAAC,uGAAuG,CAAC,EAAI,CAAE,MAAS,mIAAoI,OAAU,CAAC,uIAAuI,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,yEAAyE,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,oBAAqB,oBAAqB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,gCAAiC,gCAAiC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAoB,oBAAqB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,8EAA8E,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,sBAAuB,uBAAwB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,yFAAyF,GAAK,CAAE,MAAS,qFAAsF,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,mHAAmH,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,oFAAoF,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,8DAA8D,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAkB,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,6BAA8B,8BAA8B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,cAAe,eAAe,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,+FAA+F,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,oGAAoG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,8HAA8H,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,+DAA+D,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,2EAA2E,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,0DAA2D,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,sBAAsB,GAAK,CAAE,MAAS,QAAS,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,qIAAqI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,4GAA4G,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,sBAAuB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,wBAAyB,yBAAyB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,8HAA8H,GAAK,CAAE,MAAS,+EAAgF,OAAU,CAAC,uGAAuG,CAAC,EAAI,CAAE,MAAS,mIAAoI,OAAU,CAAC,8IAA8I,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,iFAAiF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,2EAA2E,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,qIAAqI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,2EAA2E,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,iHAAiH,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,wBAAyB,yBAAyB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,0EAA0E,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,8HAA8H,CAAC,EAAI,CAAE,MAAS,+EAAgF,OAAU,CAAC,uGAAuG,CAAC,EAAI,CAAE,MAAS,mIAAoI,OAAU,CAAC,8IAA8I,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,iFAAiF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,oFAAoF,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,qCAAsC,oCAAoC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4EAA4E,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,mEAAmE,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,mGAAmG,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,yBAA0B,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,+HAA+H,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,gGAAgG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,8IAA8I,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,qDAAqD,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,+EAA+E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,mBAAoB,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,gCAAgC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,iBAAiB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,sFAAsF,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,eAAgB,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,gGAAgG,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,oFAAoF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wIAAwI,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,mDAAmD,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,mEAAmE,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,iDAAiD,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAoB,oBAAqB,wBAAwB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yDAAyD,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAoB,oBAAqB,mBAAmB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,4DAA4D,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iFAAiF,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,2BAA4B,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,wCAAyC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,yBAA0B,0BAA2B,yBAAyB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,gDAAgD,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,8DAA8D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,2GAA2G,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,oBAAqB,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,oHAAoH,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,mJAAmJ,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,gDAAgD,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,4EAA4E,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iEAAiE,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,wDAAwD,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAgB,eAAe,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,iIAAiI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,0FAA0F,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,sBAAuB,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,mGAAmG,CAAC,EAAI,CAAE,MAAS,+EAAgF,OAAU,CAAC,2FAA2F,GAAK,CAAE,MAAS,mIAAoI,OAAU,CAAC,mIAAmI,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,6DAA6D,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4FAA4F,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,kEAAkE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,8EAA8E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,uDAAuD,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,4DAA4D,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,sBAAuB,sBAAsB,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,oIAAoI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,kEAAkE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,oGAAoG,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,2FAA4F,OAAU,CAAC,iHAAiH,CAAC,EAAI,CAAE,MAAS,+EAAgF,OAAU,CAAC,sGAAsG,GAAK,CAAE,MAAS,mIAAoI,OAAU,CAAC,iJAAiJ,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,qEAAqE,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,sFAAsF,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,yDAAyD,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,uBAAwB,uBAAwB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,uHAAuH,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,0GAA0G,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,iBAAkB,kBAAmB,kBAAmB,kBAAmB,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,2DAA2D,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,6FAA6F,CAAC,EAAI,CAAE,MAAS,+EAAgF,OAAU,CAAC,0FAA0F,CAAC,EAAI,CAAE,MAAS,mIAAoI,OAAU,CAAC,oJAAoJ,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,uFAAuF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,gFAAgF,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,uBAAwB,uBAAuB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,sEAAsE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,uEAAuE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,2FAA2F,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,yCAAyC,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,gHAAgH,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,yIAAyI,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,kFAAkF,EAAG,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,4BAA6B,4BAA6B,2BAA2B,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,iCAAkC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,sBAAuB,qBAAqB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,uBAAwB,uBAAwB,sBAAsB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,oGAAoG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,+GAA+G,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,0EAA0E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAkB,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,kCAAmC,iCAAiC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,uBAAwB,sBAAsB,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,4FAA4F,GAAK,CAAE,MAAS,qFAAsF,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,2HAA2H,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,8EAA8E,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2CAA2C,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,kBAAkB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,sFAAsF,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,+BAAgC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,sEAAsE,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,gDAAgD,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,mEAAoE,OAAU,CAAC,iFAAiF,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,yEAAyE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,+DAA+D,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,wFAAwF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,sHAAsH,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,8EAA8E,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,gBAAiB,gBAAgB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,uDAAuD,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,8EAA8E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,oCAAqC,oCAAqC,mCAAmC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,iBAAkB,gBAAgB,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,yFAAyF,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,gBAAiB,gBAAiB,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,kHAAkH,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,kGAAkG,GAAK,CAAE,MAAS,yIAA0I,OAAU,CAAC,2JAA2J,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,+EAA+E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,wCAAwC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC;AAAA,EAAqB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,GAAG,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,yIAA0I,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,sCAAsC,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,yCAAyC,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,kEAAkE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,kCAAkC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,EAAG,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qDAAqD,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,4CAA4C,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,uFAAwF,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yCAAyC,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,mFAAmF,GAAK,CAAE,MAAS,yIAA0I,OAAU,CAAC,wGAAwG,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,qEAAqE,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,2CAA2C,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,mFAAmF,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,uBAAwB,uBAAwB,uBAAwB,sBAAsB,GAAK,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,iCAAkC,iCAAkC,iCAAkC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,uBAAwB,sBAAuB,qBAAqB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,oFAAoF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAuB,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,8GAA8G,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wHAAwH,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,iDAAiD,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,uEAAuE,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,8CAA8C,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,sBAAuB,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,+DAA+D,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,yDAAyD,EAAG,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,0BAA0B,GAAK,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,uEAAuE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,wFAAwF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,kDAAkD,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gDAAgD,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,wBAAyB,uBAAuB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,4FAA4F,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,0HAA0H,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,gDAAgD,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,2EAA2E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAkB,mBAAmB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAiC,+BAA+B,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,cAAe,eAAe,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,2DAA2D,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,+FAA+F,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,mBAAoB,mBAAmB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,gGAAgG,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,mFAAmF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,2HAA2H,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,2DAA2D,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,yEAAyE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAmB,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,6IAA6I,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,mFAAmF,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,sBAAuB,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oCAAoC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,sBAAuB,uBAAuB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,+GAA+G,CAAC,EAAI,CAAE,MAAS,+EAAgF,OAAU,CAAC,2FAA2F,CAAC,EAAI,CAAE,MAAS,mIAAoI,OAAU,CAAC,sJAAsJ,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,mEAAmE,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,2EAA2E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0DAA0D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAkB,qBAAsB,qBAAsB,oBAAoB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,kCAAmC,mCAAoC,mCAAoC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAoB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,yEAAyE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,uDAAuD,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,uFAAwF,OAAU,CAAC,oFAAoF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,gBAAiB,kBAAmB,kBAAmB,iBAAiB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,4GAA4G,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,2JAA2J,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uDAAuD,GAAK,CAAE,MAAS,oEAAqE,OAAU,CAAC,wEAAwE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,iBAAkB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,2HAA2H,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,oEAAoE,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,6DAA6D,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,eAAgB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,yBAA0B,qBAAqB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,iHAAiH,CAAC,EAAI,CAAE,MAAS,+EAAgF,OAAU,CAAC,mGAAmG,CAAC,EAAI,CAAE,MAAS,mIAAoI,OAAU,CAAC,oIAAoI,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,8DAA8D,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,+EAA+E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,wEAAwE,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,0BAA2B,2BAA4B,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uCAAwC,wCAAyC,uCAAuC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,sBAAuB,uBAAwB,sBAAsB,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,8FAA8F,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,gCAAgC,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,8DAA8D,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,kHAAkH,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,iGAAiG,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wIAAwI,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,4DAA4D,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,gFAAgF,EAAG,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAoB,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,uEAAuE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,+BAAgC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,qEAAqE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,oBAAqB,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,iCAAkC,kCAAmC,mCAAoC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAoB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,qDAAqD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,uFAAwF,OAAU,CAAC,4EAA4E,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,mEAAmE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,uFAAuF,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,yEAAyE,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,6HAA6H,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,sEAAsE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,sBAAuB,uBAAwB,wBAAyB,sBAAsB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,kCAAmC,mCAAoC,oCAAqC,mCAAmC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,8BAA+B,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAoB,oBAAqB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,gDAAiD,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,qFAAqF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAuB,uBAAwB,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,6FAA6F,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,wHAAwH,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,4EAA4E,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,qBAAsB,qBAAsB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,yCAAyC,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,4EAA4E,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,6EAA6E,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,+BAAgC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,0DAA0D,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,6DAA6D,CAAC,CAAE,GAAK,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,yCAA0C,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,kDAAkD,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,oBAAqB,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,sEAAsE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,+BAAgC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,8CAA8C,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,mDAAmD,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,mDAAmD,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,wDAAwD,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,CAAE,GAAK,CAAE,SAAY,WAAY,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iDAAiD,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,oBAAqB,qBAAsB,sBAAsB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,iDAAiD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,0DAA0D,EAAG,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,iBAAkB,kBAAkB,GAAK,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,6BAA8B,8BAA8B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,cAAe,eAAe,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,WAAY,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,uFAAwF,OAAU,CAAC,uFAAuF,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,sCAAsC,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,oBAAqB,qBAAqB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,yDAAyD,GAAK,CAAE,MAAS,iGAAkG,OAAU,CAAC,gGAAgG,CAAC,EAAI,CAAE,MAAS,qFAAsF,OAAU,CAAC,6EAA6E,GAAK,CAAE,MAAS,yIAA0I,OAAU,CAAC,6GAA6G,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8BAA8B,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,uEAAuE,EAAG,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,gDAAgD,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,sCAAsC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,gFAAgF,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,iBAAkB,gBAAgB,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,kCAAmC,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6CAA6C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,gDAAgD,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,gHAAgH,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,gEAAgE,GAAK,CAAE,MAAS,6DAA8D,OAAU,CAAC,wEAAwE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,yEAAyE,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,mCAAoC,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,+BAA+B,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,oCAAoC,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,yBAAyB,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2BAA2B,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,kBAAmB,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,yDAAyD,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,+EAA+E,CAAC,EAAI,CAAE,MAAS,+EAAgF,OAAU,CAAC,uEAAuE,CAAC,EAAI,CAAE,MAAS,mIAAoI,OAAU,CAAC,2GAA2G,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,8DAA8D,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,mEAAoE,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iEAAiE,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,0DAA2D,OAAU,CAAC,6CAA6C,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,wBAAwB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,kBAAmB,mBAAoB,oBAAqB,mBAAmB,CAAC,EAAI,CAAE,MAAS,QAAS,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,mCAAmC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,wGAAyG,OAAU,CAAC,kHAAkH,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,eAAe,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,aAAa,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,qEAAqE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,uDAAuD,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,kBAAmB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,6EAA8E,OAAU,CAAC,0EAA0E,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iDAAiD,GAAK,CAAE,MAAS,2BAA4B,OAAU,CAAC,4BAA4B,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,8CAA8C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,oBAAqB,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,uCAAuC,GAAK,CAAE,MAAS,gCAAiC,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,qBAAsB,sBAAuB,uBAAwB,sBAAsB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,uDAAuD,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,2FAA4F,OAAU,CAAC,4EAA4E,GAAK,CAAE,MAAS,+EAAgF,OAAU,CAAC,oEAAoE,CAAC,EAAI,CAAE,MAAS,mIAAoI,OAAU,CAAC,mHAAmH,GAAK,CAAE,MAAS,8CAA+C,OAAU,CAAC,8BAA8B,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,wBAAwB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,oDAAqD,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,sEAAsE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,2CAA2C,GAAK,CAAE,MAAS,wCAAyC,OAAU,CAAC,wCAAwC,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,2EAA2E,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,qCAAqC,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,gBAAgB,GAAK,CAAE,MAAS,0BAA2B,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,gEAAgE,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,qCAAqC,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,6FAA6F,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,mCAAmC,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,yBAAyB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,2CAA4C,OAAU,CAAC,2DAA2D,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,+CAA+C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,0CAA0C,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,kBAAkB,GAAK,CAAE,MAAS,kDAAmD,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,4BAA6B,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,gCAAgC,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,yDAAyD,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,uFAAuF,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,gHAAgH,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,gDAAgD,GAAK,CAAE,MAAS,oCAAqC,OAAU,CAAC,4CAA4C,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,wCAAwC,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,sDAAsD,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,iFAAiF,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,KAAM,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,uCAAuC,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,kDAAkD,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,2CAA2C,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,gBAAiB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,+BAA+B,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,6BAA6B,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,iCAAiC,GAAK,CAAE,MAAS,YAAa,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,kEAAkE,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,+DAA+D,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,kCAAkC,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,YAAY,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,uBAAuB,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,aAAa,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,oDAAoD,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,iBAAiB,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,2BAA2B,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,gEAAgE,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,sCAAuC,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,wBAAyB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,oBAAoB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,+BAAgC,OAAU,CAAC,YAAY,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,eAAe,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,qBAAsB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,iBAAiB,CAAC,CAAE,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,gDAAiD,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,wCAAyC,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mEAAoE,OAAU,CAAC,6BAA6B,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,0BAA0B,GAAK,CAAE,MAAS,mBAAoB,aAAgB,oBAAqB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,gCAAiC,aAAgB,iCAAkC,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,MAAM,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,8BAA+B,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iBAAkB,aAAgB,kBAAmB,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,UAAW,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,UAAU,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,0BAA2B,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,4DAA6D,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sBAAsB,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,gDAAiD,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,uFAAwF,OAAU,CAAC,4BAA4B,GAAK,CAAE,MAAS,uBAAwB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,6BAA8B,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,2CAA4C,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,2BAA4B,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,yCAA0C,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,WAAW,GAAK,CAAE,MAAS,MAAO,OAAU,CAAC,GAAG,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,KAAK,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,4CAA6C,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,kDAAmD,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,4BAA6B,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,uBAAwB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,eAAgB,aAAgB,gBAAiB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,iBAAkB,OAAU,CAAC,OAAO,CAAC,EAAI,CAAE,MAAS,cAAe,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,iDAAkD,OAAU,CAAC,iBAAiB,CAAC,EAAI,CAAE,MAAS,iGAAkG,OAAU,CAAC,0BAA0B,CAAC,EAAI,CAAE,MAAS,yIAA0I,OAAU,CAAC,iCAAiC,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,8CAA+C,OAAU,CAAC,qBAAqB,CAAC,EAAI,CAAE,MAAS,oCAAqC,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,mCAAoC,OAAU,CAAC,SAAS,GAAK,CAAE,MAAS,oDAAqD,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,oEAAqE,OAAU,CAAC,uBAAuB,EAAG,CAAC,EAAI,CAAE,SAAY,QAAS,aAAgB,CAAC,CAAE,MAAS,oCAAqC,OAAU,CAAC,mBAAmB,CAAC,EAAI,CAAE,MAAS,sCAAuC,OAAU,CAAC,mBAAmB,GAAK,CAAE,MAAS,yCAA0C,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,gBAAiB,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,kCAAmC,OAAU,CAAC,UAAU,GAAK,CAAE,MAAS,mBAAoB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,wBAAyB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,YAAa,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,6BAA8B,OAAU,CAAC,WAAW,CAAC,EAAI,CAAE,MAAS,sBAAuB,OAAU,CAAC,SAAS,CAAC,EAAI,CAAE,MAAS,4DAA6D,OAAU,CAAC,uBAAuB,CAAC,EAAI,CAAE,MAAS,6DAA8D,OAAU,CAAC,sBAAsB,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,GAAG,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,WAAY,OAAU,CAAC,KAAK,GAAK,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,cAAc,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,MAAO,OAAU,CAAC,GAAG,CAAC,EAAI,CAAE,MAAS,aAAc,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,kBAAmB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,mBAAoB,OAAU,CAAC,OAAO,GAAK,CAAE,MAAS,4CAA6C,OAAU,CAAC,gBAAgB,CAAC,EAAI,CAAE,MAAS,oBAAqB,OAAU,CAAC,QAAQ,GAAK,CAAE,MAAS,SAAU,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,qBAAsB,OAAU,CAAC,QAAQ,CAAC,EAAI,CAAE,MAAS,eAAgB,OAAU,CAAC,MAAM,CAAC,EAAI,CAAE,MAAS,gCAAiC,OAAU,CAAC,kBAAkB,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,OAAQ,OAAU,CAAC,IAAI,CAAC,EAAI,CAAE,MAAS,UAAW,OAAU,CAAC,IAAI,GAAK,CAAE,MAAS,iDAAkD,OAAU,CAAC,gBAAgB,CAAC,CAAE,CAAC,CAAE,EAAG,CACxgzR,KAAM,CAAE,SAAA6lC,EAAU,aAAAyP,CAAY,EAAKt1C,EAC7BmnC,EAAS,CACb,QAAS,GACT,aAAc,CACZ,GAAI,OAAO,YAAYmO,EAAa,IAAKxO,GAAgB,CAACA,EAAY,MAAOA,CAAW,CAAC,CAAC,CAChG,CACA,EACEu/B,GAAU,eAAexgC,EAAUsB,CAAM,CAC3C,CACA,MAAM2rB,GAAKuT,GAAU,MAAK,EAChBvT,GAAG,SAAS,KAAKA,EAAE,EAC7B,MAAMp6C,GAAIo6C,GAAG,QAAQ,KAAKA,EAAE,EAKb8G,GAAgB,EAAG,OAAO,oBAAoB,EAAE,eAAc,EAAG,MAAK,EA8RrF,MAAM0M,GAA2B,IAC3B3B,GAA8BzqE,GAAgB,CAClD,OAAQ,iBACR,MAAM4wC,EAAS,CAAE,OAAQy7B,CAAQ,EAAI,CACnC,IAAIC,EAAuB,KAC3B,MAAMC,EAAYpsE,GAAe,WAAW,EACtCqsE,EAAersE,GAAe,cAAc,EAC5CssE,EAAetsE,GAAe,cAAc,EAC5CusE,EAAU5/E,GAAI,EAAK,EACzB,SAAS6/E,EAAuB,CAAE,KAAA7F,GAAQ,CACxC4F,EAAQ,MAAQ5F,CAClB,CACA,SAAS8F,EAASrxD,EAAM8jD,EAAO,CAC7B,GAAIA,IAAU,YAAa,CACzB,MAAMzjF,EAAK4wF,EAAa,MACxB,GAAI,CAAC5wF,EACH,OAEE0wF,IAAyB,OAC3B,aAAaA,CAAoB,EACjCA,EAAuB,MAEzB1wF,EAAG,YAAc,GACjB,WAAW,IAAM,CACVA,IAGLA,EAAG,YAAc2/B,EACjB+wD,EAAuB,WAAW,IAAM,CACtC1wF,EAAG,YAAc,GACjB0wF,EAAuB,IACzB,EAAGF,EAAwB,EAC7B,EAAG,EAAE,CACP,KAAO,CACL,MAAMxwF,EAAK2wF,EAAU,MACrB,GAAI,CAAC3wF,EACH,OAEF,MAAMixF,EAAK,SAAS,cAAc,IAAI,EACtCA,EAAG,YAActxD,EACjB3/B,EAAG,YAAYixF,CAAE,EACjB,WAAW,IAAMA,EAAG,OAAM,EAAIT,EAAwB,CACxD,CACF,CACA,SAASU,GAAiB,CACxB,OAAOL,EAAa,KACtB,CACA,OAAArwE,GAAU,IAAM,CACd,MAAM2wE,EAAQ,SAAS,cAAc,iBAAiB,EAClDA,IACFL,EAAQ,MAAQ,CAACK,EAAM,UAAU,SAAS,uBAAuB,GAEnEjP,GAAU,qBAAsB6O,CAAsB,CACxD,CAAC,EACDzqE,GAAY,IAAM,CAChB67D,GAAY,qBAAsB4O,CAAsB,CAC1D,CAAC,EACDN,EAAS,CAAE,SAAAO,EAAU,eAAAE,EAAgB,EAC9B,CAACt7B,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmBra,GAAU,KAAM,CACrD2xC,EAAmB,KAAM,CACvB,QAAS,YACT,IAAK66B,EACL,YAAa,SACb,cAAe,QACf,gBAAiB,YACjB,MAAO,iBACjB,EAAW,KAAM,GAAG,EACZ76B,EAAmB,MAAO,CACxB,QAAS,eACT,IAAK86B,EACL,YAAa,YACb,cAAe,OACf,MAAO,iBACjB,EAAW,KAAM,GAAG,EACZ96B,EAAmB,MAAO,CACxB,QAAS,eACT,IAAK+6B,EACL,MAAOttF,GAAe,CAACqyD,EAAK,OAAO,eAAgB,CAAE,CAACA,EAAK,OAAO,sBAAsB,EAAGk7B,EAAQ,KAAK,CAAE,CAAC,CACrH,EAAW,KAAM,CAAC,CAClB,EAAS,EAAE,EAET,CACF,CAAC,EACKM,GAAiB,0BACjBC,GAAyB,mCACzBC,GAAW,CACf,eAAAF,GACA,uBAAAC,EACF,EACM38B,GAAc,CAACC,EAAKjxD,IAAU,CAClC,MAAMsG,EAAS2qD,EAAI,WAAaA,EAChC,SAAW,CAACt1D,EAAKC,CAAG,IAAKoE,EACvBsG,EAAO3K,CAAG,EAAIC,EAEhB,OAAO0K,CACT,EACMunF,GAAe,CACnB,OAAUD,EACZ,EACME,GAAiC98B,GAAYm6B,GAAa,CAAC,CAAC,eAAgB0C,EAAY,CAAC,CAAC,EAC1FE,GAAe,CAAC,MAAM,EACtBC,GAAe,CAAC,WAAW,EAC3BzN,GAA8B7/D,GAAgB,CAClD,OAAQ,oBACR,MAAO,CACL,QAAS,GACT,OAAQ,CAAE,KAAM,QAAS,QAAS,EAAK,EACvC,KAAM,CAAE,QAAS,MAAM,EACvB,QAAS,GACT,QAAS,CAAE,KAAM,QAAS,QAAS,EAAK,EACxC,KAAM,GACN,QAAS,CAAE,KAAM,SAAU,QAAS,MAAM,EAC1C,OAAQ,CAAE,KAAM,SAAU,QAAS,MAAM,CAC7C,EACE,MAAO,CAAC,SAAS,EACjB,MAAM4wC,EAAS,CAAE,OAAQy7B,EAAU,KAAMx7B,GAAU,CACjD,MAAMvxD,EAAQsxD,EACRpkC,EAAOqkC,EACP08B,EAAUzgF,GAAI,IAAI,EACxB,IAAI0gF,EAAS,KACb,MAAMhuF,EAAQkmC,GAAY,EACpB+nD,EAAYnpF,GAAS,IAAMhF,EAAM,KAAOE,EAAM,SAASF,EAAM,KAAK,QAAQ,UAAW,EAAE,CAAC,EAAE,EAAI,IAAI,EAClGouF,EAAkBppF,GAAS,IAAM,OAAOhF,EAAM,SAAY,QAAQ,EAClEu9D,EAAYv4D,GAAS,IAAMhF,EAAM,OAASquF,GAAU,OAAO,EAC3DC,EAAStpF,GAAS,IAAMhF,EAAM,OAASquF,GAAU,IAAI,EAC3D,SAASE,GAAU,CACbL,IAAW,OACb,aAAaA,CAAM,EACnBA,EAAS,MAEXhhE,EAAK,SAAS,CAChB,CACA,SAASshE,EAAgBrhE,EAAO,CAC9BA,EAAM,gBAAe,EACrBntB,EAAM,SAASmtB,CAAK,EACpBohE,EAAO,CACT,CACA,OAAAzxE,GAAU,IAAM,CACV9c,EAAM,mBAAmB,MAAQiuF,EAAQ,OAC3CA,EAAQ,MAAM,YAAYjuF,EAAM,OAAO,EAErCA,EAAM,QAAU,IAClBkuF,EAAS,WAAWK,EAASvuF,EAAM,OAAO,EAE9C,CAAC,EACD4iB,GAAY,IAAM,CACZsrE,IAAW,OACb,aAAaA,CAAM,EACnBA,EAAS,KAEb,CAAC,EACDnB,EAAS,CAAE,KAAMwB,EAAS,EACnB,CAACr8B,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,MAAOj7B,GAAe,CAACqyD,EAAK,OAAO,MAAOi8B,EAAU,MAAO,CAAE,CAACj8B,EAAK,OAAO,eAAe,EAAGZ,EAAQ,OAAO,CAAE,CAAC,EAC9G,KAAMA,EAAQ,KACd,QAASa,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAW7C,EAAQ,UAAO,EACtE,EAAS,CACDiM,EAAU,OAASh4C,IAAauV,EAAmBra,GAAU,CAAE,IAAK,GAAK,CACvE2xC,EAAmB,OAAQ,CACzB,MAAOvyD,GAAeqyD,EAAK,OAAO,YAAY,CAC1D,EAAatwD,GAAgB0vD,EAAQ,OAAO,EAAG,CAAC,EACtCc,EAAmB,OAAQ,CACzB,MAAOvyD,GAAeqyD,EAAK,OAAO,WAAW,EAC7C,cAAe,MAC3B,EAAa,CACDzsC,GAAY5X,EAAMyvD,EAAa,EAAG,CAAE,KAAM,EAAE,CAAE,CAC1D,EAAa,CAAC,CACd,EAAW,EAAE,GAAKgxB,EAAO,OAAS/oE,EAAS,EAAIuV,EAAmBra,GAAU,CAAE,IAAK,GAAK,CAC9E2xC,EAAmB,OAAQ,CACzB,MAAOvyD,GAAeqyD,EAAK,OAAO,YAAY,CAC1D,EAAatwD,GAAgB0vD,EAAQ,OAAO,EAAG,CAAC,EACtC7rC,GAAY5X,EAAMwkD,EAAQ,EAAG,CAC3B,MAAOxyD,GAAeqyD,EAAK,OAAO,eAAe,EACjD,QAAS,WACT,QAAS1rB,GAAcgoD,EAAiB,CAAC,MAAM,CAAC,CAC5D,EAAa,CACD,QAAS75E,GAAQ,IAAM,CACrBqnB,GAAgBp6B,GAAgBiM,EAAMqxB,EAAC,EAAE,MAAM,CAAC,EAAG,CAAC,CAClE,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,OAAO,CAAC,CACzB,EAAW,EAAE,IAAM3Z,IAAauV,EAAmBra,GAAU,CAAE,IAAK,GAAK,CAC/D6wC,EAAQ,QAAU88B,EAAgB,OAAS7oE,EAAS,EAAIuV,EAAmB,OAAQ,CACjF,IAAK,EACL,MAAOj7B,GAAeqyD,EAAK,OAAO,YAAY,EAC9C,UAAWZ,EAAQ,OAC/B,EAAa,KAAM,GAAI08B,EAAY,GAAKI,EAAgB,OAAS7oE,EAAS,EAAIuV,EAAmB,OAAQ,CAC7F,IAAK,EACL,MAAOj7B,GAAeqyD,EAAK,OAAO,YAAY,CAC1D,EAAatwD,GAAgB0vD,EAAQ,OAAO,EAAG,CAAC,IAAM/rC,EAAS,EAAIuV,EAAmB,OAAQ,CAClF,IAAK,EACL,QAAS,UACT,IAAKmzD,EACL,MAAOpuF,GAAeqyD,EAAK,OAAO,YAAY,CAC1D,EAAa,KAAM,CAAC,EACpB,EAAW,EAAE,GACJZ,EAAQ,QAcyB9zC,GAAmB,GAAI,EAAI,GAdzC+H,EAAS,EAAIC,GAAY3X,EAAMwkD,EAAQ,EAAG,CAC5D,IAAK,EACL,MAAOxyD,GAAeqyD,EAAK,OAAO,UAAU,EAC5C,QAAS,WACT,aAAcrkD,EAAMqxB,EAAC,EAAE,OAAO,EAC9B,QAASsH,GAAc+nD,EAAS,CAAC,MAAM,CAAC,CAClD,EAAW,CACD,KAAM55E,GAAQ,IAAM,CAClB8Q,GAAY5X,EAAM+lD,EAAgB,EAAG,CACnC,KAAM/lD,EAAMslD,EAAQ,EACpB,KAAM,EACpB,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,QAAS,YAAY,CAAC,EACrC,EAAS,GAAI46B,EAAY,EAEvB,CACF,CAAC,EACKU,GAAQ,kBACRC,GAAkB,4BAClBC,GAAc,wBACdC,GAAa,uBACbC,GAAgB,0BAChBC,GAAgB,0BAChBC,GAAa,uBACbC,GAAgB,0BAChBC,GAAe,yBACfC,GAAc,wBACdC,GAAa,uBACbC,GAAkB,4BAClB3O,GAAS,CACb,MAAAgO,GACA,WAAY,oBACZ,gBAAAC,GACA,YAAAC,GACA,WAAAC,GACA,cAAAC,GACA,cAAAC,GACA,WAAAC,GACA,cAAAC,GACA,aAAAC,GACA,YAAAC,GACA,WAAAC,GACA,gBAAAC,EACF,EACMroE,GAAa,CACjB,OAAU05D,EACZ,EACM4O,GAAoCr+B,GAAYuvB,GAAa,CAAC,CAAC,eAAgBx5D,EAAU,CAAC,CAAC,EACjG,IAAIsnE,IAA8BiB,IAChCA,EAAW,MAAW,cACtBA,EAAW,QAAa,gBACxBA,EAAW,KAAU,aACrBA,EAAW,QAAa,gBACxBA,EAAW,KAAU,aACrBA,EAAW,QAAa,gBACjBA,IACNjB,IAAa,EAAE,EAClB,MAAMkB,GAAsB,MACtBC,GAAyB,SACzBC,GAA4B,YAClC,IAAIC,IAAkCC,IACpCA,EAAeA,EAAe,IAASJ,EAAmB,EAAI,MAC9DI,EAAeA,EAAe,OAAYH,EAAsB,EAAI,SACpEG,EAAeA,EAAe,UAAeF,EAAyB,EAAI,YACnEE,IACND,IAAiB,EAAE,EAEtB,MAAME,GAAwB,IACxBC,GAA0B,GAChC,SAASC,GAAoBvuD,EAAS,CACpC,OAAOA,IAAYsuD,IAA2BtuD,EAAU,CAC1D,CACA,SAASwuD,IAAkB,CACzB,GAAI,CACF,MAAMxuD,EAAUqrD,MAAmB,SAAS,aAC5C,GAAI,OAAOrrD,GAAY,UAAYuuD,GAAoBvuD,CAAO,EAC5D,OAAOA,CAEX,MAAQ,CACR,CACA,OAAOquD,EACT,CACA,MAAMI,GAAiB,yBACvB,SAASC,GAAsB1xD,EAAU,CACvC,GAAIA,EAAU,CACZ,MAAMj4B,EAAS,SAAS,cAAci4B,CAAQ,EAC9C,GAAIj4B,EAAQ,CACV,MAAM4pF,EAAM,SAAS,cAAc,KAAK,EACxC,OAAA5pF,EAAO,YAAY4pF,CAAG,EACfhpD,GAAU4mD,EAAc,EAAE,MAAMoC,CAAG,CAC5C,CACF,CACA,MAAMvzD,EAAI,OACJnY,EAASmY,EAAEqzD,EAAc,EAC/B,GAAIxrE,GAAU,SAAS,KAAK,SAASA,EAAO,EAAE,EAC5C,OAAOA,EAAO,IAEhB,MAAMloB,EAAK,SAAS,cAAc,KAAK,EACvC,SAAS,KAAK,YAAYA,CAAE,EAC5B,MAAM6zF,EAAMjpD,GAAU4mD,EAAc,EAAE,MAAMxxF,CAAE,EAC9C,OAAAqgC,EAAEqzD,EAAc,EAAI,CAAE,IAAAG,EAAK,GAAA7zF,CAAE,EACtB6zF,CACT,CACA,SAASC,GAAYC,EAAU,CAE7B,MAAMz3E,EADUq3E,GAAsBI,EAAS,QAAQ,EAC7B,eAAc,GAAM,SAAS,KACjD1xD,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,MAAM,QAAU,mBACxB/lB,EAAU,YAAY+lB,CAAO,EAC7B,MAAM7S,EAAMob,GAAUmoD,GAAmB,CACvC,QAASgB,EAAS,QAClB,OAAQA,EAAS,OACjB,KAAMA,EAAS,KACf,QAASA,EAAS,QAElB,QAAS,CAACA,EAAS,MACnB,KAAMA,EAAS,KACf,QAASA,EAAS,QAClB,OAAQA,EAAS,OACjB,UAAW,IAAM,CACfA,EAAS,WAAQ,EACjBvkE,EAAI,QAAO,EACX6S,EAAQ,OAAM,CAChB,CACJ,CAAG,EACK2xD,EAAKxkE,EAAI,MAAM6S,CAAO,EAC5B,MAAO,CACL,UAAW,IAAM2xD,EAAG,KAAI,CAC5B,CACA,CACA,SAASC,GAAex0E,EAAM,CAC5B,OAAIA,aAAgB,SAAWA,EAAK,aAAa,aAAa,IAAM,OAC3D,GAELA,EAAK,WAAa,KAAK,UAClBA,EAAK,aAAe,GAEtB,MAAM,KAAKA,EAAK,UAAU,EAAE,IAAIw0E,EAAc,EAAE,KAAK,EAAE,CAChE,CACA,SAASC,GAAoBhqE,EAAMiqE,EAAQ,CACzC,OAAI,OAAOjqE,GAAS,SACbiqE,EAGEF,GAAe,IAAI,UAAS,EAAG,gBAAgB/pE,EAAM,WAAW,EAAE,IAAI,EAFpEA,EAIJ+pE,GAAe/pE,CAAI,CAC5B,CACA,SAASkqE,GAAYlqE,EAAMtW,EAAS,CAClC,MAAM89C,EAAO,CACX,QAAS+hC,GAAe,EACxB,OAAQ,GACR,KAAM,OACN,SAAU,OACV,SAAU,OACV,QAAS,OACT,MAAO,GACP,SAAU,OACV,GAAG7/E,CACP,EACM,OAAOsW,GAAS,UAAY,CAACwnC,EAAK,SACpCxnC,EAAO,IAAI,YAAY,gBAAgBA,EAAM,WAAW,EAAE,KAAK,WAEjE,IAAImqE,EAAWjB,GAAc,OAM7B,GALI1hC,EAAK,SACP2iC,EAAW3iC,EAAK,UACPA,EAAK,OAAS,eAAiBA,EAAK,OAAS,gBACtD2iC,EAAWjB,GAAc,WAEvBiB,IAAajB,GAAc,IAAK,CAClC,MAAMzzD,EAAOu0D,GAAoBhqE,EAAMwnC,EAAK,MAAM,EAC5C4iC,EAAgB,CAElB,cAEC1xD,GAAE,mBAAoB,CAAE,QAASjD,CAAI,CAAE,EAExC,gBAECiD,GAAE,qBAAsB,CAAE,QAASjD,CAAI,CAAE,EAE1C,aAECiD,GAAE,kBAAmB,CAAE,QAASjD,CAAI,CAAE,EAEvC,gBAECiD,GAAE,qBAAsB,CAAE,QAASjD,CAAI,CAAE,CAClD,EACU40D,GAAgB7iC,EAAK,MAAQ4iC,EAAc5iC,EAAK,IAAI,IAAM/xB,EAChEg0D,GAAsBjiC,EAAK,QAAQ,EAAE,SACnC6iC,EACAF,IAAajB,GAAc,UAAY,YAAc,QAC3D,CACE,CACA,OAAOU,GAAY,CACjB,QAAS5pE,EACT,OAAQwnC,EAAK,OACb,KAAMA,EAAK,KACX,QAASA,EAAK,QACd,MAAOA,EAAK,MACZ,KAAM2iC,IAAajB,GAAc,UAAY,QAAU,SACvD,SAAU1hC,EAAK,SACf,SAAUA,EAAK,SACf,QAASA,EAAK,QACd,OAAQ,MACZ,CAAG,CACH,CACA,SAAS8iC,GAAU70D,EAAM/rB,EAAS,CAChC,OAAOwgF,GAAYz0D,EAAM,CACvB,GAAG/rB,EACH,KAAM,aAEV,CAAG,CACH,CAeA,SAAS6gF,GAAY90D,EAAM/rB,EAAS,CAClC,OAAOwgF,GAAYz0D,EAAM,CACvB,GAAG/rB,EACH,KAAM,eAEV,CAAG,CACH,CCxwBA,MAAKmhD,GAAU,CACb,KAAM,oBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,oJAAoJ,iDAXhK4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,4CACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,kECO/B7C,GAAU,CACb,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,iJAAiJ,iDAX7J4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,0CACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,kECJrB,SAAS88B,GAAKrzF,EAAIwK,EAAS,CACxC,OAAO,UAAgB,CACrB,OAAOxK,EAAG,MAAMwK,EAAS,SAAS,CACpC,CACF,CCPA,KAAM,UAAEktD,EAAQ,EAAK,OAAO,UACtB,CAAE,eAAA1d,EAAc,EAAK,OACrB,CAAE,SAAA3vC,GAAU,YAAAipF,EAAW,EAAK,OAG5Bz0F,IACJ,CAAC,CAAE,eAAAA,CAAc,IACjB,CAACkC,EAAK8yB,IACJh1B,EAAe,KAAKkC,EAAK8yB,CAAI,GAC/B,OAAO,SAAS,EAcZ0/D,GAAyB,CAACC,EAAO3/D,IAAS,CAC9C,IAAI9yB,EAAMyyF,EACV,MAAM1wF,EAAO,GAEb,KAAO/B,GAAO,MAAQA,IAAQ,OAAO,WAAW,CAC9C,GAAI+B,EAAK,QAAQ/B,CAAG,IAAM,GACxB,MAAO,GAIT,GAFA+B,EAAK,KAAK/B,CAAG,EAETlC,GAAekC,EAAK8yB,CAAI,EAC1B,MAAO,GAET9yB,EAAMi5C,GAAej5C,CAAG,CAC1B,CACA,MAAO,EACT,EAaM0yF,GAAc,CAAC1yF,EAAK8yB,IACxB9yB,GAAO,MAAQwyF,GAAuBxyF,EAAK8yB,CAAI,EAAI9yB,EAAI8yB,CAAI,EAAI,OAE3D6/D,IAAWzzF,GAAWuzF,GAAU,CACpC,MAAM11F,EAAM45D,GAAS,KAAK87B,CAAK,EAC/B,OAAOvzF,EAAMnC,CAAG,IAAMmC,EAAMnC,CAAG,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAE,YAAW,EACjE,GAAG,OAAO,OAAO,IAAI,CAAC,EAEhB61F,GAAc/qF,IAClBA,EAAOA,EAAK,YAAW,EACf4qF,GAAUE,GAAOF,CAAK,IAAM5qF,GAGhCgrF,GAAchrF,GAAU4qF,GAAU,OAAOA,IAAU5qF,EASnD,CAAE,QAAA7J,EAAO,EAAK,MASd80F,GAAcD,GAAW,WAAW,EAS1C,SAASE,GAAS71F,EAAK,CACrB,OACEA,IAAQ,MACR,CAAC41F,GAAY51F,CAAG,GAChBA,EAAI,cAAgB,MACpB,CAAC41F,GAAY51F,EAAI,WAAW,GAC5BmB,GAAWnB,EAAI,YAAY,QAAQ,GACnCA,EAAI,YAAY,SAASA,CAAG,CAEhC,CASA,MAAM81F,GAAgBJ,GAAW,aAAa,EAS9C,SAASK,GAAkB/1F,EAAK,CAC9B,IAAIkN,EACJ,OAAI,OAAO,YAAgB,KAAe,YAAY,OACpDA,EAAS,YAAY,OAAOlN,CAAG,EAE/BkN,EAASlN,GAAOA,EAAI,QAAU81F,GAAc91F,EAAI,MAAM,EAEjDkN,CACT,CASA,MAAM9L,GAAWu0F,GAAW,QAAQ,EAQ9Bx0F,GAAaw0F,GAAW,UAAU,EASlCK,GAAWL,GAAW,QAAQ,EAS9Br0F,GAAYi0F,GAAUA,IAAU,MAAQ,OAAOA,GAAU,SAQzD1sD,GAAa0sD,GAAUA,IAAU,IAAQA,IAAU,GASnD5zF,GAAiB3B,GAAQ,CAC7B,GAAI,CAACsB,GAAStB,CAAG,EACf,MAAO,GAGT,MAAMi2F,EAAYl6C,GAAe/7C,CAAG,EACpC,OACGi2F,IAAc,MACbA,IAAc,OAAO,WACrBl6C,GAAek6C,CAAS,IAAM,OAIhC,CAACX,GAAuBt1F,EAAKq1F,EAAW,GACxC,CAACC,GAAuBt1F,EAAKoM,EAAQ,CAEzC,EASM8pF,GAAiBl2F,GAAQ,CAE7B,GAAI,CAACsB,GAAStB,CAAG,GAAK61F,GAAS71F,CAAG,EAChC,MAAO,GAGT,GAAI,CACF,OAAO,OAAO,KAAKA,CAAG,EAAE,SAAW,GAAK,OAAO,eAAeA,CAAG,IAAM,OAAO,SAChF,MAAY,CAEV,MAAO,EACT,CACF,EASMkB,GAASw0F,GAAW,MAAM,EAS1BS,GAAST,GAAW,MAAM,EAa1BU,GAAqB30F,GAClB,CAAC,EAAEA,GAAS,OAAOA,EAAM,IAAQ,KAWpC40F,GAAiBC,GAAaA,GAAY,OAAOA,EAAS,SAAa,IASvEC,GAASb,GAAW,MAAM,EAS1Bc,GAAad,GAAW,UAAU,EASlCe,GAAYz2F,GAAQsB,GAAStB,CAAG,GAAKmB,GAAWnB,EAAI,IAAI,EAS9D,SAASohD,IAAY,CACnB,OAAI,OAAO,WAAe,IAAoB,WAC1C,OAAO,KAAS,IAAoB,KACpC,OAAO,OAAW,IAAoB,OACtC,OAAOzhD,GAAW,IAAoBA,GACnC,EACT,CAEA,MAAM86E,GAAIr5B,GAAS,EACbs1C,GAAe,OAAOjc,GAAE,SAAa,IAAcA,GAAE,SAAW,OAEhEkc,GAAcpB,GAAU,CAC5B,GAAI,CAACA,EAAO,MAAO,GACnB,GAAImB,IAAgBnB,aAAiBmB,GAAc,MAAO,GAE1D,MAAMvmF,EAAQ4rC,GAAew5C,CAAK,EAElC,GADI,CAACplF,GAASA,IAAU,OAAO,WAC3B,CAAChP,GAAWo0F,EAAM,MAAM,EAAG,MAAO,GACtC,MAAMqB,EAAOnB,GAAOF,CAAK,EACzB,OACEqB,IAAS,YAERA,IAAS,UAAYz1F,GAAWo0F,EAAM,QAAQ,GAAKA,EAAM,SAAQ,IAAO,mBAE7E,EASMsB,GAAoBnB,GAAW,iBAAiB,EAEhD,CAACoB,GAAkBC,GAAWC,GAAYC,EAAS,EAAI,CAC3D,iBACA,UACA,WACA,SACF,EAAE,IAAIvB,EAAU,EASVwB,GAAQr3F,GACLA,EAAI,KAAOA,EAAI,KAAI,EAAKA,EAAI,QAAQ,qCAAsC,EAAE,EAkBrF,SAASs3F,GAAQr0F,EAAKf,EAAI,CAAE,WAAAq1F,EAAa,EAAK,EAAK,GAAI,CAErD,GAAIt0F,IAAQ,MAAQ,OAAOA,EAAQ,IACjC,OAGF,IAAInC,EACAiG,EAQJ,GALI,OAAO9D,GAAQ,WAEjBA,EAAM,CAACA,CAAG,GAGRhC,GAAQgC,CAAG,EAEb,IAAKnC,EAAI,EAAGiG,EAAI9D,EAAI,OAAQnC,EAAIiG,EAAGjG,IACjCoB,EAAG,KAAK,KAAMe,EAAInC,CAAC,EAAGA,EAAGmC,CAAG,MAEzB,CAEL,GAAI+yF,GAAS/yF,CAAG,EACd,OAIF,MAAMkmB,EAAOouE,EAAa,OAAO,oBAAoBt0F,CAAG,EAAI,OAAO,KAAKA,CAAG,EACrE27B,EAAMzV,EAAK,OACjB,IAAIjpB,EAEJ,IAAKY,EAAI,EAAGA,EAAI89B,EAAK99B,IACnBZ,EAAMipB,EAAKroB,CAAC,EACZoB,EAAG,KAAK,KAAMe,EAAI/C,CAAG,EAAGA,EAAK+C,CAAG,CAEpC,CACF,CAUA,SAASu0F,GAAQv0F,EAAK/C,EAAK,CACzB,GAAI81F,GAAS/yF,CAAG,EACd,OAAO,KAGT/C,EAAMA,EAAI,YAAW,EACrB,MAAMipB,EAAO,OAAO,KAAKlmB,CAAG,EAC5B,IAAInC,EAAIqoB,EAAK,OACT9iB,EACJ,KAAOvF,KAAM,GAEX,GADAuF,EAAO8iB,EAAKroB,CAAC,EACTZ,IAAQmG,EAAK,cACf,OAAOA,EAGX,OAAO,IACT,CAEA,MAAMoxF,GAEA,OAAO,WAAe,IAAoB,WACvC,OAAO,KAAS,IAAc,KAAO,OAAO,OAAW,IAAc,OAAS33F,GAGjF43F,GAAoBznE,GAAY,CAAC8lE,GAAY9lE,CAAO,GAAKA,IAAYwnE,GAoB3E,SAASE,MAASC,EAAM,CACtB,KAAM,CAAE,SAAAC,EAAU,cAAAC,CAAa,EAAMJ,GAAiB,IAAI,GAAK,MAAS,GAClErqF,EAAS,GACT0qF,EAAc,CAAC53F,EAAKD,IAAQ,CAEhC,GAAIA,IAAQ,aAAeA,IAAQ,eAAiBA,IAAQ,YAC1D,OAKF,MAAM83F,EAAaH,GAAY,OAAO33F,GAAQ,UAAYs3F,GAAQnqF,EAAQnN,CAAG,GAAMA,EAI7EumB,EAAW1lB,GAAesM,EAAQ2qF,CAAS,EAAI3qF,EAAO2qF,CAAS,EAAI,OACrEl2F,GAAc2kB,CAAQ,GAAK3kB,GAAc3B,CAAG,EAC9CkN,EAAO2qF,CAAS,EAAIL,GAAMlxE,EAAUtmB,CAAG,EAC9B2B,GAAc3B,CAAG,EAC1BkN,EAAO2qF,CAAS,EAAIL,GAAM,GAAIx3F,CAAG,EACxBc,GAAQd,CAAG,EACpBkN,EAAO2qF,CAAS,EAAI73F,EAAI,MAAK,GACpB,CAAC23F,GAAiB,CAAC/B,GAAY51F,CAAG,KAC3CkN,EAAO2qF,CAAS,EAAI73F,EAExB,EAEA,QAASW,EAAI,EAAGiG,EAAI6wF,EAAK,OAAQ92F,EAAIiG,EAAGjG,IAAK,CAC3C,MAAMyR,EAASqlF,EAAK92F,CAAC,EAOrB,GANI,CAACyR,GAAUyjF,GAASzjF,CAAM,IAI9B+kF,GAAQ/kF,EAAQwlF,CAAW,EAEvB,OAAOxlF,GAAW,UAAYtR,GAAQsR,CAAM,GAC9C,SAGF,MAAMk+E,EAAU,OAAO,sBAAsBl+E,CAAM,EACnD,QAASgX,EAAI,EAAGA,EAAIknE,EAAQ,OAAQlnE,IAAK,CACvC,MAAMmnE,EAASD,EAAQlnE,CAAC,EACpB0uE,GAAqB,KAAK1lF,EAAQm+E,CAAM,GAC1CqH,EAAYxlF,EAAOm+E,CAAM,EAAGA,CAAM,CAEtC,CACF,CACA,OAAOrjF,CACT,CAaA,MAAM3M,GAAS,CAACoE,EAAGC,EAAG2H,EAAS,CAAE,WAAA6qF,CAAU,EAAK,MAC9CD,GACEvyF,EACA,CAAC5E,EAAKD,IAAQ,CACRwM,GAAWpL,GAAWnB,CAAG,EAC3B,OAAO,eAAe2E,EAAG5E,EAAK,CAG5B,UAAW,KACX,MAAOq1F,GAAKp1F,EAAKuM,CAAO,EACxB,SAAU,GACV,WAAY,GACZ,aAAc,EACxB,CAAS,EAED,OAAO,eAAe5H,EAAG5E,EAAK,CAC5B,UAAW,KACX,MAAOC,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EACxB,CAAS,CAEL,EACA,CAAE,WAAAo3F,CAAU,CAChB,EACSzyF,GAUHozF,GAAYn1D,IACZA,EAAQ,WAAW,CAAC,IAAM,QAC5BA,EAAUA,EAAQ,MAAM,CAAC,GAEpBA,GAYHo1D,GAAW,CAACC,EAAaC,EAAkB9zF,EAAO+zF,IAAgB,CACtEF,EAAY,UAAY,OAAO,OAAOC,EAAiB,UAAWC,CAAW,EAC7E,OAAO,eAAeF,EAAY,UAAW,cAAe,CAC1D,UAAW,KACX,MAAOA,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EAClB,CAAG,EACD,OAAO,eAAeA,EAAa,QAAS,CAC1C,UAAW,KACX,MAAOC,EAAiB,SAC5B,CAAG,EACD9zF,GAAS,OAAO,OAAO6zF,EAAY,UAAW7zF,CAAK,CACrD,EAWMg0F,GAAe,CAACC,EAAWC,EAAS11B,EAAQ21B,IAAe,CAC/D,IAAIn0F,EACAzD,EACAi1B,EACJ,MAAMrG,EAAS,GAIf,GAFA+oE,EAAUA,GAAW,GAEjBD,GAAa,KAAM,OAAOC,EAE9B,EAAG,CAGD,IAFAl0F,EAAQ,OAAO,oBAAoBi0F,CAAS,EAC5C13F,EAAIyD,EAAM,OACHzD,KAAM,GACXi1B,EAAOxxB,EAAMzD,CAAC,GACT,CAAC43F,GAAcA,EAAW3iE,EAAMyiE,EAAWC,CAAO,IAAM,CAAC/oE,EAAOqG,CAAI,IACvE0iE,EAAQ1iE,CAAI,EAAIyiE,EAAUziE,CAAI,EAC9BrG,EAAOqG,CAAI,EAAI,IAGnByiE,EAAYz1B,IAAW,IAAS7mB,GAAes8C,CAAS,CAC1D,OAASA,IAAc,CAACz1B,GAAUA,EAAOy1B,EAAWC,CAAO,IAAMD,IAAc,OAAO,WAEtF,OAAOC,CACT,EAWME,GAAW,CAAC34F,EAAK44F,EAAcC,IAAa,CAChD74F,EAAM,OAAOA,CAAG,GACZ64F,IAAa,QAAaA,EAAW74F,EAAI,UAC3C64F,EAAW74F,EAAI,QAEjB64F,GAAYD,EAAa,OACzB,MAAMroC,EAAYvwD,EAAI,QAAQ44F,EAAcC,CAAQ,EACpD,OAAOtoC,IAAc,IAAMA,IAAcsoC,CAC3C,EASMh/B,GAAW67B,GAAU,CACzB,GAAI,CAACA,EAAO,OAAO,KACnB,GAAIz0F,GAAQy0F,CAAK,EAAG,OAAOA,EAC3B,IAAI50F,EAAI40F,EAAM,OACd,GAAI,CAACS,GAASr1F,CAAC,EAAG,OAAO,KACzB,MAAMF,EAAM,IAAI,MAAME,CAAC,EACvB,KAAOA,KAAM,GACXF,EAAIE,CAAC,EAAI40F,EAAM50F,CAAC,EAElB,OAAOF,CACT,EAWMk4F,IAAiBC,GAEbrD,GACCqD,GAAcrD,aAAiBqD,GAEvC,OAAO,WAAe,KAAe78C,GAAe,UAAU,CAAC,EAU5D88C,GAAe,CAAC/1F,EAAKf,IAAO,CAGhC,MAAMoqE,GAFYrpE,GAAOA,EAAIsJ,EAAQ,GAET,KAAKtJ,CAAG,EAEpC,IAAIoK,EAEJ,MAAQA,EAASi/D,EAAU,KAAI,IAAO,CAACj/D,EAAO,MAAM,CAClD,MAAM4rF,EAAO5rF,EAAO,MACpBnL,EAAG,KAAKe,EAAKg2F,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,CAC/B,CACF,EAUMC,GAAW,CAACC,EAAQn5F,IAAQ,CAChC,IAAIysD,EACJ,MAAM7rD,EAAM,GAEZ,MAAQ6rD,EAAU0sC,EAAO,KAAKn5F,CAAG,KAAO,MACtCY,EAAI,KAAK6rD,CAAO,EAGlB,OAAO7rD,CACT,EAGMw4F,GAAavD,GAAW,iBAAiB,EAEzCwD,GAAer5F,GACZA,EAAI,YAAW,EAAG,QAAQ,wBAAyB,SAAkB4uB,EAAG0qE,EAAIC,EAAI,CACrF,OAAOD,EAAG,YAAW,EAAKC,CAC5B,CAAC,EAGG,CAAE,qBAAAtB,EAAoB,EAAK,OAAO,UASlCuB,GAAW3D,GAAW,QAAQ,EAE9B4D,GAAoB,CAACx2F,EAAKy2F,IAAY,CAC1C,MAAMpB,EAAc,OAAO,0BAA0Br1F,CAAG,EAClD02F,EAAqB,GAE3BrC,GAAQgB,EAAa,CAAC/sE,EAAYlnB,IAAS,CACzC,IAAIJ,GACCA,EAAMy1F,EAAQnuE,EAAYlnB,EAAMpB,CAAG,KAAO,KAC7C02F,EAAmBt1F,CAAI,EAAIJ,GAAOsnB,EAEtC,CAAC,EAED,OAAO,iBAAiBtoB,EAAK02F,CAAkB,CACjD,EAOMC,GAAiB32F,GAAQ,CAC7Bw2F,GAAkBx2F,EAAK,CAACsoB,EAAYlnB,IAAS,CAE3C,GAAI/C,GAAW2B,CAAG,GAAK,CAAC,YAAa,SAAU,QAAQ,EAAE,SAASoB,CAAI,EACpE,MAAO,GAGT,MAAMzC,EAAQqB,EAAIoB,CAAI,EAEtB,GAAK/C,GAAWM,CAAK,EAIrB,IAFA2pB,EAAW,WAAa,GAEpB,aAAcA,EAAY,CAC5BA,EAAW,SAAW,GACtB,MACF,CAEKA,EAAW,MACdA,EAAW,IAAM,IAAM,CACrB,MAAM,MAAM,qCAAuClnB,EAAO,GAAG,CAC/D,GAEJ,CAAC,CACH,EAUMw1F,GAAc,CAACC,EAAeC,IAAc,CAChD,MAAM92F,EAAM,GAEN+2F,EAAUp5F,GAAQ,CACtBA,EAAI,QAASgB,GAAU,CACrBqB,EAAIrB,CAAK,EAAI,EACf,CAAC,CACH,EAEA,OAAAX,GAAQ64F,CAAa,EAAIE,EAAOF,CAAa,EAAIE,EAAO,OAAOF,CAAa,EAAE,MAAMC,CAAS,CAAC,EAEvF92F,CACT,EAEM2zC,GAAO,IAAM,CAAC,EAEdqjD,GAAiB,CAACr4F,EAAO6R,IACtB7R,GAAS,MAAQ,OAAO,SAAUA,EAAQ,CAACA,GAAUA,EAAQ6R,EAUtE,SAASymF,GAAoBxE,EAAO,CAClC,MAAO,CAAC,EACNA,GACAp0F,GAAWo0F,EAAM,MAAM,GACvBA,EAAMF,EAAW,IAAM,YACvBE,EAAMnpF,EAAQ,EAElB,CAQA,MAAM4tF,GAAgBl3F,GAAQ,CAC5B,MAAMgoD,EAAU,IAAI,QAEdd,EAAS53C,GAAW,CACxB,GAAI9Q,GAAS8Q,CAAM,EAAG,CACpB,GAAI04C,EAAQ,IAAI14C,CAAM,EACpB,OAIF,GAAIyjF,GAASzjF,CAAM,EACjB,OAAOA,EAGT,GAAI,EAAE,WAAYA,GAAS,CAEzB04C,EAAQ,IAAI14C,CAAM,EAClB,MAAM1H,EAAS5J,GAAQsR,CAAM,EAAI,GAAK,GAEtC,OAAA+kF,GAAQ/kF,EAAQ,CAAC3Q,EAAO1B,IAAQ,CAC9B,MAAMk6F,EAAejwC,EAAMvoD,CAAK,EAChC,CAACm0F,GAAYqE,CAAY,IAAMvvF,EAAO3K,CAAG,EAAIk6F,EAC/C,CAAC,EAEDnvC,EAAQ,OAAO14C,CAAM,EAEd1H,CACT,CACF,CAEA,OAAO0H,CACT,EAEA,OAAO43C,EAAMlnD,CAAG,CAClB,EAQMo3F,GAAYxE,GAAW,eAAe,EAQtCyE,GAAc5E,GAClBA,IACCj0F,GAASi0F,CAAK,GAAKp0F,GAAWo0F,CAAK,IACpCp0F,GAAWo0F,EAAM,IAAI,GACrBp0F,GAAWo0F,EAAM,KAAK,EAalB6E,IAAiB,CAACC,EAAuBC,IACzCD,EACK,aAGFC,GACF,CAAC7Z,EAAO8Z,KACPjD,GAAQ,iBACN,UACA,CAAC,CAAE,OAAAllF,EAAQ,KAAAwY,KAAW,CAChBxY,IAAWklF,IAAW1sE,IAAS61D,GACjC8Z,EAAU,QAAUA,EAAU,QAAO,CAEzC,EACA,EACV,EAEgBlmF,GAAO,CACbkmF,EAAU,KAAKlmF,CAAE,EACjBijF,GAAQ,YAAY7W,EAAO,GAAG,CAChC,IACC,SAAS,KAAK,OAAM,CAAE,GAAI,EAAE,EAC9BpsE,GAAO,WAAWA,CAAE,GACxB,OAAO,cAAiB,WAAYlT,GAAWm2F,GAAQ,WAAW,CAAC,EAQhEkD,GACJ,OAAO,eAAmB,IACtB,eAAe,KAAKlD,EAAO,EAC1B,OAAO/Y,GAAY,KAAeA,GAAQ,UAAa6b,GAIxDK,GAAclF,GAAUA,GAAS,MAAQp0F,GAAWo0F,EAAMnpF,EAAQ,CAAC,EAanEsuF,GAAkBnF,GACtBA,GAAS,MAAQD,GAAuBC,EAAOnpF,EAAQ,GAAKquF,GAAWlF,CAAK,EAE9EoF,EAAe,CACb,QAAA75F,GACA,cAAAg1F,GACA,SAAAD,GACA,WAAAc,GACA,kBAAAZ,GACA,SAAA30F,GACA,SAAA40F,GACA,UAAAntD,GACA,SAAAvnC,GACF,cAAEK,GACA,cAAAu0F,GACA,iBAAAY,GACA,UAAAC,GACA,WAAAC,GACA,UAAAC,GACA,YAAArB,GACA,OAAA10F,GACA,OAAAi1F,GACA,kBAAAC,GACA,cAAAC,GACA,OAAAE,GACA,SAAA8C,GACF,WAAEl4F,GACA,SAAAs1F,GACA,kBAAAI,GACA,aAAA8B,GACA,WAAAnC,GACA,QAAAW,GACF,MAAEK,GACF,OAAEj3F,GACA,KAAA22F,GACA,SAAAa,GACA,SAAAC,GACA,aAAAI,GACA,OAAA3C,GACA,WAAAC,GACA,SAAA8C,GACA,QAAA9+B,GACA,aAAAm/B,GACA,SAAAE,GACA,WAAAE,GACF,eAAEr4F,GACA,WAAYA,GACZ,uBAAA00F,GACA,YAAAE,GACA,kBAAA8D,GACA,cAAAG,GACA,YAAAC,GACA,YAAAR,GACA,KAAAziD,GACA,eAAAqjD,GACA,QAAAzC,GACA,OAAQC,GACR,iBAAAC,GACA,oBAAAwC,GACA,aAAAC,GACA,UAAAE,GACA,WAAAC,GACA,aAAcC,GACd,KAAAI,GACA,WAAAC,GACA,eAAAC,EACF,ECl/BME,GAAoBC,EAAM,YAAY,CAC1C,MACA,gBACA,iBACA,eACA,OACA,UACA,OACA,OACA,oBACA,sBACA,gBACA,WACA,eACA,sBACA,UACA,cACA,YACF,CAAC,EAgBDC,GAAgBC,GAAe,CAC7B,MAAMhpD,EAAS,GACf,IAAIhyC,EACAC,EACAW,EAEJ,OAAAo6F,GACEA,EAAW,MAAM;AAAA,CAAI,EAAE,QAAQ,SAAgBC,EAAM,CACnDr6F,EAAIq6F,EAAK,QAAQ,GAAG,EACpBj7F,EAAMi7F,EAAK,UAAU,EAAGr6F,CAAC,EAAE,KAAI,EAAG,YAAW,EAC7CX,EAAMg7F,EAAK,UAAUr6F,EAAI,CAAC,EAAE,KAAI,EAE5B,GAACZ,GAAQgyC,EAAOhyC,CAAG,GAAK66F,GAAkB76F,CAAG,KAI7CA,IAAQ,aACNgyC,EAAOhyC,CAAG,EACZgyC,EAAOhyC,CAAG,EAAE,KAAKC,CAAG,EAEpB+xC,EAAOhyC,CAAG,EAAI,CAACC,CAAG,EAGpB+xC,EAAOhyC,CAAG,EAAIgyC,EAAOhyC,CAAG,EAAIgyC,EAAOhyC,CAAG,EAAI,KAAOC,EAAMA,EAE3D,CAAC,EAEI+xC,CACT,EChEA,SAASkpD,GAAap7F,EAAK,CACzB,IAAI4X,EAAQ,EACRC,EAAM7X,EAAI,OAEd,KAAO4X,EAAQC,GAAK,CAClB,MAAMw0B,EAAOrsC,EAAI,WAAW4X,CAAK,EAEjC,GAAIy0B,IAAS,GAAQA,IAAS,GAC5B,MAGFz0B,GAAS,CACX,CAEA,KAAOC,EAAMD,GAAO,CAClB,MAAMy0B,EAAOrsC,EAAI,WAAW6X,EAAM,CAAC,EAEnC,GAAIw0B,IAAS,GAAQA,IAAS,GAC5B,MAGFx0B,GAAO,CACT,CAEA,OAAOD,IAAU,GAAKC,IAAQ7X,EAAI,OAASA,EAAMA,EAAI,MAAM4X,EAAOC,CAAG,CACvE,CAIA,MAAMwjF,GAAqC,IAAI,OAAO,2CAA4C,GAAG,EAE/FC,GAAyC,IAAI,OAAO,4CAA6C,GAAG,EAE1G,SAASC,GAAc35F,EAAO45F,EAAc,CAC1C,OAAIR,EAAM,QAAQp5F,CAAK,EACdA,EAAM,IAAK8B,GAAS63F,GAAc73F,EAAM83F,CAAY,CAAC,EAGvDJ,GAAa,OAAOx5F,CAAK,EAAE,QAAQ45F,EAAc,EAAE,CAAC,CAC7D,CAEO,MAAMC,GAAuB75F,GAClC25F,GAAc35F,EAAOy5F,EAAkC,EAE5CK,GAAiC95F,GAC5C25F,GAAc35F,EAAO05F,EAAsC,EAEtD,SAASK,GAAyBC,EAAS,CAChD,MAAMC,EAAoB,OAAO,OAAO,IAAI,EAE5Cb,SAAM,QAAQY,EAAQ,OAAM,EAAI,CAACh6F,EAAOk6F,IAAW,CACjDD,EAAkBC,CAAM,EAAIJ,GAA8B95F,CAAK,CACjE,CAAC,EAEMi6F,CACT,CCrDA,MAAME,GAAa,OAAO,WAAW,EAErC,SAASC,GAAgBF,EAAQ,CAC/B,OAAOA,GAAU,OAAOA,CAAM,EAAE,KAAI,EAAG,YAAW,CACpD,CAEA,SAASG,GAAer6F,EAAO,CAC7B,OAAIA,IAAU,IAASA,GAAS,KACvBA,EAGFo5F,EAAM,QAAQp5F,CAAK,EAAIA,EAAM,IAAIq6F,EAAc,EAAIR,GAAoB,OAAO75F,CAAK,CAAC,CAC7F,CAEA,SAASs6F,GAAYl8F,EAAK,CACxB,MAAMm8F,EAAS,OAAO,OAAO,IAAI,EAC3BC,EAAW,mCACjB,IAAIl4F,EAEJ,KAAQA,EAAQk4F,EAAS,KAAKp8F,CAAG,GAC/Bm8F,EAAOj4F,EAAM,CAAC,CAAC,EAAIA,EAAM,CAAC,EAG5B,OAAOi4F,CACT,CAEA,MAAME,GAAqBr8F,GAAQ,iCAAiC,KAAKA,EAAI,MAAM,EAEnF,SAASs8F,GAAiBrsE,EAASruB,EAAOk6F,EAAQ/4B,EAAQw5B,EAAoB,CAC5E,GAAIvB,EAAM,WAAWj4B,CAAM,EACzB,OAAOA,EAAO,KAAK,KAAMnhE,EAAOk6F,CAAM,EAOxC,GAJIS,IACF36F,EAAQk6F,GAGN,EAACd,EAAM,SAASp5F,CAAK,EAEzB,IAAIo5F,EAAM,SAASj4B,CAAM,EACvB,OAAOnhE,EAAM,QAAQmhE,CAAM,IAAM,GAGnC,GAAIi4B,EAAM,SAASj4B,CAAM,EACvB,OAAOA,EAAO,KAAKnhE,CAAK,EAE5B,CAEA,SAAS46F,GAAaV,EAAQ,CAC5B,OAAOA,EACJ,KAAI,EACJ,YAAW,EACX,QAAQ,kBAAmB,CAACviB,EAAGkjB,EAAMz8F,IAC7By8F,EAAK,YAAW,EAAKz8F,CAC7B,CACL,CAEA,SAAS08F,GAAez5F,EAAK64F,EAAQ,CACnC,MAAMa,EAAe3B,EAAM,YAAY,IAAMc,CAAM,EAEnD,CAAC,MAAO,MAAO,KAAK,EAAE,QAASc,GAAe,CAC5C,OAAO,eAAe35F,EAAK25F,EAAaD,EAAc,CAGpD,UAAW,KACX,MAAO,SAAUE,EAAMC,EAAMC,EAAM,CACjC,OAAO,KAAKH,CAAU,EAAE,KAAK,KAAMd,EAAQe,EAAMC,EAAMC,CAAI,CAC7D,EACA,aAAc,EACpB,CAAK,CACH,CAAC,CACH,CAEA,IAAAC,GAAA,KAAmB,CACjB,YAAYpB,EAAS,CACnBA,GAAW,KAAK,IAAIA,CAAO,CAC7B,CAEA,IAAIE,EAAQmB,EAAgBC,EAAS,CACnC,MAAMjwF,EAAO,KAEb,SAASkwF,EAAUC,EAAQC,EAASC,EAAU,CAC5C,MAAMC,EAAUvB,GAAgBqB,CAAO,EAEvC,GAAI,CAACE,EACH,OAGF,MAAMr9F,EAAM86F,EAAM,QAAQ/tF,EAAMswF,CAAO,GAGrC,CAACr9F,GACD+M,EAAK/M,CAAG,IAAM,QACdo9F,IAAa,IACZA,IAAa,QAAarwF,EAAK/M,CAAG,IAAM,MAEzC+M,EAAK/M,GAAOm9F,CAAO,EAAIpB,GAAemB,CAAM,EAEhD,CAEA,MAAMI,EAAa,CAAC5B,EAAS0B,IAC3BtC,EAAM,QAAQY,EAAS,CAACwB,EAAQC,IAAYF,EAAUC,EAAQC,EAASC,CAAQ,CAAC,EAElF,GAAItC,EAAM,cAAcc,CAAM,GAAKA,aAAkB,KAAK,YACxD0B,EAAW1B,EAAQmB,CAAc,UACxBjC,EAAM,SAASc,CAAM,IAAMA,EAASA,EAAO,KAAI,IAAO,CAACO,GAAkBP,CAAM,EACxF0B,EAAWvC,GAAaa,CAAM,EAAGmB,CAAc,UACtCjC,EAAM,SAASc,CAAM,GAAKd,EAAM,eAAec,CAAM,EAAG,CACjE,IAAI74F,EAAM,OAAO,OAAO,IAAI,EAC1Bw6F,EACAv9F,EACF,UAAW4qD,KAASgxC,EAAQ,CAC1B,GAAI,CAACd,EAAM,QAAQlwC,CAAK,EACtB,MAAM,IAAI,UAAU,8CAA8C,EAGpE5qD,EAAM4qD,EAAM,CAAC,EAETkwC,EAAM,WAAW/3F,EAAK/C,CAAG,GAC3Bu9F,EAAOx6F,EAAI/C,CAAG,EACd+C,EAAI/C,CAAG,EAAI86F,EAAM,QAAQyC,CAAI,EAAI,CAAC,GAAGA,EAAM3yC,EAAM,CAAC,CAAC,EAAI,CAAC2yC,EAAM3yC,EAAM,CAAC,CAAC,GAEtE7nD,EAAI/C,CAAG,EAAI4qD,EAAM,CAAC,CAEtB,CAEA0yC,EAAWv6F,EAAKg6F,CAAc,CAChC,MACEnB,GAAU,MAAQqB,EAAUF,EAAgBnB,EAAQoB,CAAO,EAG7D,OAAO,IACT,CAEA,IAAIpB,EAAQ4B,EAAQ,CAGlB,GAFA5B,EAASE,GAAgBF,CAAM,EAE3BA,EAAQ,CACV,MAAM57F,EAAM86F,EAAM,QAAQ,KAAMc,CAAM,EAEtC,GAAI57F,EAAK,CACP,MAAM0B,EAAQ,KAAK1B,CAAG,EAEtB,GAAI,CAACw9F,EACH,OAAO97F,EAGT,GAAI87F,IAAW,GACb,OAAOxB,GAAYt6F,CAAK,EAG1B,GAAIo5F,EAAM,WAAW0C,CAAM,EACzB,OAAOA,EAAO,KAAK,KAAM97F,EAAO1B,CAAG,EAGrC,GAAI86F,EAAM,SAAS0C,CAAM,EACvB,OAAOA,EAAO,KAAK97F,CAAK,EAG1B,MAAM,IAAI,UAAU,wCAAwC,CAC9D,CACF,CACF,CAEA,IAAIk6F,EAAQ6B,EAAS,CAGnB,GAFA7B,EAASE,GAAgBF,CAAM,EAE3BA,EAAQ,CACV,MAAM57F,EAAM86F,EAAM,QAAQ,KAAMc,CAAM,EAEtC,MAAO,CAAC,EACN57F,GACA,KAAKA,CAAG,IAAM,SACb,CAACy9F,GAAWrB,GAAiB,KAAM,KAAKp8F,CAAG,EAAGA,EAAKy9F,CAAO,GAE/D,CAEA,MAAO,EACT,CAEA,OAAO7B,EAAQ6B,EAAS,CACtB,MAAM1wF,EAAO,KACb,IAAI2wF,EAAU,GAEd,SAASC,EAAaR,EAAS,CAG7B,GAFAA,EAAUrB,GAAgBqB,CAAO,EAE7BA,EAAS,CACX,MAAMn9F,EAAM86F,EAAM,QAAQ/tF,EAAMowF,CAAO,EAEnCn9F,IAAQ,CAACy9F,GAAWrB,GAAiBrvF,EAAMA,EAAK/M,CAAG,EAAGA,EAAKy9F,CAAO,KACpE,OAAO1wF,EAAK/M,CAAG,EAEf09F,EAAU,GAEd,CACF,CAEA,OAAI5C,EAAM,QAAQc,CAAM,EACtBA,EAAO,QAAQ+B,CAAY,EAE3BA,EAAa/B,CAAM,EAGd8B,CACT,CAEA,MAAMD,EAAS,CACb,MAAMx0E,EAAO,OAAO,KAAK,IAAI,EAC7B,IAAIroB,EAAIqoB,EAAK,OACTy0E,EAAU,GAEd,KAAO98F,KAAK,CACV,MAAMZ,EAAMipB,EAAKroB,CAAC,GACd,CAAC68F,GAAWrB,GAAiB,KAAM,KAAKp8F,CAAG,EAAGA,EAAKy9F,EAAS,EAAI,KAClE,OAAO,KAAKz9F,CAAG,EACf09F,EAAU,GAEd,CAEA,OAAOA,CACT,CAEA,UAAU5qC,EAAQ,CAChB,MAAM/lD,EAAO,KACP2uF,EAAU,GAEhBZ,SAAM,QAAQ,KAAM,CAACp5F,EAAOk6F,IAAW,CACrC,MAAM57F,EAAM86F,EAAM,QAAQY,EAASE,CAAM,EAEzC,GAAI57F,EAAK,CACP+M,EAAK/M,CAAG,EAAI+7F,GAAer6F,CAAK,EAChC,OAAOqL,EAAK6uF,CAAM,EAClB,MACF,CAEA,MAAMn4F,EAAaqvD,EAASwpC,GAAaV,CAAM,EAAI,OAAOA,CAAM,EAAE,KAAI,EAElEn4F,IAAem4F,GACjB,OAAO7uF,EAAK6uF,CAAM,EAGpB7uF,EAAKtJ,CAAU,EAAIs4F,GAAer6F,CAAK,EAEvCg6F,EAAQj4F,CAAU,EAAI,EACxB,CAAC,EAEM,IACT,CAEA,UAAUy6D,EAAS,CACjB,OAAO,KAAK,YAAY,OAAO,KAAM,GAAGA,CAAO,CACjD,CAEA,OAAO0/B,EAAW,CAChB,MAAM76F,EAAM,OAAO,OAAO,IAAI,EAE9B+3F,SAAM,QAAQ,KAAM,CAACp5F,EAAOk6F,IAAW,CACrCl6F,GAAS,MACPA,IAAU,KACTqB,EAAI64F,CAAM,EAAIgC,GAAa9C,EAAM,QAAQp5F,CAAK,EAAIA,EAAM,KAAK,IAAI,EAAIA,EAC1E,CAAC,EAEMqB,CACT,CAEA,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,OAAO,QAAQ,KAAK,OAAM,CAAE,EAAE,OAAO,QAAQ,EAAC,CACvD,CAEA,UAAW,CACT,OAAO,OAAO,QAAQ,KAAK,OAAM,CAAE,EAChC,IAAI,CAAC,CAAC64F,EAAQl6F,CAAK,IAAMk6F,EAAS,KAAOl6F,CAAK,EAC9C,KAAK;AAAA,CAAI,CACd,CAEA,cAAe,CACb,OAAO,KAAK,IAAI,YAAY,GAAK,EACnC,CAEA,IAAK,OAAO,WAAW,GAAI,CACzB,MAAO,cACT,CAEA,OAAO,KAAK8zF,EAAO,CACjB,OAAOA,aAAiB,KAAOA,EAAQ,IAAI,KAAKA,CAAK,CACvD,CAEA,OAAO,OAAO5hD,KAAUsqB,EAAS,CAC/B,MAAM70D,EAAW,IAAI,KAAKuqC,CAAK,EAE/B,OAAAsqB,EAAQ,QAASvzD,GAAWtB,EAAS,IAAIsB,CAAM,CAAC,EAEzCtB,CACT,CAEA,OAAO,SAASuyF,EAAQ,CAQtB,MAAMiC,GANH,KAAKhC,EAAU,EAChB,KAAKA,EAAU,EACb,CACE,UAAW,EACrB,GAEgC,UACtB3F,EAAY,KAAK,UAEvB,SAAS4H,EAAeX,EAAS,CAC/B,MAAME,EAAUvB,GAAgBqB,CAAO,EAElCU,EAAUR,CAAO,IACpBb,GAAetG,EAAWiH,CAAO,EACjCU,EAAUR,CAAO,EAAI,GAEzB,CAEAvC,SAAM,QAAQc,CAAM,EAAIA,EAAO,QAAQkC,CAAc,EAAIA,EAAelC,CAAM,EAEvE,IACT,CACF,EAEAmC,GAAa,SAAS,CACpB,eACA,iBACA,SACA,kBACA,aACA,eACF,CAAC,EAGDjD,EAAM,kBAAkBiD,GAAa,UAAW,CAAC,CAAE,MAAAr8F,CAAK,EAAI1B,IAAQ,CAClE,IAAIg+F,EAASh+F,EAAI,CAAC,EAAE,YAAW,EAAKA,EAAI,MAAM,CAAC,EAC/C,MAAO,CACL,IAAK,IAAM0B,EACX,IAAIu8F,EAAa,CACf,KAAKD,CAAM,EAAIC,CACjB,CACJ,CACA,CAAC,EAEDnD,EAAM,cAAciD,EAAY,ECvVhC,MAAMG,GAAW,kBAEjB,SAASC,GAAwB9rF,EAAQ,CACvC,GAAIyoF,EAAM,WAAWzoF,EAAQ,QAAQ,EACnC,MAAO,GAGT,IAAI6jF,EAAY,OAAO,eAAe7jF,CAAM,EAE5C,KAAO6jF,GAAaA,IAAc,OAAO,WAAW,CAClD,GAAI4E,EAAM,WAAW5E,EAAW,QAAQ,EACtC,MAAO,GAGTA,EAAY,OAAO,eAAeA,CAAS,CAC7C,CAEA,MAAO,EACT,CAKA,SAASkI,GAAa51B,EAAQ61B,EAAY,CACxC,MAAMC,EAAY,IAAI,IAAID,EAAW,IAAKlzD,GAAM,OAAOA,CAAC,EAAE,YAAW,CAAE,CAAC,EAClErmC,EAAO,GAEPmlD,EAAS53C,GAAW,CAExB,GADIA,IAAW,MAAQ,OAAOA,GAAW,UACrCyoF,EAAM,SAASzoF,CAAM,EAAG,OAAOA,EACnC,GAAIvN,EAAK,QAAQuN,CAAM,IAAM,GAAI,OAE7BA,aAAkB0rF,KACpB1rF,EAASA,EAAO,OAAM,GAGxBvN,EAAK,KAAKuN,CAAM,EAEhB,IAAIlF,EACJ,GAAI2tF,EAAM,QAAQzoF,CAAM,EACtBlF,EAAS,GACTkF,EAAO,QAAQ,CAAC9L,EAAG3F,IAAM,CACvB,MAAMs5F,EAAejwC,EAAM1jD,CAAC,EACvBu0F,EAAM,YAAYZ,CAAY,IACjC/sF,EAAOvM,CAAC,EAAIs5F,EAEhB,CAAC,MACI,CACL,GAAI,CAACY,EAAM,cAAczoF,CAAM,GAAK8rF,GAAwB9rF,CAAM,EAChE,OAAAvN,EAAK,IAAG,EACDuN,EAGTlF,EAAS,OAAO,OAAO,IAAI,EAC3B,SAAW,CAACnN,EAAK0B,CAAK,IAAK,OAAO,QAAQ2Q,CAAM,EAAG,CACjD,MAAM6nF,EAAeoE,EAAU,IAAIt+F,EAAI,YAAW,CAAE,EAAIk+F,GAAWj0C,EAAMvoD,CAAK,EACzEo5F,EAAM,YAAYZ,CAAY,IACjC/sF,EAAOnN,CAAG,EAAIk6F,EAElB,CACF,CAEA,OAAAp1F,EAAK,IAAG,EACDqI,CACT,EAEA,OAAO88C,EAAMue,CAAM,CACrB,QAEA,MAAM+1B,WAAmB,KAAM,CAC7B,OAAO,KAAKz1F,EAAOqjC,EAAMq8B,EAAQg2B,EAAS9a,EAAU+a,EAAa,CAC/D,MAAMC,EAAa,IAAIH,GAAWz1F,EAAM,QAASqjC,GAAQrjC,EAAM,KAAM0/D,EAAQg2B,EAAS9a,CAAQ,EAO9F,cAAO,eAAegb,EAAY,QAAS,CACzC,UAAW,KACX,MAAO51F,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EACpB,CAAK,EACD41F,EAAW,KAAO51F,EAAM,KAGpBA,EAAM,QAAU,MAAQ41F,EAAW,QAAU,OAC/CA,EAAW,OAAS51F,EAAM,QAG5B21F,GAAe,OAAO,OAAOC,EAAYD,CAAW,EAC7CC,CACT,CAaA,YAAYva,EAASh4C,EAAMq8B,EAAQg2B,EAAS9a,EAAU,CACpD,MAAMS,CAAO,EAKb,OAAO,eAAe,KAAM,UAAW,CAGrC,UAAW,KACX,MAAOA,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EACpB,CAAK,EAED,KAAK,KAAO,aACZ,KAAK,aAAe,GACpBh4C,IAAS,KAAK,KAAOA,GACrBq8B,IAAW,KAAK,OAASA,GACzBg2B,IAAY,KAAK,QAAUA,GACvB9a,IACF,KAAK,SAAWA,EAChB,KAAK,OAASA,EAAS,OAE3B,CAEA,QAAS,CAKP,MAAMlb,EAAS,KAAK,OACd61B,EAAa71B,GAAUsyB,EAAM,WAAWtyB,EAAQ,QAAQ,EAAIA,EAAO,OAAS,OAC5Em2B,EACJ7D,EAAM,QAAQuD,CAAU,GAAKA,EAAW,OAAS,EAC7CD,GAAa51B,EAAQ61B,CAAU,EAC/BvD,EAAM,aAAatyB,CAAM,EAE/B,MAAO,CAEL,QAAS,KAAK,QACd,KAAM,KAAK,KAEX,YAAa,KAAK,YAClB,OAAQ,KAAK,OAEb,SAAU,KAAK,SACf,WAAY,KAAK,WACjB,aAAc,KAAK,aACnB,MAAO,KAAK,MAEZ,OAAQm2B,EACR,KAAM,KAAK,KACX,OAAQ,KAAK,MACnB,CACE,CACF,EAGAJ,GAAW,qBAAuB,uBAClCA,GAAW,eAAiB,iBAC5BA,GAAW,aAAe,eAC1BA,GAAW,UAAY,YACvBA,GAAW,aAAe,eAC1BA,GAAW,YAAc,cACzBA,GAAW,0BAA4B,4BACvCA,GAAW,eAAiB,iBAC5BA,GAAW,iBAAmB,mBAC9BA,GAAW,gBAAkB,kBAC7BA,GAAW,aAAe,eAC1BA,GAAW,gBAAkB,kBAC7BA,GAAW,gBAAkB,kBAC7BA,GAAW,6BAA+B,+BCxL1C,MAAAK,GAAe,KCQFC,GAA8B,IAS3C,SAASC,GAAYtJ,EAAO,CAC1B,OAAOsF,EAAM,cAActF,CAAK,GAAKsF,EAAM,QAAQtF,CAAK,CAC1D,CASA,SAASuJ,GAAe/+F,EAAK,CAC3B,OAAO86F,EAAM,SAAS96F,EAAK,IAAI,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAIA,CACxD,CAWA,SAASg/F,GAAU9iF,EAAMlc,EAAKi/F,EAAM,CAClC,OAAK/iF,EACEA,EACJ,OAAOlc,CAAG,EACV,IAAI,SAAc0gF,EAAO9/E,EAAG,CAE3B,OAAA8/E,EAAQqe,GAAere,CAAK,EACrB,CAACue,GAAQr+F,EAAI,IAAM8/E,EAAQ,IAAMA,CAC1C,CAAC,EACA,KAAKue,EAAO,IAAM,EAAE,EARLj/F,CASpB,CASA,SAASk/F,GAAYx+F,EAAK,CACxB,OAAOo6F,EAAM,QAAQp6F,CAAG,GAAK,CAACA,EAAI,KAAKo+F,EAAW,CACpD,CAEA,MAAMK,GAAarE,EAAM,aAAaA,EAAO,GAAI,KAAM,SAAgBjlE,EAAM,CAC3E,MAAO,WAAW,KAAKA,CAAI,CAC7B,CAAC,EAyBD,SAASupE,GAAWr8F,EAAKwzF,EAAUhiF,EAAS,CAC1C,GAAI,CAACumF,EAAM,SAAS/3F,CAAG,EACrB,MAAM,IAAI,UAAU,0BAA0B,EAIhDwzF,EAAWA,GAAY,IAAyB,SAGhDhiF,EAAUumF,EAAM,aACdvmF,EACA,CACE,WAAY,GACZ,KAAM,GACN,QAAS,EACf,EACI,GACA,SAAiB8qF,EAAQhtF,EAAQ,CAE/B,MAAO,CAACyoF,EAAM,YAAYzoF,EAAOgtF,CAAM,CAAC,CAC1C,CACJ,EAEE,MAAMC,EAAa/qF,EAAQ,WAErBgrF,EAAUhrF,EAAQ,SAAWirF,EAC7BP,EAAO1qF,EAAQ,KACfkrF,EAAUlrF,EAAQ,QAClBmrF,EAAQnrF,EAAQ,MAAS,OAAO,KAAS,KAAe,KACxDorF,EAAWprF,EAAQ,WAAa,OAAYsqF,GAA8BtqF,EAAQ,SAClFqrF,EAAUF,GAAS5E,EAAM,oBAAoBvE,CAAQ,EACrDpsC,EAAQ,GAEd,GAAI,CAAC2wC,EAAM,WAAWyE,CAAO,EAC3B,MAAM,IAAI,UAAU,4BAA4B,EAGlD,SAASM,EAAan+F,EAAO,CAC3B,GAAIA,IAAU,KAAM,MAAO,GAE3B,GAAIo5F,EAAM,OAAOp5F,CAAK,EACpB,OAAOA,EAAM,YAAW,EAG1B,GAAIo5F,EAAM,UAAUp5F,CAAK,EACvB,OAAOA,EAAM,SAAQ,EAGvB,GAAI,CAACk+F,GAAW9E,EAAM,OAAOp5F,CAAK,EAChC,MAAM,IAAI68F,GAAW,8CAA8C,EAGrE,GAAIzD,EAAM,cAAcp5F,CAAK,GAAKo5F,EAAM,aAAap5F,CAAK,EAAG,CAC3D,GAAIk+F,GAAW,OAAOF,GAAU,WAC9B,OAAO,IAAIA,EAAM,CAACh+F,CAAK,CAAC,EAE1B,GAAI,OAAOwsC,GAAW,IACpB,OAAOA,GAAO,KAAKxsC,CAAK,EAE1B,MAAM,IAAI68F,GAAW,+CAAgDA,GAAW,eAAe,CACjG,CAEA,OAAO78F,CACT,CAEA,SAASo+F,EAAwBtqF,EAAO,CACtC,GAAIA,EAAQmqF,EACV,MAAM,IAAIpB,GACR,gCAAkC/oF,EAAQ,wBAA0BmqF,EACpEpB,GAAW,4BACnB,CAEE,CAEA,SAASwB,EAAwBr+F,EAAO8T,EAAO,CAC7C,GAAImqF,IAAa,IACf,OAAO,KAAK,UAAUj+F,CAAK,EAG7B,MAAMsoF,EAAY,GAElB,OAAO,KAAK,UAAUtoF,EAAO,SAAoByE,EAAM65F,EAAc,CACnE,GAAI,CAAClF,EAAM,SAASkF,CAAY,EAC9B,OAAOA,EAGT,KAAOhW,EAAU,QAAUA,EAAUA,EAAU,OAAS,CAAC,IAAM,MAC7DA,EAAU,IAAG,EAGf,OAAAA,EAAU,KAAKgW,CAAY,EAC3BF,EAAwBtqF,EAAQw0E,EAAU,OAAS,CAAC,EAE7CgW,CACT,CAAC,CACH,CAYA,SAASR,EAAe99F,EAAO1B,EAAKkc,EAAM,CACxC,IAAIxb,EAAMgB,EAEV,GAAIo5F,EAAM,cAAcvE,CAAQ,GAAKuE,EAAM,kBAAkBp5F,CAAK,EAChE,OAAA60F,EAAS,OAAOyI,GAAU9iF,EAAMlc,EAAKi/F,CAAI,EAAGY,EAAan+F,CAAK,CAAC,EACxD,GAGT,GAAIA,GAAS,CAACwa,GAAQ,OAAOxa,GAAU,UACrC,GAAIo5F,EAAM,SAAS96F,EAAK,IAAI,EAE1BA,EAAMs/F,EAAat/F,EAAMA,EAAI,MAAM,EAAG,EAAE,EAExC0B,EAAQq+F,EAAwBr+F,EAAO,CAAC,UAEvCo5F,EAAM,QAAQp5F,CAAK,GAAKw9F,GAAYx9F,CAAK,IACxCo5F,EAAM,WAAWp5F,CAAK,GAAKo5F,EAAM,SAAS96F,EAAK,IAAI,KAAOU,EAAMo6F,EAAM,QAAQp5F,CAAK,GAGrF,OAAA1B,EAAM++F,GAAe/+F,CAAG,EAExBU,EAAI,QAAQ,SAAcC,EAAIyE,EAAO,CACnC,EAAE01F,EAAM,YAAYn6F,CAAE,GAAKA,IAAO,OAChC41F,EAAS,OAEPkJ,IAAY,GACRT,GAAU,CAACh/F,CAAG,EAAGoF,EAAO65F,CAAI,EAC5BQ,IAAY,KACVz/F,EACAA,EAAM,KACZ6/F,EAAal/F,CAAE,CAC7B,CACQ,CAAC,EACM,GAIX,OAAIm+F,GAAYp9F,CAAK,EACZ,IAGT60F,EAAS,OAAOyI,GAAU9iF,EAAMlc,EAAKi/F,CAAI,EAAGY,EAAan+F,CAAK,CAAC,EAExD,GACT,CAEA,MAAMu+F,EAAiB,OAAO,OAAOd,GAAY,CAC/C,eAAAK,EACA,aAAAK,EACA,YAAAf,EACJ,CAAG,EAED,SAASoB,EAAMx+F,EAAOwa,EAAM1G,EAAQ,EAAG,CACrC,GAAIslF,GAAM,YAAYp5F,CAAK,EAI3B,IAFAo+F,EAAwBtqF,CAAK,EAEzB20C,EAAM,QAAQzoD,CAAK,IAAM,GAC3B,MAAM,IAAI,MAAM,kCAAoCwa,EAAK,KAAK,GAAG,CAAC,EAGpEiuC,EAAM,KAAKzoD,CAAK,EAEhBo5F,EAAM,QAAQp5F,EAAO,SAAcf,EAAIX,EAAK,EAExC,EAAE86F,EAAM,YAAYn6F,CAAE,GAAKA,IAAO,OAClC4+F,EAAQ,KAAKhJ,EAAU51F,EAAIm6F,EAAM,SAAS96F,CAAG,EAAIA,EAAI,KAAI,EAAKA,EAAKkc,EAAM+jF,CAAc,KAE1E,IACbC,EAAMv/F,EAAIub,EAAOA,EAAK,OAAOlc,CAAG,EAAI,CAACA,CAAG,EAAGwV,EAAQ,CAAC,CAExD,CAAC,EAED20C,EAAM,IAAG,EACX,CAEA,GAAI,CAAC2wC,EAAM,SAAS/3F,CAAG,EACrB,MAAM,IAAI,UAAU,wBAAwB,EAG9C,OAAAm9F,EAAMn9F,CAAG,EAEFwzF,CACT,CC9QA,SAAS4J,GAAOrgG,EAAK,CACnB,MAAMsgG,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,GACX,EACE,OAAO,mBAAmBtgG,CAAG,EAAE,QAAQ,eAAgB,SAAkBkE,EAAO,CAC9E,OAAOo8F,EAAQp8F,CAAK,CACtB,CAAC,CACH,CAUA,SAASq8F,GAAqB/lD,EAAQ/lC,EAAS,CAC7C,KAAK,OAAS,GAEd+lC,GAAU8kD,GAAW9kD,EAAQ,KAAM/lC,CAAO,CAC5C,CAEA,MAAM2hF,GAAYmK,GAAqB,UAEvCnK,GAAU,OAAS,SAAgB/xF,EAAMzC,EAAO,CAC9C,KAAK,OAAO,KAAK,CAACyC,EAAMzC,CAAK,CAAC,CAChC,EAEAw0F,GAAU,SAAW,SAAkBoK,EAAS,CAC9C,MAAMC,EAAUD,EACX5+F,GAAU4+F,EAAQ,KAAK,KAAM5+F,EAAOy+F,EAAM,EAC3CA,GAEJ,OAAO,KAAK,OACT,IAAI,SAAcpH,EAAM,CACvB,OAAOwH,EAAQxH,EAAK,CAAC,CAAC,EAAI,IAAMwH,EAAQxH,EAAK,CAAC,CAAC,CACjD,EAAG,EAAE,EACJ,KAAK,GAAG,CACb,EC3CO,SAASoH,GAAOlgG,EAAK,CAC1B,OAAO,mBAAmBA,CAAG,EAC1B,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,CACxB,CAWe,SAASugG,GAASnmD,EAAKC,EAAQ/lC,EAAS,CACrD,GAAI,CAAC+lC,EACH,OAAOD,EAETA,EAAMA,GAAO,GAEb,MAAMomD,EAAW3F,EAAM,WAAWvmF,CAAO,EACrC,CACE,UAAWA,CACnB,EACMA,EAKEgsF,EAAUzF,EAAM,YAAY2F,EAAU,QAAQ,GAAKN,GACnDO,EAAc5F,EAAM,YAAY2F,EAAU,WAAW,EAE3D,IAAIE,EAUJ,GARID,EACFC,EAAmBD,EAAYpmD,EAAQmmD,CAAQ,EAE/CE,EAAmB7F,EAAM,kBAAkBxgD,CAAM,EAC7CA,EAAO,SAAQ,EACf,IAAI+lD,GAAqB/lD,EAAQmmD,CAAQ,EAAE,SAASF,CAAO,EAG7DI,EAAkB,CACpB,MAAMC,EAAgBvmD,EAAI,QAAQ,GAAG,EAEjCumD,IAAkB,KACpBvmD,EAAMA,EAAI,MAAM,EAAGumD,CAAa,GAElCvmD,IAAQA,EAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KAAOsmD,CACjD,CAEA,OAAOtmD,CACT,CChEA,MAAMwmD,EAAmB,CACvB,aAAc,CACZ,KAAK,SAAW,EAClB,CAWA,IAAIC,EAAWC,EAAUxsF,EAAS,CAChC,YAAK,SAAS,KAAK,CACjB,UAAAusF,EACA,SAAAC,EACA,YAAaxsF,EAAUA,EAAQ,YAAc,GAC7C,QAASA,EAAUA,EAAQ,QAAU,IAC3C,CAAK,EACM,KAAK,SAAS,OAAS,CAChC,CASA,MAAMkD,EAAI,CACJ,KAAK,SAASA,CAAE,IAClB,KAAK,SAASA,CAAE,EAAI,KAExB,CAOA,OAAQ,CACF,KAAK,WACP,KAAK,SAAW,GAEpB,CAYA,QAAQzV,EAAI,CACV84F,EAAM,QAAQ,KAAK,SAAU,SAAwB5sE,EAAG,CAClDA,IAAM,MACRlsB,EAAGksB,CAAC,CAER,CAAC,CACH,CACF,CCnEA,MAAA8yE,GAAe,CACb,kBAAmB,GACnB,kBAAmB,GACnB,oBAAqB,GACrB,gCAAiC,GACjC,4BAA6B,GAC7B,gCAAiC,EACnC,ECNAC,GAAe,OAAO,gBAAoB,IAAc,gBAAkBZ,GCD1Ea,GAAe,OAAO,SAAa,IAAc,SAAW,KCA5DC,GAAe,OAAO,KAAS,IAAc,KAAO,KCEpDC,GAAe,CACb,UAAW,GACX,QAAS,CACX,gBAAIC,GACJ,SAAIC,GACJ,KAAIC,EACJ,EACE,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,MAAM,CAC5D,ECZMC,GAAgB,OAAO,OAAW,KAAe,OAAO,SAAa,IAErEC,GAAc,OAAO,WAAc,UAAY,WAAc,OAmB7DC,GACJF,KACC,CAACC,IAAc,CAAC,cAAe,eAAgB,IAAI,EAAE,QAAQA,GAAW,OAAO,EAAI,GAWhFE,GAEF,OAAO,kBAAsB,KAE7B,gBAAgB,mBAChB,OAAO,KAAK,eAAkB,WAI5BC,GAAUJ,IAAiB,OAAO,SAAS,MAAS,oNCxC1DxuB,GAAe,CACb,GAAG8nB,GACH,GAAG9nB,EACL,ECAe,SAAS6uB,GAAiBh3E,EAAMtW,EAAS,CACtD,OAAO6qF,GAAWv0E,EAAM,IAAImoD,GAAS,QAAQ,gBAAmB,CAC9D,QAAS,SAAUtxE,EAAO1B,EAAKkc,EAAM4lF,EAAS,CAC5C,OAAI9uB,GAAS,QAAU8nB,EAAM,SAASp5F,CAAK,GACzC,KAAK,OAAO1B,EAAK0B,EAAM,SAAS,QAAQ,CAAC,EAClC,IAGFogG,EAAQ,eAAe,MAAM,KAAM,SAAS,CACrD,EACA,GAAGvtF,CACP,CAAG,CACH,CCZA,MAAMwtF,GAAYlD,GAElB,SAASmD,GAAqB58F,EAAO,CACnC,GAAIA,EAAQ28F,GACV,MAAM,IAAIxD,GACR,wCAA0Cn5F,EAAQ,wBAA0B28F,GAC5ExD,GAAW,4BACjB,CAEA,CASA,SAAS0D,GAAc99F,EAAM,CAK3B,MAAM+X,EAAO,GACPgmF,EAAU,gBAChB,IAAIl+F,EAEJ,MAAQA,EAAQk+F,EAAQ,KAAK/9F,CAAI,KAAO,MACtC69F,GAAqB9lF,EAAK,MAAM,EAChCA,EAAK,KAAKlY,EAAM,CAAC,IAAM,KAAO,GAAKA,EAAM,CAAC,GAAKA,EAAM,CAAC,CAAC,EAGzD,OAAOkY,CACT,CASA,SAASimF,GAAczhG,EAAK,CAC1B,MAAMqC,EAAM,GACNkmB,EAAO,OAAO,KAAKvoB,CAAG,EAC5B,IAAIE,EACJ,MAAM89B,EAAMzV,EAAK,OACjB,IAAIjpB,EACJ,IAAKY,EAAI,EAAGA,EAAI89B,EAAK99B,IACnBZ,EAAMipB,EAAKroB,CAAC,EACZmC,EAAI/C,CAAG,EAAIU,EAAIV,CAAG,EAEpB,OAAO+C,CACT,CASA,SAASq/F,GAAe7L,EAAU,CAChC,SAAS8L,EAAUnmF,EAAMxa,EAAOiJ,EAAQvF,EAAO,CAC7C48F,GAAqB58F,CAAK,EAE1B,IAAIjB,EAAO+X,EAAK9W,GAAO,EAEvB,GAAIjB,IAAS,YAAa,MAAO,GAEjC,MAAMm+F,EAAe,OAAO,SAAS,CAACn+F,CAAI,EACpCo+F,EAASn9F,GAAS8W,EAAK,OAG7B,OAFA/X,EAAO,CAACA,GAAQ22F,EAAM,QAAQnwF,CAAM,EAAIA,EAAO,OAASxG,EAEpDo+F,GACEzH,EAAM,WAAWnwF,EAAQxG,CAAI,EAC/BwG,EAAOxG,CAAI,EAAI22F,EAAM,QAAQnwF,EAAOxG,CAAI,CAAC,EACrCwG,EAAOxG,CAAI,EAAE,OAAOzC,CAAK,EACzB,CAACiJ,EAAOxG,CAAI,EAAGzC,CAAK,EAExBiJ,EAAOxG,CAAI,EAAIzC,EAGV,CAAC4gG,KAGN,CAACxH,EAAM,WAAWnwF,EAAQxG,CAAI,GAAK,CAAC22F,EAAM,SAASnwF,EAAOxG,CAAI,CAAC,KACjEwG,EAAOxG,CAAI,EAAI,IAGFk+F,EAAUnmF,EAAMxa,EAAOiJ,EAAOxG,CAAI,EAAGiB,CAAK,GAE3C01F,EAAM,QAAQnwF,EAAOxG,CAAI,CAAC,IACtCwG,EAAOxG,CAAI,EAAIg+F,GAAcx3F,EAAOxG,CAAI,CAAC,GAGpC,CAACm+F,EACV,CAEA,GAAIxH,EAAM,WAAWvE,CAAQ,GAAKuE,EAAM,WAAWvE,EAAS,OAAO,EAAG,CACpE,MAAMxzF,EAAM,GAEZ+3F,SAAM,aAAavE,EAAU,CAACpyF,EAAMzC,IAAU,CAC5C2gG,EAAUJ,GAAc99F,CAAI,EAAGzC,EAAOqB,EAAK,CAAC,CAC9C,CAAC,EAEMA,CACT,CAEA,OAAO,IACT,CC1GA,MAAMy/F,GAAM,CAACz/F,EAAK/C,IAAS+C,GAAO,MAAQ+3F,EAAM,WAAW/3F,EAAK/C,CAAG,EAAI+C,EAAI/C,CAAG,EAAI,OAYlF,SAASyiG,GAAgBpyF,EAAUmtF,EAAQ8C,EAAS,CAClD,GAAIxF,EAAM,SAASzqF,CAAQ,EACzB,GAAI,CACF,OAACmtF,GAAU,KAAK,OAAOntF,CAAQ,EACxByqF,EAAM,KAAKzqF,CAAQ,CAC5B,OAASzH,EAAG,CACV,GAAIA,EAAE,OAAS,cACb,MAAMA,CAEV,CAGF,OAAQ03F,GAAW,KAAK,WAAWjwF,CAAQ,CAC7C,CAEA,MAAMqyF,GAAW,CACf,aAAc1B,GAEd,QAAS,CAAC,MAAO,OAAQ,OAAO,EAEhC,iBAAkB,CAChB,SAA0Bn2E,EAAM6wE,EAAS,CACvC,MAAMiH,EAAcjH,EAAQ,eAAc,GAAM,GAC1CkH,EAAqBD,EAAY,QAAQ,kBAAkB,EAAI,GAC/DE,EAAkB/H,EAAM,SAASjwE,CAAI,EAQ3C,GANIg4E,GAAmB/H,EAAM,WAAWjwE,CAAI,IAC1CA,EAAO,IAAI,SAASA,CAAI,GAGPiwE,EAAM,WAAWjwE,CAAI,EAGtC,OAAO+3E,EAAqB,KAAK,UAAUR,GAAev3E,CAAI,CAAC,EAAIA,EAGrE,GACEiwE,EAAM,cAAcjwE,CAAI,GACxBiwE,EAAM,SAASjwE,CAAI,GACnBiwE,EAAM,SAASjwE,CAAI,GACnBiwE,EAAM,OAAOjwE,CAAI,GACjBiwE,EAAM,OAAOjwE,CAAI,GACjBiwE,EAAM,iBAAiBjwE,CAAI,EAE3B,OAAOA,EAET,GAAIiwE,EAAM,kBAAkBjwE,CAAI,EAC9B,OAAOA,EAAK,OAEd,GAAIiwE,EAAM,kBAAkBjwE,CAAI,EAC9B,OAAA6wE,EAAQ,eAAe,kDAAmD,EAAK,EACxE7wE,EAAK,SAAQ,EAGtB,IAAI4rE,EAEJ,GAAIoM,EAAiB,CACnB,MAAMC,EAAiBN,GAAI,KAAM,gBAAgB,EACjD,GAAIG,EAAY,QAAQ,mCAAmC,EAAI,GAC7D,OAAOd,GAAiBh3E,EAAMi4E,CAAc,EAAE,SAAQ,EAGxD,IACGrM,EAAaqE,EAAM,WAAWjwE,CAAI,IACnC83E,EAAY,QAAQ,qBAAqB,EAAI,GAC7C,CACA,MAAMI,EAAMP,GAAI,KAAM,KAAK,EACrBQ,EAAYD,GAAOA,EAAI,SAE7B,OAAO3D,GACL3I,EAAa,CAAE,UAAW5rE,CAAI,EAAKA,EACnCm4E,GAAa,IAAIA,EACjBF,CACZ,CACQ,CACF,CAEA,OAAID,GAAmBD,GACrBlH,EAAQ,eAAe,mBAAoB,EAAK,EACzC+G,GAAgB53E,CAAI,GAGtBA,CACT,CACJ,EAEE,kBAAmB,CACjB,SAA2BA,EAAM,CAC/B,MAAMo4E,EAAeT,GAAI,KAAM,cAAc,GAAKE,GAAS,aACrDQ,EAAoBD,GAAgBA,EAAa,kBACjDE,EAAeX,GAAI,KAAM,cAAc,EACvCY,EAAgBD,IAAiB,OAEvC,GAAIrI,EAAM,WAAWjwE,CAAI,GAAKiwE,EAAM,iBAAiBjwE,CAAI,EACvD,OAAOA,EAGT,GACEA,GACAiwE,EAAM,SAASjwE,CAAI,IACjBq4E,GAAqB,CAACC,GAAiBC,GACzC,CAEA,MAAMC,EAAoB,EADAJ,GAAgBA,EAAa,oBACPG,EAEhD,GAAI,CACF,OAAO,KAAK,MAAMv4E,EAAM23E,GAAI,KAAM,cAAc,CAAC,CACnD,OAAS55F,EAAG,CACV,GAAIy6F,EACF,MAAIz6F,EAAE,OAAS,cACP21F,GAAW,KAAK31F,EAAG21F,GAAW,iBAAkB,KAAM,KAAMiE,GAAI,KAAM,UAAU,CAAC,EAEnF55F,CAEV,CACF,CAEA,OAAOiiB,CACT,CACJ,EAME,QAAS,EAET,eAAgB,aAChB,eAAgB,eAEhB,iBAAkB,GAClB,cAAe,GAEf,IAAK,CACH,SAAUmoD,GAAS,QAAQ,SAC3B,KAAMA,GAAS,QAAQ,IAC3B,EAEE,eAAgB,SAAwBswB,EAAQ,CAC9C,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA,QAAS,CACP,OAAQ,CACN,OAAQ,oCACR,eAAgB,MACtB,CACA,CACA,EAEAxI,EAAM,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,OAAO,EAAI9tF,GAAW,CACpF01F,GAAS,QAAQ11F,CAAM,EAAI,EAC7B,CAAC,EChKc,SAASu2F,GAAc3gG,EAAK8gF,EAAU,CACnD,MAAMlb,EAAS,MAAQk6B,GACjB3yE,EAAU2zD,GAAYlb,EACtBkzB,EAAUqC,GAAa,KAAKhuE,EAAQ,OAAO,EACjD,IAAIlF,EAAOkF,EAAQ,KAEnB+qE,SAAM,QAAQl4F,EAAK,SAAmBZ,EAAI,CACxC6oB,EAAO7oB,EAAG,KAAKwmE,EAAQ39C,EAAM6wE,EAAQ,UAAS,EAAIhY,EAAWA,EAAS,OAAS,MAAS,CAC1F,CAAC,EAEDgY,EAAQ,UAAS,EAEV7wE,CACT,CCzBe,SAAS24E,GAAS9hG,EAAO,CACtC,MAAO,CAAC,EAAEA,GAASA,EAAM,WAC3B,QCAA,cAA4B68F,EAAW,CAUrC,YAAYpa,EAAS3b,EAAQg2B,EAAS,CACpC,MAAMra,GAAkB,WAAsBoa,GAAW,aAAc/1B,EAAQg2B,CAAO,EACtF,KAAK,KAAO,gBACZ,KAAK,WAAa,EACpB,CACF,ECNe,SAASiF,GAAOh7E,EAASi7E,EAAQhgB,EAAU,CACxD,MAAMigB,EAAiBjgB,EAAS,OAAO,eACnC,CAACA,EAAS,QAAU,CAACigB,GAAkBA,EAAejgB,EAAS,MAAM,EACvEj7D,EAAQi7D,CAAQ,EAEhBggB,EAAO,IAAInF,GACT,mCAAqC7a,EAAS,OAC9CA,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAM6a,GAAW,gBAAkBA,GAAW,iBAC1F7a,EAAS,OACTA,EAAS,QACTA,CACN,CAAK,CAEL,CCxBe,SAASkgB,GAAcvpD,EAAK,CACzC,MAAMr2C,EAAQ,4BAA4B,KAAKq2C,CAAG,EAClD,OAAQr2C,GAASA,EAAM,CAAC,GAAM,EAChC,CCGA,SAAS6/F,GAAYC,EAAc7vD,EAAK,CACtC6vD,EAAeA,GAAgB,GAC/B,MAAM1wD,EAAQ,IAAI,MAAM0wD,CAAY,EAC9BC,EAAa,IAAI,MAAMD,CAAY,EACzC,IAAI96F,EAAO,EACPC,EAAO,EACP+6F,EAEJ,OAAA/vD,EAAMA,IAAQ,OAAYA,EAAM,IAEzB,SAAcgwD,EAAa,CAChC,MAAMC,EAAM,KAAK,IAAG,EAEdC,EAAYJ,EAAW96F,CAAI,EAE5B+6F,IACHA,EAAgBE,GAGlB9wD,EAAMpqC,CAAI,EAAIi7F,EACdF,EAAW/6F,CAAI,EAAIk7F,EAEnB,IAAItjG,EAAIqI,EACJm7F,EAAa,EAEjB,KAAOxjG,IAAMoI,GACXo7F,GAAchxD,EAAMxyC,GAAG,EACvBA,EAAIA,EAAIkjG,EASV,GANA96F,GAAQA,EAAO,GAAK86F,EAEhB96F,IAASC,IACXA,GAAQA,EAAO,GAAK66F,GAGlBI,EAAMF,EAAgB/vD,EACxB,OAGF,MAAMowD,EAASF,GAAaD,EAAMC,EAElC,OAAOE,EAAS,KAAK,MAAOD,EAAa,IAAQC,CAAM,EAAI,MAC7D,CACF,CC9CA,SAASC,GAAStiG,EAAIuiG,EAAM,CAC1B,IAAInyC,EAAY,EACZ6L,EAAY,IAAOsmC,EACnBC,EACAtqC,EAEJ,MAAMuqC,EAAS,CAACn4F,EAAM43F,EAAM,KAAK,IAAG,IAAO,CACzC9xC,EAAY8xC,EACZM,EAAW,KACPtqC,IACF,aAAaA,CAAK,EAClBA,EAAQ,MAEVl4D,EAAG,GAAGsK,CAAI,CACZ,EAoBA,MAAO,CAlBW,IAAIA,IAAS,CAC7B,MAAM43F,EAAM,KAAK,IAAG,EACdG,EAASH,EAAM9xC,EACjBiyC,GAAUpmC,EACZwmC,EAAOn4F,EAAM43F,CAAG,GAEhBM,EAAWl4F,EACN4tD,IACHA,EAAQ,WAAW,IAAM,CACvBA,EAAQ,KACRuqC,EAAOD,CAAQ,CACjB,EAAGvmC,EAAYomC,CAAM,GAG3B,EAEc,IAAMG,GAAYC,EAAOD,CAAQ,CAEvB,CAC1B,CCrCO,MAAME,GAAuB,CAAC5pC,EAAU6pC,EAAkBJ,EAAO,IAAM,CAC5E,IAAIK,EAAgB,EACpB,MAAMC,EAAehB,GAAY,GAAI,GAAG,EAExC,OAAOS,GAAU17F,GAAM,CACrB,GAAI,CAACA,GAAK,OAAOA,EAAE,QAAW,SAC5B,OAEF,MAAMk8F,EAAYl8F,EAAE,OACdm8F,EAAQn8F,EAAE,iBAAmBA,EAAE,MAAQ,OACvCo8F,EAASD,GAAS,KAAO,KAAK,IAAID,EAAWC,CAAK,EAAID,EACtDG,EAAgB,KAAK,IAAI,EAAGD,EAASJ,CAAa,EAClDM,EAAOL,EAAaI,CAAa,EAEvCL,EAAgB,KAAK,IAAIA,EAAeI,CAAM,EAE9C,MAAMn6E,EAAO,CACX,OAAAm6E,EACA,MAAAD,EACA,SAAUA,EAAQC,EAASD,EAAQ,OACnC,MAAOE,EACP,KAAMC,GAAc,OACpB,UAAWA,GAAQH,GAASA,EAAQC,GAAUE,EAAO,OACrD,MAAOt8F,EACP,iBAAkBm8F,GAAS,KAC3B,CAACJ,EAAmB,WAAa,QAAQ,EAAG,EAClD,EAEI7pC,EAASjwC,CAAI,CACf,EAAG05E,CAAI,CACT,EAEaY,GAAyB,CAACJ,EAAOK,IAAc,CAC1D,MAAMC,EAAmBN,GAAS,KAElC,MAAO,CACJC,GACCI,EAAU,CAAC,EAAE,CACX,iBAAAC,EACA,MAAAN,EACA,OAAAC,CACR,CAAO,EACHI,EAAU,CAAC,CACf,CACA,EAEaE,GACVtjG,GACD,IAAIsK,IACFwuF,EAAM,KAAK,IAAM94F,EAAG,GAAGsK,CAAI,CAAC,ECnDhCi5F,GAAevyB,GAAS,uBACnB,CAAC4uB,EAAQ4D,IAAYnrD,IACpBA,EAAM,IAAI,IAAIA,EAAK24B,GAAS,MAAM,EAGhC4uB,EAAO,WAAavnD,EAAI,UACxBunD,EAAO,OAASvnD,EAAI,OACnBmrD,GAAU5D,EAAO,OAASvnD,EAAI,QAGjC,IAAI,IAAI24B,GAAS,MAAM,EACvBA,GAAS,WAAa,kBAAkB,KAAKA,GAAS,UAAU,SAAS,CAC/E,EACI,IAAM,GCZVyyB,GAAezyB,GAAS,sBAEpB,CACE,MAAM7uE,EAAMzC,EAAOgkG,EAASxpF,EAAMypF,EAAQC,EAAQC,EAAU,CAC1D,GAAI,OAAO,SAAa,IAAa,OAErC,MAAMC,EAAS,CAAC,GAAG3hG,CAAI,IAAI,mBAAmBzC,CAAK,CAAC,EAAE,EAElDo5F,EAAM,SAAS4K,CAAO,GACxBI,EAAO,KAAK,WAAW,IAAI,KAAKJ,CAAO,EAAE,YAAW,CAAE,EAAE,EAEtD5K,EAAM,SAAS5+E,CAAI,GACrB4pF,EAAO,KAAK,QAAQ5pF,CAAI,EAAE,EAExB4+E,EAAM,SAAS6K,CAAM,GACvBG,EAAO,KAAK,UAAUH,CAAM,EAAE,EAE5BC,IAAW,IACbE,EAAO,KAAK,QAAQ,EAElBhL,EAAM,SAAS+K,CAAQ,GACzBC,EAAO,KAAK,YAAYD,CAAQ,EAAE,EAGpC,SAAS,OAASC,EAAO,KAAK,IAAI,CACpC,EAEA,KAAK3hG,EAAM,CACT,GAAI,OAAO,SAAa,IAAa,OAAO,KAM5C,MAAMshG,EAAU,SAAS,OAAO,MAAM,GAAG,EACzC,QAAS7kG,EAAI,EAAGA,EAAI6kG,EAAQ,OAAQ7kG,IAAK,CACvC,MAAMklG,EAASL,EAAQ7kG,CAAC,EAAE,QAAQ,OAAQ,EAAE,EACtCmlG,EAAKD,EAAO,QAAQ,GAAG,EAC7B,GAAIC,IAAO,IAAMD,EAAO,MAAM,EAAGC,CAAE,IAAM5hG,EACvC,GAAI,CACF,OAAO,mBAAmB2hG,EAAO,MAAMC,EAAK,CAAC,CAAC,CAChD,MAAY,CACV,OAAOD,EAAO,MAAMC,EAAK,CAAC,CAC5B,CAEJ,CACA,OAAO,IACT,EAEA,OAAO5hG,EAAM,CACX,KAAK,MAAMA,EAAM,GAAI,KAAK,IAAG,EAAK,MAAU,GAAG,CACjD,CACN,EAEI,CACE,OAAQ,CAAC,EACT,MAAO,CACL,OAAO,IACT,EACA,QAAS,CAAC,CAChB,ECtDe,SAAS6hG,GAAc3rD,EAAK,CAIzC,OAAI,OAAOA,GAAQ,SACV,GAGF,8BAA8B,KAAKA,CAAG,CAC/C,CCRe,SAAS4rD,GAAYC,EAASC,EAAa,CACxD,OAAOA,EACHD,EAAQ,QAAQ,SAAU,EAAE,EAAI,IAAMC,EAAY,QAAQ,OAAQ,EAAE,EACpED,CACN,CCRA,MAAME,GAAwB,oBACxBC,GAAgC,YAEtC,SAASC,GAA6BjsD,EAAK,CACzC,IAAIz5C,EAAI,EACR,KAAOA,EAAIy5C,EAAI,QAAUA,EAAI,WAAWz5C,CAAC,GAAK,IAC5CA,IAEF,OAAOy5C,EAAI,MAAMz5C,CAAC,CACpB,CAEA,SAAS2lG,GAA6BlsD,EAAK,CACzC,OAAOisD,GAA6BjsD,CAAG,EAAE,QAAQgsD,GAA+B,EAAE,CACpF,CAEA,SAASG,GAA2BnsD,EAAKmuB,EAAQ,CAC/C,GAAI,OAAOnuB,GAAQ,UAAY+rD,GAAsB,KAAKG,GAA6BlsD,CAAG,CAAC,EACzF,MAAM,IAAIkkD,GACR,2CACAA,GAAW,gBACX/1B,CACN,CAEA,CAYe,SAASi+B,GAAcP,EAASQ,EAAcC,EAAmBn+B,EAAQ,CACtFg+B,GAA2BE,EAAcl+B,CAAM,EAC/C,IAAIo+B,EAAgB,CAACZ,GAAcU,CAAY,EAC/C,OAAIR,IAAYU,GAAiBD,IAAsB,KACrDH,GAA2BN,EAAS19B,CAAM,EACnCy9B,GAAYC,EAASQ,CAAY,GAEnCA,CACT,CC5CA,MAAMG,GAAmBrR,GAAWA,aAAiBuI,GAAe,CAAE,GAAGvI,CAAK,EAAKA,EAWpE,SAASsR,GAAYC,EAASC,EAAS,CAEpDD,EAAUA,GAAW,GACrBC,EAAUA,GAAW,GAMrB,MAAMx+B,EAAS,OAAO,OAAO,IAAI,EACjC,OAAO,eAAeA,EAAQ,iBAAkB,CAG9C,UAAW,KACX,MAAO,OAAO,UAAU,eACxB,WAAY,GACZ,SAAU,GACV,aAAc,EAClB,CAAG,EAED,SAASy+B,EAAet8F,EAAQ0H,EAAQwjB,EAAM8hE,EAAU,CACtD,OAAImD,EAAM,cAAcnwF,CAAM,GAAKmwF,EAAM,cAAczoF,CAAM,EACpDyoF,EAAM,MAAM,KAAK,CAAE,SAAAnD,CAAQ,EAAIhtF,EAAQ0H,CAAM,EAC3CyoF,EAAM,cAAczoF,CAAM,EAC5ByoF,EAAM,MAAM,GAAIzoF,CAAM,EACpByoF,EAAM,QAAQzoF,CAAM,EACtBA,EAAO,MAAK,EAEdA,CACT,CAEA,SAAS60F,EAAoBtiG,EAAGC,EAAGgxB,EAAM8hE,EAAU,CACjD,GAAKmD,EAAM,YAAYj2F,CAAC,GAEjB,GAAI,CAACi2F,EAAM,YAAYl2F,CAAC,EAC7B,OAAOqiG,EAAe,OAAWriG,EAAGixB,EAAM8hE,CAAQ,MAFlD,QAAOsP,EAAeriG,EAAGC,EAAGgxB,EAAM8hE,CAAQ,CAI9C,CAGA,SAASwP,EAAiBviG,EAAGC,EAAG,CAC9B,GAAI,CAACi2F,EAAM,YAAYj2F,CAAC,EACtB,OAAOoiG,EAAe,OAAWpiG,CAAC,CAEtC,CAGA,SAASuiG,EAAiBxiG,EAAGC,EAAG,CAC9B,GAAKi2F,EAAM,YAAYj2F,CAAC,GAEjB,GAAI,CAACi2F,EAAM,YAAYl2F,CAAC,EAC7B,OAAOqiG,EAAe,OAAWriG,CAAC,MAFlC,QAAOqiG,EAAe,OAAWpiG,CAAC,CAItC,CAEA,SAASwiG,EAA4BxxE,EAAM,CACzC,MAAMyxE,EAAgBxM,EAAM,WAAWkM,EAAS,cAAc,EAAIA,EAAQ,aAAe,OAEzF,GAAI,CAAClM,EAAM,YAAYwM,CAAa,EAClC,GAAIxM,EAAM,cAAcwM,CAAa,GACnC,GAAIxM,EAAM,WAAWwM,EAAezxE,CAAI,EACtC,OAAOyxE,EAAczxE,CAAI,MAG3B,QAIJ,MAAM0xE,EAAgBzM,EAAM,WAAWiM,EAAS,cAAc,EAAIA,EAAQ,aAAe,OAEzF,GAAIjM,EAAM,cAAcyM,CAAa,GAAKzM,EAAM,WAAWyM,EAAe1xE,CAAI,EAC5E,OAAO0xE,EAAc1xE,CAAI,CAI7B,CAGA,SAAS2xE,EAAgB5iG,EAAGC,EAAGgxB,EAAM,CACnC,GAAIilE,EAAM,WAAWkM,EAASnxE,CAAI,EAChC,OAAOoxE,EAAeriG,EAAGC,CAAC,EACrB,GAAIi2F,EAAM,WAAWiM,EAASlxE,CAAI,EACvC,OAAOoxE,EAAe,OAAWriG,CAAC,CAEtC,CAEA,MAAM6iG,EAAW,CACf,IAAKN,EACL,OAAQA,EACR,KAAMA,EACN,QAASC,EACT,iBAAkBA,EAClB,kBAAmBA,EACnB,iBAAkBA,EAClB,QAASA,EACT,eAAgBA,EAChB,gBAAiBA,EACjB,cAAeA,EACf,QAASA,EACT,aAAcA,EACd,eAAgBA,EAChB,eAAgBA,EAChB,iBAAkBA,EAClB,mBAAoBA,EACpB,WAAYA,EACZ,iBAAkBA,EAClB,cAAeA,EACf,eAAgBA,EAChB,UAAWA,EACX,UAAWA,EACX,WAAYA,EACZ,YAAaA,EACb,WAAYA,EACZ,mBAAoBA,EACpB,iBAAkBA,EAClB,eAAgBI,EAChB,QAAS,CAAC5iG,EAAGC,EAAGgxB,IACdqxE,EAAoBL,GAAgBjiG,CAAC,EAAGiiG,GAAgBhiG,CAAC,EAAGgxB,EAAM,EAAI,CAC5E,EAEEilE,SAAM,QAAQ,OAAO,KAAK,CAAE,GAAGiM,EAAS,GAAGC,CAAO,CAAE,EAAG,SAA4BnxE,EAAM,CACvF,GAAIA,IAAS,aAAeA,IAAS,eAAiBA,IAAS,YAAa,OAC5E,MAAM4hE,EAAQqD,EAAM,WAAW2M,EAAU5xE,CAAI,EAAI4xE,EAAS5xE,CAAI,EAAIqxE,EAC5DtiG,EAAIk2F,EAAM,WAAWiM,EAASlxE,CAAI,EAAIkxE,EAAQlxE,CAAI,EAAI,OACtDhxB,EAAIi2F,EAAM,WAAWkM,EAASnxE,CAAI,EAAImxE,EAAQnxE,CAAI,EAAI,OACtD6xE,EAAcjQ,EAAM7yF,EAAGC,EAAGgxB,CAAI,EACnCilE,EAAM,YAAY4M,CAAW,GAAKjQ,IAAU+P,IAAqBh/B,EAAO3yC,CAAI,EAAI6xE,EACnF,CAAC,EAGC5M,EAAM,WAAWkM,EAAS,gBAAgB,GAC1ClM,EAAM,YAAYkM,EAAQ,cAAc,GACxCK,EAA4B,iCAAiC,IAAM,KAE/DvM,EAAM,WAAWiM,EAAS,gBAAgB,EAC5Cv+B,EAAO,eAAiBy+B,EAAe,OAAWF,EAAQ,cAAc,EAExE,OAAOv+B,EAAO,gBAIXA,CACT,CCpJA,MAAMm/B,GAA4B,CAAC,eAAgB,gBAAgB,EAEnE,SAASC,GAAmBlM,EAASmM,EAAa3lE,EAAQ,CACxD,GAAIA,IAAW,eAAgB,CAC7Bw5D,EAAQ,IAAImM,CAAW,EACvB,MACF,CAEA,OAAO,QAAQA,GAAe,EAAE,EAAE,QAAQ,CAAC,CAAC7nG,EAAKC,CAAG,IAAM,CACpD0nG,GAA0B,SAAS3nG,EAAI,YAAW,CAAE,GACtD07F,EAAQ,IAAI17F,EAAKC,CAAG,CAExB,CAAC,CACH,CAUA,MAAM6nG,GAAchoG,GAClB,mBAAmBA,CAAG,EAAE,QAAQ,mBAAoB,CAACy7D,EAAGwsC,IACtD,OAAO,aAAa,SAASA,EAAK,EAAE,CAAC,CACzC,EAEA,SAASC,GAAcx/B,EAAQ,CAC7B,MAAMy/B,EAAYnB,GAAY,GAAIt+B,CAAM,EAIlCg6B,EAAOxiG,GAAS86F,EAAM,WAAWmN,EAAWjoG,CAAG,EAAIioG,EAAUjoG,CAAG,EAAI,OAEpE6qB,EAAO23E,EAAI,MAAM,EACvB,IAAI0F,EAAgB1F,EAAI,eAAe,EACvC,MAAM2F,EAAiB3F,EAAI,gBAAgB,EACrC4F,EAAiB5F,EAAI,gBAAgB,EAC3C,IAAI9G,EAAU8G,EAAI,SAAS,EAC3B,MAAM6F,EAAO7F,EAAI,MAAM,EACjB0D,EAAU1D,EAAI,SAAS,EACvBmE,EAAoBnE,EAAI,mBAAmB,EAC3CnoD,EAAMmoD,EAAI,KAAK,EAWrB,GATAyF,EAAU,QAAUvM,EAAUqC,GAAa,KAAKrC,CAAO,EAEvDuM,EAAU,IAAMzH,GACdiG,GAAcP,EAAS7rD,EAAKssD,EAAmBsB,CAAS,EACxDzF,EAAI,QAAQ,EACZA,EAAI,kBAAkB,CAC1B,EAGM6F,EAAM,CACR,MAAMC,EAAWxN,EAAM,YAAYuN,EAAM,UAAU,GAAK,GAClDE,EAAWzN,EAAM,YAAYuN,EAAM,UAAU,GAAK,GAExD,GAAI,CACF3M,EAAQ,IACN,gBACA,SAAW,KAAK4M,EAAW,KAAOC,EAAWT,GAAWS,CAAQ,EAAI,GAAG,CAC/E,CACI,OAAS3/F,EAAG,CACV,MAAM21F,GAAW,KAAK31F,EAAG21F,GAAW,qBAAsB/1B,CAAM,CAClE,CACF,CAmBA,GAjBIsyB,EAAM,WAAWjwE,CAAI,IAErBmoD,GAAS,uBACTA,GAAS,gCACT8nB,EAAM,cAAcjwE,CAAI,EAExB6wE,EAAQ,eAAe,MAAS,EACvBZ,EAAM,WAAWjwE,EAAK,UAAU,GAEzC+8E,GAAmBlM,EAAS7wE,EAAK,WAAU,EAAI23E,EAAI,sBAAsB,CAAC,GAQ1ExvB,GAAS,wBACP8nB,EAAM,WAAWoN,CAAa,IAChCA,EAAgBA,EAAcD,CAAS,GAOvCC,IAAkB,IAASA,GAAiB,MAAQ3C,GAAgB0C,EAAU,GAAG,GAE/D,CAClB,MAAMO,EAAYL,GAAkBC,GAAkB3C,GAAQ,KAAK2C,CAAc,EAE7EI,GACF9M,EAAQ,IAAIyM,EAAgBK,CAAS,CAEzC,CAGF,OAAOP,CACT,CCxGA,MAAMQ,GAAwB,OAAO,eAAmB,IAExDC,GAAeD,IACb,SAAUjgC,EAAQ,CAChB,OAAO,IAAI,QAAQ,SAA4B//C,EAASi7E,EAAQ,CAC9D,MAAMiF,EAAUX,GAAcx/B,CAAM,EACpC,IAAIogC,EAAcD,EAAQ,KAC1B,MAAME,EAAiB9K,GAAa,KAAK4K,EAAQ,OAAO,EAAE,UAAS,EACnE,GAAI,CAAE,aAAAxF,EAAc,iBAAA2F,EAAkB,mBAAAC,CAAkB,EAAKJ,EACzDK,EACAC,EAAiBC,EACjBC,EAAaC,EAEjB,SAASz5F,GAAO,CACdw5F,GAAeA,EAAW,EAC1BC,GAAiBA,EAAa,EAE9BT,EAAQ,aAAeA,EAAQ,YAAY,YAAYK,CAAU,EAEjEL,EAAQ,QAAUA,EAAQ,OAAO,oBAAoB,QAASK,CAAU,CAC1E,CAEA,IAAIxK,EAAU,IAAI,eAElBA,EAAQ,KAAKmK,EAAQ,OAAO,YAAW,EAAIA,EAAQ,IAAK,EAAI,EAG5DnK,EAAQ,QAAUmK,EAAQ,QAE1B,SAASU,GAAY,CACnB,GAAI,CAAC7K,EACH,OAGF,MAAM8K,EAAkBvL,GAAa,KACnC,0BAA2BS,GAAWA,EAAQ,sBAAqB,CAC7E,EAKc9a,EAAW,CACf,KAJA,CAACyf,GAAgBA,IAAiB,QAAUA,IAAiB,OACzD3E,EAAQ,aACRA,EAAQ,SAGZ,OAAQA,EAAQ,OAChB,WAAYA,EAAQ,WACpB,QAAS8K,EACT,OAAA9gC,EACA,QAAAg2B,CACV,EAEQiF,GACE,SAAkB/hG,EAAO,CACvB+mB,EAAQ/mB,CAAK,EACbiO,EAAI,CACN,EACA,SAAiB5G,EAAK,CACpB26F,EAAO36F,CAAG,EACV4G,EAAI,CACN,EACA+zE,CACV,EAGQ8a,EAAU,IACZ,CAEI,cAAeA,EAEjBA,EAAQ,UAAY6K,EAGpB7K,EAAQ,mBAAqB,UAAsB,CAC7C,CAACA,GAAWA,EAAQ,aAAe,GASrCA,EAAQ,SAAW,GACnB,EAAEA,EAAQ,aAAeA,EAAQ,YAAY,WAAW,OAAO,IAMjE,WAAW6K,CAAS,CACtB,EAIF7K,EAAQ,QAAU,UAAuB,CAClCA,IAILkF,EAAO,IAAInF,GAAW,kBAAmBA,GAAW,aAAc/1B,EAAQg2B,CAAO,CAAC,EAClF7uF,EAAI,EAGJ6uF,EAAU,KACZ,EAGAA,EAAQ,QAAU,SAAqBhtE,EAAO,CAI5C,MAAM0jB,EAAM1jB,GAASA,EAAM,QAAUA,EAAM,QAAU,gBAC/CzoB,EAAM,IAAIw1F,GAAWrpD,EAAKqpD,GAAW,YAAa/1B,EAAQg2B,CAAO,EAEvEz1F,EAAI,MAAQyoB,GAAS,KACrBkyE,EAAO36F,CAAG,EACV4G,EAAI,EACJ6uF,EAAU,IACZ,EAGAA,EAAQ,UAAY,UAAyB,CAC3C,IAAI+K,EAAsBZ,EAAQ,QAC9B,cAAgBA,EAAQ,QAAU,cAClC,mBACJ,MAAM1F,EAAe0F,EAAQ,cAAgB3H,GACzC2H,EAAQ,sBACVY,EAAsBZ,EAAQ,qBAEhCjF,EACE,IAAInF,GACFgL,EACAtG,EAAa,oBAAsB1E,GAAW,UAAYA,GAAW,aACrE/1B,EACAg2B,CACZ,CACA,EACQ7uF,EAAI,EAGJ6uF,EAAU,IACZ,EAGAoK,IAAgB,QAAaC,EAAe,eAAe,IAAI,EAG3D,qBAAsBrK,GACxB1D,EAAM,QAAQW,GAAyBoN,CAAc,EAAG,SAA0B5oG,EAAKD,EAAK,CAC1Fw+F,EAAQ,iBAAiBx+F,EAAKC,CAAG,CACnC,CAAC,EAIE66F,EAAM,YAAY6N,EAAQ,eAAe,IAC5CnK,EAAQ,gBAAkB,CAAC,CAACmK,EAAQ,iBAIlCxF,GAAgBA,IAAiB,SACnC3E,EAAQ,aAAemK,EAAQ,cAI7BI,IACF,CAACG,EAAmBE,CAAa,EAAI1E,GAAqBqE,EAAoB,EAAI,EAClFvK,EAAQ,iBAAiB,WAAY0K,CAAiB,GAIpDJ,GAAoBtK,EAAQ,SAC9B,CAACyK,EAAiBE,CAAW,EAAIzE,GAAqBoE,CAAgB,EAEtEtK,EAAQ,OAAO,iBAAiB,WAAYyK,CAAe,EAE3DzK,EAAQ,OAAO,iBAAiB,UAAW2K,CAAW,IAGpDR,EAAQ,aAAeA,EAAQ,UAGjCK,EAAcQ,GAAW,CAClBhL,IAGLkF,EAAO,CAAC8F,GAAUA,EAAO,KAAO,IAAIC,GAAc,KAAMjhC,EAAQg2B,CAAO,EAAIgL,CAAM,EACjFhL,EAAQ,MAAK,EACb7uF,EAAI,EACJ6uF,EAAU,KACZ,EAEAmK,EAAQ,aAAeA,EAAQ,YAAY,UAAUK,CAAU,EAC3DL,EAAQ,SACVA,EAAQ,OAAO,QACXK,EAAU,EACVL,EAAQ,OAAO,iBAAiB,QAASK,CAAU,IAI3D,MAAMU,EAAW9F,GAAc+E,EAAQ,GAAG,EAE1C,GAAIe,GAAY,CAAC12B,GAAS,UAAU,SAAS02B,CAAQ,EAAG,CACtDhG,EACE,IAAInF,GACF,wBAA0BmL,EAAW,IACrCnL,GAAW,gBACX/1B,CACZ,CACA,EACQ74D,EAAI,EACJ,MACF,CAGA6uF,EAAQ,KAAKoK,GAAe,IAAI,CAClC,CAAC,CACH,EC/NIe,GAAiB,CAACC,EAAShkE,IAAY,CAG3C,GAFAgkE,EAAUA,EAAUA,EAAQ,OAAO,OAAO,EAAI,GAE1C,CAAChkE,GAAW,CAACgkE,EAAQ,OACvB,OAGF,MAAMC,EAAa,IAAI,gBAEvB,IAAIC,EAAU,GAEd,MAAMC,EAAU,SAAUC,EAAQ,CAChC,GAAI,CAACF,EAAS,CACZA,EAAU,GACVhnB,EAAW,EACX,MAAM/5E,EAAMihG,aAAkB,MAAQA,EAAS,KAAK,OACpDH,EAAW,MACT9gG,aAAew1F,GACXx1F,EACA,IAAI0gG,GAAc1gG,aAAe,MAAQA,EAAI,QAAUA,CAAG,CACtE,CACI,CACF,EAEA,IAAImxD,EACFt0B,GACA,WAAW,IAAM,CACfs0B,EAAQ,KACR6vC,EAAQ,IAAIxL,GAAW,cAAc34D,CAAO,cAAe24D,GAAW,SAAS,CAAC,CAClF,EAAG34D,CAAO,EAEZ,MAAMk9C,EAAc,IAAM,CACnB8mB,IACL1vC,GAAS,aAAaA,CAAK,EAC3BA,EAAQ,KACR0vC,EAAQ,QAASK,GAAW,CAC1BA,EAAO,YACHA,EAAO,YAAYF,CAAO,EAC1BE,EAAO,oBAAoB,QAASF,CAAO,CACjD,CAAC,EACDH,EAAU,KACZ,EAEAA,EAAQ,QAASK,GAAWA,EAAO,iBAAiB,QAASF,EAAS,CAAE,KAAM,EAAI,CAAE,CAAC,EAErF,KAAM,CAAE,OAAAE,CAAM,EAAKJ,EAEnB,OAAAI,EAAO,YAAc,IAAMnP,EAAM,KAAKhY,CAAW,EAE1CmnB,CACT,ECtDaC,GAAc,UAAWhqC,EAAOiqC,EAAW,CACtD,IAAIzrE,EAAMwhC,EAAM,WAEhB,GAAkBxhC,EAAMyrE,EAAW,CACjC,MAAMjqC,EACN,MACF,CAEA,IAAI/vB,EAAM,EACNx4B,EAEJ,KAAOw4B,EAAMzR,GACX/mB,EAAMw4B,EAAMg6D,EACZ,MAAMjqC,EAAM,MAAM/vB,EAAKx4B,CAAG,EAC1Bw4B,EAAMx4B,CAEV,EAEayyF,GAAY,gBAAiBC,EAAUF,EAAW,CAC7D,gBAAiBjqC,KAASoqC,GAAWD,CAAQ,EAC3C,MAAOH,GAAYhqC,EAAOiqC,CAAS,CAEvC,EAEMG,GAAa,gBAAiBC,EAAQ,CAC1C,GAAIA,EAAO,OAAO,aAAa,EAAG,CAChC,MAAOA,EACP,MACF,CAEA,MAAMC,EAASD,EAAO,UAAS,EAC/B,GAAI,CACF,OAAS,CACP,KAAM,CAAE,KAAA56F,EAAM,MAAAjO,CAAK,EAAK,MAAM8oG,EAAO,KAAI,EACzC,GAAI76F,EACF,MAEF,MAAMjO,CACR,CACF,SACE,MAAM8oG,EAAO,OAAM,CACrB,CACF,EAEaC,GAAc,CAACF,EAAQJ,EAAWO,EAAYC,IAAa,CACtE,MAAMt+F,EAAW+9F,GAAUG,EAAQJ,CAAS,EAE5C,IAAI/2D,EAAQ,EACRzjC,EACAi7F,EAAahiG,GAAM,CAChB+G,IACHA,EAAO,GACPg7F,GAAYA,EAAS/hG,CAAC,EAE1B,EAEA,OAAO,IAAI,eACT,CACE,MAAM,KAAKihG,EAAY,CACrB,GAAI,CACF,KAAM,CAAE,KAAAl6F,EAAM,MAAAjO,CAAK,EAAK,MAAM2K,EAAS,KAAI,EAE3C,GAAIsD,EAAM,CACRi7F,EAAS,EACTf,EAAW,MAAK,EAChB,MACF,CAEA,IAAInrE,EAAMh9B,EAAM,WAChB,GAAIgpG,EAAY,CACd,IAAIG,EAAez3D,GAAS1U,EAC5BgsE,EAAWG,CAAW,CACxB,CACAhB,EAAW,QAAQ,IAAI,WAAWnoG,CAAK,CAAC,CAC1C,OAASqH,EAAK,CACZ,MAAA6hG,EAAU7hG,CAAG,EACPA,CACR,CACF,EACA,OAAOihG,EAAQ,CACb,OAAAY,EAAUZ,CAAM,EACT39F,EAAS,OAAM,CACxB,CACN,EACI,CACE,cAAe,CACrB,CACA,CACA,EC/EMy+F,GAAcC,GACjBA,GAAY,IAAMA,GAAY,IAC9BA,GAAY,IAAMA,GAAY,IAC9BA,GAAY,IAAMA,GAAY,IAE3BC,GAAuB,CAAClrG,EAAKc,EAAG89B,IACpC99B,EAAI,EAAI89B,GAAOosE,GAAWhrG,EAAI,WAAWc,EAAI,CAAC,CAAC,GAAKkqG,GAAWhrG,EAAI,WAAWc,EAAI,CAAC,CAAC,EAEvE,SAASqqG,GAA4B5wD,EAAK,CAEvD,GADI,CAACA,GAAO,OAAOA,GAAQ,UACvB,CAACA,EAAI,WAAW,OAAO,EAAG,MAAO,GAErC,MAAM6wD,EAAQ7wD,EAAI,QAAQ,GAAG,EAC7B,GAAI6wD,EAAQ,EAAG,MAAO,GAEtB,MAAMC,EAAO9wD,EAAI,MAAM,EAAG6wD,CAAK,EACzBz+C,EAAOpS,EAAI,MAAM6wD,EAAQ,CAAC,EAGhC,GAFiB,WAAW,KAAKC,CAAI,EAEvB,CACZ,IAAIC,EAAe3+C,EAAK,OACxB,MAAM/tB,EAAM+tB,EAAK,OAEjB,QAAS7rD,EAAI,EAAGA,EAAI89B,EAAK99B,IACvB,GAAI6rD,EAAK,WAAW7rD,CAAC,IAAM,IAAgBA,EAAI,EAAI89B,EAAK,CACtD,MAAM95B,EAAI6nD,EAAK,WAAW7rD,EAAI,CAAC,EACzBiE,EAAI4nD,EAAK,WAAW7rD,EAAI,CAAC,EACjBkqG,GAAWlmG,CAAC,GAAKkmG,GAAWjmG,CAAC,IAGzCumG,GAAgB,EAChBxqG,GAAK,EAET,CAGF,IAAIyqG,EAAM,EACNze,EAAMluD,EAAM,EAEhB,MAAM4sE,EAAejiF,GACnBA,GAAK,GACLojC,EAAK,WAAWpjC,EAAI,CAAC,IAAM,IAC3BojC,EAAK,WAAWpjC,EAAI,CAAC,IAAM,KAC1BojC,EAAK,WAAWpjC,CAAC,IAAM,IAAMojC,EAAK,WAAWpjC,CAAC,IAAM,KAEnDujE,GAAO,IACLngC,EAAK,WAAWmgC,CAAG,IAAM,IAC3Bye,IACAze,KACS0e,EAAY1e,CAAG,IACxBye,IACAze,GAAO,IAIPye,IAAQ,GAAKze,GAAO,IAClBngC,EAAK,WAAWmgC,CAAG,IAAM,IAElB0e,EAAY1e,CAAG,IACxBye,IAKJ,MAAMj4D,EADS,KAAK,MAAMg4D,EAAe,CAAC,EACnB,GAAKC,GAAO,GACnC,OAAOj4D,EAAQ,EAAIA,EAAQ,CAC7B,CAMA,IAAIA,EAAQ,EACZ,QAASxyC,EAAI,EAAG89B,EAAM+tB,EAAK,OAAQ7rD,EAAI89B,EAAK99B,IAAK,CAC/C,MAAMwB,EAAIqqD,EAAK,WAAW7rD,CAAC,EAC3B,GAAIwB,IAAM,IAAgB4oG,GAAqBv+C,EAAM7rD,EAAG89B,CAAG,EACzD0U,GAAS,EACTxyC,GAAK,UACIwB,EAAI,IACbgxC,GAAS,UACAhxC,EAAI,KACbgxC,GAAS,UACAhxC,GAAK,OAAUA,GAAK,OAAUxB,EAAI,EAAI89B,EAAK,CACpD,MAAM71B,EAAO4jD,EAAK,WAAW7rD,EAAI,CAAC,EAC9BiI,GAAQ,OAAUA,GAAQ,OAC5BuqC,GAAS,EACTxyC,KAEAwyC,GAAS,CAEb,MACEA,GAAS,CAEb,CACA,OAAOA,CACT,CCxGO,MAAMm4D,GAAU,SCiBjBC,GAAqB,GAAK,KAE1B,CAAE,WAAApqG,EAAU,EAAK05F,EAUjBgN,GAAchoG,GAClB,mBAAmBA,CAAG,EAAE,QAAQ,mBAAoB,CAACy7D,EAAGwsC,IACtD,OAAO,aAAa,SAASA,EAAK,EAAE,CAAC,CACzC,EAMM0D,GAA0B/pG,GAAU,CACxC,GAAI,CAACo5F,EAAM,SAASp5F,CAAK,EACvB,OAAOA,EAGT,GAAI,CACF,OAAO,mBAAmBA,CAAK,CACjC,MAAgB,CACd,OAAOA,CACT,CACF,EAEMs5D,GAAO,CAACh5D,KAAOsK,IAAS,CAC5B,GAAI,CACF,MAAO,CAAC,CAACtK,EAAG,GAAGsK,CAAI,CACrB,MAAY,CACV,MAAO,EACT,CACF,EAEMo/F,GAA4BrxD,GAAQ,CACxC,MAAMsxD,EAAgBtxD,EAAI,QAAQ,KAAK,EACvC,IAAIuxD,EAAavxD,EACjB,OAAIsxD,IAAkB,KACpBC,EAAaA,EAAW,MAAMD,EAAgB,CAAC,GAE1CC,EAAW,SAAS,GAAG,GAAKA,EAAW,SAAS,GAAG,CAC5D,EAEMl5F,GAAWqwF,GAAQ,CACvB,MAAM8I,EACJ/Q,EAAM,SAAW,QAAaA,EAAM,SAAW,KAC3CA,EAAM,OACN,WACA,CAAE,eAAAgR,EAAgB,YAAAC,CAAW,EAAKF,EAExC9I,EAAMjI,EAAM,MAAM,KAChB,CACE,cAAe,EACrB,EACI,CACE,QAAS+Q,EAAa,QACtB,SAAUA,EAAa,QAC7B,EACI9I,CACJ,EAEE,KAAM,CAAE,MAAOiJ,EAAU,QAAAC,EAAS,SAAAC,CAAQ,EAAKnJ,EACzCoJ,EAAmBH,EAAW5qG,GAAW4qG,CAAQ,EAAI,OAAO,OAAU,WACtEI,EAAqBhrG,GAAW6qG,CAAO,EACvCI,EAAsBjrG,GAAW8qG,CAAQ,EAE/C,GAAI,CAACC,EACH,MAAO,GAGT,MAAMG,EAA4BH,GAAoB/qG,GAAW0qG,CAAc,EAEzES,EACJJ,IACC,OAAOJ,GAAgB,YAEjBzL,GAAaxgG,GACZwgG,EAAQ,OAAOxgG,CAAG,GACpB,IAAIisG,CAAa,EACnB,MAAOjsG,GAAQ,IAAI,WAAW,MAAM,IAAImsG,EAAQnsG,CAAG,EAAE,YAAW,CAAE,GAElE0sG,EACJJ,GACAE,GACAtxC,GAAK,IAAM,CACT,IAAIyxC,EAAiB,GAErB,MAAMjO,EAAU,IAAIyN,EAAQj5B,GAAS,OAAQ,CAC3C,KAAM,IAAI84B,EACV,OAAQ,OACR,IAAI,QAAS,CACX,OAAAW,EAAiB,GACV,MACT,CACR,CAAO,EAEKC,EAAiBlO,EAAQ,QAAQ,IAAI,cAAc,EAEzD,OAAIA,EAAQ,MAAQ,MAClBA,EAAQ,KAAK,OAAM,EAGdiO,GAAkB,CAACC,CAC5B,CAAC,EAEGC,EACJN,GACAC,GACAtxC,GAAK,IAAM8/B,EAAM,iBAAiB,IAAIoR,EAAS,EAAE,EAAE,IAAI,CAAC,EAEpDU,EAAY,CAChB,OAAQD,IAA4BppG,GAAQA,EAAI,KACpD,EAEE4oG,GAEI,CAAC,OAAQ,cAAe,OAAQ,WAAY,QAAQ,EAAE,QAASvhG,GAAS,CACtE,CAACgiG,EAAUhiG,CAAI,IACZgiG,EAAUhiG,CAAI,EAAI,CAACrH,EAAKilE,IAAW,CAClC,IAAIx7D,EAASzJ,GAAOA,EAAIqH,CAAI,EAE5B,GAAIoC,EACF,OAAOA,EAAO,KAAKzJ,CAAG,EAGxB,MAAM,IAAIg7F,GACR,kBAAkB3zF,CAAI,qBACtB2zF,GAAW,gBACX/1B,CACd,CACU,EACJ,CAAC,EAGL,MAAMqkC,EAAgB,MAAOpgD,GAAS,CACpC,GAAIA,GAAQ,KACV,MAAO,GAGT,GAAIquC,EAAM,OAAOruC,CAAI,EACnB,OAAOA,EAAK,KAGd,GAAIquC,EAAM,oBAAoBruC,CAAI,EAKhC,OAAQ,MAJS,IAAIw/C,EAAQj5B,GAAS,OAAQ,CAC5C,OAAQ,OACR,KAAAvmB,CACR,CAAO,EACsB,YAAW,GAAI,WAGxC,GAAIquC,EAAM,kBAAkBruC,CAAI,GAAKquC,EAAM,cAAcruC,CAAI,EAC3D,OAAOA,EAAK,WAOd,GAJIquC,EAAM,kBAAkBruC,CAAI,IAC9BA,EAAOA,EAAO,IAGZquC,EAAM,SAASruC,CAAI,EACrB,OAAQ,MAAM8/C,EAAW9/C,CAAI,GAAG,UAEpC,EAEMqgD,EAAoB,MAAOpR,EAASjvC,IACzBquC,EAAM,eAAeY,EAAQ,iBAAgB,CAAE,GAEtCmR,EAAcpgD,CAAI,EAG5C,MAAO,OAAO+b,GAAW,CACvB,GAAI,CACF,IAAAnuB,EACA,OAAArtC,EACA,KAAA6d,EACA,OAAAo/E,EACA,YAAA8C,EACA,QAAAnnE,EACA,mBAAAmjE,EACA,iBAAAD,EACA,aAAA3F,EACA,QAAAzH,EACA,gBAAAsR,EAAkB,cAClB,aAAAC,EACA,iBAAAC,EACA,cAAAC,CACN,EAAQnF,GAAcx/B,CAAM,EAExB,MAAM4kC,EAAsBtS,EAAM,SAASoS,CAAgB,GAAKA,EAAmB,GAC7EG,GAAmBvS,EAAM,SAASqS,CAAa,GAAKA,EAAgB,GACpE3K,GAAOxiG,IAAS86F,EAAM,WAAWtyB,EAAQxoE,EAAG,EAAIwoE,EAAOxoE,EAAG,EAAI,OAEpE,IAAIstG,GAAStB,GAAY,MAEzB7I,EAAeA,GAAgBA,EAAe,IAAI,YAAW,EAAK,OAElE,IAAIoK,EAAiB5D,GACnB,CAACM,EAAQ8C,GAAeA,EAAY,cAAa,CAAE,EACnDnnE,CACN,EAEQ44D,GAAU,KAEd,MAAM1b,GACJyqB,GACAA,EAAe,cACd,IAAM,CACLA,EAAe,YAAW,CAC5B,GAEF,IAAIC,EAMAC,GAAmB,KAEvB,MAAMC,GAAqB,IACzB,IAAInP,GACF,+CACAA,GAAW,gBACX/1B,EACAg2B,EACR,EAEI,GAAI,CAEF,IAAI6J,GACJ,MAAMsF,GAAanL,GAAI,MAAM,EAE7B,GAAImL,GAAY,CACd,MAAMrF,EAAWxN,EAAM,YAAY6S,GAAY,UAAU,GAAK,GACxDpF,GAAWzN,EAAM,YAAY6S,GAAY,UAAU,GAAK,GAC9DtF,GAAO,CACL,SAAAC,EACA,SAAAC,EACV,CACM,CAEA,GAAImD,GAAyBrxD,CAAG,EAAG,CACjC,MAAMuzD,EAAY,IAAI,IAAIvzD,EAAK24B,GAAS,MAAM,EAE9C,GAAI,CAACq1B,KAASuF,EAAU,UAAYA,EAAU,UAAW,CACvD,MAAMC,GAAcpC,GAAuBmC,EAAU,QAAQ,EACvDE,GAAcrC,GAAuBmC,EAAU,QAAQ,EAC7DvF,GAAO,CACL,SAAUwF,GACV,SAAUC,EACtB,CACQ,EAEIF,EAAU,UAAYA,EAAU,YAClCA,EAAU,SAAW,GACrBA,EAAU,SAAW,GACrBvzD,EAAMuzD,EAAU,KAEpB,CAaA,GAXIvF,KACF3M,EAAQ,OAAO,eAAe,EAC9BA,EAAQ,IACN,gBACA,SAAW,KAAKoM,IAAYO,GAAK,UAAY,IAAM,KAAOA,GAAK,UAAY,GAAG,CAAC,CACzF,GAMU+E,GAAuB,OAAO/yD,GAAQ,UAAYA,EAAI,WAAW,OAAO,GACxD4wD,GAA4B5wD,CAAG,EACjC6yD,EACd,MAAM,IAAI3O,GACR,4BAA8B2O,EAAmB,YACjD3O,GAAW,iBACX/1B,EACAg2B,EACZ,EASM,GAAI6O,IAAoBrgG,IAAW,OAASA,IAAW,OAAQ,CAC7D,MAAM+gG,EAAiB,MAAMlB,EAAchiF,CAAI,EAC/C,GAAI,OAAOkjF,GAAmB,UAAY,SAASA,CAAc,IAC/DP,EAAuBO,EACnBA,EAAiBZ,GACnB,MAAMO,GAAkB,CAG9B,CAIA,MAAMM,GACJX,KAAqBvS,EAAM,iBAAiBjwE,CAAI,GAAKiwE,EAAM,SAASjwE,CAAI,GAEpEojF,GAAqB,CAAC1D,EAAQG,GAAYvvF,KAC9CsvF,GACEF,EACAiB,GACCX,IAAgB,CACf,GAAIwC,IAAoBxC,GAAcsC,EACpC,MAAOM,GAAmBC,GAAkB,EAE9ChD,IAAcA,GAAWG,EAAW,CACtC,EACA1vF,EACV,EAEM,GACEqxF,GACAx/F,IAAW,OACXA,IAAW,SACV87F,GAAoBkF,KAOrB,GALAR,EACEA,GAA+B,MAAMV,EAAkBpR,EAAS7wE,CAAI,EAIlE2iF,IAAyB,GAAKQ,GAAuB,CACvD,IAAIE,EAAW,IAAIjC,EAAQ5xD,EAAK,CAC9B,OAAQ,OACR,KAAMxvB,EACN,OAAQ,MACpB,CAAW,EAEGsjF,GAMJ,GAJIrT,EAAM,WAAWjwE,CAAI,IAAMsjF,GAAoBD,EAAS,QAAQ,IAAI,cAAc,IACpFxS,EAAQ,eAAeyS,EAAiB,EAGtCD,EAAS,KAAM,CACjB,KAAM,CAACxD,GAAYvvF,EAAK,EACrB2tF,GACC3D,GACEqI,EACA9I,GAAqBY,GAAewD,CAAgB,CAAC,CACvE,GACc,GAEFj+E,EAAOojF,GAAmBC,EAAS,KAAMxD,GAAYvvF,EAAK,CAC5D,CACF,UAEA6yF,IACA,CAAC5B,GACDE,GACAt/F,IAAW,OACXA,IAAW,OAEX6d,EAAOojF,GAAmBpjF,CAAI,UAE9BmjF,IACA5B,GACA,CAACI,GACDx/F,IAAW,OACXA,IAAW,OAEX,MAAM,IAAIuxF,GACR,8EACAA,GAAW,gBACX/1B,EACAg2B,EACV,EAGW1D,EAAM,SAASkS,CAAe,IACjCA,EAAkBA,EAAkB,UAAY,QAKlD,MAAMoB,GAAyBhC,GAAsB,gBAAiBH,EAAQ,UAI9E,GAAInR,EAAM,WAAWjwE,CAAI,EAAG,CAC1B,MAAM83E,EAAcjH,EAAQ,eAAc,EAExCiH,GACA,yBAAyB,KAAKA,CAAW,GACzC,CAAC,aAAa,KAAKA,CAAW,GAE9BjH,EAAQ,OAAO,cAAc,CAEjC,CAGAA,EAAQ,IAAI,aAAc,SAAW6P,GAAS,EAAK,EAEnD,MAAM8C,EAAkB,CACtB,GAAGpB,EACH,OAAQM,EACR,OAAQvgG,EAAO,YAAW,EAC1B,QAASyuF,GAAyBC,EAAQ,WAAW,EACrD,KAAM7wE,EACN,OAAQ,OACR,YAAaujF,GAAyBpB,EAAkB,MAChE,EAEMxO,GAAU4N,GAAsB,IAAIH,EAAQ5xD,EAAKg0D,CAAe,EAEhE,IAAI3qB,EAAW,MAAO0oB,EAClBkB,GAAO9O,GAASyO,CAAY,EAC5BK,GAAOjzD,EAAKg0D,CAAe,GAE/B,MAAM/E,EAAkBvL,GAAa,KAAKra,EAAS,OAAO,EAI1D,GAAI0pB,EAAqB,CACvB,MAAMkB,EAAiBxT,EAAM,eAAewO,EAAgB,iBAAgB,CAAE,EAC9E,GAAIgF,GAAkB,MAAQA,EAAiBpB,EAC7C,MAAM,IAAI3O,GACR,4BAA8B2O,EAAmB,YACjD3O,GAAW,iBACX/1B,EACAg2B,EACZ,CAEM,CAEA,MAAM+P,GACJ5B,IAA2BxJ,IAAiB,UAAYA,IAAiB,YAE3E,GACEwJ,GACAjpB,EAAS,OACRqlB,GAAsBqE,GAAwBmB,IAAoBzrB,IACnE,CACA,MAAMvuE,EAAU,GAEhB,CAAC,SAAU,aAAc,SAAS,EAAE,QAASshB,IAAS,CACpDthB,EAAQshB,EAAI,EAAI6tD,EAAS7tD,EAAI,CAC/B,CAAC,EAED,MAAM24E,GAAwB1T,EAAM,eAAewO,EAAgB,iBAAgB,CAAE,EAE/E,CAACoB,GAAYvvF,EAAK,EACrB4tF,GACC5D,GACEqJ,GACA9J,GAAqBY,GAAeyD,CAAkB,EAAG,EAAI,CAC3E,GACU,GAEF,IAAI0F,GAAY,EAChB,MAAMC,GAAmB7D,IAAgB,CACvC,GAAIuC,IACFqB,GAAY5D,GACR4D,GAAYvB,GACd,MAAM,IAAI3O,GACR,4BAA8B2O,EAAmB,YACjD3O,GAAW,iBACX/1B,EACAg2B,EAChB,EAGUkM,IAAcA,GAAWG,EAAW,CACtC,EAEAnnB,EAAW,IAAIwoB,EACbzB,GAAY/mB,EAAS,KAAM8nB,GAAoBkD,GAAiB,IAAM,CACpEvzF,IAASA,GAAK,EACd2nE,IAAeA,GAAW,CAC5B,CAAC,EACDvuE,CACV,CACM,CAEA4uF,EAAeA,GAAgB,OAE/B,IAAIwL,GAAe,MAAM/B,EAAU9R,EAAM,QAAQ8R,EAAWzJ,CAAY,GAAK,MAAM,EACjFzf,EACAlb,CACR,EAKM,GAAI4kC,GAAuB,CAACT,GAA0B,CAAC4B,GAAkB,CACvE,IAAIK,EAaJ,GAZID,IAAgB,OACd,OAAOA,GAAa,YAAe,SACrCC,EAAmBD,GAAa,WACvB,OAAOA,GAAa,MAAS,SACtCC,EAAmBD,GAAa,KACvB,OAAOA,IAAiB,WACjCC,EACE,OAAO7C,GAAgB,WACnB,IAAIA,EAAW,EAAG,OAAO4C,EAAY,EAAE,WACvCA,GAAa,SAGnB,OAAOC,GAAqB,UAAYA,EAAmB1B,EAC7D,MAAM,IAAI3O,GACR,4BAA8B2O,EAAmB,YACjD3O,GAAW,iBACX/1B,EACAg2B,EACZ,CAEM,CAEA,OAAC+P,IAAoBzrB,IAAeA,GAAW,EAExC,MAAM,IAAI,QAAQ,CAACr6D,EAASi7E,KAAW,CAC5CD,GAAOh7E,EAASi7E,GAAQ,CACtB,KAAMiL,GACN,QAAS5Q,GAAa,KAAKra,EAAS,OAAO,EAC3C,OAAQA,EAAS,OACjB,WAAYA,EAAS,WACrB,OAAAlb,EACA,QAAAg2B,EACV,CAAS,CACH,CAAC,CACH,OAASz1F,GAAK,CAMZ,GALA+5E,IAAeA,GAAW,EAKtByqB,GAAkBA,EAAe,SAAWA,EAAe,kBAAkBhP,GAAY,CAC3F,MAAMsQ,GAAgBtB,EAAe,OACrC,MAAAsB,GAAc,OAASrmC,EACvBg2B,KAAYqQ,GAAc,QAAUrQ,IAChCz1F,KAAQ8lG,IAGV,OAAO,eAAeA,GAAe,QAAS,CAC5C,UAAW,KACX,MAAO9lG,GACP,SAAU,GACV,WAAY,GACZ,aAAc,EAC1B,CAAW,EAEG8lG,EACR,CAOA,GAAIpB,GACF,MAAAjP,IAAW,CAACiP,GAAiB,UAAYA,GAAiB,QAAUjP,IAC9DiP,GAKR,GAAI1kG,cAAew1F,GACjB,MAAAC,IAAW,CAACz1F,GAAI,UAAYA,GAAI,QAAUy1F,IACpCz1F,GAGR,GAAIA,IAAOA,GAAI,OAAS,aAAe,qBAAqB,KAAKA,GAAI,OAAO,EAAG,CAC7E,MAAM+lG,GAAe,IAAIvQ,GACvB,gBACAA,GAAW,YACX/1B,EACAg2B,GACAz1F,IAAOA,GAAI,QACrB,EAGQ,aAAO,eAAe+lG,GAAc,QAAS,CAC3C,UAAW,KACX,MAAO/lG,GAAI,OAASA,GACpB,SAAU,GACV,WAAY,GACZ,aAAc,EACxB,CAAS,EACK+lG,EACR,CAEA,MAAMvQ,GAAW,KAAKx1F,GAAKA,IAAOA,GAAI,KAAMy/D,EAAQg2B,GAASz1F,IAAOA,GAAI,QAAQ,CAClF,CACF,CACF,EAEMgmG,GAAY,IAAI,IAETC,GAAYxmC,GAAW,CAClC,IAAIu6B,EAAOv6B,GAAUA,EAAO,KAAQ,GACpC,KAAM,CAAE,MAAAymC,EAAO,QAAAhD,EAAS,SAAAC,CAAQ,EAAKnJ,EAC/BmM,EAAQ,CAACjD,EAASC,EAAU+C,CAAK,EAEvC,IAAIvwE,EAAMwwE,EAAM,OACdtuG,EAAI89B,EACJywE,EACAxkG,EACA5K,EAAMgvG,GAER,KAAOnuG,KACLuuG,EAAOD,EAAMtuG,CAAC,EACd+J,EAAS5K,EAAI,IAAIovG,CAAI,EAErBxkG,IAAW,QAAa5K,EAAI,IAAIovG,EAAOxkG,EAAS/J,EAAI,IAAI,IAAQ8R,GAAQqwF,CAAG,CAAC,EAE5EhjG,EAAM4K,EAGR,OAAOA,CACT,EAEgBqkG,GAAQ,ECjnBxB,MAAMI,GAAgB,CACpB,KAAMxQ,GACN,IAAK8J,GACL,MAAO,CACL,IAAK2G,EACT,CACA,EAGAvU,EAAM,QAAQsU,GAAe,CAACptG,EAAIN,IAAU,CAC1C,GAAIM,EAAI,CACN,GAAI,CAGF,OAAO,eAAeA,EAAI,OAAQ,CAAE,UAAW,KAAM,MAAAN,EAAO,CAC9D,MAAY,CAEZ,CACA,OAAO,eAAeM,EAAI,cAAe,CAAE,UAAW,KAAM,MAAAN,EAAO,CACrE,CACF,CAAC,EAQD,MAAM4tG,GAAgBtF,GAAW,KAAKA,CAAM,GAQtCuF,GAAoBC,GACxB1U,EAAM,WAAW0U,CAAO,GAAKA,IAAY,MAAQA,IAAY,GAY/D,SAASC,GAAWC,EAAUlnC,EAAQ,CACpCknC,EAAW5U,EAAM,QAAQ4U,CAAQ,EAAIA,EAAW,CAACA,CAAQ,EAEzD,KAAM,CAAE,OAAAhhE,CAAM,EAAKghE,EACnB,IAAIC,EACAH,EAEJ,MAAMI,EAAkB,GAExB,QAAShvG,EAAI,EAAGA,EAAI8tC,EAAQ9tC,IAAK,CAC/B+uG,EAAgBD,EAAS9uG,CAAC,EAC1B,IAAI6W,EAIJ,GAFA+3F,EAAUG,EAEN,CAACJ,GAAiBI,CAAa,IACjCH,EAAUJ,IAAe33F,EAAK,OAAOk4F,CAAa,GAAG,aAAa,EAE9DH,IAAY,QACd,MAAM,IAAIjR,GAAW,oBAAoB9mF,CAAE,GAAG,EAIlD,GAAI+3F,IAAY1U,EAAM,WAAW0U,CAAO,IAAMA,EAAUA,EAAQ,IAAIhnC,CAAM,IACxE,MAGFonC,EAAgBn4F,GAAM,IAAM7W,CAAC,EAAI4uG,CACnC,CAEA,GAAI,CAACA,EAAS,CACZ,MAAMK,EAAU,OAAO,QAAQD,CAAe,EAAE,IAC9C,CAAC,CAACn4F,EAAIyJ,CAAK,IACT,WAAWzJ,CAAE,KACZyJ,IAAU,GAAQ,sCAAwC,gCACnE,EAEI,IAAI7L,EAAIq5B,EACJmhE,EAAQ,OAAS,EACf;AAAA,EAAcA,EAAQ,IAAIP,EAAY,EAAE,KAAK;AAAA,CAAI,EACjD,IAAMA,GAAaO,EAAQ,CAAC,CAAC,EAC/B,0BAEJ,MAAM,IAAItR,GACR,wDAA0DlpF,EAC1DkpF,GAAW,eACjB,CACE,CAEA,OAAOiR,CACT,CAKA,MAAAE,GAAe,CAKf,WAAED,GAMA,SAAUL,EACZ,ECnHA,SAASU,GAA6BtnC,EAAQ,CAK5C,GAJIA,EAAO,aACTA,EAAO,YAAY,iBAAgB,EAGjCA,EAAO,QAAUA,EAAO,OAAO,QACjC,MAAM,IAAIihC,GAAc,KAAMjhC,CAAM,CAExC,CASe,SAASunC,GAAgBvnC,EAAQ,CAC9C,OAAAsnC,GAA6BtnC,CAAM,EAEnCA,EAAO,QAAUu1B,GAAa,KAAKv1B,EAAO,OAAO,EAGjDA,EAAO,KAAO+6B,GAAc,KAAK/6B,EAAQA,EAAO,gBAAgB,EAE5D,CAAC,OAAQ,MAAO,OAAO,EAAE,QAAQA,EAAO,MAAM,IAAM,IACtDA,EAAO,QAAQ,eAAe,oCAAqC,EAAK,EAG1DknC,GAAS,WAAWlnC,EAAO,SAAWk6B,GAAS,QAASl6B,CAAM,EAE/DA,CAAM,EAAE,KACrB,SAA6Bkb,EAAU,CACrCosB,GAA6BtnC,CAAM,EAKnCA,EAAO,SAAWkb,EAClB,GAAI,CACFA,EAAS,KAAO6f,GAAc,KAAK/6B,EAAQA,EAAO,kBAAmBkb,CAAQ,CAC/E,SACE,OAAOlb,EAAO,QAChB,CAEA,OAAAkb,EAAS,QAAUqa,GAAa,KAAKra,EAAS,OAAO,EAE9CA,CACT,EACA,SAA4BsmB,EAAQ,CAClC,GAAI,CAACxG,GAASwG,CAAM,IAClB8F,GAA6BtnC,CAAM,EAG/BwhC,GAAUA,EAAO,UAAU,CAC7BxhC,EAAO,SAAWwhC,EAAO,SACzB,GAAI,CACFA,EAAO,SAAS,KAAOzG,GAAc,KACnC/6B,EACAA,EAAO,kBACPwhC,EAAO,QACrB,CACU,SACE,OAAOxhC,EAAO,QAChB,CACAwhC,EAAO,SAAS,QAAUjM,GAAa,KAAKiM,EAAO,SAAS,OAAO,CACrE,CAGF,OAAO,QAAQ,OAAOA,CAAM,CAC9B,CACJ,CACA,CCnFA,MAAMgG,GAAa,GAGnB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,QAAQ,EAAE,QAAQ,CAACplG,EAAMhK,IAAM,CACnFovG,GAAWplG,CAAI,EAAI,SAAmB4qF,EAAO,CAC3C,OAAO,OAAOA,IAAU5qF,GAAQ,KAAOhK,EAAI,EAAI,KAAO,KAAOgK,CAC/D,CACF,CAAC,EAED,MAAMqlG,GAAqB,GAW3BD,GAAW,aAAe,SAAsBE,EAAW9/E,EAAS+zD,EAAS,CAC3E,SAASgsB,EAAcziF,EAAKrI,EAAM,CAChC,MACE,WACAkmF,GACA,0BACA79E,EACA,IACArI,GACC8+D,EAAU,KAAOA,EAAU,GAEhC,CAGA,MAAO,CAACziF,EAAOgsB,EAAK2kC,IAAS,CAC3B,GAAI69C,IAAc,GAChB,MAAM,IAAI3R,GACR4R,EAAcziF,EAAK,qBAAuB0C,EAAU,OAASA,EAAU,GAAG,EAC1EmuE,GAAW,cACnB,EAGI,OAAInuE,GAAW,CAAC6/E,GAAmBviF,CAAG,IACpCuiF,GAAmBviF,CAAG,EAAI,GAE1B,QAAQ,KACNyiF,EACEziF,EACA,+BAAiC0C,EAAU,yCACrD,CACA,GAGW8/E,EAAYA,EAAUxuG,EAAOgsB,EAAK2kC,CAAI,EAAI,EACnD,CACF,EAEA29C,GAAW,SAAW,SAAkBI,EAAiB,CACvD,MAAO,CAAC1uG,EAAOgsB,KAEb,QAAQ,KAAK,GAAGA,CAAG,+BAA+B0iF,CAAe,EAAE,EAC5D,GAEX,EAYA,SAASC,GAAc97F,EAAS+7F,EAAQC,EAAc,CACpD,GAAI,OAAOh8F,GAAY,UAAYA,IAAY,KAC7C,MAAM,IAAIgqF,GAAW,4BAA6BA,GAAW,oBAAoB,EAEnF,MAAMt1E,EAAO,OAAO,KAAK1U,CAAO,EAChC,IAAI3T,EAAIqoB,EAAK,OACb,KAAOroB,KAAM,GAAG,CACd,MAAM8sB,EAAMzE,EAAKroB,CAAC,EAGZsvG,EAAY,OAAO,UAAU,eAAe,KAAKI,EAAQ5iF,CAAG,EAAI4iF,EAAO5iF,CAAG,EAAI,OACpF,GAAIwiF,EAAW,CACb,MAAMxuG,EAAQ6S,EAAQmZ,CAAG,EACnBvgB,EAASzL,IAAU,QAAawuG,EAAUxuG,EAAOgsB,EAAKnZ,CAAO,EACnE,GAAIpH,IAAW,GACb,MAAM,IAAIoxF,GACR,UAAY7wE,EAAM,YAAcvgB,EAChCoxF,GAAW,oBACrB,EAEM,QACF,CACA,GAAIgS,IAAiB,GACnB,MAAM,IAAIhS,GAAW,kBAAoB7wE,EAAK6wE,GAAW,cAAc,CAE3E,CACF,CAEA,MAAA2R,GAAe,CACb,cAAAG,GACF,WAAEL,EACF,ECnGMA,GAAaE,GAAU,WAS7B,IAAAM,GAAA,KAAY,CACV,YAAYC,EAAgB,CAC1B,KAAK,SAAWA,GAAkB,GAClC,KAAK,aAAe,CAClB,QAAS,IAAI5P,GACb,SAAU,IAAIA,EACpB,CACE,CAUA,MAAM,QAAQ6P,EAAaloC,EAAQ,CACjC,GAAI,CACF,OAAO,MAAM,KAAK,SAASkoC,EAAaloC,CAAM,CAChD,OAASz/D,EAAK,CACZ,GAAIA,aAAe,MAAO,CACxB,IAAI4nG,EAAQ,GAEZ,MAAM,kBAAoB,MAAM,kBAAkBA,CAAK,EAAKA,EAAQ,IAAI,MAGxE,MAAMxmD,GAAS,IAAM,CACnB,GAAI,CAACwmD,EAAM,MACT,MAAO,GAGT,MAAMC,EAAoBD,EAAM,MAAM,QAAQ;AAAA,CAAI,EAElD,OAAOC,IAAsB,GAAK,GAAKD,EAAM,MAAM,MAAMC,EAAoB,CAAC,CAChF,GAAC,EACD,GAAI,CACF,GAAI,CAAC7nG,EAAI,MACPA,EAAI,MAAQohD,UAEHA,EAAO,CAChB,MAAMymD,EAAoBzmD,EAAM,QAAQ;AAAA,CAAI,EACtC0mD,EACJD,IAAsB,GAAK,GAAKzmD,EAAM,QAAQ;AAAA,EAAMymD,EAAoB,CAAC,EACrEE,EACJD,IAAuB,GAAK,GAAK1mD,EAAM,MAAM0mD,EAAqB,CAAC,EAEhE,OAAO9nG,EAAI,KAAK,EAAE,SAAS+nG,CAAuB,IACrD/nG,EAAI,OAAS;AAAA,EAAOohD,EAExB,CACF,MAAY,CAEZ,CACF,CAEA,MAAMphD,CACR,CACF,CAEA,SAAS2nG,EAAaloC,EAAQ,CAGxB,OAAOkoC,GAAgB,UACzBloC,EAASA,GAAU,GACnBA,EAAO,IAAMkoC,GAEbloC,EAASkoC,GAAe,GAG1BloC,EAASs+B,GAAY,KAAK,SAAUt+B,CAAM,EAE1C,KAAM,CAAE,aAAAy6B,EAAc,iBAAA8N,EAAkB,QAAArV,CAAO,EAAKlzB,EAEhDy6B,IAAiB,QACnBiN,GAAU,cACRjN,EACA,CACE,kBAAmB+M,GAAW,aAAaA,GAAW,OAAO,EAC7D,kBAAmBA,GAAW,aAAaA,GAAW,OAAO,EAC7D,oBAAqBA,GAAW,aAAaA,GAAW,OAAO,EAC/D,gCAAiCA,GAAW,aAAaA,GAAW,OAAO,EAC3E,4BAA6BA,GAAW,aAAaA,GAAW,OAAO,EACvE,gCAAiCA,GAAW,aAAaA,GAAW,OAAO,CACrF,EACQ,EACR,EAGQe,GAAoB,OAClBjW,EAAM,WAAWiW,CAAgB,EACnCvoC,EAAO,iBAAmB,CACxB,UAAWuoC,CACrB,EAEQb,GAAU,cACRa,EACA,CACE,OAAQf,GAAW,SACnB,UAAWA,GAAW,QAClC,EACU,EACV,GAKQxnC,EAAO,oBAAsB,SAEtB,KAAK,SAAS,oBAAsB,OAC7CA,EAAO,kBAAoB,KAAK,SAAS,kBAEzCA,EAAO,kBAAoB,IAG7B0nC,GAAU,cACR1nC,EACA,CACE,QAASwnC,GAAW,SAAS,SAAS,EACtC,cAAeA,GAAW,SAAS,eAAe,CAC1D,EACM,EACN,EAGIxnC,EAAO,QAAUA,EAAO,QAAU,KAAK,SAAS,QAAU,OAAO,YAAW,EAG5E,IAAIwoC,EAAiBtV,GAAWZ,EAAM,MAAMY,EAAQ,OAAQA,EAAQlzB,EAAO,MAAM,CAAC,EAElFkzB,GACEZ,EAAM,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,QAAS,QAAQ,EAAI9tF,GAAW,CAC9F,OAAO0uF,EAAQ1uF,CAAM,CACvB,CAAC,EAEHw7D,EAAO,QAAUu1B,GAAa,OAAOiT,EAAgBtV,CAAO,EAG5D,MAAMuV,EAA0B,GAChC,IAAIC,EAAiC,GACrC,KAAK,aAAa,QAAQ,QAAQ,SAAoCC,EAAa,CACjF,GAAI,OAAOA,EAAY,SAAY,YAAcA,EAAY,QAAQ3oC,CAAM,IAAM,GAC/E,OAGF0oC,EAAiCA,GAAkCC,EAAY,YAE/E,MAAMlO,EAAez6B,EAAO,cAAgBw4B,GAE1CiC,GAAgBA,EAAa,gCAG7BgO,EAAwB,QAAQE,EAAY,UAAWA,EAAY,QAAQ,EAE3EF,EAAwB,KAAKE,EAAY,UAAWA,EAAY,QAAQ,CAE5E,CAAC,EAED,MAAMC,EAA2B,GACjC,KAAK,aAAa,SAAS,QAAQ,SAAkCD,EAAa,CAChFC,EAAyB,KAAKD,EAAY,UAAWA,EAAY,QAAQ,CAC3E,CAAC,EAED,IAAInlC,EACAprE,EAAI,EACJ89B,EAEJ,GAAI,CAACwyE,EAAgC,CACnC,MAAMG,EAAQ,CAACtB,GAAgB,KAAK,IAAI,EAAG,MAAS,EAOpD,IANAsB,EAAM,QAAQ,GAAGJ,CAAuB,EACxCI,EAAM,KAAK,GAAGD,CAAwB,EACtC1yE,EAAM2yE,EAAM,OAEZrlC,EAAU,QAAQ,QAAQxD,CAAM,EAEzB5nE,EAAI89B,GACTstC,EAAUA,EAAQ,KAAKqlC,EAAMzwG,GAAG,EAAGywG,EAAMzwG,GAAG,CAAC,EAG/C,OAAOorE,CACT,CAEAttC,EAAMuyE,EAAwB,OAE9B,IAAIhJ,EAAYz/B,EAEhB,KAAO5nE,EAAI89B,GAAK,CACd,MAAM4yE,EAAcL,EAAwBrwG,GAAG,EACzC2wG,EAAaN,EAAwBrwG,GAAG,EAC9C,GAAI,CACFqnG,EAAYqJ,EAAYrJ,CAAS,CACnC,OAASn/F,EAAO,CACdyoG,EAAW,KAAK,KAAMzoG,CAAK,EAC3B,KACF,CACF,CAEA,GAAI,CACFkjE,EAAU+jC,GAAgB,KAAK,KAAM9H,CAAS,CAChD,OAASn/F,EAAO,CACd,OAAO,QAAQ,OAAOA,CAAK,CAC7B,CAKA,IAHAlI,EAAI,EACJ89B,EAAM0yE,EAAyB,OAExBxwG,EAAI89B,GACTstC,EAAUA,EAAQ,KAAKolC,EAAyBxwG,GAAG,EAAGwwG,EAAyBxwG,GAAG,CAAC,EAGrF,OAAOorE,CACT,CAEA,OAAOxD,EAAQ,CACbA,EAASs+B,GAAY,KAAK,SAAUt+B,CAAM,EAC1C,MAAMgpC,EAAW/K,GAAcj+B,EAAO,QAASA,EAAO,IAAKA,EAAO,kBAAmBA,CAAM,EAC3F,OAAOg4B,GAASgR,EAAUhpC,EAAO,OAAQA,EAAO,gBAAgB,CAClE,CACF,EAGAsyB,EAAM,QAAQ,CAAC,SAAU,MAAO,OAAQ,SAAS,EAAG,SAA6B9tF,EAAQ,CAEvFykG,GAAM,UAAUzkG,CAAM,EAAI,SAAUqtC,EAAKmuB,EAAQ,CAC/C,OAAO,KAAK,QACVs+B,GAAYt+B,GAAU,GAAI,CACxB,OAAAx7D,EACA,IAAAqtC,EACA,KAAMmuB,GAAUsyB,EAAM,WAAWtyB,EAAQ,MAAM,EAAIA,EAAO,KAAO,MACzE,CAAO,CACP,CACE,CACF,CAAC,EAEDsyB,EAAM,QAAQ,CAAC,OAAQ,MAAO,QAAS,OAAO,EAAG,SAA+B9tF,EAAQ,CACtF,SAAS0kG,EAAmBC,EAAQ,CAClC,OAAO,SAAoBt3D,EAAKxvB,EAAM29C,EAAQ,CAC5C,OAAO,KAAK,QACVs+B,GAAYt+B,GAAU,GAAI,CACxB,OAAAx7D,EACA,QAAS2kG,EACL,CACE,eAAgB,qBAChC,EACc,GACJ,IAAAt3D,EACA,KAAAxvB,CACV,CAAS,CACT,CACI,CACF,CAEA4mF,GAAM,UAAUzkG,CAAM,EAAI0kG,EAAkB,EAIxC1kG,IAAW,UACbykG,GAAM,UAAUzkG,EAAS,MAAM,EAAI0kG,EAAmB,EAAI,EAE9D,CAAC,EC7QD,IAAAE,GAAA,MAAMC,EAAY,CAChB,YAAYC,EAAU,CACpB,GAAI,OAAOA,GAAa,WACtB,MAAM,IAAI,UAAU,8BAA8B,EAGpD,IAAIC,EAEJ,KAAK,QAAU,IAAI,QAAQ,SAAyBtpF,EAAS,CAC3DspF,EAAiBtpF,CACnB,CAAC,EAED,MAAMi4D,EAAQ,KAGd,KAAK,QAAQ,KAAM8oB,GAAW,CAC5B,GAAI,CAAC9oB,EAAM,WAAY,OAEvB,IAAI9/E,EAAI8/E,EAAM,WAAW,OAEzB,KAAO9/E,KAAM,GACX8/E,EAAM,WAAW9/E,CAAC,EAAE4oG,CAAM,EAE5B9oB,EAAM,WAAa,IACrB,CAAC,EAGD,KAAK,QAAQ,KAAQsxB,GAAgB,CACnC,IAAIC,EAEJ,MAAMjmC,EAAU,IAAI,QAASvjD,GAAY,CACvCi4D,EAAM,UAAUj4D,CAAO,EACvBwpF,EAAWxpF,CACb,CAAC,EAAE,KAAKupF,CAAW,EAEnB,OAAAhmC,EAAQ,OAAS,UAAkB,CACjC0U,EAAM,YAAYuxB,CAAQ,CAC5B,EAEOjmC,CACT,EAEA8lC,EAAS,SAAgB3tB,EAAS3b,EAAQg2B,EAAS,CAC7C9d,EAAM,SAKVA,EAAM,OAAS,IAAI+oB,GAActlB,EAAS3b,EAAQg2B,CAAO,EACzDuT,EAAerxB,EAAM,MAAM,EAC7B,CAAC,CACH,CAKA,kBAAmB,CACjB,GAAI,KAAK,OACP,MAAM,KAAK,MAEf,CAMA,UAAU5lB,EAAU,CAClB,GAAI,KAAK,OAAQ,CACfA,EAAS,KAAK,MAAM,EACpB,MACF,CAEI,KAAK,WACP,KAAK,WAAW,KAAKA,CAAQ,EAE7B,KAAK,WAAa,CAACA,CAAQ,CAE/B,CAMA,YAAYA,EAAU,CACpB,GAAI,CAAC,KAAK,WACR,OAEF,MAAM11D,EAAQ,KAAK,WAAW,QAAQ01D,CAAQ,EAC1C11D,IAAU,IACZ,KAAK,WAAW,OAAOA,EAAO,CAAC,CAEnC,CAEA,eAAgB,CACd,MAAMykG,EAAa,IAAI,gBAEjBqI,EAASnpG,GAAQ,CACrB8gG,EAAW,MAAM9gG,CAAG,CACtB,EAEA,YAAK,UAAUmpG,CAAK,EAEpBrI,EAAW,OAAO,YAAc,IAAM,KAAK,YAAYqI,CAAK,EAErDrI,EAAW,MACpB,CAMA,OAAO,QAAS,CACd,IAAIL,EAIJ,MAAO,CACL,MAJY,IAAIqI,GAAY,SAAkBzvG,EAAG,CACjDonG,EAASpnG,CACX,CAAC,EAGC,OAAAonG,CACN,CACE,CACF,EC7Ge,SAAS2I,GAAOjiG,EAAU,CACvC,OAAO,SAAcxP,EAAK,CACxB,OAAOwP,EAAS,MAAM,KAAMxP,CAAG,CACjC,CACF,CChBe,SAAS0xG,GAAaC,EAAS,CAC5C,OAAOvX,EAAM,SAASuX,CAAO,GAAKA,EAAQ,eAAiB,EAC7D,CCbA,MAAMC,GAAiB,CACrB,SAAU,IACV,mBAAoB,IACpB,WAAY,IACZ,WAAY,IACZ,GAAI,IACJ,QAAS,IACT,SAAU,IACV,4BAA6B,IAC7B,UAAW,IACX,aAAc,IACd,eAAgB,IAChB,YAAa,IACb,gBAAiB,IACjB,OAAQ,IACR,gBAAiB,IACjB,iBAAkB,IAClB,MAAO,IACP,SAAU,IACV,YAAa,IACb,SAAU,IACV,OAAQ,IACR,kBAAmB,IACnB,kBAAmB,IACnB,WAAY,IACZ,aAAc,IACd,gBAAiB,IACjB,UAAW,IACX,SAAU,IACV,iBAAkB,IAClB,cAAe,IACf,4BAA6B,IAC7B,eAAgB,IAChB,SAAU,IACV,KAAM,IACN,eAAgB,IAChB,mBAAoB,IACpB,gBAAiB,IACjB,WAAY,IACZ,qBAAsB,IACtB,oBAAqB,IACrB,kBAAmB,IACnB,UAAW,IACX,mBAAoB,IACpB,oBAAqB,IACrB,OAAQ,IACR,iBAAkB,IAClB,SAAU,IACV,gBAAiB,IACjB,qBAAsB,IACtB,gBAAiB,IACjB,4BAA6B,IAC7B,2BAA4B,IAC5B,oBAAqB,IACrB,eAAgB,IAChB,WAAY,IACZ,mBAAoB,IACpB,eAAgB,IAChB,wBAAyB,IACzB,sBAAuB,IACvB,oBAAqB,IACrB,aAAc,IACd,YAAa,IACb,8BAA+B,IAC/B,gBAAiB,IACjB,mBAAoB,IACpB,oBAAqB,IACrB,gBAAiB,IACjB,mBAAoB,IACpB,sBAAuB,GACzB,EAEA,OAAO,QAAQA,EAAc,EAAE,QAAQ,CAAC,CAACtyG,EAAK0B,CAAK,IAAM,CACvD4wG,GAAe5wG,CAAK,EAAI1B,CAC1B,CAAC,EC/CD,SAASuyG,GAAeC,EAAe,CACrC,MAAMziF,EAAU,IAAI0hF,GAAMe,CAAa,EACjCv8F,EAAWo/E,GAAKoc,GAAM,UAAU,QAAS1hF,CAAO,EAGtD+qE,SAAM,OAAO7kF,EAAUw7F,GAAM,UAAW1hF,EAAS,CAAE,WAAY,GAAM,EAGrE+qE,EAAM,OAAO7kF,EAAU8Z,EAAS,KAAM,CAAE,WAAY,GAAM,EAG1D9Z,EAAS,OAAS,SAAgBw6F,EAAgB,CAChD,OAAO8B,GAAezL,GAAY0L,EAAe/B,CAAc,CAAC,CAClE,EAEOx6F,CACT,CAGA,MAAMw8F,GAAQF,GAAe7P,EAAQ,EAGrC+P,GAAM,MAAQhB,GAGdgB,GAAM,cAAgBhJ,GACtBgJ,GAAM,YAAcZ,GACpBY,GAAM,SAAWjP,GACjBiP,GAAM,QAAUlH,GAChBkH,GAAM,WAAarT,GAGnBqT,GAAM,WAAalU,GAGnBkU,GAAM,OAASA,GAAM,cAGrBA,GAAM,IAAM,SAAaC,EAAU,CACjC,OAAO,QAAQ,IAAIA,CAAQ,CAC7B,EAEAD,GAAM,OAASN,GAGfM,GAAM,aAAeL,GAGrBK,GAAM,YAAc3L,GAEpB2L,GAAM,aAAe1U,GAErB0U,GAAM,WAAcjd,GAAU4M,GAAetH,EAAM,WAAWtF,CAAK,EAAI,IAAI,SAASA,CAAK,EAAIA,CAAK,EAElGid,GAAM,WAAa/C,GAAS,WAE5B+C,GAAM,eAAiBH,GAEvBG,GAAM,QAAUA,GChFhB,KAAM,CACJ,MAAAhB,GACA,WAAAlT,GACA,cAAAkL,GACA,SAAAjG,GACA,YAAAqO,GACA,QAAAtG,GACF,IAAEoH,GACA,OAAAC,GACA,aAAAR,GACA,OAAAD,GACA,WAAA/S,GACA,aAAArB,GACA,eAAAuU,GACA,WAAAO,GACA,WAAApD,GACA,YAAA3I,GACF,OAAE1qD,EACF,EAAIq2D,GCdG,SAASK,IAAsB,CAClC,MAAMC,EAAStB,GAAM,OAAO,CACxB,QAAS,CACL,aAAcluB,GAAe,GAAM,GACnC,mBAAoB,gBAChC,CACA,CAAK,EACD,OAAAI,GAAsBjD,GAAU,CAC5BqyB,EAAO,SAAS,QAAQ,aAAeryB,CAC3C,CAAC,EACM,OAAO,OAAOqyB,EAAQ,CACzB,YAAatB,GAAM,YACnB,SAAUA,GAAM,QACxB,CAAK,CACL,CCjBA,MAAMuB,GAAY,8BAMX,SAASC,GAAiBR,EAAO,CACpC,aAAc3pG,GAAU,CACpB,GAAI,CAACspG,GAAatpG,CAAK,EACnB,MAAMA,EAEV,KAAM,CAAE,OAAA0/D,EAAQ,SAAAkb,EAAU,QAAA8a,CAAO,EAAK11F,EAChCoqG,EAAc1U,GAAS,YAC7B,GAAIh2B,GACG,EAAEwqC,MAAaxqC,IACfkb,GAAU,SAAW,KACrBA,GAAU,MAAM,UAAY,oBAAqB,CACpD,QAAQ,KAAK,cAAcwvB,CAAW,2DAA2D,EACjG,MAAMxyB,EAAQ,MAAM+C,GAAiB,EACrC,OAAAgvB,EAAM,SAAS,QAAQ,aAAe/xB,EAC/B+xB,EAAM,CACT,GAAGjqC,EACH,CAACwqC,EAAS,EAAG,GACb,QAAS,CACL,GAAGxqC,EAAO,QACV,aAAckY,CAClC,CACA,CAAa,CACL,CACA,MAAM53E,CACV,CACJ,CChCA,MAAMqqG,GAAkB,sCAMjB,SAASC,GAAuBX,EAAO,CAC1C,aAAc3pG,GAAU,CACpB,GAAI,CAACspG,GAAatpG,CAAK,EACnB,MAAMA,EAEV,KAAM,CAAE,OAAA0/D,EAAQ,SAAAkb,EAAU,QAAA8a,CAAO,EAAK11F,EAChCoqG,EAAc1U,GAAS,YACvB8E,EAAS5f,GAAU,OACnBgY,EAAUhY,GAAU,QAC1B,IAAI2vB,EAAa7qC,IAAS2qC,EAAe,GAAK,EAS9C,GAAI7P,IAAW,KACR5H,IAAU,8BAA8B,IAAM,KAC9ClzB,GAAQ,uBAAwB,CAEnC,GADA6qC,GAAc,EACVA,EAAa,GACb,cAAQ,MAAM,8CAA+C,CAAE,YAAAH,CAAW,CAAE,EACtEpqG,EAEV,eAAQ,KAAK,cAAcoqG,CAAW,oDAAoDG,CAAU,GAAG,EACvG,MAAM,IAAI,QAAS5qF,GAAY,CAC3B,WAAWA,EAAS4qF,EAAa,GAAI,CACzC,CAAC,EACMZ,EAAM,CACT,GAAGjqC,EACH,CAAC2qC,EAAe,EAAGE,CACnC,CAAa,CACL,CACA,MAAMvqG,CACV,CACJ,CCpCO,eAAewqG,GAAmBxqG,EAAO,CAC5C,GAAIspG,GAAatpG,CAAK,EAAG,CACrB,KAAM,CAAE,OAAA0/D,EAAQ,SAAAkb,EAAU,QAAA8a,CAAO,EAAK11F,EAChCoqG,EAAc1U,GAAS,YACd9a,GAAU,SACV,KACRA,GAAU,MAAM,UAAY,iCAC5Blb,GAAQ,sBACR,WAAW,UAAU,SACxB,QAAQ,MAAM,cAAc0qC,CAAW,gEAAgE,EACnG,WAAW,IAAI,OACf,WAAW,GAAG,OAAM,EAGpB,WAAW,SAAS,OAAM,EAGtC,CACA,MAAMpqG,CACV,CCvBA,MAAMyqG,GAAmBT,GAAmB,EAC5CS,GAAiB,aAAa,SAAS,IAAK3hG,GAAMA,EAAGqhG,GAAiBM,EAAgB,CAAC,EACvFA,GAAiB,aAAa,SAAS,IAAK3hG,GAAMA,EAAGwhG,GAAuBG,EAAgB,CAAC,EAC7FA,GAAiB,aAAa,SAAS,IAAK3hG,GAAMA,EAAG0hG,EAAkB,ECoChE,MAAME,GAAS,CAAC3oF,EAAiB29C,EAAwC,KAAOiqC,GAAM,IAA0D73D,GAAY,wBAAwB,EAAG,CAAE,GAAG4tB,EAAQ,OAAQ39C,EAAM,EAU5M4oF,GAAU,CAAC5oF,EAAkB29C,EAAyC,KAAOiqC,GAAM,IAAmE73D,GAAY,yBAAyB,EAAG,CAAE,GAAG4tB,EAAQ,OAAQ39C,EAAM,EASzN6oF,GAAgB,CAA4B7oF,EAA2B29C,EAAkD,KAAOiqC,GAAM,IAAoD73D,GAAY,6BAA6B,EAAG/vB,EAAM29C,CAAM,EASlPmrC,GAAiB,CAAC9oF,EAA0B29C,EAAgD,KAAOiqC,GAAM,IAAkE73D,GAAY,6BAA6B,EAAG,CAAE,GAAG4tB,EAAQ,OAAQ39C,EAAM,ECjElP+oF,GAAsB,CAClCrwE,GAAE,YAAa,OAAO,EACtBA,GAAE,YAAa,MAAM,EACrBA,GAAE,YAAa,SAAS,EACxBA,GAAE,YAAa,OAAO,EACtBA,GAAE,YAAa,OAAO,CACvB,EAKaswE,GAAgB,CAC5B,QACA,OACA,UACA,QACA,OACD,EAKaC,GAAmB,ICKzB,SAASC,GAAeC,EAA2D,CACzF,GAAI,OAAOA,GAAiB,SAC3B,OAAOA,EAIR,GAAIC,GAAsBD,CAAY,EACrC,OAAOE,GAAaF,CAAY,EAIjC,GAAIG,GAAoBH,CAAY,EAAG,CACtC,MAAMnpF,EAAOqpF,GAAaF,EAAa,MAAM,EAAE,CAAC,EAC1CI,EAAavpF,EAAK,OAAO,MAAM;AAAA,CAAI,EACzC,OAAAA,EAAK,MAAQupF,GAAY,IAAIC,EAAc,EACpCxpF,CACR,CAGD,CAOA,SAASopF,GAAsBK,EAAqB,CACnD,OAAO,OAAOA,GAAe,UAAYA,EAAW,CAAC,IAAM,GAC5D,CAOA,SAASH,GAAoBG,EAAqB,CACjD,OAAO,OAAOA,GAAe,UAAYA,EAAW,MAAM,EAAG,EAAE,IAAM,cACtE,CAQA,SAASJ,GAAaK,EAAc,CACnC,GAAI,CACH,OAAO,KAAK,MAAMA,CAAI,CACvB,MAAY,CAEX,OAAAA,EAAOA,EAAK,QAAQ,MAAO,KAAK,EAEhCA,EAAOA,EAAK,QAAQ,qBAAsB,UAAU,EAC7C,KAAK,MAAMA,CAAI,CACvB,CACD,CAOA,SAASF,GAAepZ,EAAc,CACrC,IAAIhuD,EAAQguD,EAAK,MAAM,GAAG,EAC1B,MAAMnqC,EAAS7jB,EAAM,QACfunE,EAAYvnE,EAAM,KAAK,GAAG,EAGhC,GAFAA,EAAQunE,EAAU,MAAM,GAAG,EAEvBvnE,EAAM,OAAS,EAAG,CACrB,IAAI+N,EACAigD,EACJ,MAAMwZ,EAAcxnE,EAAM,QACpBp4B,EAAOo4B,EAAM,KAAK,GAAG,EAC3B,GAAIwnE,EAAY,CAAC,IAAM,IACtBz5D,EAAOy5D,MACD,CACN,MAAMC,EAAYD,EAAY,MAAM,IAAK,CAAC,EAC1Cz5D,EAAO05D,EAAU,CAAC,EAClB,MAAMC,EAAaD,EAAU,CAAC,GAAG,MAAM,EAAGA,EAAU,CAAC,EAAE,OAAS,CAAC,EACjEzZ,EAAO0Z,EAAa,SAASA,CAAU,EAAI,MAC5C,CACA,MAAO,CACN,SAAU9/F,EACV,OAAAi8C,EACA,KAAA9V,EACA,KAAAigD,CAAA,CAEF,KACC,OAAO,CACN,SAAUuZ,EACV,OAAA1jD,EACA,KAAM,GAGT,CC5HO,MAAM4zB,GAASD,GAAA,EAAmB,OAAO0I,EAAO,EAAE,QCclD,SAASynB,GAASllE,EAAwD,CAGhF,IAAIxuB,EAAQ,EACR2zF,EAAe,EACfC,EAAY,KAChB,MAAMC,EAAS,GAEf,QAASn0G,EAAI,EAAGA,EAAI8uC,EAAO,OAAQ,EAAE9uC,EACpC,OAAQsgB,EAAA,CACP,OAAY,CACHwuB,EAAO9uC,CAAC,IACV,MACJ,EAAEi0G,EACF3zF,EAAQ,EACR4zF,EAAYl0G,GAId,KACD,CACA,IAAK,GAAM,CACV,OAAQ8uC,EAAO9uC,CAAC,GACf,IAAK,IAAK,CACT,EAAEi0G,EACF,KACD,CACA,IAAK,IAAK,CACT,EAAEA,EACEA,IAAiB,IACpB3zF,EAAQ,EACR6zF,EAAO,KAAK,CAAE,MAAOD,EAAW,IAAKl0G,EAAI,EAAG,GAE7C,KACD,CACA,IAAK,IAAK,CACTsgB,EAAQ,EACR,KACD,EAED,KACD,CACA,IAAK,GAAQ,CACZ,OAAQwuB,EAAO9uC,CAAC,GACf,IAAK,IAAK,CACTsgB,EAAQ,EACR,KACD,CACA,IAAK,KAAM,CACVA,EAAQ,EACR,KACD,EAED,KACD,CACA,IAAK,GAAQ,CACZA,EAAQ,EACR,KACD,EAIF,MAAM/T,EAAS,CACd,MAAO,GACP,UAAWuiC,EAAO,UAAUqlE,EAAOA,EAAO,OAAS,CAAC,EAAE,GAAG,GAG1D,OAAAA,EAAO,QAAQ,SAASxuG,EAAG,CAC1B4G,EAAO,MAAM,KAAKuiC,EAAO,UAAUnpC,EAAE,MAAOA,EAAE,GAAG,CAAC,CACnD,CAAC,EAEM4G,CACR,CC7EA,eAAsB6nG,GAAah6D,EAAkC,CACpE,OAAOi6D,GAAe,MAAMj6D,EAAK,MAAM,CACxC,CAOA,eAAsBi6D,GAAetpG,EAAmC,CACvE,IAAIvF,EACJ,GAAI,CAEHA,EADcuF,EAAI,MAAM;AAAA,CAAI,EACZ,IAAIuoG,EAAY,CACjC,MAAY,CACXxvB,GAAO,MAAM,+BAA+B,EAI5Ct+E,EADcwuG,GAASjpG,CAAG,EAAE,MACZ,IAAIuoG,EAAY,CACjC,CACA,OAAO9tG,EAAQ,IAAI8uG,EAAgB,CACpC,CAOO,SAASA,GAAiBtqD,EAAgC,CAChE,MAAO,CACN,GAAGA,EACH,UAAWmpD,GAAgBnpD,EAAoB,WAAaA,EAAM,OAAO,EAE3E,CAOA,SAASspD,GAAaK,EAA4B,CACjD,GAAI,CACH,OAAO,KAAK,MAAMA,CAAI,CACvB,OAAS3rG,EAAG,CAIX,GAHA87E,GAAO,MAAM,mCAAoC,CAAE,MAAO97E,EAAG,KAAA2rG,EAAM,EAG/DA,EAAK,WAAW,GAAG,GAAKA,EAAK,SAAS,GAAG,EAAG,CAC/C,IAAI//C,EAAQ+/C,EAAK,UAAU,EAAGA,EAAK,OAAS,CAAC,EAG7C,OAAI//C,EAAM,MAAM,UAAU,IACzBA,EAAQA,EAAM,QAAQ,MAAO,GAAG,GAE1B,KAAK,MAAMA,CAAK,CACxB,CAGA,MAAM2gD,EAAWZ,EAAK,QAAQ,aAAa,EAAI,GACzCa,EAASb,EAAK,YAAY,YAAY,EACtC78F,EAAQ68F,EAAK,UAAU,EAAGY,CAAQ,EAClCx9F,EAAM48F,EAAK,UAAUa,CAAM,EAG3BC,EAFUd,EAAK,MAAMY,EAAUC,CAAM,EAEZ,QAAQ,gBAAiB,OAAO,EAC/D,OAAAb,EAAO78F,EAAQ29F,EAAiB19F,EAEzB,KAAK,MAAM48F,CAAI,CACvB,CACD,CChEO,MAAMe,GAAmBv7D,GAAY,qBAAsB,IAAM,CAIvE,MAAMw7D,EAAkBzoB,GAAyB,YAAa,WAAY,CAAE,QAAS,GAAO,QAAS,GAAO,eAAgB,MAAO,YAAa,GAAI,SAAU,EAAG,EAK3J0oB,EAAU3jG,GAAI0jG,EAAgB,OAAO,EAMrCtmC,EAAY5lE,GAAS,IAAMmsG,EAAQ,OAASC,EAAU,QAAU,MAAS,EAKzEC,EAAU7jG,GAAI0jG,EAAgB,OAAO,EAKrCI,EAAc9jG,GAAI0jG,EAAgB,WAAW,EAK7CK,EAAW/jG,GAAI0jG,EAAgB,QAAQ,EAMvCM,EAAkBhkG,GAAI0jG,EAAgB,cAAc,EAMpDO,EAAiBzsG,GAAS,CAE/B,IAAK,IAAMosG,EAAU,QAAU,OAAY,MAAQI,EAAgB,MACnE,IAAMtvG,GAAM,CACXsvG,EAAgB,MAAQtvG,CACzB,EACA,EAKKkvG,EAAY5jG,GAAA,EAIZkkG,EAAgB1sG,GAAS,IAAMosG,EAAU,OAAO,MAAQ,EAAE,EAQhE,eAAeO,EAA8DC,EAAYv0G,EAAwB,CAChH,MAAMgyG,GAAc,CAAE,YAAauC,EAAS,cAAev0G,EAAO,EAGjE,KAAuBu0G,CAAO,EAAIv0G,CACpC,CAKA,eAAew0G,GAAiC,CAC/C,MAAMC,EAAW,MAAMxC,GAAA,EAGtB,cAAO,KAAKwC,EAAS,IAAI,EAAgC,QAASn2G,GAAQ,CAEzE,KAAKA,CAAG,EAAYm2G,EAAS,KAAKn2G,CAAG,CACvC,CAAC,EAEMm2G,EAAS,IACjB,CAEA,MAAO,CAAE,YAAAR,EAAa,SAAAC,EAAU,eAAAE,EAAgB,QAAAN,EAAS,UAAAvmC,EAAW,QAAAymC,EAAS,UAAAD,EAAW,cAAAM,EAAe,WAAAC,EAAY,YAAAE,CAAA,CACpH,CAAC,ECzFYE,GAAcr8D,GAAY,iBAAkB,IAAM,CAC9D,MAAMs8D,EAAYf,GAAA,EAKZgB,EAAazkG,GAAiB,EAAE,EAKhC0kG,EAAQ1kG,GAAY,EAAE,EAKtBzL,EAAUiD,GAAS,IAAM,CAC9B,GAAIktG,EAAM,MAAO,CAChB,MAAMj2E,EAAOi2E,EAAM,MAAM,cACzB,OAAOD,EAAW,MAAM,OAAQ1rD,GAAU,KAAK,UAAUA,CAAK,EAAE,cAAc,SAAStqB,CAAI,CAAC,CAC7F,CACA,OAAOg2E,EAAW,KACnB,CAAC,EAKKE,EAAsB3kG,GAAI,EAAI,EAK9B4kG,EAAW5kG,GAAI,EAAK,EAKpB6kG,EAAW7kG,GAAI,EAAK,EAO1B,eAAe8kG,EAASC,EAAQ,GAAM,CAErC,GAAKP,EAAU,YAKTK,EAAS,MAAQ,CAACA,EAAS,OAIjC,GAAI,CACH,GAAIE,GAAS,CAACN,EAAW,MAAM,OAAQ,CACtC,KAAM,CAAE,KAAAzrF,CAAA,EAAS,MAAM2oF,GAAO,CAAE,OAAQ8C,EAAW,MAAM,OAAQ,MAAOC,EAAM,MAAO,EACrFD,EAAW,MAAM,KAAK,GAAGzrF,EAAK,KAAK,IAAIqqF,EAAgB,CAAC,EACxDsB,EAAoB,MAAQ3rF,EAAK,MAClC,KAAO,CACN,KAAM,CAAE,KAAAA,CAAA,EAAS,MAAM4oF,GAAQ,CAAE,UAAW6C,EAAW,MAAM,CAAC,EAAG,MAAO,EACxEA,EAAW,MAAM,OAAO,EAAG,EAAG,GAAGzrF,EAAK,IAAIqqF,EAAgB,CAAC,CAC5D,CACD,OAAStsG,EAAG,CACX87E,GAAO,MAAM97E,CAAU,EACvBusF,GAAU5xD,GAAE,YAAa,4BAA4B,CAAC,CACvD,SAECmzE,EAAS,MAAQ,EAClB,CACD,CAKA,eAAeG,GAAW,CACzB,GAAI,CAACR,EAAU,UAAW,CACzB3xB,GAAO,MAAM,yCAAyC,EACtD,MACD,CAEA4xB,EAAW,MAAQ,MAAMtB,GAAaqB,EAAU,SAAS,EACzDG,EAAoB,MAAQ,EAC7B,CAOA,eAAeM,EAASx2E,EAAc,CAErC,GAAIA,IAAS,GAIb,GAAI,CACHg2E,EAAW,MAAQ,MAAMrB,GAAe30E,CAAI,EAE5C+1E,EAAU,UAAY,IAAI,KAAK,GAAI9yE,GAAE,YAAa,WAAW,CAAC,EAE9DizE,EAAoB,MAAQ,EAC7B,OAAS5tG,EAAG,CAEXusF,GAAU5xD,GAAE,YAAa,mCAAmC,CAAC,EAC7DmhD,GAAO,MAAM97E,CAAU,CACxB,CACD,CAKA,SAASmuG,GAAc,CACtBN,EAAS,MAAQ,EAClB,CAKA,SAASO,GAAe,CACvB,GAAIP,EAAS,MAEZ,OAGD,MAAMQ,EAAY,SAAY,CAC7B,GAAI,CAEH,GAAIZ,EAAU,WAAaE,EAAM,QAAU,IAAMD,EAAW,MAAM,OAAQ,CACzE,KAAM,CAAE,KAAAzrF,CAAA,EAAS,MAAM4oF,GAAQ,CAAE,UAAW6C,EAAW,MAAM,CAAC,EAAG,MAAO,EACxEA,EAAW,MAAM,OAAO,EAAG,EAAG,GAAGzrF,EAAK,IAAIqqF,EAAgB,CAAC,CAC5D,CACD,OAAStsG,EAAG,CACX87E,GAAO,KAAK,qDAAsD,CAAE,MAAO97E,EAAG,GAChEA,EACH,QAAU,IAAM,IAC1BusF,GAAU5xD,GAAE,YAAa,sDAAsD,CAAC,EAEhF4xD,GAAU5xD,GAAE,YAAa,6BAA6B,CAAC,CAEzD,SACKkzE,EAAS,OACZ,OAAO,WAAWQ,EAAWnD,EAAgB,CAE/C,CACD,EAEA2C,EAAS,MAAQ,GACjB,OAAO,WAAWQ,EAAWnD,EAAgB,CAC9C,CAUA,eAAeoD,EAAWC,EAAS,GAAI,CACtC,MAAMC,EAAWb,EAAM,MAIvB,GAHAA,EAAM,MAAQY,EAGVA,IAAWC,GAAYf,EAAU,UAAW,CAC/CK,EAAS,MAAQ,GAEjB,GAAI,CACH,KAAM,CAAE,KAAA7rF,CAAA,EAAS,MAAM2oF,GAAO,CAAE,OAAQ,EAAG,MAAO2D,EAAQ,EAC1Db,EAAW,MAAQ,CAAC,GAAGzrF,EAAK,KAAK,IAAIqqF,EAAgB,CAAC,EACtDsB,EAAoB,MAAQ3rF,EAAK,MAClC,SACC6rF,EAAS,MAAQ,EAClB,CACD,CACD,CAEA,MAAO,CAAE,WAAAJ,EAAY,QAAAlwG,EAAS,oBAAAowG,EAAqB,MAAAD,EAAO,SAAAI,EAAU,SAAAG,EAAU,SAAAD,EAAU,aAAAG,EAAc,YAAAD,EAAa,WAAAG,CAAA,CACpH,CAAC,yFCxJD,MAAMG,EAAgB/B,GAAA,EAChBgC,EAAWlB,GAAA,EAGXmB,EAAuB,QAAQh0E,GAAE,YAAa,MAAM,CAAC,wBAKrDi0E,EAAc58D,GAAY,8BAA8B,EAKxD68D,EAAY5lG,GAAA,EAKlB,eAAe6lG,GAAiB,CAC/B,MAAM18D,EAAOy8D,EAAU,OAAO,OAAO,OAAO,CAAC,EAC7C,GAAIz8D,EACH,GAAI,CACHq8D,EAAc,UAAYr8D,EAE1B,MAAMs8D,EAAS,UAChB,OAASxuG,EAAO,CACfuuG,EAAc,UAAY,OAC1BliB,GAAU5xD,GAAE,YAAa,gCAAgC,CAAC,EAC1DmhD,GAAO,MAAM57E,CAAc,CAC5B,CAEF,mBA1ECuvD,EA0BM,YAzBLz4B,GAGa+3E,EAAAv/C,EAAA,GAHD,KAAK,OAAO,MAAM,yBAE7B,IAA6N,CAA7NK,EAA6N,KAA1N,UAAQk/C,EAAAp0E,EAAA,EAAC,mJAAwJg0E,CAAA,EAAwB,OAAS,iCAEtM33E,GAKW+3E,EAAAjhD,EAAA,GALA,KAAMihD,EAAAN,CAAA,EAAc,QAAUM,EAAAH,CAAA,EAAW,KAAU,SAAQ,CAAGG,EAAAN,CAAA,EAAc,QAAS,SAAS,kBAC7F,QACV,IAA2B,CAA3Bz3E,GAA2Bg4E,GAAA,CAAZ,KAAM,GAAE,eACb,IACX,CADWC,GAAA,OACRF,EAAAp0E,EAAA,EAAC,+DAEL3D,GAKW+3E,EAAAjhD,EAAA,GALA,QAAKF,EAAA,KAAAA,EAAA,GAAAgC,GAAEi/C,EAAA,OAAW,QAAK,GACtB,QACV,IAAyB,CAAzB73E,GAAyBk4E,GAAA,CAAZ,KAAM,GAAE,eACX,IACX,CADWD,GAAA,OACRF,EAAAp0E,EAAA,EAAC,+CAELk1B,EAQQ,QARRjD,GAQQ,CAPJqiD,GAAAE,GAAAJ,EAAAp0E,EAAA,wDAA0D,IAC7D,GAAAk1B,EAK+B,iBAJ1B,YAAJ,IAAIg/C,EACJ,KAAK,OACL,KAAK,UACL,OAAO,8CACN,YAAaC,EAAc,yEC1B1Bx3D,GAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASNwV,GAA4B3wC,GAAgB,CAChD,OAAQ,qBACR,MAAO,CACL,QAAS,CAAE,KAAM,OAAO,EACxB,KAAM,CAAE,QAAS,EAAE,EACnB,OAAQ,CAAE,KAAM,QAAS,QAAS,EAAK,CAC3C,EACE,MAAM4wC,EAAS,CACbpuB,GAAYgvB,IAAU,CACpB,UAAayhD,EAAM,MACnB,UAAaC,EAAG,KACtB,EAAM,EACF,MAAMD,EAAQ3uG,GAAS,IAAMssD,EAAQ,QAAU,+BAAiC,+BAA+B,EACzGsiD,EAAK5uG,GAAS,IAAMssD,EAAQ,QAAU,uBAAyB,qBAAqB,EAC1F,MAAO,CAACY,EAAMC,KACL5sC,EAAS,EAAIC,GAAYouC,GAAkB,CAChD,MAAO/zD,GAAeqyD,EAAK,OAAO,gBAAgB,EAC1D,IAAQrW,GACA,KAAMyV,EAAQ,KACd,OAAQA,EAAQ,MACxB,EAAS,KAAM,EAAG,CAAC,QAAS,OAAQ,QAAQ,CAAC,EAE3C,CACF,CAAC,EACKuiD,GAAmB,0BACnBpzB,GAAS,CACb,uBAAwB,8BACxB,iBAAAozB,EACF,EACM9sF,GAAa,CACjB,OAAU05D,EACZ,EACMqzB,GAAqC9iD,GAAYK,GAAW,CAAC,CAAC,eAAgBtqC,EAAU,CAAC,CAAC,ECxC1FgtF,GAAyC,OAAO,IAAI,kBAAkB,EAC5E,SAASC,IAAsB,CAC7B,OAAO59F,GAAO29F,GAAwB,MAAM,CAC9C,CCAA,MAAME,GAAc,CAClB,KAAM,2BACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMC,GAAe,CAAC,cAAe,YAAY,EAC3CC,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,sGAAsG,EAC1HC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAcpiD,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CACpE,OAAO17D,EAAS,EAAIuV,EAAmB,OAAQiB,GAAWm2B,EAAK,OAAQ,CACrE,cAAegC,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,mDACP,KAAM,MACN,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWjC,EAAK,MAAM,QAASiC,CAAM,EAC7E,CAAG,EAAG,EACD5uC,EAAS,EAAIuV,EAAmB,MAAO,CACtC,KAAMo5B,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACD9B,EAAmB,OAAQgiD,GAAc,CACvClgD,EAAO,OAAS3uC,EAAS,EAAIuV,EAAmB,QAASu5E,GAAczyG,GAAgBsyD,EAAO,KAAK,EAAG,CAAC,GAAK12C,GAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAG22F,EAAY,EACtB,EAAK,GAAID,EAAY,CACrB,CACA,MAAMK,GAAuCvjD,GAAYijD,GAAa,CAAC,CAAC,SAAUK,EAAa,CAAC,CAAC,EAC3FE,GAAc,CAClB,KAAM,qBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMC,GAAe,CAAC,cAAe,YAAY,EAC3CC,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,sIAAsI,EAC1JC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAc3iD,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CACpE,OAAO17D,EAAS,EAAIuV,EAAmB,OAAQiB,GAAWm2B,EAAK,OAAQ,CACrE,cAAegC,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,4CACP,KAAM,MACN,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWjC,EAAK,MAAM,QAASiC,CAAM,EAC7E,CAAG,EAAG,EACD5uC,EAAS,EAAIuV,EAAmB,MAAO,CACtC,KAAMo5B,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACD9B,EAAmB,OAAQuiD,GAAc,CACvCzgD,EAAO,OAAS3uC,EAAS,EAAIuV,EAAmB,QAAS85E,GAAchzG,GAAgBsyD,EAAO,KAAK,EAAG,CAAC,GAAK12C,GAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGk3F,EAAY,EACtB,EAAK,GAAID,EAAY,CACrB,CACA,MAAMK,GAAiC9jD,GAAYwjD,GAAa,CAAC,CAAC,SAAUK,EAAa,CAAC,CAAC,EACrFE,GAAc,CAClB,KAAM,eACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMC,GAAe,CAAC,cAAe,YAAY,EAC3CC,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,qGAAqG,EACzHC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAcljD,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CACpE,OAAO17D,EAAS,EAAIuV,EAAmB,OAAQiB,GAAWm2B,EAAK,OAAQ,CACrE,cAAegC,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,sCACP,KAAM,MACN,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWjC,EAAK,MAAM,QAASiC,CAAM,EAC7E,CAAG,EAAG,EACD5uC,EAAS,EAAIuV,EAAmB,MAAO,CACtC,KAAMo5B,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACD9B,EAAmB,OAAQ8iD,GAAc,CACvChhD,EAAO,OAAS3uC,EAAS,EAAIuV,EAAmB,QAASq6E,GAAcvzG,GAAgBsyD,EAAO,KAAK,EAAG,CAAC,GAAK12C,GAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGy3F,EAAY,EACtB,EAAK,GAAID,EAAY,CACrB,CACA,MAAMK,GAA2BrkD,GAAY+jD,GAAa,CAAC,CAAC,SAAUK,EAAa,CAAC,CAAC,EAC/EE,GAAc,CAClB,KAAM,oBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMC,GAAe,CAAC,cAAe,YAAY,EAC3CC,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,kJAAkJ,EACtKC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAczjD,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CACpE,OAAO17D,EAAS,EAAIuV,EAAmB,OAAQiB,GAAWm2B,EAAK,OAAQ,CACrE,cAAegC,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,2CACP,KAAM,MACN,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWjC,EAAK,MAAM,QAASiC,CAAM,EAC7E,CAAG,EAAG,EACD5uC,EAAS,EAAIuV,EAAmB,MAAO,CACtC,KAAMo5B,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACD9B,EAAmB,OAAQqjD,GAAc,CACvCvhD,EAAO,OAAS3uC,EAAS,EAAIuV,EAAmB,QAAS46E,GAAc9zG,GAAgBsyD,EAAO,KAAK,EAAG,CAAC,GAAK12C,GAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGg4F,EAAY,EACtB,EAAK,GAAID,EAAY,CACrB,CACA,MAAMK,GAAgC5kD,GAAYskD,GAAa,CAAC,CAAC,SAAUK,EAAa,CAAC,CAAC,EACpFxqB,GAAc,CAClB,KAAM,qBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACM0qB,GAAe,CAAC,cAAe,YAAY,EAC3C7nB,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzC8nB,GAAe,CAAE,EAAG,qNAAqN,EACzOvjD,GAAa,CAAE,IAAK,CAAC,EAC3B,SAASwjD,GAAc7jD,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CACpE,OAAO17D,EAAS,EAAIuV,EAAmB,OAAQiB,GAAWm2B,EAAK,OAAQ,CACrE,cAAegC,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,4CACP,KAAM,MACN,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWjC,EAAK,MAAM,QAASiC,CAAM,EAC7E,CAAG,EAAG,EACD5uC,EAAS,EAAIuV,EAAmB,MAAO,CACtC,KAAMo5B,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACD9B,EAAmB,OAAQ0jD,GAAc,CACvC5hD,EAAO,OAAS3uC,EAAS,EAAIuV,EAAmB,QAASy3B,GAAY3wD,GAAgBsyD,EAAO,KAAK,EAAG,CAAC,GAAK12C,GAAmB,GAAI,EAAI,CAC7I,CAAO,CACP,EAAO,EAAGwwE,EAAY,EACtB,EAAK,GAAI6nB,EAAY,CACrB,CACA,MAAMG,GAAiChlD,GAAYm6B,GAAa,CAAC,CAAC,SAAU4qB,EAAa,CAAC,CAAC,EACrFE,GAAgB,WAChBC,GAAa,QACbC,GAAc,SACdC,GAAc,SACd71B,GAAc,CAClB,KAAM,oBACN,WAAY,CACV,cAAAjjB,GACA,mBAAAw2C,EACJ,EACE,MAAO,CAIL,UAAW,CACT,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,IACf,EAII,UAAW,CACT,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,IACf,EASI,KAAM,CACJ,KAAM,OACN,QAAS,WACT,UAAYvtG,GAAS,CACnB0vG,GACAC,GACAC,GACAC,EACR,EAAQ,SAAS7vG,CAAI,CACrB,EAII,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAII,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,OACN,QAAS,EACf,EAII,QAAS,CACP,KAAM,OACN,SAAU,EAChB,EAII,cAAe,CACb,KAAM,OACN,SAAU,EAChB,CACA,EACE,SAAU,CACR,cAAe,CACb,OAAO,KAAK,OAAS6vG,EACvB,EACA,cAAe,CACb,OAAO,KAAK,OAASD,EACvB,EAMA,0BAA2B,CACzB,OAAI,KAAK,OAASD,GACZ,KAAK,UACAF,GAEFJ,GAEL,KAAK,cACAP,GAEL,KAAK,UACAP,GAEFP,EACT,CACJ,CACA,EACMxmB,GAAe,CACnB,IAAK,EACL,MAAO,2BACT,EACM58B,GAAa,CAAC,IAAI,EAClBC,GAAa,CAAC,IAAI,EACxB,SAASilD,GAAcnkD,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CACpE,MAAMq1B,EAA2B7yF,GAAiB,eAAe,EAC3D8yF,EAAgC9yF,GAAiB,oBAAoB,EAC3E,OAAO8B,EAAS,EAAIuV,EAAmB,OAAQ,CAC7C,MAAOj7B,GAAe,CAAC,mBAAoB,CACzC,CAAC,oBAAsBq0D,EAAO,IAAI,EAAG,GACrC,mCAAoCA,EAAO,cAC3C,6BAA8B,CAAC,CAAChC,EAAK,OAAO,OAClD,CAAK,CAAC,CACN,EAAK,CACDE,EAAmB,OAAQ,CACzB,MAAOvyD,GAAe,CAAC,yBAA0B,CAC/C,kCAAmCq0D,EAAO,UAC1C,0CAA2C,CAAC+sB,EAAS,cAAgB/uB,EAAK,OAAO,YACjF,CAACgC,EAAO,SAAS,EAAG,EAC5B,CAAO,CAAC,EACF,cAAe,GACf,MAAO,EACb,EAAO,CACDjvC,GAAWitC,EAAK,OAAQ,OAAQ,CAC9B,QAASgC,EAAO,UAChB,QAASA,EAAO,OACxB,EAAS,IAAM,CACPA,EAAO,SAAW3uC,EAAS,EAAIC,GAAY8wF,EAA0B,CAAE,IAAK,CAAC,CAAE,GAAKr1B,EAAS,cAAgB17D,EAAS,EAAIC,GAAY+wF,EAA+B,CACnK,IAAK,EACL,QAASriD,EAAO,UAChB,KAAMA,EAAO,SACb,OAAQ,EAClB,EAAW,KAAM,EAAG,CAAC,UAAW,MAAM,CAAC,GAAMA,EAAO,cAGnB12C,GAAmB,GAAI,EAAI,GAHS+H,EAAS,EAAIC,GAAY3B,GAAwBo9D,EAAS,wBAAwB,EAAG,CAChJ,IAAK,EACL,KAAM/sB,EAAO,QACvB,EAAW,KAAM,EAAG,CAAC,MAAM,CAAC,EAC5B,EAAS,EAAI,CACb,EAAO,CAAC,EACJhC,EAAK,OAAO,SAAWA,EAAK,OAAO,aAAe3sC,IAAauV,EAAmB,OAAQizD,GAAc,CACtG77B,EAAK,OAAO,SAAW3sC,EAAS,EAAIuV,EAAmB,OAAQ,CAC7D,IAAK,EACL,GAAIo5B,EAAO,QACX,MAAOr0D,GAAe,CAAC,yBAA0Bq0D,EAAO,SAAS,CAAC,CAC1E,EAAS,CACDjvC,GAAWitC,EAAK,OAAQ,UAAW,GAAI,OAAQ,EAAI,CAC3D,EAAS,GAAIf,EAAU,GAAK3zC,GAAmB,GAAI,EAAI,EACjD,CAACyjE,EAAS,cAAgB/uB,EAAK,OAAO,aAAe3sC,EAAS,EAAIuV,EAAmB,OAAQ,CAC3F,IAAK,EACL,GAAIo5B,EAAO,cACX,MAAO,+BACf,EAAS,CACDjvC,GAAWitC,EAAK,OAAQ,cAAe,GAAI,OAAQ,EAAI,CAC/D,EAAS,EAAGd,EAAU,GAAK5zC,GAAmB,GAAI,EAAI,CACtD,CAAK,GAAKA,GAAmB,GAAI,EAAI,CACrC,EAAK,CAAC,CACN,CACA,MAAMg5F,GAAoCxlD,GAAYuvB,GAAa,CAAC,CAAC,SAAU81B,EAAa,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EAChI7sF,GAAQ,EACR,MAAM6nC,GAAY,CAChB,KAAM,wBACN,WAAY,CACV,kBAAAmlD,EACJ,EAEE,aAAc,GACd,MAAO,CAIL,GAAI,CACF,KAAM,OACN,QAAS,IAAM,yBAA2BlkD,GAAe,EACzD,UAAYl/C,GAAOA,EAAG,KAAI,IAAO,EACvC,EAII,UAAW,CACT,KAAM,OACN,QAAS,IACf,EAKI,KAAM,CACJ,KAAM,OACN,QAAS,IACf,EAKI,UAAW,CACT,KAAM,OACN,QAAS,EACf,EASI,KAAM,CACJ,KAAM,OACN,QAAS,WACT,UAAY7M,GAAS,CACnB0vG,GACAC,GACAC,GACAC,EACR,EAAQ,SAAS7vG,CAAI,CACrB,EAMI,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAQI,qBAAsB,CACpB,KAAM,OACN,QAAS,KACT,UAAYrE,GAAM,CAAC,KAAM,WAAY,YAAY,EAAE,SAASA,CAAC,CACnE,EAII,WAAY,CACV,KAAM,CAAC,QAAS,MAAO,MAAM,EAC7B,QAAS,EACf,EAII,MAAO,CACL,KAAM,OACN,QAAS,IACf,EAII,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAII,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAII,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAQI,eAAgB,CACd,KAAM,OACN,QAAS,IACf,EAII,MAAO,CACL,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACf,EAII,MAAO,CACL,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACf,EAMI,YAAa,CACX,KAAM,OACN,QAAS,IACf,CACA,EACE,MAAO,CAAC,mBAAmB,EAC3B,MAAMlC,EAAO,CAAE,KAAAktB,GAAQ,CACrB,MAAMupF,EAAazC,GAAmB,EACtCl3F,GAAU,IAAM25F,GAAY,MAAM,SAAS,EAAK,CAAC,EACjD,MAAMC,EAAe1xG,GAAS,IAAMyxG,GAAY,MAAQP,GAAal2G,EAAM,IAAI,EACzE22G,EAAqB3xG,GAAS,CAClC,KAAM,CACJ,OAAIyxG,GAAY,MACPA,EAAW,MAAM,WAEnBz2G,EAAM,UACf,EACA,IAAI3C,EAAO,CACLo5G,GAAY,MACdA,EAAW,MAAM,SAASp5G,CAAK,EAE/B6vB,EAAK,oBAAqB7vB,CAAK,CAEnC,CACN,CAAK,EACD,MAAO,CACL,aAAAq5G,EACA,mBAAAC,EACA,QAASrkD,GAAe,EACxB,cAAeA,GAAe,CACpC,CACE,EACA,SAAU,CACR,cAAe,CACb,OAAO,KAAK,eAAiB8jD,EAC/B,EACA,wBAAyB,CACvB,OAAI,KAAK,aACA,SAEL,KAAK,iBAAmB,KACnB,KAAK,eAEP,MACT,EACA,WAAY,CACV,OAAI,KAAK,aACA,CACL,MAAO,KAAK,QACtB,EAEa,CACL,OAAQ,KAAK,QACrB,CACI,EACA,UAAW,CACT,OAAO,KAAK,eAAiBD,GAAc,GAAK,EAClD,EACA,aAAc,CACZ,OAAO,KAAK,SAAW,IACzB,EACA,eAAgB,CACd,OAAO,KAAK,eAAiBA,GAAc,OAAS,KAAK,WAC3D,EAOA,WAAY,CAMV,MALoB,CAClBF,GACAC,GACAE,EACR,EACsB,SAAS,KAAK,YAAY,EACjC,KAAK,aAEPH,EACT,EAOA,WAAY,CACV,OAAO,KAAK,eAAiBE,GAAc,SAAW,MACxD,EAQA,WAAY,CACV,OAAI,KAAK,QAAU,KACb,MAAM,QAAQ,KAAK,kBAAkB,EAChC,CAAC,GAAG,KAAK,kBAAkB,EAAE,QAAQ,KAAK,KAAK,EAAI,GAErD,KAAK,qBAAuB,KAAK,MAEnC,KAAK,qBAAuB,EACrC,EACA,kBAAmB,CACjB,MAAO,CACLF,GACAC,EACR,EAAQ,SAAS,KAAK,SAAS,CAC3B,CACJ,EACE,SAAU,CACR,GAAI,KAAK,MAAQ,KAAK,eAAiBD,IACjC,CAAC,MAAM,QAAQ,KAAK,kBAAkB,EACxC,MAAM,IAAI,MAAM,sEAAsE,EAG1F,GAAI,KAAK,MAAQ,KAAK,eAAiBE,GACrC,MAAM,IAAI,MAAM,gFAAgF,EAElG,GAAI,OAAO,KAAK,oBAAuB,WAAa,KAAK,eAAiBA,GACxE,MAAM,IAAI,MAAM,4DAA4D,CAEhF,EACA,QAAS,CACX,EAAIj3E,GACJ,EAAIrgC,GACA,SAASsuB,EAAO,CACd,GAAI,OAAK,UAAYA,EAAM,OAAO,QAAQ,YAAW,IAAO,KAG5D,IAAI,KAAK,eAAiB+oF,GAAY,CACpC,KAAK,mBAAqB,KAAK,MAC/B,MACF,CACA,GAAI,KAAK,eAAiBC,GAAa,CACrC,KAAK,mBAAqB,CAAC,KAAK,UAChC,MACF,CACA,GAAI,OAAO,KAAK,oBAAuB,UAAW,CAChD,KAAK,mBAAqB,CAAC,KAAK,mBAChC,MACF,CACI,KAAK,UACP,KAAK,mBAAqB,KAAK,mBAAmB,OAAQj0G,GAAMA,IAAM,KAAK,KAAK,EAEhF,KAAK,mBAAqB,CAAC,GAAG,KAAK,mBAAoB,KAAK,KAAK,EAErE,CACJ,CACA,EACM00G,GAAoB,IAAM,CAC9B1zE,GAAYgvB,IAAU,CACpB,SAAYA,EAAK,YACjB,UAAaA,EAAK,aACtB,EAAI,CACJ,EACM2kD,GAAYxlD,GAAU,MAC5BA,GAAU,MAAQwlD,GAAY,CAAC72G,EAAO4U,KACpCgiG,GAAiB,EACVC,GAAU72G,EAAO4U,CAAG,GACzBgiG,GACJ,MAAM1lD,GAAa,CAAC,KAAM,kBAAmB,mBAAoB,aAAc,WAAY,OAAQ,OAAQ,QAAS,UAAW,iBAAkB,WAAY,MAAM,EACnK,SAAS4vB,GAAY5uB,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CAClE,MAAM61B,EAA+BrzF,GAAiB,mBAAmB,EACzE,OAAO8B,EAAS,EAAIC,GAAY3B,GAAwBo9D,EAAS,sBAAsB,EAAGllD,GAAW,CACnG,GAAIm4B,EAAO,YAAc+sB,EAAS,aAAe/sB,EAAO,GAAK,MAC7D,aAAc+sB,EAAS,cAAgB/sB,EAAO,UAAYA,EAAO,UAAY,OAC7E,MAAO,CAAC,wBAAyB,CAC/BhC,EAAK,OAAO,MACZ,CACE,CAAC,yBAA2B6uB,EAAO,YAAY,EAAGA,EAAO,aACzD,iCAAkCE,EAAS,UAC3C,kCAAmC/sB,EAAO,SAC1C,uCAAwC+sB,EAAS,iBAAmB/sB,EAAO,cAAgB,GAC3F,wCAAyCA,EAAO,cAChD,kDAAmDA,EAAO,eAAiBA,EAAO,uBAAyB,WAC3G,kDAAmDA,EAAO,eAAiBA,EAAO,uBAAyB,aAC3G,aAAc+sB,EAAS,YAC/B,CACA,CAAK,EACD,MAAO/sB,EAAO,MACd,KAAM+sB,EAAS,aAAe,SAAW,IAC7C,EAAKA,EAAS,aAAe/uB,EAAK,OAAS,GAAIlsC,GAAWi7D,EAAS,aAAeA,EAAS,UAAY,EAAE,CAAC,EAAG,CACzG,QAAStsE,GAAQ,IAAM,CACpBssE,EAAS,aAesEzjE,GAAmB,GAAI,EAAI,GAfjF+H,EAAS,EAAIuV,EAAmB,QAASiB,GAAW,CAC5E,IAAK,EACL,GAAIm4B,EAAO,GACX,kBAAmB,CAAC+sB,EAAS,cAAgB,CAAC/sB,EAAO,UAAY6sB,EAAO,QAAU,KAClF,mBAAoB,CAACE,EAAS,eAAiB/sB,EAAO,aAAehC,EAAK,OAAO,aAAe6uB,EAAO,cAAgB,KACvH,aAAc7sB,EAAO,WAAa,OAClC,MAAO,+BACP,SAAUA,EAAO,SACjB,KAAM+sB,EAAS,UACf,KAAMA,EAAS,UACf,MAAO/sB,EAAO,MACd,QAAS+sB,EAAS,UAClB,iBAAkBA,EAAS,iBAAmB/sB,EAAO,cAAgB,KACrE,SAAUA,EAAO,SACjB,KAAMA,EAAO,IACrB,EAAShC,EAAK,OAAQlsC,GAAWi7D,EAAS,UAAW,EAAI,CAAC,EAAG,KAAM,GAAI/vB,EAAU,GAC3EzrC,GAAYqxF,EAA8B,CACxC,GAAK71B,EAAS,aAAsC,OAAvB,GAAG/sB,EAAO,EAAE,SACzC,MAAO,iCACP,UAAW,8BACX,UAAW,8BACX,KAAM6sB,EAAO,aACb,cAAeE,EAAS,iBAAmB/sB,EAAO,cAAgB,GAClE,cAAeA,EAAO,cACtB,UAAW+sB,EAAS,UACpB,QAAS/sB,EAAO,QAChB,QAAS6sB,EAAO,QAChB,cAAeA,EAAO,cACtB,SAAUE,EAAS,SACnB,QAASA,EAAS,QAC1B,EAASp8D,GAAY,CACb,KAAMlQ,GAAQ,IAAM,CAClBsQ,GAAWitC,EAAK,OAAQ,OAAQ,GAAI,OAAQ,EAAI,CAC1D,CAAS,EACD,EAAG,CACX,EAAS,CACDA,EAAK,OAAO,aAAegC,EAAO,YAAc,CAC9C,KAAM,cACN,GAAIv/C,GAAQ,IAAM,CAChBsQ,GAAWitC,EAAK,OAAQ,cAAe,GAAI,IAAM,CAC/Cl2B,GAAgBp6B,GAAgBsyD,EAAO,WAAW,EAAG,CAAC,CACpE,EAAe,EAAI,CACnB,CAAW,EACD,IAAK,GACf,EAAY,OACFhC,EAAK,OAAO,QAAU,CACtB,KAAM,UACN,GAAIv9C,GAAQ,IAAM,CAChBsQ,GAAWitC,EAAK,OAAQ,UAAW,GAAI,OAAQ,EAAI,CAC/D,CAAW,EACD,IAAK,GACf,EAAY,MACZ,CAAO,EAAG,KAAM,CAAC,KAAM,OAAQ,gBAAiB,gBAAiB,YAAa,UAAW,UAAW,gBAAiB,WAAY,SAAS,CAAC,CAC3I,CAAK,EACD,EAAG,CACP,EAAK,GAAI,CAAC,KAAM,aAAc,QAAS,QAAS,MAAM,CAAC,CACvD,CACA,MAAM6kD,GAAwC/lD,GAAYK,GAAW,CAAC,CAAC,SAAUyvB,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,kDCvuBhI,MAAMkyB,EAAgB/B,GAAA,EAKhB+F,EAAiBhyG,GAAS,IAAM,CACrC,IAAI86E,EAAU5gD,GAAE,YAAa,+CAA+C,EAC5E,OAAI8zE,EAAc,YAEjBlzB,GAAW,IAAM5gD,GAAE,YAAa,sDAAsD,GAEhF4gD,CACR,CAAC,EAKKm3B,EAAiBjyG,GAAS,IAAMguG,EAAc,YAAc,MAAS,EAKrEvB,EAAiBzsG,GAAS,IAAMguG,EAAc,cAAc,EAMlE,SAASkE,EAAkBh1G,EAAmC,CAC7D,OAAO8wG,EACL,WAAW,iBAAkB9wG,CAAC,EAC9B,MAAOqC,GAAM,CACb87E,GAAO,MAAM97E,CAAC,EACdusF,GAAU5xD,GAAE,YAAa,oCAAoC,CAAC,CAC/D,CAAC,CACH,mBArFC80B,EAqCW,iBApCVI,EAAqC,iBAA1B4iD,EAAA,KAAc,KACzBz7E,GAOwB+3E,EAAAyD,EAAA,GANtB,WAAYtF,EAAA,MACb,MAAM,MACN,KAAK,mBACL,KAAK,QACJ,sBAAmByF,CAAA,cACpB,IAAgC,OAA7B5D,EAAAp0E,EAAA,EAAC,qDAEL3D,GAQwB+3E,EAAAyD,EAAA,GAPtB,WAAYtF,EAAA,MACZ,SAAUwF,EAAA,MACX,MAAM,QACN,KAAK,mBACL,KAAK,QACJ,sBAAmBC,CAAA,cACpB,IAAkC,OAA/B5D,EAAAp0E,EAAA,EAAC,kEAEL3D,GAQwB+3E,EAAAyD,EAAA,GAPtB,WAAYtF,EAAA,MACZ,SAAUwF,EAAA,MACX,MAAM,MACN,KAAK,mBACL,KAAK,QACJ,sBAAmBC,CAAA,cACpB,IAAgC,OAA7B5D,EAAAp0E,EAAA,EAAC,gEAEL3D,GAQwB+3E,EAAAyD,EAAA,GAPtB,WAAYtF,EAAA,MACZ,SAAUwF,EAAA,MACX,MAAM,WACN,KAAK,mBACL,KAAK,QACJ,sBAAmBC,CAAA,cACpB,IAAgC,OAA7B5D,EAAAp0E,EAAA,EAAC,4JCdP,MAAM8zE,EAAgB/B,GAAA,EAChBI,EAAUrsG,GAAS,CACxB,IAAK,IAAMguG,EAAc,QAAUA,EAAc,QAAU,GAC3D,IAAM9wG,GAAe8wG,EACnB,WAAW,UAAW9wG,CAAC,EACvB,MAAOqC,GAAM,CACb87E,GAAO,MAAM97E,CAAC,EACdusF,GAAU5xD,GAAE,YAAa,qCAAqC,CAAC,CAChE,CAAC,EACF,oBA9BA80B,EASM,YARcs/C,EAAAN,CAAA,EAAc,uBAAjCmE,GAEa7D,EAAAv/C,EAAA,SAF6B,KAAK,oBAC9C,IAA2F,OAAxFu/C,EAAAp0E,EAAA,EAAC,gGAEL3D,GAIwB+3E,EAAAyD,EAAA,cAJQ1F,EAAA,2CAAAA,EAAO,MAAAl9C,GAAG,SAAQ,CAAGm/C,EAAAN,CAAA,EAAc,qBAClE,IAEE,OADDM,EAAAp0E,EAAA,EAAC,iFCDE,SAASo1B,GAASpc,EAAgB3W,EAAU,IAAK,CACvD,IAAIs0B,EACJ,MAAO,IAAI5tD,IAAoB,CAC9B,aAAa4tD,CAAK,EAClBA,EAAQ,OAAO,WAAW,IAAM,CAC/B3d,EAAK,MAAM,KAAMjwC,CAAI,CACtB,EAAGs5B,CAAO,CACX,CACD,kDCYA,MAAMyxE,EAAgB/B,GAAA,EAKhBK,EAActsG,GAAS,IACrB,OAAO,YAAY,OAAO,KAAKuqG,EAAmB,EAAE,IAAKxvB,GACxD,CAACA,EAAOizB,EAAc,YAAY,SAAS,SAASjzB,CAAK,CAAC,CAAC,CAClE,CAAC,CACF,EAEKq3B,EAAgB9iD,GAAUyrB,GAAkB,CACjD,MAAMs3B,EAAiB,CACtB,GAAG/F,EAAY,MACf,CAACvxB,CAAK,EAAG,CAACuxB,EAAY,MAAMvxB,CAAK,GAG5Bu3B,EAAgB,OAAO,KAAKD,CAAc,EAC9C,OAAQt3B,GAAUs3B,EAAet3B,CAAK,CAAC,EACvC,IAAKA,GAAU,SAASA,CAAK,CAAC,EAEhCizB,EAAc,WAAW,cAAesE,CAAa,EACnD,MAAM,IAAMxmB,GAAU5xD,GAAE,YAAa,sCAAsC,CAAC,CAAC,CAChF,EAAG,GAAG,oBAhDL80B,EAWM,YAVLI,EASW,iBARVA,EAA8D,iBAAnDk/C,EAAAp0E,EAAA,EAAC,0CACZm1B,EAAA,IAAAL,EAMwBujD,GAAA,KAAAC,GALQlE,EAAA/D,EAAA,EAAmB,CAA1CkI,EAAWC,SADpBP,GAMwB7D,EAAAyD,EAAA,GAJtB,IAAKW,EACL,WAAYpG,EAAA,MAAYoG,CAAO,EAC/B,sBAAiBvjD,GAAEm/C,EAAA8D,CAAA,EAAcM,CAAO,eACzC,IAAe,OAAZD,CAAS,gKCkBhB,MAAMzE,EAAgB/B,GAAA,EAKhBM,EAAWvsG,GAAS,IAAM,GAAGguG,EAAc,QAAQ,EAAE,EAM3D,SAAS2E,EAAY53B,EAAe,CACnC,MAAM63B,EAAe,SAAS73B,CAAK,EACnCizB,EAAc,WAAW,WAAY4E,CAAY,EAC/C,MAAOrzG,GAAM,CACbusF,GAAU5xD,GAAE,YAAa,6BAA6B,CAAC,EACvDmhD,GAAO,MAAM97E,CAAU,CACxB,CAAC,CACH,mBA5CCyvD,EAYW,iBAXVI,EAA6D,iBAAlDk/C,EAAAp0E,EAAA,EAAC,yCACZm1B,EAAA,IAAAL,EASwBujD,GAAA,KAAAC,GARQlE,EAAA/D,EAAA,EAAmB,CAA1CkI,EAAWC,SADpBP,GASwB7D,EAAAyD,EAAA,GAPtB,IAAKW,EACL,WAAYnG,EAAA,MACZ,SAAUmG,CAAO,GAClB,KAAK,QACL,KAAK,WACJ,sBAAmBC,CAAA,cACpB,IAAe,OAAZF,CAAS,yMCqCf,MAAMz3G,EAAQsxD,EAIRpkC,EAAOqkC,EAIPsmD,EAAgBrwB,GAAkBt6D,EAAK,cAAes6D,CAAI,EAE1DtD,EAA2B,OAAO,IAAI,cAAc,6CAzDzDizB,GAyBsB7D,EAAAloB,EAAA,GAxBpB,KAAMprF,EAAM,KACb,kBACC,KAAMszG,EAAAp0E,EAAA,EAAC,mCACP,gBAAa24E,CAAA,cACd,IAEuB,CAFvBt8E,GAEuB+3E,EAAA5nB,EAAA,GAFD,GAAG,4BAA6B,KAAM4nB,EAAAp0E,EAAA,EAAC,8CAC5D,IAAqB,CAArB3D,GAAqBu8E,EAAA,qBAEtBv8E,GAEuB+3E,EAAA5nB,EAAA,GAFD,GAAG,+BAAgC,KAAM4nB,EAAAp0E,EAAA,EAAC,0CAC/D,IAAuB,CAAvB3D,GAAuBw8E,EAAA,qBAExBx8E,GAEuB+3E,EAAA5nB,EAAA,GAFD,GAAG,0BAA2B,KAAM4nB,EAAAp0E,EAAA,EAAC,wCAC1D,IAA0B,CAA1B3D,GAA0By8E,EAAA,qBAE3Bz8E,GAEuB+3E,EAAA5nB,EAAA,GAFD,GAAG,+BAAgC,KAAM4nB,EAAAp0E,EAAA,EAAC,sCAC/D,IAAoB,CAApB3D,GAAoB08E,EAAA,qBAErB18E,GAEuB+3E,EAAA5nB,EAAA,GAFD,GAAG,6BAA8B,KAAM4nB,EAAAp0E,EAAA,EAAC,iDAC7D,IAAmB,CAAnB3D,GAAmB28E,EAAA,qBAEkB5E,EAAApvB,CAAA,iBAAtCizB,GAIgC7D,EAAA1nB,EAAA,sBAH/B,IAEe,CAFfrwD,GAEe+3E,EAAA3mB,EAAA,mBADd,IAA6E,CAA7EpxD,GAA6E+3E,EAAA/mB,EAAA,GAAlE,MAAO+mB,EAAAp0E,EAAA,EAAC,kCAAqC,OAAO,+KCbnE,MAAMl/B,EAAQsxD,EAORpkC,EAAOqkC,EAUP4mD,EAAa3qG,GAAA,EAKbuqD,EAAW,IAAI,qBAAsBh2D,GAAY,CAClDA,EAAQ,CAAC,EAAE,gBACdmrB,EAAK,cAAc,CAErB,EAAGltB,EAAM,OAAO,EAKhB,OAAA8c,GAAU,IAAM,CACXq7F,EAAW,OACdpgD,EAAS,QAAQogD,EAAW,KAAK,CAEnC,CAAC,EAKDv1F,GAAY,IAAMm1C,EAAS,YAAY,cAjDtC/D,EAGM,eAHG,aAAJ,IAAImkD,CAAA,GAERC,GAAQlmD,EAAA,4BCIJmmD,GAAe,GAed,SAAShjD,GAASh4D,EAAO6S,EAAS,CACvC,MAAM4hG,EAAsBuG,GACtBC,EACJ,OAAOxG,EAAS,iBAAoB,UAChCA,EAAS,gBACT,GACAyG,EACJ,OAAOzG,EAAS,aAAgB,UAAYA,EAAS,YAAc,GAErE,OAAO0G,GAAIn7G,EAAOi7G,EAAiBC,CAAW,CAChD,CAcA,SAASC,GAAIn7G,EAAOi7G,EAAiBC,EAAa,CAChD,GAAIx8F,GAAK1e,CAAK,EAAG,CACf,GAAI,UAAWA,EACb,OAAOA,EAAM,OAAS,QAAU,CAACk7G,EAAc,GAAKl7G,EAAM,MAG5D,GAAIi7G,GAAmB,QAASj7G,GAASA,EAAM,IAC7C,OAAOA,EAAM,IAGf,GAAI,aAAcA,EAChB,OAAOixG,GAAIjxG,EAAM,SAAUi7G,EAAiBC,CAAW,CAE3D,CAEA,OAAI,MAAM,QAAQl7G,CAAK,EACdixG,GAAIjxG,EAAOi7G,EAAiBC,CAAW,EAGzC,EACT,CAcA,SAASjK,GAAIv8F,EAAQumG,EAAiBC,EAAa,CAEjD,MAAMzvG,EAAS,GACf,IAAI/H,EAAQ,GAEZ,KAAO,EAAEA,EAAQgR,EAAO,QACtBjJ,EAAO/H,CAAK,EAAIy3G,GAAIzmG,EAAOhR,CAAK,EAAGu3G,EAAiBC,CAAW,EAGjE,OAAOzvG,EAAO,KAAK,EAAE,CACvB,CAUA,SAASiT,GAAK1e,EAAO,CACnB,MAAO,GAAQA,GAAS,OAAOA,GAAU,SAC3C,CC3GO,MAAMo7G,GAAa,GACbC,GAAa,EACbC,GAAa,EACbC,GAAa,EACbC,GAAa,EACbC,GAAa,EACbC,GAAa,EACbC,GAAa,EACbC,GAAa,EACbC,GAAa,ECFpBxa,GAAM,OAAO,MAAS,SAAW,KAAO,WAExCya,GAAe,CAACpjC,EAAG7e,IAAM,CAC7B,MAAMkiD,EAAK,CAACvqE,EAAK9tC,KACfg1E,EAAE,IAAIh1E,EAAO8tC,CAAG,EACTA,GAGHwqE,EAASt4G,GAAS,CACtB,GAAIg1E,EAAE,IAAIh1E,CAAK,EACb,OAAOg1E,EAAE,IAAIh1E,CAAK,EAEpB,KAAM,CAACwF,EAAMlJ,CAAK,EAAI65D,EAAEn2D,CAAK,EAC7B,OAAQwF,EAAI,CACV,KAAKmyG,GACL,KAAKD,GACH,OAAOW,EAAG/7G,EAAO0D,CAAK,EACxB,KAAK43G,GAAO,CACV,MAAMt8G,EAAM+8G,EAAG,GAAIr4G,CAAK,EACxB,UAAWA,KAAS1D,EAClBhB,EAAI,KAAKg9G,EAAOt4G,CAAK,CAAC,EACxB,OAAO1E,CACT,CACA,KAAKu8G,GAAQ,CACX,MAAM1xG,EAASkyG,EAAG,GAAIr4G,CAAK,EAC3B,SAAW,CAACpF,EAAKoF,CAAK,IAAK1D,EACzB6J,EAAOmyG,EAAO19G,CAAG,CAAC,EAAI09G,EAAOt4G,CAAK,EACpC,OAAOmG,CACT,CACA,KAAK2xG,GACH,OAAOO,EAAG,IAAI,KAAK/7G,CAAK,EAAG0D,CAAK,EAClC,KAAK+3G,GAAQ,CACX,KAAM,CAAC,OAAA9qG,EAAQ,MAAAsrG,CAAK,EAAIj8G,EACxB,OAAO+7G,EAAG,IAAI,OAAOprG,EAAQsrG,CAAK,EAAGv4G,CAAK,CAC5C,CACA,KAAKg4G,GAAK,CACR,MAAMr9G,EAAM09G,EAAG,IAAI,IAAKr4G,CAAK,EAC7B,SAAW,CAACpF,EAAKoF,CAAK,IAAK1D,EACzB3B,EAAI,IAAI29G,EAAO19G,CAAG,EAAG09G,EAAOt4G,CAAK,CAAC,EACpC,OAAOrF,CACT,CACA,KAAKs9G,GAAK,CACR,MAAM1qG,EAAM8qG,EAAG,IAAI,IAAKr4G,CAAK,EAC7B,UAAWA,KAAS1D,EAClBiR,EAAI,IAAI+qG,EAAOt4G,CAAK,CAAC,EACvB,OAAOuN,CACT,CACA,KAAK2qG,GAAO,CACV,KAAM,CAAC,KAAAn5G,EAAM,QAAAggF,CAAO,EAAIziF,EACxB,OAAO+7G,EAAG,IAAI1a,GAAI5+F,CAAI,EAAEggF,CAAO,EAAG/+E,CAAK,CACzC,CACA,KAAKm4G,GACH,OAAOE,EAAG,OAAO/7G,CAAK,EAAG0D,CAAK,EAChC,IAAK,SACH,OAAOq4G,EAAG,OAAO,OAAO/7G,CAAK,CAAC,EAAG0D,CAAK,CAC9C,CACI,OAAOq4G,EAAG,IAAI1a,GAAIn4F,CAAI,EAAElJ,CAAK,EAAG0D,CAAK,CACvC,EAEA,OAAOs4G,CACT,EAWaE,GAAcC,GAAcL,GAAa,IAAI,IAAKK,CAAU,EAAE,CAAC,ECvEtEC,GAAQ,GAER,CAAC,SAAApkD,EAAQ,EAAI,GACb,CAAC,KAAAzwC,EAAI,EAAI,OAET80F,GAASr8G,GAAS,CACtB,MAAMkJ,EAAO,OAAOlJ,EACpB,GAAIkJ,IAAS,UAAY,CAAClJ,EACxB,MAAO,CAACq7G,GAAWnyG,CAAI,EAEzB,MAAMozG,EAAWtkD,GAAS,KAAKh4D,CAAK,EAAE,MAAM,EAAG,EAAE,EACjD,OAAQs8G,EAAQ,CACd,IAAK,QACH,MAAO,CAAChB,GAAOc,EAAK,EACtB,IAAK,SACH,MAAO,CAACb,GAAQa,EAAK,EACvB,IAAK,OACH,MAAO,CAACZ,GAAMY,EAAK,EACrB,IAAK,SACH,MAAO,CAACX,GAAQW,EAAK,EACvB,IAAK,MACH,MAAO,CAACV,GAAKU,EAAK,EACpB,IAAK,MACH,MAAO,CAACT,GAAKS,EAAK,CACxB,CAEE,OAAIE,EAAS,SAAS,OAAO,EACpB,CAAChB,GAAOgB,CAAQ,EAErBA,EAAS,SAAS,OAAO,EACpB,CAACV,GAAOU,CAAQ,EAElB,CAACf,GAAQe,CAAQ,CAC1B,EAEMC,GAAa,CAAC,CAACC,EAAMtzG,CAAI,IAC7BszG,IAASnB,KACRnyG,IAAS,YAAcA,IAAS,UAG7BuzG,GAAa,CAACC,EAAQ7J,EAAMn6B,EAAG7e,IAAM,CAEzC,MAAMkiD,EAAK,CAACvqE,EAAKxxC,IAAU,CACzB,MAAM0D,EAAQm2D,EAAE,KAAKroB,CAAG,EAAI,EAC5B,OAAAknC,EAAE,IAAI14E,EAAO0D,CAAK,EACXA,CACT,EAEM2zF,EAAOr3F,GAAS,CACpB,GAAI04E,EAAE,IAAI14E,CAAK,EACb,OAAO04E,EAAE,IAAI14E,CAAK,EAEpB,GAAI,CAACw8G,EAAMtzG,CAAI,EAAImzG,GAAOr8G,CAAK,EAC/B,OAAQw8G,EAAI,CACV,KAAKnB,GAAW,CACd,IAAInyD,EAAQlpD,EACZ,OAAQkJ,EAAI,CACV,IAAK,SACHszG,EAAOX,GACP3yD,EAAQlpD,EAAM,SAAQ,EACtB,MACF,IAAK,WACL,IAAK,SACH,GAAI08G,EACF,MAAM,IAAI,UAAU,uBAAyBxzG,CAAI,EACnDggD,EAAQ,KACR,MACF,IAAK,YACH,OAAO6yD,EAAG,CAACX,EAAI,EAAGp7G,CAAK,CACnC,CACQ,OAAO+7G,EAAG,CAACS,EAAMtzD,CAAK,EAAGlpD,CAAK,CAChC,CACA,KAAKs7G,GAAO,CACV,GAAIpyG,EACF,OAAO6yG,EAAG,CAAC7yG,EAAM,CAAC,GAAGlJ,CAAK,CAAC,EAAGA,CAAK,EAErC,MAAMhB,EAAM,GACN0E,EAAQq4G,EAAG,CAACS,EAAMx9G,CAAG,EAAGgB,CAAK,EACnC,UAAWkpD,KAASlpD,EAClBhB,EAAI,KAAKq4F,EAAKnuC,CAAK,CAAC,EACtB,OAAOxlD,CACT,CACA,KAAK63G,GAAQ,CACX,GAAIryG,EACF,OAAQA,EAAI,CACV,IAAK,SACH,OAAO6yG,EAAG,CAAC7yG,EAAMlJ,EAAM,SAAQ,CAAE,EAAGA,CAAK,EAC3C,IAAK,UACL,IAAK,SACL,IAAK,SACH,OAAO+7G,EAAG,CAAC7yG,EAAMlJ,EAAM,QAAO,CAAE,EAAGA,CAAK,CACtD,CAGQ,GAAI6yG,GAAS,WAAY7yG,EACvB,OAAOq3F,EAAKr3F,EAAM,QAAQ,EAE5B,MAAM0E,EAAU,GACVhB,EAAQq4G,EAAG,CAACS,EAAM93G,CAAO,EAAG1E,CAAK,EACvC,UAAW1B,KAAOipB,GAAKvnB,CAAK,GACtB08G,GAAU,CAACH,GAAWF,GAAOr8G,EAAM1B,CAAG,CAAC,CAAC,IAC1CoG,EAAQ,KAAK,CAAC2yF,EAAK/4F,CAAG,EAAG+4F,EAAKr3F,EAAM1B,CAAG,CAAC,CAAC,CAAC,EAE9C,OAAOoF,CACT,CACA,KAAK83G,GACH,OAAOO,EAAG,CAACS,EAAMx8G,EAAM,YAAW,CAAE,EAAGA,CAAK,EAC9C,KAAKy7G,GAAQ,CACX,KAAM,CAAC,OAAA9qG,EAAQ,MAAAsrG,CAAK,EAAIj8G,EACxB,OAAO+7G,EAAG,CAACS,EAAM,CAAC,OAAA7rG,EAAQ,MAAAsrG,CAAK,CAAC,EAAGj8G,CAAK,CAC1C,CACA,KAAK07G,GAAK,CACR,MAAMh3G,EAAU,GACVhB,EAAQq4G,EAAG,CAACS,EAAM93G,CAAO,EAAG1E,CAAK,EACvC,SAAW,CAAC1B,EAAK4qD,CAAK,IAAKlpD,GACrB08G,GAAU,EAAEH,GAAWF,GAAO/9G,CAAG,CAAC,GAAKi+G,GAAWF,GAAOnzD,CAAK,CAAC,KACjExkD,EAAQ,KAAK,CAAC2yF,EAAK/4F,CAAG,EAAG+4F,EAAKnuC,CAAK,CAAC,CAAC,EAEzC,OAAOxlD,CACT,CACA,KAAKi4G,GAAK,CACR,MAAMj3G,EAAU,GACVhB,EAAQq4G,EAAG,CAACS,EAAM93G,CAAO,EAAG1E,CAAK,EACvC,UAAWkpD,KAASlpD,GACd08G,GAAU,CAACH,GAAWF,GAAOnzD,CAAK,CAAC,IACrCxkD,EAAQ,KAAK2yF,EAAKnuC,CAAK,CAAC,EAE5B,OAAOxlD,CACT,CACN,CAEI,KAAM,CAAC,QAAA++E,CAAO,EAAIziF,EAClB,OAAO+7G,EAAG,CAACS,EAAM,CAAC,KAAMtzG,EAAM,QAAAu5E,CAAO,CAAC,EAAGziF,CAAK,CAChD,EAEA,OAAOq3F,CACT,EAccslB,GAAY,CAAC38G,EAAO,CAAC,KAAA6yG,EAAM,MAAA+J,CAAK,EAAI,KAAO,CACvD,MAAM/iD,EAAI,GACV,OAAO4iD,GAAW,EAAE5J,GAAQ+J,GAAQ,CAAC,CAAC/J,EAAM,IAAI,IAAKh5C,CAAC,EAAE75D,CAAK,EAAG65D,CAClE,ECjJAgjD,GAAe,OAAO,iBAAoB,WAExC,CAACC,EAAKjqG,IACJA,IAAY,SAAUA,GAAW,UAAWA,GAC1CqpG,GAAYS,GAAUG,EAAKjqG,CAAO,CAAC,EAAI,gBAAgBiqG,CAAG,EAE9D,CAACA,EAAKjqG,IAAYqpG,GAAYS,GAAUG,EAAKjqG,CAAO,CAAC,ECmH1CkqG,IAeT,SAAUzjD,EAAM,CACd,GAAIA,GAAS,KACX,OAAOrc,GAGT,GAAI,OAAOqc,GAAS,SAClB,OAAO0jD,GAAe1jD,CAAI,EAI5B,GAAI,OAAOA,GAAS,SAClB,OAAO2jD,GAAW3jD,CAAI,EAGxB,GAAI,OAAOA,GAAS,WAClB,OAAO4jD,GAAY5jD,CAAI,EAGzB,MAAM,IAAI,MAAM,+CAA+C,CACjE,GASJ,SAAS2jD,GAAWE,EAAO,CAEzB,MAAMC,EAAS,GACf,IAAI15G,EAAQ,GAEZ,KAAO,EAAEA,EAAQy5G,EAAM,QACrBC,EAAO15G,CAAK,EAAIq5G,GAAeI,EAAMz5G,CAAK,CAAC,EAG7C,OAAOw5G,GAAYJ,CAAG,EAMtB,SAASA,KAAOO,EAAY,CAC1B,IAAI35G,EAAQ,GAEZ,KAAO,EAAEA,EAAQ05G,EAAO,QACtB,GAAIA,EAAO15G,CAAK,EAAE,MAAM,KAAM25G,CAAU,EAAG,MAAO,GAGpD,MAAO,EACT,CACF,CAQA,SAASL,GAAenxD,EAAO,CAC7B,OAAOqxD,GAAY51D,CAAO,EAM1B,SAASA,EAAQrK,EAAS,CACxB,OAAOA,EAAQ,UAAY4O,CAC7B,CACF,CAQA,SAASqxD,GAAYI,EAAc,CACjC,OAAOzxD,EAMP,SAASA,EAAM7rD,EAAO0D,EAAO6uB,EAAQ,CACnC,MAAO,GACLgrF,GAAmBv9G,CAAK,GACtBs9G,EAAa,KACX,KACAt9G,EACA,OAAO0D,GAAU,SAAWA,EAAQ,OACpC6uB,GAAU,MACpB,EAEE,CACF,CAQA,SAAS0qB,GAAQA,EAAS,CACxB,MAAO,GACLA,GACE,OAAOA,GAAY,UACnB,SAAUA,GACVA,EAAQ,OAAS,WACjB,YAAaA,GACb,OAAOA,EAAQ,SAAY,SAEjC,CAMA,SAASsgE,GAAmBv9G,EAAO,CACjC,OACEA,IAAU,MACV,OAAOA,GAAU,UACjB,SAAUA,GACV,YAAaA,CAEjB,CCnRA,MAAMw9G,GAAqB,6BAGrBC,GAAqB,eAEZ,SAASC,GAAc/kE,EAAK,CAC1C,GAAI,OAAOA,GAAQ,SAClB,MAAM,IAAI,UAAU,gCAAgC,OAAOA,CAAG,IAAI,EAGnE,OAAI8kE,GAAmB,KAAK9kE,CAAG,EACvB,GAGD6kE,GAAmB,KAAK7kE,CAAG,CACnC,CCTO,SAASgoC,GAAM3gF,EAAO,CAC3B,MAAMuzC,EAAQ,OAAOvzC,GAAS,EAAE,EAAE,KAAI,EACtC,OAAOuzC,EAAQA,EAAM,MAAM,eAAe,EAAI,EAChD,CAUO,SAASoqE,GAAUjpG,EAAQ,CAChC,OAAOA,EAAO,KAAK,GAAG,EAAE,KAAI,CAC9B,CCoHY,MAACkpG,IAgBT,SAAUtkD,EAAM,CACd,GAAIA,GAAS,KACX,OAAOukD,GAGT,GAAI,OAAOvkD,GAAS,WAClB,OAAO4jD,GAAY5jD,CAAI,EAGzB,GAAI,OAAOA,GAAS,SAClB,OAAO,MAAM,QAAQA,CAAI,EAAI2jD,GAAW3jD,CAAI,EAAIwkD,GAAaxkD,CAAI,EAGnE,GAAI,OAAOA,GAAS,SAClB,OAAOykD,GAAYzkD,CAAI,EAGzB,MAAM,IAAI,MAAM,8CAA8C,CAChE,GAOJ,SAAS2jD,GAAWE,EAAO,CAEzB,MAAMC,EAAS,GACf,IAAI15G,EAAQ,GAEZ,KAAO,EAAEA,EAAQy5G,EAAM,QACrBC,EAAO15G,CAAK,EAAIk6G,GAAQT,EAAMz5G,CAAK,CAAC,EAGtC,OAAOw5G,GAAYJ,CAAG,EAMtB,SAASA,KAAOO,EAAY,CAC1B,IAAI35G,EAAQ,GAEZ,KAAO,EAAEA,EAAQ05G,EAAO,QACtB,GAAIA,EAAO15G,CAAK,EAAE,MAAM,KAAM25G,CAAU,EAAG,MAAO,GAGpD,MAAO,EACT,CACF,CAQA,SAASS,GAAajyD,EAAO,CAC3B,MAAMmyD,EAAwDnyD,EAE9D,OAAOqxD,GAAYjM,CAAG,EAMtB,SAASA,EAAIvyF,EAAM,CACjB,MAAMu/F,EACoBv/F,EAI1B,IAAIpgB,EAEJ,IAAKA,KAAOutD,EACV,GAAIoyD,EAAa3/G,CAAG,IAAM0/G,EAAc1/G,CAAG,EAAG,MAAO,GAGvD,MAAO,EACT,CACF,CAQA,SAASy/G,GAAYlyD,EAAO,CAC1B,OAAOqxD,GAAYh0G,CAAI,EAKvB,SAASA,EAAKwV,EAAM,CAClB,OAAOA,GAAQA,EAAK,OAASmtC,CAC/B,CACF,CAQA,SAASqxD,GAAYI,EAAc,CACjC,OAAOzxD,EAMP,SAASA,EAAM7rD,EAAO0D,EAAO6uB,EAAQ,CACnC,MAAO,GACL2rF,GAAel+G,CAAK,GAClBs9G,EAAa,KACX,KACAt9G,EACA,OAAO0D,GAAU,SAAWA,EAAQ,OACpC6uB,GAAU,MACpB,EAEE,CACF,CAEA,SAASsrF,IAAK,CACZ,MAAO,EACT,CAMA,SAASK,GAAel+G,EAAO,CAC7B,OAAOA,IAAU,MAAQ,OAAOA,GAAU,UAAY,SAAUA,CAClE,CClEA,MAAMm+G,GAAQ,GAKDC,GAAW,GAKXC,GAAO,GAKPC,GAAO,OAiDb,SAASC,GAAaC,EAAMllD,EAAMukC,EAAS4gB,EAAS,CAEzD,IAAI5yD,EAEA,OAAOyN,GAAS,YAAc,OAAOukC,GAAY,YACnD4gB,EAAU5gB,EAEVA,EAAUvkC,GAGVzN,EAAQyN,EAGV,MAAMr4B,EAAK28E,GAAQ/xD,CAAK,EAClB6yD,EAAOD,EAAU,GAAK,EAE5BztG,EAAQwtG,EAAM,OAAW,EAAE,EAAC,EAO5B,SAASxtG,EAAQ0N,EAAMhb,EAAOi7G,EAAS,CACrC,MAAM3+G,EACJ0e,GAAQ,OAAOA,GAAS,SAAWA,EAAO,GAG5C,GAAI,OAAO1e,EAAM,MAAS,SAAU,CAClC,MAAMyC,EAEJ,OAAOzC,EAAM,SAAY,SACrBA,EAAM,QAEN,OAAOA,EAAM,MAAS,SACpBA,EAAM,KACN,OAER,OAAO,eAAeuoD,EAAO,OAAQ,CACnC,MACE,UAAiB7pC,EAAK,MAAQjc,EAAO,IAAMA,EAAO,IAAM,KAAO,GACzE,CAAO,CACH,CAEA,OAAO8lD,EAEP,SAASA,GAAQ,CAEf,IAAI98C,EAAS0yG,GAETS,EAEAjzE,EAEAkzE,EAEJ,IAAI,CAACvlD,GAAQr4B,EAAGviB,EAAMhb,EAAOi7G,EAAQA,EAAQ,OAAS,CAAC,GAAK,MAAS,KAEnElzG,EAASqzG,GAASjhB,EAAQn/E,EAAMigG,CAAO,CAAC,EAEpClzG,EAAO,CAAC,IAAM4yG,IAChB,OAAO5yG,EAIX,GAAI,aAAciT,GAAQA,EAAK,SAAU,CACvC,MAAMqgG,EAA2CrgG,EAEjD,GAAIqgG,EAAa,UAAYtzG,EAAO,CAAC,IAAM6yG,GAIzC,IAHA3yE,GAAU8yE,EAAUM,EAAa,SAAS,OAAS,IAAML,EACzDG,EAAeF,EAAQ,OAAOI,CAAY,EAEnCpzE,EAAS,IAAMA,EAASozE,EAAa,SAAS,QAAQ,CAC3D,MAAM3gG,EAAQ2gG,EAAa,SAASpzE,CAAM,EAI1C,GAFAizE,EAAY5tG,EAAQoN,EAAOutB,EAAQkzE,CAAY,EAAC,EAE5CD,EAAU,CAAC,IAAMP,GACnB,OAAOO,EAGTjzE,EACE,OAAOizE,EAAU,CAAC,GAAM,SAAWA,EAAU,CAAC,EAAIjzE,EAAS+yE,CAC/D,CAEJ,CAEA,OAAOjzG,CACT,CACF,CACF,CAUA,SAASqzG,GAAS9+G,EAAO,CACvB,OAAI,MAAM,QAAQA,CAAK,EACdA,EAGL,OAAOA,GAAU,SACZ,CAACo+G,GAAUp+G,CAAK,EAGlBA,GAAU,KAA8Bm+G,GAAQ,CAACn+G,CAAK,CAC/D,CCzHO,SAASuoD,GAAMi2D,EAAMQ,EAAeC,EAAkBC,EAAc,CAEzE,IAAIT,EAEAnlD,EAEAukC,EAGF,OAAOmhB,GAAkB,YACzB,OAAOC,GAAqB,YAE5B3lD,EAAO,OACPukC,EAAUmhB,EACVP,EAAUQ,IAGV3lD,EAAO0lD,EAEPnhB,EAAUohB,EACVR,EAAUS,GAGZX,GAAaC,EAAMllD,EAAM6lD,EAAUV,CAAO,EAM1C,SAASU,EAASzgG,EAAMigG,EAAS,CAC/B,MAAMpsF,EAASosF,EAAQA,EAAQ,OAAS,CAAC,EACnCj7G,EAAQ6uB,EAASA,EAAO,SAAS,QAAQ7T,CAAI,EAAI,OACvD,OAAOm/E,EAAQn/E,EAAMhb,EAAO6uB,CAAM,CACpC,CACF,CC/OA,MAAM6sF,GAAmB,CAAC,OAAQ,OAAO,EACnCC,GAAa,CAAC,UAAU,EAGxBrE,GAAe,GAuBN,SAASsE,GAAoBzsG,EAAS,CACnD,MAAM4hG,EAAW5hG,GAAWmoG,GACtBuE,EAAY9K,EAAS,WAAa2K,GAClCn+E,EAAK87E,GAAetI,EAAS,IAAI,EAUvC,OAAO,SAAU+J,EAAM,CACrBj2D,GAAMi2D,EAAM,UAAW,SAAU9/F,EAAMhb,EAAO6uB,EAAQ,CACpD,GACE7T,EAAK,UAAY,KACjB,OAAOA,EAAK,WAAW,MAAS,UAChCuiB,EAAGviB,EAAMhb,EAAO6uB,CAAM,EACtB,CACA,MAAMomB,EAAMj6B,EAAK,WAAW,KAE5B,GACEg/F,GAAc/kE,CAAG,EACb4mE,EAAU,SAAS5mE,EAAI,MAAM,EAAGA,EAAI,QAAQ,GAAG,CAAC,CAAC,EACjDA,EAAI,WAAW,IAAI,EACvB,CACA,MAAM6mE,EAAaC,GAAehL,EAAS,QAAS/1F,CAAI,EAClDyiB,EACJq+E,GAAc,CAAC,MAAM,QAAQA,CAAU,EAAI,CAACA,CAAU,EAAIA,EACtDE,EAASD,GAAehL,EAAS,IAAK/1F,CAAI,GAAK2gG,GAC/CM,EAAM,OAAOD,GAAW,SAAW/+B,GAAM++B,CAAM,EAAIA,EACnDz2G,EAASw2G,GAAehL,EAAS,OAAQ/1F,CAAI,EAE7CkhG,EAAaH,GAAehL,EAAS,WAAY/1F,CAAI,EAc3D,GAZIkhG,GACF,OAAO,OAAOlhG,EAAK,WAAYmhG,GAAgBD,CAAU,CAAC,EAGxDD,EAAI,OAAS,IACfjhG,EAAK,WAAW,IAAM,CAAC,GAAGihG,CAAG,GAG3B12G,IACFyV,EAAK,WAAW,OAASzV,GAGvBk4B,EAAS,CACX,MAAMy+E,EACJH,GAAehL,EAAS,kBAAmB/1F,CAAI,GAAK,GAEtDA,EAAK,SAAS,KAAK,CACjB,KAAM,UACN,QAAS,OACT,WAAYmhG,GAAgBD,CAAU,EACtC,SAAUC,GAAgB1+E,CAAO,CAC/C,CAAa,CACH,CACF,CACF,CACF,CAAC,CACH,CACF,CAcA,SAASs+E,GAAez/G,EAAOi9C,EAAS,CACtC,OAAO,OAAOj9C,GAAU,WAAaA,EAAMi9C,CAAO,EAAIj9C,CACxD,CCtHO,SAAS29G,GAAUjpG,EAAQ7B,EAAS,CACzC,MAAM4hG,EAAsB,GAK5B,OAFc//F,EAAOA,EAAO,OAAS,CAAC,IAAM,GAAK,CAAC,GAAGA,EAAQ,EAAE,EAAIA,GAGhE,MACE+/F,EAAS,SAAW,IAAM,IACzB,KACCA,EAAS,UAAY,GAAQ,GAAK,IAC3C,EACK,KAAI,CACT,CC/DA,MAAMqL,GAAS,0DACTC,GAAY,2DAGZ/E,GAAe,GA0Cd,SAASv4G,GAAKA,EAAMoQ,EAAS,CAGlC,OAF4BmoG,GACR,IAAM+E,GAAYD,IAC5B,KAAKr9G,CAAI,CACrB,CCtDA,MAAMg2E,GAAK,eAaJ,SAASunC,GAAWlsB,EAAO,CAChC,OAAO,OAAOA,GAAU,SACpBA,EAAM,OAAS,OACbqqB,GAAMrqB,EAAM,KAAK,EACjB,GACFqqB,GAAMrqB,CAAK,CACjB,CAMA,SAASqqB,GAAMn+G,EAAO,CACpB,OAAOA,EAAM,QAAQy4E,GAAI,EAAE,IAAM,EACnC,CC5BO,MAAMwnC,EAAO,CAWlB,YAAYziE,EAAU0iE,EAAQC,EAAO,CACnC,KAAK,OAASD,EACd,KAAK,SAAW1iE,EAEZ2iE,IACF,KAAK,MAAQA,EAEjB,CACF,CAEAF,GAAO,UAAU,OAAS,GAC1BA,GAAO,UAAU,SAAW,GAC5BA,GAAO,UAAU,MAAQ,OCdlB,SAASlqB,GAAMqqB,EAAaD,EAAO,CAExC,MAAM3iE,EAAW,GAEX0iE,EAAS,GAEf,UAAWG,KAAcD,EACvB,OAAO,OAAO5iE,EAAU6iE,EAAW,QAAQ,EAC3C,OAAO,OAAOH,EAAQG,EAAW,MAAM,EAGzC,OAAO,IAAIJ,GAAOziE,EAAU0iE,EAAQC,CAAK,CAC3C,CCjBO,SAASG,GAAUtgH,EAAO,CAC/B,OAAOA,EAAM,YAAW,CAC1B,CCNO,MAAMugH,EAAK,CAShB,YAAY/iE,EAAUsK,EAAW,CAC/B,KAAK,UAAYA,EACjB,KAAK,SAAWtK,CAClB,CACF,CAEA+iE,GAAK,UAAU,UAAY,GAC3BA,GAAK,UAAU,WAAa,GAC5BA,GAAK,UAAU,QAAU,GACzBA,GAAK,UAAU,sBAAwB,GACvCA,GAAK,UAAU,eAAiB,GAChCA,GAAK,UAAU,QAAU,GACzBA,GAAK,UAAU,gBAAkB,GACjCA,GAAK,UAAU,OAAS,GACxBA,GAAK,UAAU,kBAAoB,GACnCA,GAAK,UAAU,SAAW,GAC1BA,GAAK,UAAU,eAAiB,GAChCA,GAAK,UAAU,MAAQ,OC/BvB,IAAIC,GAAS,EAEN,MAAMC,GAAUC,GAAS,EACnBC,GAAaD,GAAS,EACtBE,GAAoBF,GAAS,EAC7BtxD,GAASsxD,GAAS,EAClBG,GAAiBH,GAAS,EAC1BI,GAAiBJ,GAAS,EAC1BK,GAAwBL,GAAS,EAE9C,SAASA,IAAY,CACnB,MAAO,IAAK,EAAEF,EAChB,0NCLMpD,GACJ,OAAO,KAAK4D,EAAK,EAGZ,MAAMC,WAAoBV,EAAK,CAcpC,YAAY/iE,EAAUsK,EAAWo5D,EAAMf,EAAO,CAC5C,IAAIz8G,EAAQ,GAMZ,GAJA,MAAM85C,EAAUsK,CAAS,EAEzBq5D,GAAK,KAAM,QAAShB,CAAK,EAErB,OAAOe,GAAS,SAClB,KAAO,EAAEx9G,EAAQ05G,GAAO,QAAQ,CAC9B,MAAMvxD,EAAQuxD,GAAO15G,CAAK,EAC1By9G,GAAK,KAAM/D,GAAO15G,CAAK,GAAIw9G,EAAOF,GAAMn1D,CAAK,KAAOm1D,GAAMn1D,CAAK,CAAC,CAClE,CAEJ,CACF,CAEAo1D,GAAY,UAAU,QAAU,GAchC,SAASE,GAAKzsG,EAAQpW,EAAK0B,EAAO,CAC5BA,IACF0U,EAAOpW,CAAG,EAAI0B,EAElB,CCnBO,SAAS06C,GAAO2lE,EAAY,CAEjC,MAAMT,EAAa,GAEbwB,EAAU,GAEhB,SAAW,CAAC5jE,EAAUx9C,CAAK,IAAK,OAAO,QAAQqgH,EAAW,UAAU,EAAG,CACrE,MAAMgB,EAAO,IAAIJ,GACfzjE,EACA6iE,EAAW,UAAUA,EAAW,YAAc,GAAI7iE,CAAQ,EAC1Dx9C,EACAqgH,EAAW,KACjB,EAGMA,EAAW,iBACXA,EAAW,gBAAgB,SAAS7iE,CAAQ,IAE5C6jE,EAAK,gBAAkB,IAGzBzB,EAAWpiE,CAAQ,EAAI6jE,EAEvBD,EAAQd,GAAU9iE,CAAQ,CAAC,EAAIA,EAC/B4jE,EAAQd,GAAUe,EAAK,SAAS,CAAC,EAAI7jE,CACvC,CAEA,OAAO,IAAIyiE,GAAOL,EAAYwB,EAASf,EAAW,KAAK,CACzD,CCjEO,MAAMiB,GAAO5mE,GAAO,CACzB,WAAY,CACV,qBAAsB,KACtB,WAAYimE,GACZ,iBAAkB,KAClB,SAAUA,GACV,YAAaA,GACb,aAAcvxD,GACd,aAAcA,GACd,YAAaA,GACb,aAAcyxD,GACd,YAAa,KACb,gBAAiBA,GACjB,YAAa,KACb,aAAcF,GACd,eAAgBE,GAChB,iBAAkB,KAClB,aAAcF,GACd,WAAYE,GACZ,YAAaF,GACb,aAAc,KACd,WAAYA,GACZ,YAAa,KACb,iBAAkB,KAClB,UAAW,KACX,eAAgBE,GAChB,UAAWzxD,GACX,SAAU,KACV,UAAWuxD,GACX,cAAeA,GACf,oBAAqBA,GACrB,gBAAiB,KACjB,SAAUE,GACV,gBAAiB,KACjB,aAAczxD,GACd,YAAauxD,GACb,aAAcA,GACd,aAAc,KACd,aAAcA,GACd,oBAAqBE,GACrB,aAAczxD,GACd,aAAcA,GACd,YAAaA,GACb,aAAcuxD,GACd,YAAavxD,GACb,SAAU,KACV,aAAcA,GACd,aAAcA,GACd,aAAcA,GACd,cAAe,KACf,KAAM,IACV,EACE,UAAUyK,EAAGrc,EAAU,CACrB,OAAOA,IAAa,OAChBA,EACA,QAAUA,EAAS,MAAM,CAAC,EAAE,YAAW,CAC7C,CACF,CAAC,ECpDM,SAAS+jE,GAAuBr5D,EAAYJ,EAAW,CAC5D,OAAOA,KAAaI,EAAaA,EAAWJ,CAAS,EAAIA,CAC3D,CCAO,SAAS05D,GAAyBt5D,EAAY1K,EAAU,CAC7D,OAAO+jE,GAAuBr5D,EAAY1K,EAAS,YAAW,CAAE,CAClE,CCDO,MAAMe,GAAO7D,GAAO,CACzB,WAAY,CACV,cAAe,iBACf,UAAW,QACX,QAAS,MACT,UAAW,YACf,EACE,gBAAiB,CAAC,UAAW,WAAY,QAAS,UAAU,EAC5D,WAAY,CAEV,KAAM,KACN,OAAQomE,GACR,cAAeD,GACf,UAAWA,GACX,OAAQ,KACR,MAAO,KACP,gBAAiBJ,GACjB,oBAAqBA,GACrB,eAAgBA,GAChB,IAAK,KACL,GAAI,KACJ,MAAOA,GACP,eAAgB,KAChB,aAAcI,GACd,UAAWJ,GACX,SAAUA,GACV,SAAUI,GACV,QAAS,KACT,QAAS,KACT,QAASJ,GACT,KAAM,KACN,UAAWI,GACX,KAAMzxD,GACN,QAAS,KACT,QAAS,KACT,gBAAiBuxD,GACjB,SAAUF,GACV,aAAcI,GACd,OAAQzxD,GAAS0xD,GACjB,YAAa,KACb,KAAM,KACN,SAAU,KACV,SAAU,KACV,QAASL,GACT,MAAOA,GACP,IAAK,KACL,QAAS,KACT,SAAUA,GACV,SAAUG,GACV,UAAWD,GACX,QAAS,KACT,aAAc,KACd,cAAe,KACf,KAAM,KACN,WAAY,KACZ,YAAa,KACb,WAAY,KACZ,eAAgBF,GAChB,WAAY,KACZ,QAASI,GACT,OAAQzxD,GACR,OAAQwxD,GACR,KAAMxxD,GACN,KAAM,KACN,SAAU,KACV,QAASyxD,GACT,UAAWA,GACX,GAAI,KACJ,WAAY,KACZ,YAAa,KACb,MAAOJ,GACP,UAAW,KACX,UAAW,KACX,GAAI,KACJ,MAAOA,GACP,OAAQ,KACR,SAAUI,GACV,QAASA,GACT,UAAWJ,GACX,SAAUI,GACV,KAAM,KACN,MAAO,KACP,KAAM,KACN,SAAU,KACV,KAAM,KACN,QAAS,KACT,KAAMJ,GACN,IAAKrxD,GACL,SAAU,KACV,IAAK,KACL,UAAWA,GACX,MAAO,KACP,OAAQ,KACR,IAAK,KACL,UAAWA,GACX,SAAUqxD,GACV,MAAOA,GACP,KAAM,KACN,MAAO,KACP,SAAUA,GACV,WAAYA,GACZ,QAAS,KACT,aAAc,KACd,WAAY,KACZ,cAAe,KACf,cAAe,KACf,eAAgB,KAChB,eAAgB,KAChB,OAAQ,KACR,SAAU,KACV,UAAW,KACX,iBAAkB,KAClB,SAAU,KACV,QAAS,KACT,QAAS,KACT,cAAe,KACf,cAAe,KACf,kBAAmB,KACnB,OAAQ,KACR,YAAa,KACb,MAAO,KACP,WAAY,KACZ,OAAQ,KACR,UAAW,KACX,YAAa,KACb,WAAY,KACZ,YAAa,KACb,WAAY,KACZ,YAAa,KACb,OAAQ,KACR,iBAAkB,KAClB,UAAW,KACX,QAAS,KACT,QAAS,KACT,QAAS,KACT,WAAY,KACZ,aAAc,KACd,QAAS,KACT,UAAW,KACX,UAAW,KACX,WAAY,KACZ,QAAS,KACT,iBAAkB,KAClB,OAAQ,KACR,aAAc,KACd,iBAAkB,KAClB,UAAW,KACX,YAAa,KACb,UAAW,KACX,eAAgB,KAChB,YAAa,KACb,aAAc,KACd,aAAc,KACd,YAAa,KACb,WAAY,KACZ,YAAa,KACb,UAAW,KACX,UAAW,KACX,SAAU,KACV,WAAY,KACZ,WAAY,KACZ,QAAS,KACT,QAAS,KACT,OAAQ,KACR,UAAW,KACX,WAAY,KACZ,WAAY,KACZ,aAAc,KACd,mBAAoB,KACpB,QAAS,KACT,SAAU,KACV,SAAU,KACV,YAAa,KACb,0BAA2B,KAC3B,SAAU,KACV,UAAW,KACX,SAAU,KACV,aAAc,KACd,UAAW,KACX,UAAW,KACX,SAAU,KACV,UAAW,KACX,aAAc,KACd,SAAU,KACV,qBAAsB,KACtB,SAAU,KACV,eAAgB,KAChB,UAAW,KACX,QAAS,KACT,KAAMA,GACN,QAASrxD,GACT,QAAS,KACT,KAAMyxD,GACN,YAAa,KACb,YAAaJ,GACb,QAAS,KACT,cAAe,KACf,oBAAqB,KACrB,OAAQ,KACR,QAAS,KACT,SAAUA,GACV,eAAgB,KAChB,IAAKI,GACL,SAAUJ,GACV,SAAUA,GACV,KAAMrxD,GACN,QAASA,GACT,QAASyxD,GACT,MAAO,KACP,OAAQJ,GACR,SAAUA,GACV,SAAUA,GACV,mBAAoBA,GACpB,yBAA0BA,GAC1B,eAAgB,KAChB,MAAO,KACP,KAAMrxD,GACN,MAAO,KACP,KAAM,KACN,KAAMA,GACN,WAAYuxD,GACZ,IAAK,KACL,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,MAAOvxD,GACP,KAAM,KACN,MAAO,KACP,SAAUA,GACV,OAAQ,KACR,MAAO,KACP,UAAW,KACX,KAAM,KACN,cAAeqxD,GACf,OAAQ,KACR,MAAOE,GACP,MAAOvxD,GACP,KAAM,KACN,mBAAoB,KAIpB,MAAO,KACP,MAAO,KACP,QAASyxD,GACT,KAAM,KACN,WAAY,KACZ,QAAS,KACT,OAAQzxD,GACR,YAAa,KACb,aAAcA,GACd,YAAa,KACb,YAAa,KACb,KAAM,KACN,QAAS,KACT,QAAS,KACT,MAAO,KACP,KAAM,KACN,SAAU,KACV,SAAU,KACV,MAAO,KACP,QAASqxD,GACT,QAASA,GACT,MAAO,KACP,KAAM,KACN,MAAO,KACP,YAAa,KACb,OAAQrxD,GACR,WAAYA,GACZ,KAAM,KACN,SAAU,KACV,OAAQ,KACR,aAAcA,GACd,YAAaA,GACb,SAAUqxD,GACV,OAAQA,GACR,QAASA,GACT,OAAQA,GACR,OAAQ,KACR,QAAS,KACT,OAAQ,KACR,IAAK,KACL,YAAarxD,GACb,MAAO,KACP,OAAQ,KACR,UAAWuxD,GACX,QAAS,KACT,QAAS,KACT,KAAM,KACN,UAAWvxD,GACX,UAAW,KACX,QAAS,KACT,OAAQ,KACR,MAAO,KACP,OAAQA,GAGR,kBAAmB,KACnB,YAAa,KACb,SAAU,KACV,wBAAyBqxD,GACzB,sBAAuBA,GACvB,OAAQ,KACR,SAAU,KACV,QAASrxD,GACT,SAAU,KACV,aAAc,IAClB,EACE,MAAO,OACP,UAAWoyD,EACb,CAAC,ECvTYhjE,GAAM9D,GAAO,CACxB,WAAY,CACV,aAAc,gBACd,kBAAmB,qBACnB,WAAY,cACZ,cAAe,iBACf,UAAW,aACX,UAAW,QACX,SAAU,YACV,SAAU,YACV,mBAAoB,sBACpB,0BAA2B,8BAC3B,aAAc,gBACd,eAAgB,kBAChB,YAAa,cACb,SAAU,WACV,iBAAkB,oBAClB,iBAAkB,oBAClB,YAAa,eACb,SAAU,YACV,WAAY,cACZ,aAAc,gBACd,WAAY,cACZ,SAAU,YACV,eAAgB,mBAChB,YAAa,eACb,UAAW,aACX,YAAa,eACb,WAAY,cACZ,UAAW,aACX,2BAA4B,+BAC5B,yBAA0B,6BAC1B,SAAU,WACV,UAAW,cACX,aAAc,iBACd,aAAc,iBACd,eAAgB,kBAChB,cAAe,iBACf,cAAe,iBACf,UAAW,aACX,UAAW,aACX,YAAa,eACb,QAAS,WACT,YAAa,gBACb,aAAc,iBACd,QAAS,WACT,QAAS,WACT,QAAS,WACT,SAAU,YACV,MAAO,SACP,UAAW,cACX,WAAY,eACZ,QAAS,UACT,WAAY,aACZ,aAAc,eACd,cAAe,gBACf,QAAS,UACT,SAAU,WACV,UAAW,YACX,iBAAkB,mBAClB,SAAU,WACV,QAAS,UACT,QAAS,UACT,OAAQ,SACR,YAAa,cACb,MAAO,QACP,WAAY,aACZ,OAAQ,SACR,UAAW,YACX,YAAa,cACb,WAAY,aACZ,YAAa,cACb,WAAY,aACZ,YAAa,cACb,OAAQ,SACR,iBAAkB,mBAClB,UAAW,YACX,MAAO,QACP,QAAS,UACT,QAAS,UACT,QAAS,UACT,UAAW,YACX,WAAY,aACZ,aAAc,eACd,QAAS,UACT,UAAW,YACX,UAAW,YACX,WAAY,aACZ,QAAS,UACT,OAAQ,SACR,aAAc,eACd,iBAAkB,mBAClB,YAAa,cACb,UAAW,YACX,YAAa,cACb,aAAc,eACd,aAAc,eACd,YAAa,cACb,WAAY,aACZ,YAAa,cACb,UAAW,YACX,aAAc,eACd,UAAW,YACX,SAAU,WACV,WAAY,aACZ,WAAY,aACZ,QAAS,UACT,QAAS,UACT,OAAQ,SACR,UAAW,YACX,WAAY,aACZ,WAAY,aACZ,aAAc,eACd,SAAU,WACV,QAAS,UACT,SAAU,WACV,SAAU,WACV,SAAU,WACV,UAAW,YACX,SAAU,WACV,OAAQ,SACR,UAAW,YACX,UAAW,YACX,SAAU,WACV,UAAW,YACX,aAAc,eACd,SAAU,WACV,SAAU,WACV,eAAgB,iBAChB,UAAW,YACX,OAAQ,SACR,iBAAkB,oBAClB,kBAAmB,qBACnB,WAAY,cACZ,QAAS,WACT,cAAe,iBACf,eAAgB,iBAChB,gBAAiB,mBACjB,eAAgB,kBAChB,UAAW,aACX,YAAa,eACb,sBAAuB,yBACvB,uBAAwB,0BACxB,gBAAiB,mBACjB,iBAAkB,oBAClB,cAAe,iBACf,eAAgB,kBAChB,iBAAkB,oBAClB,cAAe,iBACf,YAAa,eACb,SAAU,WACV,WAAY,cACZ,eAAgB,kBAChB,cAAe,iBACf,gBAAiB,mBACjB,OAAQ,SACR,kBAAmB,qBACnB,mBAAoB,sBACpB,YAAa,eACb,aAAc,gBACd,WAAY,eACZ,YAAa,eACb,SAAU,YACV,aAAc,gBACd,cAAe,iBACf,aAAc,gBACd,SAAU,aACV,YAAa,gBACb,YAAa,gBACb,YAAa,eACb,YAAa,eACb,QAAS,WAET,cAAe,gBACf,cAAe,eACnB,EACE,WAAY,CACV,MAAOqmE,GACP,aAAc3xD,GACd,WAAY,KACZ,SAAU,KACV,kBAAmB,KACnB,WAAYA,GACZ,UAAWA,GACX,WAAY,KACZ,OAAQA,GACR,cAAe,KACf,cAAe,KACf,QAASA,GACT,UAAW,KACX,cAAe,KACf,cAAe,KACf,YAAa,KACb,KAAM,KACN,MAAO,KACP,KAAMA,GACN,GAAI,KACJ,SAAU,KACV,UAAWA,GACX,UAAWyxD,GACX,KAAM,KACN,SAAU,KACV,cAAe,KACf,SAAU,KACV,MAAO,KACP,mBAAoB,KACpB,0BAA2B,KAC3B,aAAc,KACd,eAAgB,KAChB,QAAS,KACT,kBAAmB,KACnB,iBAAkB,KAClB,YAAa,KACb,OAAQ,KACR,GAAI,KACJ,GAAI,KACJ,EAAG,KACH,SAAU,KACV,cAAe,KACf,QAASzxD,GACT,gBAAiBA,GACjB,UAAW,KACX,QAAS,KACT,IAAK,KACL,QAASA,GACT,iBAAkB,KAClB,SAAUqxD,GACV,GAAI,KACJ,GAAI,KACJ,SAAU,KACV,SAAU,KACV,UAAWrxD,GACX,iBAAkB,KAClB,IAAK,KACL,MAAO,KACP,SAAUA,GACV,0BAA2B,KAC3B,KAAM,KACN,YAAaA,GACb,SAAU,KACV,OAAQ,KACR,UAAW,KACX,YAAa,KACb,WAAY,KACZ,aAAc,KACd,UAAW,KACX,eAAgB,KAChB,WAAY,KACZ,SAAU,KACV,eAAgB,KAChB,YAAa,KACb,UAAW,KACX,YAAa,KACb,WAAY,KACZ,OAAQ,KACR,GAAI,KACJ,KAAM,KACN,GAAI,KACJ,GAAI,KACJ,GAAI0xD,GACJ,GAAIA,GACJ,UAAWA,GACX,2BAA4B,KAC5B,yBAA0B,KAC1B,SAAU,KACV,kBAAmB,KACnB,cAAe,KACf,QAAS,KACT,QAAS1xD,GACT,kBAAmB,KACnB,WAAY,KACZ,OAAQ,KACR,KAAM,KACN,SAAU,KACV,UAAWA,GACX,aAAcA,GACd,aAAcA,GACd,GAAI,KACJ,YAAaA,GACb,eAAgB,KAChB,kBAAmB,KACnB,GAAI,KACJ,IAAK,KACL,UAAWA,GACX,EAAGA,GACH,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,aAAc2xD,GACd,iBAAkB,KAClB,UAAW,KACX,WAAY,KACZ,SAAU,KACV,QAAS,KACT,KAAM,KACN,aAAc,KACd,cAAe,KACf,cAAe,KACf,kBAAmB3xD,GACnB,MAAO,KACP,UAAW,KACX,UAAW,KACX,YAAa,KACb,aAAc,KACd,YAAa,KACb,YAAa,KACb,KAAM,KACN,iBAAkB,KAClB,UAAW,KACX,aAAc,KACd,IAAK,KACL,MAAO,KACP,uBAAwB,KACxB,sBAAuB,KACvB,UAAWA,GACX,UAAW,KACX,OAAQ,KACR,IAAK,KACL,KAAM,KACN,KAAM,KACN,QAAS,KACT,YAAa,KACb,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,MAAO,KACP,UAAW,KACX,WAAY,KACZ,WAAY,KACZ,SAAU,KACV,OAAQ,KACR,QAAS,KACT,WAAY,KACZ,aAAc,KACd,cAAe,KACf,QAAS,KACT,SAAU,KACV,UAAW,KACX,iBAAkB,KAClB,SAAU,KACV,QAAS,KACT,QAAS,KACT,OAAQ,KACR,YAAa,KACb,MAAO,KACP,WAAY,KACZ,OAAQ,KACR,UAAW,KACX,YAAa,KACb,WAAY,KACZ,YAAa,KACb,WAAY,KACZ,YAAa,KACb,OAAQ,KACR,iBAAkB,KAClB,UAAW,KACX,MAAO,KACP,QAAS,KACT,QAAS,KACT,QAAS,KACT,UAAW,KACX,WAAY,KACZ,aAAc,KACd,QAAS,KACT,UAAW,KACX,UAAW,KACX,WAAY,KACZ,QAAS,KACT,OAAQ,KACR,aAAc,KACd,iBAAkB,KAClB,YAAa,KACb,UAAW,KACX,YAAa,KACb,aAAc,KACd,aAAc,KACd,YAAa,KACb,WAAY,KACZ,YAAa,KACb,UAAW,KACX,aAAc,KACd,UAAW,KACX,SAAU,KACV,WAAY,KACZ,WAAY,KACZ,QAAS,KACT,QAAS,KACT,OAAQ,KACR,UAAW,KACX,WAAY,KACZ,WAAY,KACZ,aAAc,KACd,SAAU,KACV,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,UAAW,KACX,SAAU,KACV,OAAQ,KACR,UAAW,KACX,UAAW,KACX,SAAU,KACV,UAAW,KACX,aAAc,KACd,SAAU,KACV,SAAU,KACV,eAAgB,KAChB,UAAW,KACX,OAAQ,KACR,QAAS,KACT,SAAU,KACV,MAAO,KACP,OAAQ,KACR,YAAa,KACb,OAAQ,KACR,SAAU,KACV,QAAS,KACT,iBAAkBA,GAClB,kBAAmBA,GACnB,WAAY,KACZ,QAAS,KACT,KAAM,KACN,WAAYA,GACZ,oBAAqB,KACrB,iBAAkB,KAClB,aAAc,KACd,MAAO,KACP,KAAMyxD,GACN,MAAO,KACP,cAAe,KACf,cAAe,KACf,OAAQ,KACR,UAAWzxD,GACX,UAAWA,GACX,UAAWA,GACX,cAAe,KACf,oBAAqB,KACrB,eAAgB,KAChB,UAAW,KACX,SAAU2xD,GACV,EAAG,KACH,OAAQ,KACR,eAAgB,KAChB,KAAM,KACN,KAAM,KACN,IAAKA,GACL,IAAKA,GACL,gBAAiB,KACjB,YAAa,KACb,UAAW,KACX,mBAAoBA,GACpB,iBAAkBA,GAClB,cAAeA,GACf,gBAAiBA,GACjB,SAAU,KACV,QAAS,KACT,OAAQ,KACR,OAAQ,KACR,GAAI,KACJ,GAAI,KACJ,MAAO,KACP,KAAM,KACN,eAAgB,KAChB,KAAM,KACN,MAAO,KACP,aAAc,KACd,iBAAkB3xD,GAClB,iBAAkBA,GAClB,aAAc,KACd,QAAS,KACT,YAAa,KACb,aAAc,KACd,MAAO,KACP,MAAO,KACP,YAAa,KACb,UAAW,KACX,YAAa,KACb,sBAAuBA,GACvB,uBAAwBA,GACxB,OAAQ,KACR,OAAQ,KACR,gBAAiB2xD,GACjB,iBAAkB,KAClB,cAAe,KACf,eAAgB,KAChB,iBAAkB3xD,GAClB,cAAeA,GACf,YAAa,KACb,MAAO,KACP,aAAcA,GACd,aAAc,KACd,oBAAqB,KACrB,WAAY,KACZ,cAAe,KACf,qBAAsB,KACtB,eAAgB2xD,GAChB,SAAU3xD,GACV,YAAa,KACb,OAAQ,KACR,QAASA,GACT,QAASA,GACT,WAAY,KACZ,eAAgB,KAChB,cAAe,KACf,WAAY,KACZ,cAAe,KACf,MAAO,KACP,kBAAmB,KACnB,KAAM,KACN,OAAQ2xD,GACR,GAAI,KACJ,UAAW,KACX,gBAAiB,KACjB,GAAI,KACJ,GAAI,KACJ,kBAAmB3xD,GACnB,mBAAoBA,GACpB,QAAS,KACT,YAAa,KACb,aAAc,KACd,WAAYA,GACZ,OAAQ,KACR,YAAaA,GACb,cAAeA,GACf,aAAc,KACd,SAAUA,GACV,aAAcA,GACd,QAAS,KACT,SAAUA,GACV,YAAaA,GACb,YAAaA,GACb,QAAS,KACT,WAAY,KACZ,WAAY,KACZ,MAAO,KACP,OAAQ,KACR,YAAa,KACb,YAAa,KACb,EAAG,KACH,GAAI,KACJ,GAAI,KACJ,iBAAkB,KAClB,QAASA,GACT,EAAG,KACH,GAAI,KACJ,GAAI,KACJ,iBAAkB,KAClB,EAAG,KACH,WAAY,IAChB,EACE,MAAO,MACP,UAAWmyD,EACb,CAAC,ECpjBYE,GAAQ/mE,GAAO,CAC1B,WAAY,CACV,aAAc,KACd,aAAc,KACd,UAAW,KACX,UAAW,KACX,UAAW,KACX,WAAY,KACZ,UAAW,IACf,EACE,MAAO,QACP,UAAUmf,EAAGrc,EAAU,CACrB,MAAO,SAAWA,EAAS,MAAM,CAAC,EAAE,YAAW,CACjD,CACF,CAAC,ECbYkkE,GAAQhnE,GAAO,CAC1B,WAAY,CAAC,WAAY,aAAa,EACtC,WAAY,CAAC,WAAY,KAAM,MAAO,IAAI,EAC1C,MAAO,QACP,UAAW8mE,EACb,CAAC,ECNY9iE,GAAMhE,GAAO,CACxB,WAAY,CAAC,QAAS,KAAM,QAAS,KAAM,SAAU,IAAI,EACzD,MAAO,MACP,UAAUmf,EAAGrc,EAAU,CACrB,MAAO,OAASA,EAAS,MAAM,CAAC,EAAE,YAAW,CAC/C,CACF,CAAC,ECGYmkE,GAAc,CACzB,QAAS,UACT,SAAU,WACV,OAAQ,SACR,gBAAiB,kBACjB,iBAAkB,mBAClB,cAAe,gBACf,eAAgB,iBAChB,iBAAkB,mBAClB,OAAQ,SACR,aAAc,eACd,aAAc,eACd,UAAW,YACX,UAAW,YACX,UAAW,YACX,WAAY,aACZ,UAAW,YACX,WAAY,YACd,ECrBMC,GAAM,SACNC,GAAO,UACP9gC,GAAQ,kBAgCP,SAAS+gC,GAAKlT,EAAQ5uG,EAAO,CAClC,MAAMkgH,EAASI,GAAUtgH,CAAK,EAC9B,IAAIw9C,EAAWx9C,EACX+hH,EAAOxB,GAEX,GAAIL,KAAUtR,EAAO,OACnB,OAAOA,EAAO,SAASA,EAAO,OAAOsR,CAAM,CAAC,EAG9C,GAAIA,EAAO,OAAS,GAAKA,EAAO,MAAM,EAAG,CAAC,IAAM,QAAUn/B,GAAM,KAAK/gF,CAAK,EAAG,CAE3E,GAAIA,EAAM,OAAO,CAAC,IAAM,IAAK,CAE3B,MAAMgiH,EAAOhiH,EAAM,MAAM,CAAC,EAAE,QAAQ6hH,GAAMI,EAAS,EACnDzkE,EAAW,OAASwkE,EAAK,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAK,MAAM,CAAC,CACjE,KAAO,CAEL,MAAMA,EAAOhiH,EAAM,MAAM,CAAC,EAE1B,GAAI,CAAC6hH,GAAK,KAAKG,CAAI,EAAG,CACpB,IAAIE,EAASF,EAAK,QAAQJ,GAAKO,EAAK,EAEhCD,EAAO,OAAO,CAAC,IAAM,MACvBA,EAAS,IAAMA,GAGjBliH,EAAQ,OAASkiH,CACnB,CACF,CAEAH,EAAOd,EACT,CAEA,OAAO,IAAIc,EAAKvkE,EAAUx9C,CAAK,CACjC,CAQA,SAASmiH,GAAMC,EAAI,CACjB,MAAO,IAAMA,EAAG,YAAW,CAC7B,CAQA,SAASH,GAAUG,EAAI,CACrB,OAAOA,EAAG,OAAO,CAAC,EAAE,YAAW,CACjC,CCrFO,MAAM7jE,GAAOw3C,GAAM,CAACurB,GAAMe,GAAUZ,GAAOC,GAAOhjE,EAAG,EAAG,MAAM,EAKxDF,GAAMu3C,GAAM,CAACurB,GAAMgB,GAASb,GAAOC,GAAOhjE,EAAG,EAAG,KAAK,qDCZlE,IAAI6jE,EAAgB,kCAEhBC,EAAgB,MAChBC,EAAmB,OAGnBC,EAAiB,yCACjBC,EAAc,QACdC,EAAc,uDACdC,EAAkB,UAGlBC,EAAa,aAGbC,EAAU;AAAA,EACVC,EAAgB,IAChBC,EAAW,IACXC,EAAe,GAGfC,EAAe,UACfC,EAAmB,cASvB,SAAS1/G,EAAOb,EAAOgQ,EAAS,CAC9B,GAAI,OAAOhQ,GAAU,SACnB,MAAM,IAAI,UAAU,iCAAiC,EAGvD,GAAI,CAACA,EAAO,MAAO,GAEnBgQ,EAAUA,GAAW,GAKrB,IAAIwwG,EAAS,EACTC,EAAS,EAOb,SAASC,EAAenlH,EAAK,CAC3B,IAAIolH,EAAQplH,EAAI,MAAMokH,CAAa,EAC/BgB,IAAOH,GAAUG,EAAM,QAC3B,IAAItkH,EAAId,EAAI,YAAY2kH,CAAO,EAC/BO,EAAS,CAACpkH,EAAId,EAAI,OAASc,EAAIokH,EAASllH,EAAI,MAChD,CAOE,SAAS64F,GAAW,CAClB,IAAIjhF,EAAQ,CAAE,KAAMqtG,EAAQ,OAAQC,CAAM,EAC1C,OAAO,SAAU5kG,EAAM,CACrB,OAAAA,EAAK,SAAW,IAAI+kG,EAASztG,CAAK,EAClCgqG,EAAU,EACHthG,CACb,CACA,CAUE,SAAS+kG,EAASztG,EAAO,CACvB,KAAK,MAAQA,EACb,KAAK,IAAM,CAAE,KAAMqtG,EAAQ,OAAQC,CAAM,EACzC,KAAK,OAASzwG,EAAQ,MAC1B,CAKE4wG,EAAS,UAAU,QAAU5gH,EAQ7B,SAASuE,EAAMosC,EAAK,CAClB,IAAInsC,EAAM,IAAI,MACZwL,EAAQ,OAAS,IAAMwwG,EAAS,IAAMC,EAAS,KAAO9vE,GAQxD,GANAnsC,EAAI,OAASmsC,EACbnsC,EAAI,SAAWwL,EAAQ,OACvBxL,EAAI,KAAOg8G,EACXh8G,EAAI,OAASi8G,EACbj8G,EAAI,OAASxE,EAET,CAAAgQ,EAAQ,OACV,MAAMxL,CAEZ,CAQE,SAAS/E,EAAMm2E,EAAI,CACjB,IAAIzrD,EAAIyrD,EAAG,KAAK51E,CAAK,EACrB,GAAKmqB,EACL,KAAI5uB,EAAM4uB,EAAE,CAAC,EACb,OAAAu2F,EAAenlH,CAAG,EAClByE,EAAQA,EAAM,MAAMzE,EAAI,MAAM,EACvB4uB,EACX,CAKE,SAASgzF,GAAa,CACpB19G,EAAMmgH,CAAgB,CAC1B,CAQE,SAASiB,EAASC,EAAO,CACvB,IAAIjjH,EAEJ,IADAijH,EAAQA,GAAS,GACTjjH,EAAIkjH,KACNljH,IAAM,IACRijH,EAAM,KAAKjjH,CAAC,EAGhB,OAAOijH,CACX,CAQE,SAASC,GAAU,CACjB,IAAIn1E,EAAMwoD,EAAQ,EAClB,GAAI,EAAA+rB,GAAiBngH,EAAM,OAAO,CAAC,GAAKogH,GAAYpgH,EAAM,OAAO,CAAC,GAGlE,SADI3D,EAAI,EAENgkH,GAAgBrgH,EAAM,OAAO3D,CAAC,IAC7B+jH,GAAYpgH,EAAM,OAAO3D,CAAC,GAAK8jH,GAAiBngH,EAAM,OAAO3D,EAAI,CAAC,IAEnE,EAAEA,EAIJ,GAFAA,GAAK,EAEDgkH,IAAiBrgH,EAAM,OAAO3D,EAAI,CAAC,EACrC,OAAOkI,EAAM,wBAAwB,EAGvC,IAAIhJ,EAAMyE,EAAM,MAAM,EAAG3D,EAAI,CAAC,EAC9B,OAAAokH,GAAU,EACVC,EAAenlH,CAAG,EAClByE,EAAQA,EAAM,MAAM3D,CAAC,EACrBokH,GAAU,EAEH70E,EAAI,CACT,KAAM00E,EACN,QAAS/kH,CACf,CAAK,EACL,CAQE,SAASylH,GAAc,CACrB,IAAIp1E,EAAMwoD,EAAQ,EAGd9iE,EAAO7xB,EAAMogH,CAAc,EAC/B,GAAKvuF,EAIL,IAHAyvF,EAAO,EAGH,CAACthH,EAAMqgH,CAAW,EAAG,OAAOv7G,EAAM,sBAAsB,EAG5D,IAAI7I,EAAM+D,EAAMsgH,CAAW,EAEvBvgH,GAAMosC,EAAI,CACZ,KAAM20E,EACN,SAAU3tB,EAAKthE,EAAK,CAAC,EAAE,QAAQouF,EAAeW,CAAY,CAAC,EAC3D,MAAO3kH,EACHk3F,EAAKl3F,EAAI,CAAC,EAAE,QAAQgkH,EAAeW,CAAY,CAAC,EAChDA,CACV,CAAK,EAGD,OAAA5gH,EAAMugH,CAAe,EAEdxgH,GACX,CAOE,SAASyhH,GAAe,CACtB,IAAIC,EAAQ,GAEZL,EAASK,CAAK,EAId,QADIC,EACIA,EAAOH,KACTG,IAAS,KACXD,EAAM,KAAKC,CAAI,EACfN,EAASK,CAAK,GAIlB,OAAOA,CACX,CAEE,OAAA/D,EAAU,EACH8D,EAAY,CACrB,CAQA,SAASruB,EAAKr3F,EAAK,CACjB,OAAOA,EAAMA,EAAI,QAAQ0kH,EAAYI,CAAY,EAAIA,CACvD,CAEAe,UAAiBvgH,+CCnQjB,IAAIwgH,EAAmBC,IAAQA,GAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAG,CAC3D,EACA,OAAO,eAAeH,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,GAAA,QAAkBI,EAClB,MAAMC,EAAwBJ,EAAgB3lC,IAA8B,EAe5E,SAAS8lC,EAAcxhH,EAAO8H,EAAU,CACpC,IAAI45G,EAAc,KAClB,GAAI,CAAC1hH,GAAS,OAAOA,GAAU,SAC3B,OAAO0hH,EAEX,MAAMT,KAAmBQ,EAAsB,SAASzhH,CAAK,EACvD2hH,EAAc,OAAO75G,GAAa,WACxC,OAAAm5G,EAAa,QAASD,GAAgB,CAClC,GAAIA,EAAY,OAAS,cACrB,OAEJ,KAAM,CAAE,SAAArmE,EAAU,MAAAx9C,CAAK,EAAK6jH,EACxBW,EACA75G,EAAS6yC,EAAUx9C,EAAO6jH,CAAW,EAEhC7jH,IACLukH,EAAcA,GAAe,GAC7BA,EAAY/mE,CAAQ,EAAIx9C,EAEpC,CAAK,EACMukH,CACX,2DCzCA,OAAO,eAAeE,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,GAAA,UAAoB,OACpB,IAAIC,EAAwB,qBACxBC,EAAe,YACfC,EAAkB,UAClBC,EAAsB,6BACtBC,EAAyB,UAIzBC,EAAgB,SAAUvnE,EAAU,CACpC,MAAO,CAACA,GACJonE,EAAgB,KAAKpnE,CAAQ,GAC7BknE,EAAsB,KAAKlnE,CAAQ,CAC3C,EAII38C,EAAa,SAAUyB,EAAO0iH,EAAW,CACzC,OAAOA,EAAU,YAAW,CAChC,EAIIC,EAAa,SAAU3iH,EAAO4iH,EAAQ,CAAE,MAAO,GAAG,OAAOA,EAAQ,GAAG,CAAE,EAItEC,EAAY,SAAU3nE,EAAU3qC,EAAS,CAEzC,OADIA,IAAY,SAAUA,EAAU,IAChCkyG,EAAcvnE,CAAQ,EACfA,GAEXA,EAAWA,EAAS,YAAW,EAC3B3qC,EAAQ,YAER2qC,EAAWA,EAAS,QAAQsnE,EAAwBG,CAAU,EAI9DznE,EAAWA,EAAS,QAAQqnE,EAAqBI,CAAU,EAExDznE,EAAS,QAAQmnE,EAAc9jH,CAAU,EACpD,EACA,OAAA4jH,GAAA,UAAoBU,kDC5CpB,IAAIjB,EAAmBC,IAAQA,GAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAG,CAC3D,EACIgB,EAAoBlB,EAAgB3lC,IAA0B,EAC9D8mC,EAAc5mC,GAAA,EAIlB,SAAS6mC,EAAUziH,EAAOgQ,EAAS,CAC/B,IAAIw4B,EAAS,GACb,MAAI,CAACxoC,GAAS,OAAOA,GAAU,aAG3BuiH,EAAkB,SAASviH,EAAO,SAAU26C,EAAUx9C,EAAO,CAEzDw9C,GAAYx9C,IACZqrC,KAAWg6E,EAAY,WAAW7nE,EAAU3qC,CAAO,CAAC,EAAI7S,EAEpE,CAAK,EACMqrC,CACX,CACA,OAAAi6E,EAAU,QAAUA,EACpBrB,GAAiBqB,iCCMJC,GAAWC,GAAM,KAAK,EAUtBC,GAAaD,GAAM,OAAO,EAUvC,SAASA,GAAMt8G,EAAM,CACnB,OAAOs8G,EAQP,SAASA,EAAM9mG,EAAM,CACnB,MAAM8mG,EAAS9mG,GAAQA,EAAK,UAAYA,EAAK,SAASxV,CAAI,GAAM,GAEhE,GACE,OAAOs8G,EAAM,MAAS,UACtBA,EAAM,KAAO,GACb,OAAOA,EAAM,QAAW,UACxBA,EAAM,OAAS,EAEf,MAAO,CACL,KAAMA,EAAM,KACZ,OAAQA,EAAM,OACd,OACE,OAAOA,EAAM,QAAW,UAAYA,EAAM,OAAS,GAC/CA,EAAM,OACN,MACd,CAEE,CACF,CAUO,SAASvuB,GAASv4E,EAAM,CAC7B,MAAM1I,EAAQyvG,GAAW/mG,CAAI,EACvBzI,EAAMsvG,GAAS7mG,CAAI,EAEzB,GAAI1I,GAASC,EACX,MAAO,CAAC,MAAAD,EAAO,IAAAC,CAAG,CAEtB,CC1DO,SAASyvG,GAAkB1lH,EAAO,CAEvC,MAAI,CAACA,GAAS,OAAOA,GAAU,SACtB,GAIL,aAAcA,GAAS,SAAUA,EAC5Bi3F,GAASj3F,EAAM,QAAQ,EAI5B,UAAWA,GAAS,QAASA,EACxBi3F,GAASj3F,CAAK,EAInB,SAAUA,GAAS,WAAYA,EAC1BwlH,GAAMxlH,CAAK,EAIb,EACT,CAMA,SAASwlH,GAAMA,EAAO,CACpB,OAAO9hH,GAAM8hH,GAASA,EAAM,IAAI,EAAI,IAAM9hH,GAAM8hH,GAASA,EAAM,MAAM,CACvE,CAMA,SAASvuB,GAASxoD,EAAK,CACrB,OAAO+2E,GAAM/2E,GAAOA,EAAI,KAAK,EAAI,IAAM+2E,GAAM/2E,GAAOA,EAAI,GAAG,CAC7D,CAMA,SAAS/qC,GAAM1D,EAAO,CACpB,OAAOA,GAAS,OAAOA,GAAU,SAAWA,EAAQ,CACtD,CCzDO,MAAM2lH,WAAqB,KAAM,CAwDtC,YAAYC,EAAeC,EAAwB3lB,EAAQ,CACzD,MAAK,EAED,OAAO2lB,GAA2B,WACpC3lB,EAAS2lB,EACTA,EAAyB,QAI3B,IAAIvd,EAAS,GAETz1F,EAAU,GACVizG,EAAc,GAwClB,GAtCID,IAGA,SAAUA,GACV,WAAYA,EAEZhzG,EAAU,CAAC,MAAOgzG,CAAsB,EAIxC,UAAWA,GACX,QAASA,EAEThzG,EAAU,CAAC,MAAOgzG,CAAsB,EAGjC,SAAUA,EACjBhzG,EAAU,CACR,UAAW,CAACgzG,CAAsB,EAClC,MAAOA,EAAuB,QACxC,EAIQhzG,EAAU,CAAC,GAAGgzG,CAAsB,GAIpC,OAAOD,GAAkB,SAC3Btd,EAASsd,EAGF,CAAC/yG,EAAQ,OAAS+yG,IACzBE,EAAc,GACdxd,EAASsd,EAAc,QACvB/yG,EAAQ,MAAQ+yG,GAGd,CAAC/yG,EAAQ,QAAU,CAACA,EAAQ,QAAU,OAAOqtF,GAAW,SAAU,CACpE,MAAMx8F,EAAQw8F,EAAO,QAAQ,GAAG,EAE5Bx8F,IAAU,GACZmP,EAAQ,OAASqtF,GAEjBrtF,EAAQ,OAASqtF,EAAO,MAAM,EAAGx8F,CAAK,EACtCmP,EAAQ,OAASqtF,EAAO,MAAMx8F,EAAQ,CAAC,EAE3C,CAEA,GAAI,CAACmP,EAAQ,OAASA,EAAQ,WAAaA,EAAQ,UAAW,CAC5D,MAAM0f,EAAS1f,EAAQ,UAAUA,EAAQ,UAAU,OAAS,CAAC,EAEzD0f,IACF1f,EAAQ,MAAQ0f,EAAO,SAE3B,CAEA,MAAMvc,EACJnD,EAAQ,OAAS,UAAWA,EAAQ,MAChCA,EAAQ,MAAM,MACdA,EAAQ,MAOd,KAAK,UAAYA,EAAQ,WAAa,OAOtC,KAAK,MAAQA,EAAQ,OAAS,OAO9B,KAAK,OAASmD,EAAQA,EAAM,OAAS,OAWrC,KAAK,MAAQ,OAOb,KAAK,KAAO,GAQZ,KAAK,QAAUsyF,EAOf,KAAK,KAAOtyF,EAAQA,EAAM,KAAO,OASjC,KAAK,KAAO0vG,GAAkB7yG,EAAQ,KAAK,GAAK,MAOhD,KAAK,MAAQA,EAAQ,OAAS,OAO9B,KAAK,OAAS,KAAK,QAOnB,KAAK,OAASA,EAAQ,QAAU,OAOhC,KAAK,OAASA,EAAQ,QAAU,OAWhC,KAAK,MACHizG,GAAejzG,EAAQ,OAAS,OAAOA,EAAQ,MAAM,OAAU,SAC3DA,EAAQ,MAAM,MACd,GAYN,KAAK,OAAS,OAOd,KAAK,SAAW,OAOhB,KAAK,KAAO,OAUZ,KAAK,IAAM,MACb,CACF,CAEA8yG,GAAa,UAAU,KAAO,GAC9BA,GAAa,UAAU,KAAO,GAC9BA,GAAa,UAAU,OAAS,GAChCA,GAAa,UAAU,QAAU,GACjCA,GAAa,UAAU,MAAQ,GAC/BA,GAAa,UAAU,OAAS,OAChCA,GAAa,UAAU,KAAO,OAC9BA,GAAa,UAAU,UAAY,OACnCA,GAAa,UAAU,MAAQ,OAC/BA,GAAa,UAAU,MAAQ,OAC/BA,GAAa,UAAU,MAAQ,OAC/BA,GAAa,UAAU,OAAS,OAChCA,GAAa,UAAU,OAAS,OCnShC,MAAM7kB,GAAM,GAAG,eAGTilB,GAAW,IAAI,IAEfnE,GAAM,SAaNoE,GAAgB,IAAI,IAAI,CAAC,QAAS,QAAS,QAAS,QAAS,IAAI,CAAC,EAElEC,GAAmB,IAAI,IAAI,CAAC,KAAM,IAAI,CAAC,EAEvCC,GAAO,0DAcN,SAASC,GAAa3H,EAAM3rG,EAAS,CAC1C,GAAI,CAACA,GAAWA,EAAQ,WAAa,OACnC,MAAM,IAAI,UAAU,gCAAgC,EAGtD,MAAMuzG,EAAWvzG,EAAQ,UAAY,OAErC,IAAI6nC,EAEJ,GAAI7nC,EAAQ,YAAa,CACvB,GAAI,OAAOA,EAAQ,QAAW,WAC5B,MAAM,IAAI,UACR,uDACR,EAGI6nC,EAAS2rE,GAAkBD,EAAUvzG,EAAQ,MAAM,CACrD,KAAO,CACL,GAAI,OAAOA,EAAQ,KAAQ,WACzB,MAAM,IAAI,UAAU,sCAAsC,EAG5D,GAAI,OAAOA,EAAQ,MAAS,WAC1B,MAAM,IAAI,UAAU,uCAAuC,EAG7D6nC,EAAS4rE,GAAiBF,EAAUvzG,EAAQ,IAAKA,EAAQ,IAAI,CAC/D,CAGA,MAAM2M,EAAQ,CACZ,SAAU3M,EAAQ,SAClB,UAAW,GACX,WAAYA,EAAQ,YAAc,GAClC,OAAA6nC,EACA,yBAA0B7nC,EAAQ,0BAA4B,QAC9D,UAAWA,EAAQ,gBAAkBA,EAAQ,gBAAe,EAAK,OACjE,SAAAuzG,EACA,mBAAoBvzG,EAAQ,oBAAsB,GAClD,SAAUA,EAAQ,WAAa,GAC/B,SAAUA,EAAQ,UAAY,GAC9B,OAAQA,EAAQ,QAAU,MAAQ2rC,GAAMD,GACxC,sBAAuB1rC,EAAQ,uBAAyB,MACxD,sBAAuBA,EAAQ,wBAA0B,EAC7D,EAEQpH,EAAS0vG,GAAI37F,EAAOg/F,EAAM,MAAS,EAGzC,OAAI/yG,GAAU,OAAOA,GAAW,SACvBA,EAIF+T,EAAM,OACXg/F,EACAh/F,EAAM,SACN,CAAC,SAAU/T,GAAU,MAAS,EAC9B,MACJ,CACA,CAcA,SAAS0vG,GAAI37F,EAAOd,EAAMpgB,EAAK,CAC7B,GAAIogB,EAAK,OAAS,UAChB,OAAOu+B,GAAQz9B,EAAOd,EAAMpgB,CAAG,EAGjC,GAAIogB,EAAK,OAAS,qBAAuBA,EAAK,OAAS,oBACrD,OAAO6nG,GAAc/mG,EAAOd,CAAI,EAGlC,GAAIA,EAAK,OAAS,qBAAuBA,EAAK,OAAS,oBACrD,OAAO8nG,GAAchnG,EAAOd,EAAMpgB,CAAG,EAGvC,GAAIogB,EAAK,OAAS,WAChB,OAAO+nG,GAAOjnG,EAAOd,CAAI,EAG3B,GAAIA,EAAK,OAAS,OAChB,OAAO2S,GAAK7R,EAAOd,EAAMpgB,CAAG,EAG9B,GAAIogB,EAAK,OAAS,OAChB,OAAOkgB,GAAKpf,EAAOd,CAAI,CAE3B,CAcA,SAASu+B,GAAQz9B,EAAOd,EAAMpgB,EAAK,CACjC,MAAMooH,EAAelnG,EAAM,OAC3B,IAAIovF,EAAS8X,EAEThoG,EAAK,QAAQ,YAAW,IAAO,OAASgoG,EAAa,QAAU,SACjE9X,EAASpwD,GACTh/B,EAAM,OAASovF,GAGjBpvF,EAAM,UAAU,KAAKd,CAAI,EAEzB,MAAMxV,EAAOy9G,GAAsBnnG,EAAOd,EAAK,QAAS,EAAK,EACvD/b,EAAQikH,GAAmBpnG,EAAOd,CAAI,EAC5C,IAAIT,EAAW4oG,GAAernG,EAAOd,CAAI,EAEzC,OAAIsnG,GAAc,IAAItnG,EAAK,OAAO,IAChCT,EAAWA,EAAS,OAAO,SAAUG,EAAO,CAC1C,OAAO,OAAOA,GAAU,SAAW,CAAC4hG,GAAW5hG,CAAK,EAAI,EAC1D,CAAC,GAGH0oG,GAAQtnG,EAAO7c,EAAOuG,EAAMwV,CAAI,EAChCqoG,GAAYpkH,EAAOsb,CAAQ,EAG3BuB,EAAM,UAAU,IAAG,EACnBA,EAAM,OAASknG,EAERlnG,EAAM,OAAOd,EAAMxV,EAAMvG,EAAOrE,CAAG,CAC5C,CAYA,SAASioH,GAAc/mG,EAAOd,EAAM,CAClC,GAAIA,EAAK,MAAQA,EAAK,KAAK,QAAUc,EAAM,UAAW,CAEpD,MAAMwnG,EADUtoG,EAAK,KAAK,OACC,KAAK,CAAC,EACjCuoG,OAAOD,EAAW,KAIhBxnG,EAAM,UAAU,mBAAmBwnG,EAAW,UAAU,CAE5D,CAEAE,GAAY1nG,EAAOd,EAAK,QAAQ,CAClC,CAYA,SAAS+nG,GAAOjnG,EAAOd,EAAM,CAC3B,GAAIA,EAAK,MAAQA,EAAK,KAAK,QAAUc,EAAM,UAEzC,OACEA,EAAM,UAAU,gBAAgBd,EAAK,KAAK,MAAM,EAIpDwoG,GAAY1nG,EAAOd,EAAK,QAAQ,CAClC,CAcA,SAAS8nG,GAAchnG,EAAOd,EAAMpgB,EAAK,CACvC,MAAMooH,EAAelnG,EAAM,OAC3B,IAAIovF,EAAS8X,EAEThoG,EAAK,OAAS,OAASgoG,EAAa,QAAU,SAChD9X,EAASpwD,GACTh/B,EAAM,OAASovF,GAGjBpvF,EAAM,UAAU,KAAKd,CAAI,EAEzB,MAAMxV,EACJwV,EAAK,OAAS,KACVc,EAAM,SACNmnG,GAAsBnnG,EAAOd,EAAK,KAAM,EAAI,EAC5C/b,EAAQwkH,GAAsB3nG,EAAOd,CAAI,EACzCT,EAAW4oG,GAAernG,EAAOd,CAAI,EAE3C,OAAAooG,GAAQtnG,EAAO7c,EAAOuG,EAAMwV,CAAI,EAChCqoG,GAAYpkH,EAAOsb,CAAQ,EAG3BuB,EAAM,UAAU,IAAG,EACnBA,EAAM,OAASknG,EAERlnG,EAAM,OAAOd,EAAMxV,EAAMvG,EAAOrE,CAAG,CAC5C,CAcA,SAAS+yB,GAAK7R,EAAOd,EAAMpgB,EAAK,CAE9B,MAAMqE,EAAQ,GAEd,OAAAokH,GAAYpkH,EAAOkkH,GAAernG,EAAOd,CAAI,CAAC,EAEvCc,EAAM,OAAOd,EAAMc,EAAM,SAAU7c,EAAOrE,CAAG,CACtD,CAYA,SAASsgC,GAAKi7B,EAAGn7C,EAAM,CACrB,OAAOA,EAAK,KACd,CAgBA,SAASooG,GAAQtnG,EAAO7c,EAAOuG,EAAMwV,EAAM,CAErC,OAAOxV,GAAS,UAAYA,IAASsW,EAAM,UAAYA,EAAM,WAC/D7c,EAAM,KAAO+b,EAEjB,CAYA,SAASqoG,GAAYpkH,EAAOsb,EAAU,CACpC,GAAIA,EAAS,OAAS,EAAG,CACvB,MAAMje,EAAQie,EAAS,OAAS,EAAIA,EAAWA,EAAS,CAAC,EAErDje,IACF2C,EAAM,SAAW3C,EAErB,CACF,CAYA,SAASsmH,GAAiBzsD,EAAGutD,EAAKC,EAAM,CACtC,OAAO3sE,EAEP,SAASA,EAAOmf,EAAG3wD,EAAMvG,EAAOrE,EAAK,CAGnC,MAAMgC,EADmB,MAAM,QAAQqC,EAAM,QAAQ,EACvB0kH,EAAOD,EACrC,OAAO9oH,EAAMgC,EAAG4I,EAAMvG,EAAOrE,CAAG,EAAIgC,EAAG4I,EAAMvG,CAAK,CACpD,CACF,CAUA,SAAS0jH,GAAkBD,EAAUkB,EAAQ,CAC3C,OAAO5sE,EAEP,SAASA,EAAOh8B,EAAMxV,EAAMvG,EAAOrE,EAAK,CAEtC,MAAMipH,EAAmB,MAAM,QAAQ5kH,EAAM,QAAQ,EAC/C6iH,EAAQC,GAAW/mG,CAAI,EAC7B,OAAO4oG,EACLp+G,EACAvG,EACArE,EACAipH,EACA,CACE,aAAc/B,EAAQA,EAAM,OAAS,EAAI,OACzC,SAAUY,EACV,WAAYZ,EAAQA,EAAM,KAAO,MACzC,EACM,MACN,CACE,CACF,CAYA,SAASoB,GAAmBpnG,EAAOd,EAAM,CAEvC,MAAM/b,EAAQ,GAEd,IAAI6kH,EAEArzF,EAEJ,IAAKA,KAAQzV,EAAK,WAChB,GAAIyV,IAAS,YAAc2sE,GAAI,KAAKpiF,EAAK,WAAYyV,CAAI,EAAG,CAC1D,MAAM1oB,EAASg8G,GAAejoG,EAAO2U,EAAMzV,EAAK,WAAWyV,CAAI,CAAC,EAEhE,GAAI1oB,EAAQ,CACV,KAAM,CAACnN,EAAK0B,CAAK,EAAIyL,EAGnB+T,EAAM,uBACNlhB,IAAQ,SACR,OAAO0B,GAAU,UACjBimH,GAAiB,IAAIvnG,EAAK,OAAO,EAEjC8oG,EAAaxnH,EAEb2C,EAAMrE,CAAG,EAAI0B,CAEjB,CACF,CAGF,GAAIwnH,EAAY,CAEd,MAAM3kH,EAA8BF,EAAM,QAAUA,EAAM,MAAQ,IAClEE,EAAM2c,EAAM,wBAA0B,MAAQ,aAAe,WAAW,EACtEgoG,CACJ,CAEA,OAAO7kH,CACT,CAYA,SAASwkH,GAAsB3nG,EAAOd,EAAM,CAE1C,MAAM/b,EAAQ,GAEd,UAAWmlD,KAAappC,EAAK,WAC3B,GAAIopC,EAAU,OAAS,4BACrB,GAAIA,EAAU,MAAQA,EAAU,KAAK,QAAUtoC,EAAM,UAAW,CAE9D,MAAMwnG,EADUl/D,EAAU,KAAK,OACJ,KAAK,CAAC,EAC1Bk/D,EAAW,KAClB,MAAMU,EAAmBV,EAAW,WAC7BU,EAAiB,KACxB,MAAMlqE,EAAWkqE,EAAiB,WAAW,CAAC,EACvClqE,EAAS,KAEhB,OAAO,OACL76C,EACA6c,EAAM,UAAU,mBAAmBg+B,EAAS,QAAQ,CAC9D,CACM,MACE0pE,GAAY1nG,EAAOd,EAAK,QAAQ,MAE7B,CAEL,MAAMjc,EAAOqlD,EAAU,KAEvB,IAAI9nD,EAEJ,GAAI8nD,EAAU,OAAS,OAAOA,EAAU,OAAU,SAChD,GACEA,EAAU,MAAM,MAChBA,EAAU,MAAM,KAAK,QACrBtoC,EAAM,UACN,CAEA,MAAMwnG,EADUl/D,EAAU,MAAM,KAAK,OACV,KAAK,CAAC,EAC1Bk/D,EAAW,KAClBhnH,EAAQwf,EAAM,UAAU,mBAAmBwnG,EAAW,UAAU,CAClE,MACEE,GAAY1nG,EAAOd,EAAK,QAAQ,OAGlC1e,EAAQ8nD,EAAU,QAAU,KAAO,GAAOA,EAAU,MAItDnlD,EAAMF,CAAI,EAAuCzC,CACnD,CAGF,OAAO2C,CACT,CAYA,SAASkkH,GAAernG,EAAOd,EAAM,CAEnC,MAAMT,EAAW,GACjB,IAAIva,EAAQ,GAIZ,MAAMikH,EAAenoG,EAAM,SAAW,IAAI,IAAQumG,GAElD,KAAO,EAAEriH,EAAQgb,EAAK,SAAS,QAAQ,CACrC,MAAMN,EAAQM,EAAK,SAAShb,CAAK,EAEjC,IAAIpF,EAEJ,GAAIkhB,EAAM,SAAU,CAClB,MAAM/c,EACJ2b,EAAM,OAAS,UACXA,EAAM,QACNA,EAAM,OAAS,qBACbA,EAAM,OAAS,oBACfA,EAAM,KACN,OAER,GAAI3b,EAAM,CACR,MAAM07D,EAAQwpD,EAAa,IAAIllH,CAAI,GAAK,EACxCnE,EAAMmE,EAAO,IAAM07D,EACnBwpD,EAAa,IAAIllH,EAAM07D,EAAQ,CAAC,CAClC,CACF,CAEA,MAAM1yD,EAAS0vG,GAAI37F,EAAOpB,EAAO9f,CAAG,EAChCmN,IAAW,QAAWwS,EAAS,KAAKxS,CAAM,CAChD,CAEA,OAAOwS,CACT,CAcA,SAASwpG,GAAejoG,EAAO2U,EAAMn0B,EAAO,CAC1C,MAAMqhH,EAAOS,GAAKtiG,EAAM,OAAQ2U,CAAI,EAGpC,GACE,EAAAn0B,GAAU,MAET,OAAOA,GAAU,UAAY,OAAO,MAAMA,CAAK,GAYlD,IAPI,MAAM,QAAQA,CAAK,IAGrBA,EAAQqhH,EAAK,eAAiBuG,GAAO5nH,CAAK,EAAI6nH,GAAO7nH,CAAK,GAIxDqhH,EAAK,WAAa,QAAS,CAC7B,IAAIkD,EACF,OAAOvkH,GAAU,SAAWA,EAAQ8nH,GAAWtoG,EAAO,OAAOxf,CAAK,CAAC,EAErE,OAAIwf,EAAM,wBAA0B,QAClC+kG,EAAcwD,GAA2BxD,CAAW,GAG/C,CAAC,QAASA,CAAW,CAC9B,CAEA,MAAO,CACL/kG,EAAM,2BAA6B,SAAW6hG,EAAK,MAC/CM,GAAYN,EAAK,QAAQ,GAAKA,EAAK,SACnCA,EAAK,UACTrhH,CACJ,EACA,CAcA,SAAS8nH,GAAWtoG,EAAOxf,EAAO,CAChC,GAAI,CACF,OAAOgoH,GAAUhoH,EAAO,CAAC,YAAa,EAAI,CAAC,CAC7C,OAASoH,EAAO,CACd,GAAIoY,EAAM,mBACR,MAAO,GAGT,MAAMyoG,EAA8B7gH,EAC9Bq7E,EAAU,IAAIkjC,GAAa,iCAAkC,CACjE,UAAWnmG,EAAM,UACjB,MAAAyoG,EACA,OAAQ,QACR,OAAQ,0BACd,CAAK,EACD,MAAAxlC,EAAQ,KAAOjjE,EAAM,UAAY,OACjCijE,EAAQ,IAAMyjC,GAAO,gCAEfzjC,CACR,CACF,CAcA,SAASkkC,GAAsBnnG,EAAO/c,EAAMylH,EAAiB,CAE3D,IAAIz8G,EAEJ,GAAI,CAACy8G,EACHz8G,EAAS,CAAC,KAAM,UAAW,MAAOhJ,CAAI,UAC7BA,EAAK,SAAS,GAAG,EAAG,CAC7B,MAAMk9E,EAAcl9E,EAAK,MAAM,GAAG,EAClC,IAAIiB,EAAQ,GAERgb,EAEJ,KAAO,EAAEhb,EAAQi8E,EAAY,QAAQ,CAEnC,MAAMxrD,EAAOg0F,GAAiBxoC,EAAYj8E,CAAK,CAAC,EAC5C,CAAC,KAAM,aAAc,KAAMi8E,EAAYj8E,CAAK,CAAC,EAC7C,CAAC,KAAM,UAAW,MAAOi8E,EAAYj8E,CAAK,CAAC,EAC/Cgb,EAAOA,EACH,CACE,KAAM,mBACN,OAAQA,EACR,SAAUyV,EACV,SAAU,GAAQzwB,GAASywB,EAAK,OAAS,WACzC,SAAU,EACtB,EACUA,CACN,CAGA1oB,EAASiT,CACX,MACEjT,EACE08G,GAAiB1lH,CAAI,GAAK,CAAC,SAAS,KAAKA,CAAI,EACzC,CAAC,KAAM,kBAAcA,CAAI,EACzB,CAAC,KAAM,UAAW,MAAOA,CAAI,EAKrC,GAAIgJ,EAAO,OAAS,UAAW,CAC7B,MAAMhJ,EAAuCgJ,EAAO,MACpD,OAAOq1F,GAAI,KAAKthF,EAAM,WAAY/c,CAAI,EAAI+c,EAAM,WAAW/c,CAAI,EAAIA,CACrE,CAGA,GAAI+c,EAAM,UACR,OAAOA,EAAM,UAAU,mBAAmB/T,CAAM,EAGlDy7G,GAAY1nG,CAAK,CACnB,CAOA,SAAS0nG,GAAY1nG,EAAO4oG,EAAO,CACjC,MAAM3lC,EAAU,IAAIkjC,GAClB,sDACA,CACE,UAAWnmG,EAAM,UACjB,MAAA4oG,EACA,OAAQ,aACR,OAAQ,0BACd,CACA,EACE,MAAA3lC,EAAQ,KAAOjjE,EAAM,UAAY,OACjCijE,EAAQ,IAAMyjC,GAAO,qDAEfzjC,CACR,CAQA,SAASslC,GAA2BM,EAAW,CAE7C,MAAMC,EAAY,GAElB,IAAIn7F,EAEJ,IAAKA,KAAQk7F,EACPvnB,GAAI,KAAKunB,EAAWl7F,CAAI,IAC1Bm7F,EAAUC,GAA0Bp7F,CAAI,CAAC,EAAIk7F,EAAUl7F,CAAI,GAI/D,OAAOm7F,CACT,CAQA,SAASC,GAA0Bp7F,EAAM,CACvC,IAAID,EAAKC,EAAK,QAAQy0F,GAAK4G,EAAM,EAEjC,OAAIt7F,EAAG,MAAM,EAAG,CAAC,IAAM,QAAOA,EAAK,IAAMA,GAClCA,CACT,CAUA,SAASs7F,GAAOpG,EAAI,CAClB,MAAO,IAAMA,EAAG,YAAW,CAC7B,CCjwBe,SAASqG,GAAY51G,EAAS,CAG3C,MAAMxH,EAAiC,KAEvCA,EAAK,SAAWq9G,EAGhB,SAASA,EAASlK,EAAMllE,EAAM,CAC5B,OAAO6sE,GAAa3H,EAAM,CAAC,SAAUllE,EAAK,KAAM,GAAGzmC,CAAO,CAAC,CAC7D,CACF,CC5Be,SAAS81G,GAAmB36E,EAAQ,CAClD,GAAI,OAAOA,GAAW,SACrB,MAAM,IAAI,UAAU,mBAAmB,EAKxC,OAAOA,EACL,QAAQ,sBAAuB,MAAM,EACrC,QAAQ,KAAM,OAAO,CACxB,CCwEO,SAAS46E,GAAepK,EAAMhwE,EAAM37B,EAAS,CAElD,MAAMg2G,EAAUjL,GADY,GACK,QAAU,EAAE,EACvCkL,EAAQC,GAAQv6E,CAAI,EAC1B,IAAIw6E,EAAY,GAEhB,KAAO,EAAEA,EAAYF,EAAM,QACzBvK,GAAaC,EAAM,OAAQ3gB,CAAO,EAIpC,SAASA,EAAQn/E,EAAMigG,EAAS,CAC9B,IAAIj7G,EAAQ,GAERulH,EAEJ,KAAO,EAAEvlH,EAAQi7G,EAAQ,QAAQ,CAC/B,MAAMpsF,EAASosF,EAAQj7G,CAAK,EAEtBmnE,EAAWo+C,EAAcA,EAAY,SAAW,OAEtD,GACEJ,EACEt2F,EACAs4C,EAAWA,EAAS,QAAQt4C,CAAM,EAAI,OACtC02F,CACV,EAEQ,OAGFA,EAAc12F,CAChB,CAEA,GAAI02F,EACF,OAAOx8F,EAAQ/N,EAAMigG,CAAO,CAEhC,CAYA,SAASlyF,EAAQ/N,EAAMigG,EAAS,CAC9B,MAAMpsF,EAASosF,EAAQA,EAAQ,OAAS,CAAC,EACnCmD,EAAOgH,EAAME,CAAS,EAAE,CAAC,EACzBE,EAAUJ,EAAME,CAAS,EAAE,CAAC,EAClC,IAAIhzG,EAAQ,EAGZ,MAAMtS,EADW6uB,EAAO,SACD,QAAQ7T,CAAI,EACnC,IAAIyqG,EAAS,GAETtgE,EAAQ,GAEZi5D,EAAK,UAAY,EAEjB,IAAIx/G,EAAQw/G,EAAK,KAAKpjG,EAAK,KAAK,EAEhC,KAAOpc,GAAO,CACZ,MAAM20F,EAAW30F,EAAM,MAEjB8mH,EAAc,CAClB,MAAO9mH,EAAM,MACb,MAAOA,EAAM,MACb,MAAO,CAAC,GAAGq8G,EAASjgG,CAAI,CAChC,EACM,IAAI1e,EAAQkpH,EAAQ,GAAG5mH,EAAO8mH,CAAW,EA8BzC,GA5BI,OAAOppH,GAAU,WACnBA,EAAQA,EAAM,OAAS,EAAI,CAAC,KAAM,OAAQ,MAAAA,CAAK,EAAI,QAIjDA,IAAU,GAIZ8hH,EAAK,UAAY7qB,EAAW,GAExBjhF,IAAUihF,GACZpuC,EAAM,KAAK,CACT,KAAM,OACN,MAAOnqC,EAAK,MAAM,MAAM1I,EAAOihF,CAAQ,CACnD,CAAW,EAGC,MAAM,QAAQj3F,CAAK,EACrB6oD,EAAM,KAAK,GAAG7oD,CAAK,EACVA,GACT6oD,EAAM,KAAK7oD,CAAK,EAGlBgW,EAAQihF,EAAW30F,EAAM,CAAC,EAAE,OAC5B6mH,EAAS,IAGP,CAACrH,EAAK,OACR,MAGFx/G,EAAQw/G,EAAK,KAAKpjG,EAAK,KAAK,CAC9B,CAEA,OAAIyqG,GACEnzG,EAAQ0I,EAAK,MAAM,QACrBmqC,EAAM,KAAK,CAAC,KAAM,OAAQ,MAAOnqC,EAAK,MAAM,MAAM1I,CAAK,CAAC,CAAC,EAG3Duc,EAAO,SAAS,OAAO7uB,EAAO,EAAG,GAAGmlD,CAAK,GAEzCA,EAAQ,CAACnqC,CAAI,EAGRhb,EAAQmlD,EAAM,MACvB,CACF,CAUA,SAASkgE,GAAQM,EAAa,CAE5B,MAAM59G,EAAS,GAEf,GAAI,CAAC,MAAM,QAAQ49G,CAAW,EAC5B,MAAM,IAAI,UAAU,mDAAmD,EAKzE,MAAM76E,EACJ,CAAC66E,EAAY,CAAC,GAAK,MAAM,QAAQA,EAAY,CAAC,CAAC,EAC3CA,EACA,CAACA,CAAW,EAElB,IAAI3lH,EAAQ,GAEZ,KAAO,EAAEA,EAAQ8qC,EAAK,QAAQ,CAC5B,MAAM86E,EAAQ96E,EAAK9qC,CAAK,EACxB+H,EAAO,KAAK,CAAC89G,GAAaD,EAAM,CAAC,CAAC,EAAGE,GAAWF,EAAM,CAAC,CAAC,CAAC,CAAC,CAC5D,CAEA,OAAO79G,CACT,CAUA,SAAS89G,GAAazH,EAAM,CAC1B,OAAO,OAAOA,GAAS,SAAW,IAAI,OAAOpzD,GAAOozD,CAAI,EAAG,GAAG,EAAIA,CACpE,CAUA,SAAS0H,GAAWN,EAAS,CAC3B,OAAO,OAAOA,GAAY,WACtBA,EACA,UAAY,CACV,OAAOA,CACT,CACN,CC1PO,SAASO,GAAejL,EAAM,CACnCoK,GAAepK,EAAM,CAAC,YAAa0K,EAAO,CAAC,CAC7C,CAOA,SAASA,IAAU,CACjB,MAAO,CAAC,KAAM,OAAO,CACvB,CCbe,SAASQ,IAAe,CASrC,OAAO,SAAUlL,EAAM,CACrBiL,GAAejL,CAAI,CACrB,CACF,CCrBA,MAAMvhE,GAAU,SAAS,cAAc,GAAG,EAMnC,SAAS0sE,GAA8B3pH,EAAO,CACnD,MAAM4pH,EAAqB,IAAM5pH,EAAQ,IACzCi9C,GAAQ,UAAY2sE,EACpB,MAAM5E,EAAY/nE,GAAQ,YAQ1B,OAGE+nE,EAAU,WAAWA,EAAU,OAAS,CAAC,IAAM,IAC/ChlH,IAAU,QASLglH,IAAc4E,EAPZ,GAOyC5E,CACpD,CCbO,SAAS6E,GAAOr7E,EAAMx4B,EAAOjX,EAAQ+qH,EAAO,CACjD,MAAM7zG,EAAMu4B,EAAK,OACjB,IAAIu7E,EAAa,EAEb1M,EAWJ,GARIrnG,EAAQ,EACVA,EAAQ,CAACA,EAAQC,EAAM,EAAIA,EAAMD,EAEjCA,EAAQA,EAAQC,EAAMA,EAAMD,EAE9BjX,EAASA,EAAS,EAAIA,EAAS,EAG3B+qH,EAAM,OAAS,IACjBzM,EAAa,MAAM,KAAKyM,CAAK,EAC7BzM,EAAW,QAAQrnG,EAAOjX,CAAM,EAEhCyvC,EAAK,OAAO,GAAG6uE,CAAU,MAMzB,KAHIt+G,GAAQyvC,EAAK,OAAOx4B,EAAOjX,CAAM,EAG9BgrH,EAAaD,EAAM,QACxBzM,EAAayM,EAAM,MAAMC,EAAYA,EAAa,GAAK,EACvD1M,EAAW,QAAQrnG,EAAO,CAAC,EAE3Bw4B,EAAK,OAAO,GAAG6uE,CAAU,EACzB0M,GAAc,IACd/zG,GAAS,GAGf,CAkBO,SAASg0G,GAAKx7E,EAAMs7E,EAAO,CAChC,OAAIt7E,EAAK,OAAS,GAChBq7E,GAAOr7E,EAAMA,EAAK,OAAQ,EAAGs7E,CAAK,EAC3Bt7E,GAEFs7E,CACT,CCrEA,MAAM3qH,GAAiB,GAAG,eAUnB,SAAS8qH,GAAkBC,EAAY,CAE5C,MAAMjZ,EAAM,GACZ,IAAIvtG,EAAQ,GAEZ,KAAO,EAAEA,EAAQwmH,EAAW,QAC1BC,GAAgBlZ,EAAKiZ,EAAWxmH,CAAK,CAAC,EAGxC,OAAOutG,CACT,CAYA,SAASkZ,GAAgBlZ,EAAKmZ,EAAW,CAEvC,IAAI1xG,EAEJ,IAAKA,KAAQ0xG,EAAW,CAGtB,MAAMC,GAFQlrH,GAAe,KAAK8xG,EAAKv4F,CAAI,EAAIu4F,EAAIv4F,CAAI,EAAI,UAEpCu4F,EAAIv4F,CAAI,EAAI,IAE7B4xG,EAAQF,EAAU1xG,CAAI,EAE5B,IAAI+xB,EAEJ,GAAI6/E,EACF,IAAK7/E,KAAQ6/E,EAAO,CACbnrH,GAAe,KAAKkrH,EAAM5/E,CAAI,IAAG4/E,EAAK5/E,CAAI,EAAI,IACnD,MAAMzqC,EAAQsqH,EAAM7/E,CAAI,EACxB8/E,GAEEF,EAAK5/E,CAAI,EACT,MAAM,QAAQzqC,CAAK,EAAIA,EAAQA,EAAQ,CAACA,CAAK,EAAI,EAC3D,CACM,CAEJ,CACF,CAaA,SAASuqH,GAAW1lG,EAAU2pB,EAAM,CAClC,IAAI9qC,EAAQ,GAEZ,MAAM09B,EAAS,GAEf,KAAO,EAAE19B,EAAQ8qC,EAAK,SAElBA,EAAK9qC,CAAK,EAAE,MAAQ,QAAUmhB,EAAWuc,GAAQ,KAAKoN,EAAK9qC,CAAK,CAAC,EAGrEmmH,GAAOhlG,EAAU,EAAG,EAAGuc,CAAM,CAC/B,CC9EO,SAASopF,GAAgCxqH,EAAO0sB,EAAM,CAC3D,MAAM+d,EAAO,OAAO,SAASzqC,EAAO0sB,CAAI,EACxC,OAEA+d,EAAO,GAAKA,IAAS,IAAMA,EAAO,IAAMA,EAAO,IAE/CA,EAAO,KAAOA,EAAO,KAErBA,EAAO,OAAUA,EAAO,OAExBA,EAAO,OAAUA,EAAO,QACvBA,EAAO,SAAY,QAAWA,EAAO,SAAY,OAElDA,EAAO,QACE,IAEF,OAAO,cAAcA,CAAI,CAClC,CCZO,SAASggF,GAAoBzqH,EAAO,CACzC,OAAOA,EAEN,QAAQ,cAAe,GAAG,EAE1B,QAAQ,SAAU,EAAE,EAOpB,YAAW,EAAG,YAAW,CAC5B,CC5BA,MAAM0qH,GAA6BC,GAAW,uBAAQ,GAmBzCC,GAAaD,GAAW,UAAU,EAclCE,GAAoBF,GAAW,YAAY,EAuB3CG,GAAaH,GAAW,qBAAqB,EAanD,SAASI,GAAatgF,EAAM,CACjC,OAGEA,IAAS,OAASA,EAAO,IAAMA,IAAS,IAE5C,CAaO,MAAMugF,GAAaL,GAAW,IAAI,EAoB5BM,GAAgBN,GAAW,YAAY,EAevCO,GAAmBP,GAAW,gBAAgB,EAiBpD,SAASQ,GAAmB1gF,EAAM,CACvC,OAAOA,IAAS,MAAQA,EAAO,EACjC,CAWO,SAAS2gF,GAA0B3gF,EAAM,CAC9C,OAAOA,IAAS,OAASA,EAAO,GAAKA,IAAS,GAChD,CAiBO,SAAS4gF,GAAc5gF,EAAM,CAClC,OAAOA,IAAS,IAAMA,IAAS,IAAMA,IAAS,EAChD,CAuBO,SAAS6gF,GAAmB7gF,EAAM,CACvC,OAAOygF,GAAiBzgF,CAAI,GAAKigF,GAA2BjgF,CAAI,CAClE,CAsBO,MAAM8gF,GAAoBZ,GAAW,IAAI,EAQhD,SAASA,GAAWa,EAAO,CACzB,OAAO3/D,EAUP,SAASA,EAAMphB,EAAM,CACnB,OAAOA,IAAS,MAAQA,EAAO,IAAM+gF,EAAM,KAAK,OAAO,aAAa/gF,CAAI,CAAC,CAC3E,CACF,CC5LO,SAASghF,GAAazrH,EAAO,CAElC,MAAMyL,EAAS,GACf,IAAI/H,EAAQ,GACRsS,EAAQ,EACR01G,EAAO,EACX,KAAO,EAAEhoH,EAAQ1D,EAAM,QAAQ,CAC7B,MAAMyqC,EAAOzqC,EAAM,WAAW0D,CAAK,EAEnC,IAAIwlH,EAAU,GAGd,GACEz+E,IAAS,IACTogF,GAAkB7qH,EAAM,WAAW0D,EAAQ,CAAC,CAAC,GAC7CmnH,GAAkB7qH,EAAM,WAAW0D,EAAQ,CAAC,CAAC,EAE7CgoH,EAAO,UAGAjhF,EAAO,IACT,oBAAoB,KAAK,OAAO,aAAaA,CAAI,CAAC,IACrDy+E,EAAU,OAAO,aAAaz+E,CAAI,WAI7BA,EAAO,OAAUA,EAAO,MAAQ,CACvC,MAAMtjC,EAAOnH,EAAM,WAAW0D,EAAQ,CAAC,EAGnC+mC,EAAO,OAAUtjC,EAAO,OAAUA,EAAO,OAC3C+hH,EAAU,OAAO,aAAaz+E,EAAMtjC,CAAI,EACxCukH,EAAO,GAIPxC,EAAU,GAEd,MAGEA,EAAU,OAAO,aAAaz+E,CAAI,EAEhCy+E,IACFz9G,EAAO,KAAKzL,EAAM,MAAMgW,EAAOtS,CAAK,EAAG,mBAAmBwlH,CAAO,CAAC,EAClElzG,EAAQtS,EAAQgoH,EAAO,EACvBxC,EAAU,IAERwC,IACFhoH,GAASgoH,EACTA,EAAO,EAEX,CACA,OAAOjgH,EAAO,KAAK,EAAE,EAAIzL,EAAM,MAAMgW,CAAK,CAC5C,CCzEO,SAAS21G,GAAatmH,EAASw4G,EAAI30G,EAAMomC,EAAK,CACnD,MAAMsD,EAAQtD,EAAMA,EAAM,EAAI,OAAO,kBACrC,IAAI3B,EAAO,EACX,OAAO33B,EAGP,SAASA,EAAMy0B,EAAM,CACnB,OAAI4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,MAAM6D,CAAI,EACXg8G,EAAOz6E,CAAI,GAEbozE,EAAGpzE,CAAI,CAChB,CAGA,SAASy6E,EAAOz6E,EAAM,CACpB,OAAI4gF,GAAc5gF,CAAI,GAAKkD,IAASiF,GAClCvtC,EAAQ,QAAQolC,CAAI,EACby6E,IAET7/G,EAAQ,KAAK6D,CAAI,EACV20G,EAAGpzE,CAAI,EAChB,CACF,CClDO,MAAMtJ,GAAU,CACrB,SAAUyqF,EACZ,EAQA,SAASA,GAAkBvmH,EAAS,CAClC,MAAMwmH,EAAexmH,EAAQ,QAAQ,KAAK,OAAO,WAAW,eAAgBymH,EAA4BC,CAAgB,EAExH,IAAIC,EACJ,OAAOH,EAGP,SAASC,EAA2BrhF,EAAM,CACxC,GAAIA,IAAS,KAAM,CACjBplC,EAAQ,QAAQolC,CAAI,EACpB,MACF,CACA,OAAAplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClBsmH,GAAatmH,EAASwmH,EAAc,YAAY,CACzD,CAGA,SAASE,EAAiBthF,EAAM,CAC9B,OAAAplC,EAAQ,MAAM,WAAW,EAClB4mH,EAAUxhF,CAAI,CACvB,CAGA,SAASwhF,EAAUxhF,EAAM,CACvB,MAAMu0C,EAAQ35E,EAAQ,MAAM,YAAa,CACvC,YAAa,OACb,SAAA2mH,CACN,CAAK,EACD,OAAIA,IACFA,EAAS,KAAOhtC,GAElBgtC,EAAWhtC,EACJ71D,EAAKshB,CAAI,CAClB,CAGA,SAASthB,EAAKshB,EAAM,CAClB,GAAIA,IAAS,KAAM,CACjBplC,EAAQ,KAAK,WAAW,EACxBA,EAAQ,KAAK,WAAW,EACxBA,EAAQ,QAAQolC,CAAI,EACpB,MACF,CACA,OAAI0gF,GAAmB1gF,CAAI,GACzBplC,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,WAAW,EACjB4mH,IAIT5mH,EAAQ,QAAQolC,CAAI,EACbthB,EACT,CACF,CCvDO,MAAMw3B,GAAW,CACtB,SAAUurE,EACZ,EAGMC,GAAqB,CACzB,SAAUC,EACZ,EAQA,SAASF,GAAmB7mH,EAAS,CACnC,MAAMgG,EAAO,KAEPo9C,EAAQ,GACd,IAAI4jE,EAAY,EAEZC,EAEAC,EAEAC,EACJ,OAAOx2G,EAGP,SAASA,EAAMy0B,EAAM,CAWnB,GAAI4hF,EAAY5jE,EAAM,OAAQ,CAC5B,MAAM3mD,EAAO2mD,EAAM4jE,CAAS,EAC5B,OAAAhhH,EAAK,eAAiBvJ,EAAK,CAAC,EACrBuD,EAAQ,QAAQvD,EAAK,CAAC,EAAE,aAAc2qH,EAAkBC,CAAkB,EAAEjiF,CAAI,CACzF,CAGA,OAAOiiF,EAAmBjiF,CAAI,CAChC,CAGA,SAASgiF,EAAiBhiF,EAAM,CAM9B,GALA4hF,IAKIhhH,EAAK,eAAe,WAAY,CAClCA,EAAK,eAAe,WAAa,OAC7BihH,GACFK,EAAS,EAKX,MAAMC,EAAmBvhH,EAAK,OAAO,OACrC,IAAIwhH,EAAkBD,EAElBpH,EAGJ,KAAOqH,KACL,GAAIxhH,EAAK,OAAOwhH,CAAe,EAAE,CAAC,IAAM,QAAUxhH,EAAK,OAAOwhH,CAAe,EAAE,CAAC,EAAE,OAAS,YAAa,CACtGrH,EAAQn6G,EAAK,OAAOwhH,CAAe,EAAE,CAAC,EAAE,IACxC,KACF,CAEFC,EAAeT,CAAS,EAGxB,IAAI3oH,EAAQkpH,EACZ,KAAOlpH,EAAQ2H,EAAK,OAAO,QACzBA,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,IAAM,CAC1B,GAAG8hH,CACb,EACQ9hH,IAIFmmH,UAAOx+G,EAAK,OAAQwhH,EAAkB,EAAG,EAAGxhH,EAAK,OAAO,MAAMuhH,CAAgB,CAAC,EAG/EvhH,EAAK,OAAO,OAAS3H,EACdgpH,EAAmBjiF,CAAI,CAChC,CACA,OAAOz0B,EAAMy0B,CAAI,CACnB,CAGA,SAASiiF,EAAmBjiF,EAAM,CAMhC,GAAI4hF,IAAc5jE,EAAM,OAAQ,CAI9B,GAAI,CAAC6jE,EACH,OAAOS,EAAkBtiF,CAAI,EAM/B,GAAI6hF,EAAU,kBAAoBA,EAAU,iBAAiB,SAC3D,OAAOU,EAAUviF,CAAI,EAQvBp/B,EAAK,UAAY,GAAQihH,EAAU,kBAAoB,CAACA,EAAU,8BACpE,CAGA,OAAAjhH,EAAK,eAAiB,GACfhG,EAAQ,MAAM8mH,GAAoBc,EAAsBC,CAAqB,EAAEziF,CAAI,CAC5F,CAGA,SAASwiF,EAAqBxiF,EAAM,CAClC,OAAI6hF,GAAWK,EAAS,EACxBG,EAAeT,CAAS,EACjBU,EAAkBtiF,CAAI,CAC/B,CAGA,SAASyiF,EAAsBziF,EAAM,CACnC,OAAAp/B,EAAK,OAAO,KAAKA,EAAK,IAAG,EAAG,IAAI,EAAIghH,IAAc5jE,EAAM,OACxD+jE,EAAkBnhH,EAAK,IAAG,EAAG,OACtB2hH,EAAUviF,CAAI,CACvB,CAGA,SAASsiF,EAAkBtiF,EAAM,CAE/B,OAAAp/B,EAAK,eAAiB,GACfhG,EAAQ,QAAQ8mH,GAAoBgB,EAAmBH,CAAS,EAAEviF,CAAI,CAC/E,CAGA,SAAS0iF,EAAkB1iF,EAAM,CAC/B,OAAA4hF,IACA5jE,EAAM,KAAK,CAACp9C,EAAK,iBAAkBA,EAAK,cAAc,CAAC,EAEhD0hH,EAAkBtiF,CAAI,CAC/B,CAGA,SAASuiF,EAAUviF,EAAM,CACvB,GAAIA,IAAS,KAAM,CACb6hF,GAAWK,EAAS,EACxBG,EAAe,CAAC,EAChBznH,EAAQ,QAAQolC,CAAI,EACpB,MACF,CACA,OAAA6hF,EAAYA,GAAajhH,EAAK,OAAO,KAAKA,EAAK,KAAK,EACpDhG,EAAQ,MAAM,YAAa,CACzB,WAAYinH,EACZ,YAAa,OACb,SAAUC,CAChB,CAAK,EACMa,EAAa3iF,CAAI,CAC1B,CAGA,SAAS2iF,EAAa3iF,EAAM,CAC1B,GAAIA,IAAS,KAAM,CACjB4iF,EAAahoH,EAAQ,KAAK,WAAW,EAAG,EAAI,EAC5CynH,EAAe,CAAC,EAChBznH,EAAQ,QAAQolC,CAAI,EACpB,MACF,CACA,OAAI0gF,GAAmB1gF,CAAI,GACzBplC,EAAQ,QAAQolC,CAAI,EACpB4iF,EAAahoH,EAAQ,KAAK,WAAW,CAAC,EAEtCgnH,EAAY,EACZhhH,EAAK,UAAY,OACV2K,IAET3Q,EAAQ,QAAQolC,CAAI,EACb2iF,EACT,CAUA,SAASC,EAAaruC,EAAOsuC,EAAW,CACtC,MAAMzkB,EAASx9F,EAAK,YAAY2zE,CAAK,EAyCrC,GAxCIsuC,GAAWzkB,EAAO,KAAK,IAAI,EAC/B7pB,EAAM,SAAWutC,EACbA,IAAYA,EAAW,KAAOvtC,GAClCutC,EAAavtC,EACbstC,EAAU,WAAWttC,EAAM,KAAK,EAChCstC,EAAU,MAAMzjB,CAAM,EAmClBx9F,EAAK,OAAO,KAAK2zE,EAAM,MAAM,IAAI,EAAG,CACtC,IAAIt7E,EAAQ4oH,EAAU,OAAO,OAC7B,KAAO5oH,KACL,GAEA4oH,EAAU,OAAO5oH,CAAK,EAAE,CAAC,EAAE,MAAM,OAAS8oH,IAE1C,CAACF,EAAU,OAAO5oH,CAAK,EAAE,CAAC,EAAE,KAE5B4oH,EAAU,OAAO5oH,CAAK,EAAE,CAAC,EAAE,IAAI,OAAS8oH,GAGtC,OAMJ,MAAMI,EAAmBvhH,EAAK,OAAO,OACrC,IAAIwhH,EAAkBD,EAElBxpH,EAEAoiH,EAGJ,KAAOqH,KACL,GAAIxhH,EAAK,OAAOwhH,CAAe,EAAE,CAAC,IAAM,QAAUxhH,EAAK,OAAOwhH,CAAe,EAAE,CAAC,EAAE,OAAS,YAAa,CACtG,GAAIzpH,EAAM,CACRoiH,EAAQn6G,EAAK,OAAOwhH,CAAe,EAAE,CAAC,EAAE,IACxC,KACF,CACAzpH,EAAO,EACT,CAMF,IAJA0pH,EAAeT,CAAS,EAGxB3oH,EAAQkpH,EACDlpH,EAAQ2H,EAAK,OAAO,QACzBA,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,IAAM,CAC1B,GAAG8hH,CACb,EACQ9hH,IAIFmmH,GAAOx+G,EAAK,OAAQwhH,EAAkB,EAAG,EAAGxhH,EAAK,OAAO,MAAMuhH,CAAgB,CAAC,EAG/EvhH,EAAK,OAAO,OAAS3H,CACvB,CACF,CAQA,SAASopH,EAAen/E,EAAM,CAC5B,IAAIjqC,EAAQ+kD,EAAM,OAGlB,KAAO/kD,KAAUiqC,GAAM,CACrB,MAAMub,EAAQT,EAAM/kD,CAAK,EACzB2H,EAAK,eAAiB69C,EAAM,CAAC,EAC7BA,EAAM,CAAC,EAAE,KAAK,KAAK79C,EAAMhG,CAAO,CAClC,CACAojD,EAAM,OAAS9a,CACjB,CACA,SAASg/E,GAAY,CACnBL,EAAU,MAAM,CAAC,IAAI,CAAC,EACtBC,EAAa,OACbD,EAAY,OACZjhH,EAAK,eAAe,WAAa,MACnC,CACF,CAQA,SAAS+gH,GAAkB/mH,EAASw4G,EAAI0P,EAAK,CAG3C,OAAO5B,GAAatmH,EAASA,EAAQ,QAAQ,KAAK,OAAO,WAAW,SAAUw4G,EAAI0P,CAAG,EAAG,aAAc,KAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,EAAI,OAAY,CAAC,CACpL,CCtVO,SAASC,GAAkB/iF,EAAM,CACtC,GAAIA,IAAS,MAAQ2gF,GAA0B3gF,CAAI,GAAK8gF,GAAkB9gF,CAAI,EAC5E,MAAO,GAET,GAAI6gF,GAAmB7gF,CAAI,EACzB,MAAO,EAEX,CCVO,SAASgjF,GAAWlD,EAAYmD,EAAQr/F,EAAS,CAEtD,MAAMzL,EAAS,GACf,IAAIlf,EAAQ,GAEZ,KAAO,EAAEA,EAAQ6mH,EAAW,QAAQ,CAClC,MAAMxjG,EAAUwjG,EAAW7mH,CAAK,EAAE,WAE9BqjB,GAAW,CAACnE,EAAO,SAASmE,CAAO,IACrC2mG,EAAS3mG,EAAQ2mG,EAAQr/F,CAAO,EAChCzL,EAAO,KAAKmE,CAAO,EAEvB,CAEA,OAAO2mG,CACT,CCbO,MAAMC,GAAY,CACvB,KAAM,YACN,WAAYC,GACZ,SAAUC,EACZ,EAQA,SAASD,GAAoBF,EAAQr/F,EAAS,CAC5C,IAAI3qB,EAAQ,GAERymF,EAEA3hB,EAEA5pC,EAEAkvF,EAEAC,EAEAC,EAEAC,EAEAtiF,EAMJ,KAAO,EAAEjoC,EAAQgqH,EAAO,QAEtB,GAAIA,EAAOhqH,CAAK,EAAE,CAAC,IAAM,SAAWgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,qBAAuBgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,QAIpG,IAHAymF,EAAOzmF,EAGAymF,KAEL,GAAIujC,EAAOvjC,CAAI,EAAE,CAAC,IAAM,QAAUujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,OAAS,qBAAuBujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,OAElG97D,EAAQ,eAAeq/F,EAAOvjC,CAAI,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,IAAM97D,EAAQ,eAAeq/F,EAAOhqH,CAAK,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,EAAG,CAKhH,IAAKgqH,EAAOvjC,CAAI,EAAE,CAAC,EAAE,QAAUujC,EAAOhqH,CAAK,EAAE,CAAC,EAAE,SAAWgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,IAAI,OAASgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,MAAM,QAAU,GAAK,GAAGgqH,EAAOvjC,CAAI,EAAE,CAAC,EAAE,IAAI,OAASujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,MAAM,OAASujC,EAAOhqH,CAAK,EAAE,CAAC,EAAE,IAAI,OAASgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,MAAM,QAAU,GAC3P,SAIFsqH,EAAMN,EAAOvjC,CAAI,EAAE,CAAC,EAAE,IAAI,OAASujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,MAAM,OAAS,GAAKujC,EAAOhqH,CAAK,EAAE,CAAC,EAAE,IAAI,OAASgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,MAAM,OAAS,EAAI,EAAI,EAC7I,MAAMsS,EAAQ,CACZ,GAAG03G,EAAOvjC,CAAI,EAAE,CAAC,EAAE,GAC/B,EACgBl0E,EAAM,CACV,GAAGy3G,EAAOhqH,CAAK,EAAE,CAAC,EAAE,KAChC,EACUwqH,GAAUl4G,EAAO,CAACg4G,CAAG,EACrBE,GAAUj4G,EAAK+3G,CAAG,EAClBF,EAAkB,CAChB,KAAME,EAAM,EAAI,iBAAmB,mBACnC,MAAAh4G,EACA,IAAK,CACH,GAAG03G,EAAOvjC,CAAI,EAAE,CAAC,EAAE,GACjC,CACA,EACU4jC,EAAkB,CAChB,KAAMC,EAAM,EAAI,iBAAmB,mBACnC,MAAO,CACL,GAAGN,EAAOhqH,CAAK,EAAE,CAAC,EAAE,KAClC,EACY,IAAAuS,CACZ,EACU2oB,EAAO,CACL,KAAMovF,EAAM,EAAI,aAAe,eAC/B,MAAO,CACL,GAAGN,EAAOvjC,CAAI,EAAE,CAAC,EAAE,GACjC,EACY,IAAK,CACH,GAAGujC,EAAOhqH,CAAK,EAAE,CAAC,EAAE,KAClC,CACA,EACU8kE,EAAQ,CACN,KAAMwlD,EAAM,EAAI,SAAW,WAC3B,MAAO,CACL,GAAGF,EAAgB,KACjC,EACY,IAAK,CACH,GAAGC,EAAgB,GACjC,CACA,EACUL,EAAOvjC,CAAI,EAAE,CAAC,EAAE,IAAM,CACpB,GAAG2jC,EAAgB,KAC/B,EACUJ,EAAOhqH,CAAK,EAAE,CAAC,EAAE,MAAQ,CACvB,GAAGqqH,EAAgB,GAC/B,EACUE,EAAa,GAGTP,EAAOvjC,CAAI,EAAE,CAAC,EAAE,IAAI,OAASujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,MAAM,SACrD8jC,EAAajE,GAAKiE,EAAY,CAAC,CAAC,QAASP,EAAOvjC,CAAI,EAAE,CAAC,EAAG97D,CAAO,EAAG,CAAC,OAAQq/F,EAAOvjC,CAAI,EAAE,CAAC,EAAG97D,CAAO,CAAC,CAAC,GAIzG4/F,EAAajE,GAAKiE,EAAY,CAAC,CAAC,QAASzlD,EAAOn6C,CAAO,EAAG,CAAC,QAASy/F,EAAiBz/F,CAAO,EAAG,CAAC,OAAQy/F,EAAiBz/F,CAAO,EAAG,CAAC,QAASuQ,EAAMvQ,CAAO,CAAC,CAAC,EAK5J4/F,EAAajE,GAAKiE,EAAYR,GAAWp/F,EAAQ,OAAO,WAAW,WAAW,KAAMq/F,EAAO,MAAMvjC,EAAO,EAAGzmF,CAAK,EAAG2qB,CAAO,CAAC,EAG3H4/F,EAAajE,GAAKiE,EAAY,CAAC,CAAC,OAAQrvF,EAAMvQ,CAAO,EAAG,CAAC,QAAS0/F,EAAiB1/F,CAAO,EAAG,CAAC,OAAQ0/F,EAAiB1/F,CAAO,EAAG,CAAC,OAAQm6C,EAAOn6C,CAAO,CAAC,CAAC,EAGtJq/F,EAAOhqH,CAAK,EAAE,CAAC,EAAE,IAAI,OAASgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,MAAM,QACvDioC,EAAS,EACTsiF,EAAajE,GAAKiE,EAAY,CAAC,CAAC,QAASP,EAAOhqH,CAAK,EAAE,CAAC,EAAG2qB,CAAO,EAAG,CAAC,OAAQq/F,EAAOhqH,CAAK,EAAE,CAAC,EAAG2qB,CAAO,CAAC,CAAC,GAEzGsd,EAAS,EAEXk+E,GAAO6D,EAAQvjC,EAAO,EAAGzmF,EAAQymF,EAAO,EAAG8jC,CAAU,EACrDvqH,EAAQymF,EAAO8jC,EAAW,OAAStiF,EAAS,EAC5C,KACF,EAON,IADAjoC,EAAQ,GACD,EAAEA,EAAQgqH,EAAO,QAClBA,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,sBAC5BgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,KAAO,QAG5B,OAAOgqH,CACT,CAOA,SAASG,GAAkBxoH,EAASw4G,EAAI,CACtC,MAAMsQ,EAAmB,KAAK,OAAO,WAAW,iBAAiB,KAC3DnC,EAAW,KAAK,SAChB5qF,EAASosF,GAAkBxB,CAAQ,EAGzC,IAAI1uC,EACJ,OAAOtnE,EAYP,SAASA,EAAMy0B,EAAM,CACnB,OAAA6yC,EAAS7yC,EACTplC,EAAQ,MAAM,mBAAmB,EAC1B+oH,EAAO3jF,CAAI,CACpB,CAYA,SAAS2jF,EAAO3jF,EAAM,CACpB,GAAIA,IAAS6yC,EACX,OAAAj4E,EAAQ,QAAQolC,CAAI,EACb2jF,EAET,MAAMpvC,EAAQ35E,EAAQ,KAAK,mBAAmB,EAGxCyyC,EAAQ01E,GAAkB/iF,CAAI,EAI9B0/C,EAAO,CAACryC,GAASA,IAAU,GAAK1W,GAAU+sF,EAAiB,SAAS1jF,CAAI,EACxEm/C,EAAQ,CAACxoD,GAAUA,IAAW,GAAK0W,GAASq2E,EAAiB,SAASnC,CAAQ,EACpF,OAAAhtC,EAAM,MAAQ,GAAQ1B,IAAW,GAAK6M,EAAOA,IAAS/oD,GAAU,CAACwoD,IACjE5K,EAAM,OAAS,GAAQ1B,IAAW,GAAKsM,EAAQA,IAAU9xC,GAAS,CAACqyC,IAC5D0zB,EAAGpzE,CAAI,CAChB,CACF,CAeA,SAASyjF,GAAU1I,EAAO75E,EAAQ,CAChC65E,EAAM,QAAU75E,EAChB65E,EAAM,QAAU75E,EAChB65E,EAAM,cAAgB75E,CACxB,CCrOO,MAAM0iF,GAAW,CACtB,KAAM,WACN,SAAUC,EACZ,EAOA,SAASA,GAAiBjpH,EAASw4G,EAAI0P,EAAK,CAC1C,IAAI5/E,EAAO,EACX,OAAO33B,EAcP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,UAAU,EACxBA,EAAQ,MAAM,gBAAgB,EAC9BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,gBAAgB,EAC7BA,EAAQ,MAAM,kBAAkB,EACzB8kF,CACT,CAcA,SAASA,EAAK1/C,EAAM,CAClB,OAAImgF,GAAWngF,CAAI,GACjBplC,EAAQ,QAAQolC,CAAI,EACb8jF,GAEL9jF,IAAS,GACJ8iF,EAAI9iF,CAAI,EAEV+jF,EAAW/jF,CAAI,CACxB,CAcA,SAAS8jF,EAAmB9jF,EAAM,CAEhC,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMogF,GAAkBpgF,CAAI,GAErEkD,EAAO,EACA8gF,EAAyBhkF,CAAI,GAE/B+jF,EAAW/jF,CAAI,CACxB,CAcA,SAASgkF,EAAyBhkF,EAAM,CACtC,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpBkD,EAAO,EACA+gF,IAIJjkF,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMogF,GAAkBpgF,CAAI,IAAMkD,IAAS,IACrFtoC,EAAQ,QAAQolC,CAAI,EACbgkF,IAET9gF,EAAO,EACA6gF,EAAW/jF,CAAI,EACxB,CAYA,SAASikF,EAAUjkF,EAAM,CACvB,OAAIA,IAAS,IACXplC,EAAQ,KAAK,kBAAkB,EAC/BA,EAAQ,MAAM,gBAAgB,EAC9BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,gBAAgB,EAC7BA,EAAQ,KAAK,UAAU,EAChBw4G,GAILpzE,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAMsgF,GAAatgF,CAAI,EAC3D8iF,EAAI9iF,CAAI,GAEjBplC,EAAQ,QAAQolC,CAAI,EACbikF,EACT,CAYA,SAASF,EAAW/jF,EAAM,CACxB,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbkkF,GAEL7D,GAAWrgF,CAAI,GACjBplC,EAAQ,QAAQolC,CAAI,EACb+jF,GAEFjB,EAAI9iF,CAAI,CACjB,CAYA,SAASkkF,EAAiBlkF,EAAM,CAC9B,OAAOogF,GAAkBpgF,CAAI,EAAImkF,EAAWnkF,CAAI,EAAI8iF,EAAI9iF,CAAI,CAC9D,CAYA,SAASmkF,EAAWnkF,EAAM,CACxB,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpBkD,EAAO,EACAghF,GAELlkF,IAAS,IAEXplC,EAAQ,KAAK,kBAAkB,EAAE,KAAO,gBACxCA,EAAQ,MAAM,gBAAgB,EAC9BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,gBAAgB,EAC7BA,EAAQ,KAAK,UAAU,EAChBw4G,GAEFgR,EAAWpkF,CAAI,CACxB,CAcA,SAASokF,EAAWpkF,EAAM,CAExB,IAAKA,IAAS,IAAMogF,GAAkBpgF,CAAI,IAAMkD,IAAS,GAAI,CAC3D,MAAMxmC,EAAOsjC,IAAS,GAAKokF,EAAaD,EACxC,OAAAvpH,EAAQ,QAAQolC,CAAI,EACbtjC,CACT,CACA,OAAOomH,EAAI9iF,CAAI,CACjB,CACF,CC5NO,MAAMqkF,GAAY,CACvB,QAAS,GACT,SAAUC,EACZ,EAOA,SAASA,GAAkB1pH,EAASw4G,EAAI0P,EAAK,CAC3C,OAAOv3G,EAgBP,SAASA,EAAMy0B,EAAM,CACnB,OAAO4gF,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAASyyC,EAAO,YAAY,EAAErN,CAAI,EAAIqN,EAAMrN,CAAI,CAC5F,CAgBA,SAASqN,EAAMrN,EAAM,CACnB,OAAOA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,EAAIozE,EAAGpzE,CAAI,EAAI8iF,EAAI9iF,CAAI,CACxE,CACF,CC/CO,MAAMukF,GAAa,CACxB,aAAc,CACZ,SAAUC,EACd,EACA,KAAEC,GACA,KAAM,aACN,SAAUC,EACZ,EAOA,SAASA,GAAwB9pH,EAASw4G,EAAI0P,EAAK,CACjD,MAAMliH,EAAO,KACb,OAAO2K,EAYP,SAASA,EAAMy0B,EAAM,CACnB,GAAIA,IAAS,GAAI,CACf,MAAMjrB,EAAQnU,EAAK,eACnB,OAAKmU,EAAM,OACTna,EAAQ,MAAM,aAAc,CAC1B,WAAY,EACtB,CAAS,EACDma,EAAM,KAAO,IAEfna,EAAQ,MAAM,kBAAkB,EAChCA,EAAQ,MAAM,kBAAkB,EAChCA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,kBAAkB,EACxByyC,CACT,CACA,OAAOy1E,EAAI9iF,CAAI,CACjB,CAYA,SAASqN,EAAMrN,EAAM,CACnB,OAAI4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,MAAM,4BAA4B,EAC1CA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,4BAA4B,EACzCA,EAAQ,KAAK,kBAAkB,EACxBw4G,IAETx4G,EAAQ,KAAK,kBAAkB,EACxBw4G,EAAGpzE,CAAI,EAChB,CACF,CAeA,SAASwkF,GAA+B5pH,EAASw4G,EAAI0P,EAAK,CACxD,MAAMliH,EAAO,KACb,OAAO+jH,EAeP,SAASA,EAAU3kF,EAAM,CACvB,OAAI4gF,GAAc5gF,CAAI,EAGbkhF,GAAatmH,EAASgqH,EAAY,aAAchkH,EAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,EAAI,OAAY,CAAC,EAAEo/B,CAAI,EAEpI4kF,EAAW5kF,CAAI,CACxB,CAeA,SAAS4kF,EAAW5kF,EAAM,CACxB,OAAOplC,EAAQ,QAAQ2pH,GAAYnR,EAAI0P,CAAG,EAAE9iF,CAAI,CAClD,CACF,CAGA,SAASykF,GAAK7pH,EAAS,CACrBA,EAAQ,KAAK,YAAY,CAC3B,CCnIO,MAAMiqH,GAAkB,CAC7B,KAAM,kBACN,SAAUC,EACZ,EAOA,SAASA,GAAwBlqH,EAASw4G,EAAI0P,EAAK,CACjD,OAAOv3G,EAYP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,MAAM,cAAc,EAC5BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,cAAc,EACpB+oH,CACT,CAYA,SAASA,EAAO3jF,EAAM,CAEpB,OAAIygF,GAAiBzgF,CAAI,GACvBplC,EAAQ,MAAM,sBAAsB,EACpCA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,sBAAsB,EACnCA,EAAQ,KAAK,iBAAiB,EACvBw4G,GAEF0P,EAAI9iF,CAAI,CACjB,CACF,CClDO,MAAMm/E,GAAqB,CAChC,KAAM,qBACN,SAAU4F,EACZ,EAOA,SAASA,GAA2BnqH,EAASw4G,EAAI0P,EAAK,CACpD,MAAMliH,EAAO,KACb,IAAIsiC,EAAO,EAEP2B,EAEAgqB,EACJ,OAAOtjD,EAgBP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,oBAAoB,EAClCA,EAAQ,MAAM,0BAA0B,EACxCA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,0BAA0B,EAChC8kF,CACT,CAiBA,SAASA,EAAK1/C,EAAM,CAClB,OAAIA,IAAS,IACXplC,EAAQ,MAAM,iCAAiC,EAC/CA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,iCAAiC,EACvCk6E,IAETl6E,EAAQ,MAAM,yBAAyB,EACvCiqC,EAAM,GACNgqB,EAAOuxD,GACA7qH,EAAMyqC,CAAI,EACnB,CAcA,SAAS80C,EAAQ90C,EAAM,CACrB,OAAIA,IAAS,IAAMA,IAAS,KAC1BplC,EAAQ,MAAM,qCAAqC,EACnDA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,qCAAqC,EAClDA,EAAQ,MAAM,yBAAyB,EACvCiqC,EAAM,EACNgqB,EAAO2xD,GACAjrH,IAETqF,EAAQ,MAAM,yBAAyB,EACvCiqC,EAAM,EACNgqB,EAAO0xD,GACAhrH,EAAMyqC,CAAI,EACnB,CAmBA,SAASzqC,EAAMyqC,EAAM,CACnB,GAAIA,IAAS,IAAMkD,EAAM,CACvB,MAAMqxC,EAAQ35E,EAAQ,KAAK,yBAAyB,EACpD,OAAIi0D,IAASuxD,IAAqB,CAAClB,GAA8Bt+G,EAAK,eAAe2zE,CAAK,CAAC,EAClFuuC,EAAI9iF,CAAI,GAKjBplC,EAAQ,MAAM,0BAA0B,EACxCA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,0BAA0B,EACvCA,EAAQ,KAAK,oBAAoB,EAC1Bw4G,EACT,CACA,OAAIvkD,EAAK7uB,CAAI,GAAKkD,IAAS2B,GACzBjqC,EAAQ,QAAQolC,CAAI,EACbzqC,GAEFutH,EAAI9iF,CAAI,CACjB,CACF,CCvIA,MAAMglF,GAAsB,CAC1B,QAAS,GACT,SAAUC,EACZ,EAGaC,GAAa,CACxB,SAAU,GACV,KAAM,aACN,SAAUC,EACZ,EAOA,SAASA,GAAmBvqH,EAASw4G,EAAI0P,EAAK,CAC5C,MAAMliH,EAAO,KAEPwkH,EAAa,CACjB,QAAS,GACT,SAAUC,CACd,EACE,IAAIC,EAAgB,EAChBC,EAAW,EAEX1yC,EACJ,OAAOtnE,EAcP,SAASA,EAAMy0B,EAAM,CAEnB,OAAOwlF,EAAmBxlF,CAAI,CAChC,CAcA,SAASwlF,EAAmBxlF,EAAM,CAChC,MAAMljC,EAAO8D,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAC/C,OAAA0kH,EAAgBxoH,GAAQA,EAAK,CAAC,EAAE,OAAS,aAAeA,EAAK,CAAC,EAAE,eAAeA,EAAK,CAAC,EAAG,EAAI,EAAE,OAAS,EACvG+1E,EAAS7yC,EACTplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,MAAM,yBAAyB,EAChC6qH,EAAazlF,CAAI,CAC1B,CAcA,SAASylF,EAAazlF,EAAM,CAC1B,OAAIA,IAAS6yC,GACX0yC,IACA3qH,EAAQ,QAAQolC,CAAI,EACbylF,GAELF,EAAW,EACNzC,EAAI9iF,CAAI,GAEjBplC,EAAQ,KAAK,yBAAyB,EAC/BgmH,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAAS8qH,EAAY,YAAY,EAAE1lF,CAAI,EAAI0lF,EAAW1lF,CAAI,EACtG,CAcA,SAAS0lF,EAAW1lF,EAAM,CACxB,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,iBAAiB,EACvBgG,EAAK,UAAYwyG,EAAGpzE,CAAI,EAAIplC,EAAQ,MAAMoqH,GAAqBW,EAAgBt4E,CAAK,EAAErN,CAAI,IAEnGplC,EAAQ,MAAM,qBAAqB,EACnCA,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACMg8G,EAAK52E,CAAI,EAClB,CAcA,SAAS42E,EAAK52E,EAAM,CAClB,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAK,qBAAqB,EAC3B8qH,EAAW1lF,CAAI,GAEpB4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAK,qBAAqB,EAC3BsmH,GAAatmH,EAASgrH,EAAY,YAAY,EAAE5lF,CAAI,GAEzDA,IAAS,IAAMA,IAAS6yC,EACnBiwC,EAAI9iF,CAAI,GAEjBplC,EAAQ,QAAQolC,CAAI,EACb42E,EACT,CAcA,SAASgP,EAAW5lF,EAAM,CACxB,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,EACnC0lF,EAAW1lF,CAAI,GAExBplC,EAAQ,MAAM,qBAAqB,EACnCA,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACMokG,EAAKh/D,CAAI,EAClB,CAcA,SAASg/D,EAAKh/D,EAAM,CAClB,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAK,qBAAqB,EAC3B8qH,EAAW1lF,CAAI,GAEpBA,IAAS,IAAMA,IAAS6yC,EACnBiwC,EAAI9iF,CAAI,GAEjBplC,EAAQ,QAAQolC,CAAI,EACbg/D,EACT,CAeA,SAAS2mB,EAAe3lF,EAAM,CAC5B,OAAOplC,EAAQ,QAAQwqH,EAAY/3E,EAAOw4E,CAAa,EAAE7lF,CAAI,CAC/D,CAcA,SAAS6lF,EAAc7lF,EAAM,CAC3B,OAAAplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClBwmH,CACT,CAcA,SAASA,EAAaphF,EAAM,CAC1B,OAAOslF,EAAgB,GAAK1E,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAASkrH,EAAoB,aAAcR,EAAgB,CAAC,EAAEtlF,CAAI,EAAI8lF,EAAmB9lF,CAAI,CAC9J,CAcA,SAAS8lF,EAAmB9lF,EAAM,CAChC,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,EACnCplC,EAAQ,MAAMoqH,GAAqBW,EAAgBt4E,CAAK,EAAErN,CAAI,GAEvEplC,EAAQ,MAAM,eAAe,EACtBmrH,EAAa/lF,CAAI,EAC1B,CAcA,SAAS+lF,EAAa/lF,EAAM,CAC1B,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,eAAe,EACrBkrH,EAAmB9lF,CAAI,IAEhCplC,EAAQ,QAAQolC,CAAI,EACb+lF,EACT,CAcA,SAAS14E,EAAMrN,EAAM,CACnB,OAAAplC,EAAQ,KAAK,YAAY,EAClBw4G,EAAGpzE,CAAI,CAChB,CAOA,SAASqlF,EAAmBzqH,EAASw4G,EAAI0P,EAAK,CAC5C,IAAI5/E,EAAO,EACX,OAAO8iF,EAOP,SAASA,EAAYhmF,EAAM,CACzB,OAAAplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClB2Q,CACT,CAcA,SAASA,EAAMy0B,EAAM,CAInB,OAAAplC,EAAQ,MAAM,iBAAiB,EACxBgmH,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAASqrH,EAAqB,aAAcrlH,EAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,EAAI,OAAY,CAAC,EAAEo/B,CAAI,EAAIimF,EAAoBjmF,CAAI,CACtM,CAcA,SAASimF,EAAoBjmF,EAAM,CACjC,OAAIA,IAAS6yC,GACXj4E,EAAQ,MAAM,yBAAyB,EAChCsrH,EAAclmF,CAAI,GAEpB8iF,EAAI9iF,CAAI,CACjB,CAcA,SAASkmF,EAAclmF,EAAM,CAC3B,OAAIA,IAAS6yC,GACX3vC,IACAtoC,EAAQ,QAAQolC,CAAI,EACbkmF,GAELhjF,GAAQqiF,GACV3qH,EAAQ,KAAK,yBAAyB,EAC/BgmH,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAASurH,EAAoB,YAAY,EAAEnmF,CAAI,EAAImmF,EAAmBnmF,CAAI,GAE/G8iF,EAAI9iF,CAAI,CACjB,CAcA,SAASmmF,EAAmBnmF,EAAM,CAChC,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,iBAAiB,EACvBw4G,EAAGpzE,CAAI,GAET8iF,EAAI9iF,CAAI,CACjB,CACF,CACF,CAOA,SAASilF,GAA4BrqH,EAASw4G,EAAI0P,EAAK,CACrD,MAAMliH,EAAO,KACb,OAAO2K,EAOP,SAASA,EAAMy0B,EAAM,CACnB,OAAIA,IAAS,KACJ8iF,EAAI9iF,CAAI,GAEjBplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClB4mH,EACT,CAOA,SAASA,EAAUxhF,EAAM,CACvB,OAAOp/B,EAAK,OAAO,KAAKA,EAAK,IAAG,EAAG,IAAI,EAAIkiH,EAAI9iF,CAAI,EAAIozE,EAAGpzE,CAAI,CAChE,CACF,CC/bO,MAAMomF,GAAe,CAC1B,KAAM,eACN,SAAUC,EACZ,EAGMC,GAAe,CACnB,QAAS,GACT,SAAUC,EACZ,EAOA,SAASF,GAAqBzrH,EAASw4G,EAAI0P,EAAK,CAC9C,MAAMliH,EAAO,KACb,OAAO2K,EAgBP,SAASA,EAAMy0B,EAAM,CAGnB,OAAAplC,EAAQ,MAAM,cAAc,EAGrBsmH,GAAatmH,EAAS4rH,EAAa,aAAc,CAAK,EAAExmF,CAAI,CACrE,CAYA,SAASwmF,EAAYxmF,EAAM,CACzB,MAAMljC,EAAO8D,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAC/C,OAAO9D,GAAQA,EAAK,CAAC,EAAE,OAAS,cAAgBA,EAAK,CAAC,EAAE,eAAeA,EAAK,CAAC,EAAG,EAAI,EAAE,QAAU,EAAI2pH,EAAQzmF,CAAI,EAAI8iF,EAAI9iF,CAAI,CAC9H,CAYA,SAASymF,EAAQzmF,EAAM,CACrB,OAAIA,IAAS,KACJqN,EAAMrN,CAAI,EAEf0gF,GAAmB1gF,CAAI,EAClBplC,EAAQ,QAAQ0rH,GAAcG,EAASp5E,CAAK,EAAErN,CAAI,GAE3DplC,EAAQ,MAAM,eAAe,EACtB+oH,EAAO3jF,CAAI,EACpB,CAYA,SAAS2jF,EAAO3jF,EAAM,CACpB,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,eAAe,EACrB6rH,EAAQzmF,CAAI,IAErBplC,EAAQ,QAAQolC,CAAI,EACb2jF,EACT,CAGA,SAASt2E,EAAMrN,EAAM,CACnB,OAAAplC,EAAQ,KAAK,cAAc,EAIpBw4G,EAAGpzE,CAAI,CAChB,CACF,CAOA,SAASumF,GAAqB3rH,EAASw4G,EAAI0P,EAAK,CAC9C,MAAMliH,EAAO,KACb,OAAO0lH,EAaP,SAASA,EAAatmF,EAAM,CAG1B,OAAIp/B,EAAK,OAAO,KAAKA,EAAK,IAAG,EAAG,IAAI,EAC3BkiH,EAAI9iF,CAAI,EAEb0gF,GAAmB1gF,CAAI,GACzBplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClB0rH,GASFpF,GAAatmH,EAAS4rH,EAAa,aAAc,CAAK,EAAExmF,CAAI,CACrE,CAYA,SAASwmF,EAAYxmF,EAAM,CACzB,MAAMljC,EAAO8D,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAC/C,OAAO9D,GAAQA,EAAK,CAAC,EAAE,OAAS,cAAgBA,EAAK,CAAC,EAAE,eAAeA,EAAK,CAAC,EAAG,EAAI,EAAE,QAAU,EAAIs2G,EAAGpzE,CAAI,EAAI0gF,GAAmB1gF,CAAI,EAAIsmF,EAAatmF,CAAI,EAAI8iF,EAAI9iF,CAAI,CACzK,CACF,CClKO,MAAM0mF,GAAW,CACtB,KAAM,WACR,SAAEnF,GACA,QAASoF,GACT,SAAUC,EACZ,EAIA,SAASD,GAAgB1D,EAAQ,CAC/B,IAAI4D,EAAgB5D,EAAO,OAAS,EAChC6D,EAAiB,EAEjB7tH,EAEA8tH,EAGJ,IAAK9D,EAAO6D,CAAc,EAAE,CAAC,EAAE,OAAS,cAAgB7D,EAAO6D,CAAc,EAAE,CAAC,EAAE,OAAS,WAAa7D,EAAO4D,CAAa,EAAE,CAAC,EAAE,OAAS,cAAgB5D,EAAO4D,CAAa,EAAE,CAAC,EAAE,OAAS,UAI1L,IAHA5tH,EAAQ6tH,EAGD,EAAE7tH,EAAQ4tH,GACf,GAAI5D,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,eAAgB,CAE5CgqH,EAAO6D,CAAc,EAAE,CAAC,EAAE,KAAO,kBACjC7D,EAAO4D,CAAa,EAAE,CAAC,EAAE,KAAO,kBAChCC,GAAkB,EAClBD,GAAiB,EACjB,KACF,EAOJ,IAFA5tH,EAAQ6tH,EAAiB,EACzBD,IACO,EAAE5tH,GAAS4tH,GACZE,IAAU,OACR9tH,IAAU4tH,GAAiB5D,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,eACvD8tH,EAAQ9tH,IAEDA,IAAU4tH,GAAiB5D,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,gBAC9DgqH,EAAO8D,CAAK,EAAE,CAAC,EAAE,KAAO,eACpB9tH,IAAU8tH,EAAQ,IACpB9D,EAAO8D,CAAK,EAAE,CAAC,EAAE,IAAM9D,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,IAC5CgqH,EAAO,OAAO8D,EAAQ,EAAG9tH,EAAQ8tH,EAAQ,CAAC,EAC1CF,GAAiB5tH,EAAQ8tH,EAAQ,EACjC9tH,EAAQ8tH,EAAQ,GAElBA,EAAQ,QAGZ,OAAO9D,CACT,CAOA,SAAS1B,GAASvhF,EAAM,CAEtB,OAAOA,IAAS,IAAM,KAAK,OAAO,KAAK,OAAO,OAAS,CAAC,EAAE,CAAC,EAAE,OAAS,iBACxE,CAOA,SAAS4mF,GAAiBhsH,EAASw4G,EAAI0P,EAAK,CAE1C,IAAIyC,EAAW,EAEXriF,EAEAqxC,EACJ,OAAOhpE,EAcP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,UAAU,EACxBA,EAAQ,MAAM,kBAAkB,EACzB6qH,EAAazlF,CAAI,CAC1B,CAYA,SAASylF,EAAazlF,EAAM,CAC1B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpBulF,IACOE,IAET7qH,EAAQ,KAAK,kBAAkB,EACxBosH,EAAQhnF,CAAI,EACrB,CAYA,SAASgnF,EAAQhnF,EAAM,CAErB,OAAIA,IAAS,KACJ8iF,EAAI9iF,CAAI,EAMbA,IAAS,IACXplC,EAAQ,MAAM,OAAO,EACrBA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,OAAO,EACbosH,GAILhnF,IAAS,IACXu0C,EAAQ35E,EAAQ,MAAM,kBAAkB,EACxCsoC,EAAO,EACAgjF,EAAclmF,CAAI,GAEvB0gF,GAAmB1gF,CAAI,GACzBplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClBosH,IAITpsH,EAAQ,MAAM,cAAc,EACrB8jB,EAAKshB,CAAI,EAClB,CAYA,SAASthB,EAAKshB,EAAM,CAClB,OAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAM0gF,GAAmB1gF,CAAI,GACxEplC,EAAQ,KAAK,cAAc,EACpBosH,EAAQhnF,CAAI,IAErBplC,EAAQ,QAAQolC,CAAI,EACbthB,EACT,CAYA,SAASwnG,EAAclmF,EAAM,CAE3B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpBkD,IACOgjF,GAILhjF,IAASqiF,GACX3qH,EAAQ,KAAK,kBAAkB,EAC/BA,EAAQ,KAAK,UAAU,EAChBw4G,EAAGpzE,CAAI,IAIhBu0C,EAAM,KAAO,eACN71D,EAAKshB,CAAI,EAClB,CACF,CCnMO,MAAMinF,EAAa,CAOxB,YAAYC,EAAS,CAEnB,KAAK,KAAOA,EAAU,CAAC,GAAGA,CAAO,EAAI,GAErC,KAAK,MAAQ,EACf,CAWA,IAAIjuH,EAAO,CACT,GAAIA,EAAQ,GAAKA,GAAS,KAAK,KAAK,OAAS,KAAK,MAAM,OACtD,MAAM,IAAI,WAAW,wBAA0BA,EAAQ,kCAAoC,KAAK,KAAK,OAAS,KAAK,MAAM,QAAU,GAAG,EAExI,OAAIA,EAAQ,KAAK,KAAK,OAAe,KAAK,KAAKA,CAAK,EAC7C,KAAK,MAAM,KAAK,MAAM,OAASA,EAAQ,KAAK,KAAK,OAAS,CAAC,CACpE,CAMA,IAAI,QAAS,CACX,OAAO,KAAK,KAAK,OAAS,KAAK,MAAM,MACvC,CASA,OAAQ,CACN,YAAK,UAAU,CAAC,EACT,KAAK,MAAM,IAAG,CACvB,CAaA,MAAMsS,EAAOC,EAAK,CAEhB,MAAM+kD,EAAO/kD,GAAoC,OAAO,kBACxD,OAAI+kD,EAAO,KAAK,KAAK,OACZ,KAAK,KAAK,MAAMhlD,EAAOglD,CAAI,EAEhChlD,EAAQ,KAAK,KAAK,OACb,KAAK,MAAM,MAAM,KAAK,MAAM,OAASglD,EAAO,KAAK,KAAK,OAAQ,KAAK,MAAM,OAAShlD,EAAQ,KAAK,KAAK,MAAM,EAAE,QAAO,EAErH,KAAK,KAAK,MAAMA,CAAK,EAAE,OAAO,KAAK,MAAM,MAAM,KAAK,MAAM,OAASglD,EAAO,KAAK,KAAK,MAAM,EAAE,SAAS,CAC9G,CAsBA,OAAOhlD,EAAO47G,EAAa9H,EAAO,CAEhC,MAAM3rD,EAAQyzD,GAAe,EAC7B,KAAK,UAAU,KAAK,MAAM57G,CAAK,CAAC,EAChC,MAAMu2C,EAAU,KAAK,MAAM,OAAO,KAAK,MAAM,OAAS4R,EAAO,OAAO,iBAAiB,EACrF,OAAI2rD,GAAO+H,GAAY,KAAK,KAAM/H,CAAK,EAChCv9D,EAAQ,QAAO,CACxB,CAUA,KAAM,CACJ,YAAK,UAAU,OAAO,iBAAiB,EAChC,KAAK,KAAK,IAAG,CACtB,CAWA,KAAKzqD,EAAM,CACT,KAAK,UAAU,OAAO,iBAAiB,EACvC,KAAK,KAAK,KAAKA,CAAI,CACrB,CAWA,SAASgoH,EAAO,CACd,KAAK,UAAU,OAAO,iBAAiB,EACvC+H,GAAY,KAAK,KAAM/H,CAAK,CAC9B,CAWA,QAAQhoH,EAAM,CACZ,KAAK,UAAU,CAAC,EAChB,KAAK,MAAM,KAAKA,CAAI,CACtB,CAWA,YAAYgoH,EAAO,CACjB,KAAK,UAAU,CAAC,EAChB+H,GAAY,KAAK,MAAO/H,EAAM,QAAO,CAAE,CACzC,CAcA,UAAUtoH,EAAG,CACX,GAAI,EAAAA,IAAM,KAAK,KAAK,QAAUA,EAAI,KAAK,KAAK,QAAU,KAAK,MAAM,SAAW,GAAKA,EAAI,GAAK,KAAK,KAAK,SAAW,GAC/G,GAAIA,EAAI,KAAK,KAAK,OAAQ,CAExB,MAAM+qD,EAAU,KAAK,KAAK,OAAO/qD,EAAG,OAAO,iBAAiB,EAC5DqwH,GAAY,KAAK,MAAOtlE,EAAQ,QAAO,CAAE,CAC3C,KAAO,CAEL,MAAMA,EAAU,KAAK,MAAM,OAAO,KAAK,KAAK,OAAS,KAAK,MAAM,OAAS/qD,EAAG,OAAO,iBAAiB,EACpGqwH,GAAY,KAAK,KAAMtlE,EAAQ,QAAO,CAAE,CAC1C,CACF,CACF,CAcA,SAASslE,GAAYrjF,EAAM87E,EAAO,CAEhC,IAAIP,EAAa,EACjB,GAAIO,EAAM,OAAS,IACjB97E,EAAK,KAAK,GAAG87E,CAAK,MAElB,MAAOP,EAAaO,EAAM,QACxB97E,EAAK,KAAK,GAAG87E,EAAM,MAAMP,EAAYA,EAAa,GAAK,CAAC,EACxDA,GAAc,GAGpB,CCvOO,SAAS+H,GAAYC,EAAa,CAEvC,MAAMC,EAAQ,GACd,IAAItuH,EAAQ,GAERosB,EAEAmiG,EAEAC,EAEAC,EAEA9U,EAEA+U,EAEAC,EACJ,MAAM3E,EAAS,IAAIgE,GAAaK,CAAW,EAC3C,KAAO,EAAEruH,EAAQgqH,EAAO,QAAQ,CAC9B,KAAOhqH,KAASsuH,GACdtuH,EAAQsuH,EAAMtuH,CAAK,EAMrB,GAJAosB,EAAQ49F,EAAO,IAAIhqH,CAAK,EAIpBA,GAASosB,EAAM,CAAC,EAAE,OAAS,aAAe49F,EAAO,IAAIhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,OAAS,mBAC9E0uH,EAAYtiG,EAAM,CAAC,EAAE,WAAW,OAChCoiG,EAAa,EACTA,EAAaE,EAAU,QAAUA,EAAUF,CAAU,EAAE,CAAC,EAAE,OAAS,oBACrEA,GAAc,GAEZA,EAAaE,EAAU,QAAUA,EAAUF,CAAU,EAAE,CAAC,EAAE,OAAS,WACrE,KAAO,EAAEA,EAAaE,EAAU,QAC1BA,EAAUF,CAAU,EAAE,CAAC,EAAE,OAAS,WAGlCE,EAAUF,CAAU,EAAE,CAAC,EAAE,OAAS,cACpCE,EAAUF,CAAU,EAAE,CAAC,EAAE,4BAA8B,GACvDA,KAOR,GAAIpiG,EAAM,CAAC,IAAM,QACXA,EAAM,CAAC,EAAE,cACX,OAAO,OAAOkiG,EAAOM,GAAW5E,EAAQhqH,CAAK,CAAC,EAC9CA,EAAQsuH,EAAMtuH,CAAK,EACnB2uH,EAAO,YAIFviG,EAAM,CAAC,EAAE,WAAY,CAG5B,IAFAoiG,EAAaxuH,EACbuuH,EAAY,OACLC,KAEL,GADAC,EAAazE,EAAO,IAAIwE,CAAU,EAC9BC,EAAW,CAAC,EAAE,OAAS,cAAgBA,EAAW,CAAC,EAAE,OAAS,kBAC5DA,EAAW,CAAC,IAAM,UAChBF,IACFvE,EAAO,IAAIuE,CAAS,EAAE,CAAC,EAAE,KAAO,mBAElCE,EAAW,CAAC,EAAE,KAAO,aACrBF,EAAYC,WAEL,EAAAC,EAAW,CAAC,EAAE,OAAS,cAAgBA,EAAW,CAAC,EAAE,OAAS,kBAGvE,MAGAF,IAEFniG,EAAM,CAAC,EAAE,IAAM,CACb,GAAG49F,EAAO,IAAIuE,CAAS,EAAE,CAAC,EAAE,KACtC,EAGQ5U,EAAaqQ,EAAO,MAAMuE,EAAWvuH,CAAK,EAC1C25G,EAAW,QAAQvtF,CAAK,EACxB49F,EAAO,OAAOuE,EAAWvuH,EAAQuuH,EAAY,EAAG5U,CAAU,EAE9D,CACF,CAGAwM,UAAOkI,EAAa,EAAG,OAAO,kBAAmBrE,EAAO,MAAM,CAAC,CAAC,EACzD,CAAC2E,CACV,CAYA,SAASC,GAAW5E,EAAQ6E,EAAY,CACtC,MAAMvzC,EAAQ0uC,EAAO,IAAI6E,CAAU,EAAE,CAAC,EAChClkG,EAAUq/F,EAAO,IAAI6E,CAAU,EAAE,CAAC,EACxC,IAAIC,EAAgBD,EAAa,EAEjC,MAAME,EAAiB,GACvB,IAAIC,EAAY1zC,EAAM,WACjB0zC,IACHA,EAAYrkG,EAAQ,OAAO2wD,EAAM,WAAW,EAAEA,EAAM,KAAK,EACrDA,EAAM,2BACR0zC,EAAU,yBAA2B,KAGzC,MAAMC,EAAcD,EAAU,OAExBV,EAAQ,GAERY,EAAO,GAEb,IAAI/pB,EAEAmjB,EACAtoH,EAAQ,GAER6B,EAAUy5E,EACV6zC,EAAS,EACT78G,EAAQ,EACZ,MAAM88G,EAAS,CAAC98G,CAAK,EAIrB,KAAOzQ,GAAS,CAEd,KAAOmoH,EAAO,IAAI,EAAE8E,CAAa,EAAE,CAAC,IAAMjtH,GAAS,CAGnDktH,EAAe,KAAKD,CAAa,EAC5BjtH,EAAQ,aACXsjG,EAASx6E,EAAQ,YAAY9oB,CAAO,EAC/BA,EAAQ,MACXsjG,EAAO,KAAK,IAAI,EAEdmjB,GACF0G,EAAU,WAAWntH,EAAQ,KAAK,EAEhCA,EAAQ,8BACVmtH,EAAU,mCAAqC,IAEjDA,EAAU,MAAM7pB,CAAM,EAClBtjG,EAAQ,8BACVmtH,EAAU,mCAAqC,SAKnD1G,EAAWzmH,EACXA,EAAUA,EAAQ,IACpB,CAKA,IADAA,EAAUy5E,EACH,EAAEt7E,EAAQivH,EAAY,QAG3BA,EAAYjvH,CAAK,EAAE,CAAC,IAAM,QAAUivH,EAAYjvH,EAAQ,CAAC,EAAE,CAAC,IAAM,SAAWivH,EAAYjvH,CAAK,EAAE,CAAC,EAAE,OAASivH,EAAYjvH,EAAQ,CAAC,EAAE,CAAC,EAAE,MAAQivH,EAAYjvH,CAAK,EAAE,CAAC,EAAE,MAAM,OAASivH,EAAYjvH,CAAK,EAAE,CAAC,EAAE,IAAI,OAC3MsS,EAAQtS,EAAQ,EAChBovH,EAAO,KAAK98G,CAAK,EAEjBzQ,EAAQ,WAAa,OACrBA,EAAQ,SAAW,OACnBA,EAAUA,EAAQ,MAqBtB,IAhBAmtH,EAAU,OAAS,GAKfntH,GAEFA,EAAQ,WAAa,OACrBA,EAAQ,SAAW,QAEnButH,EAAO,IAAG,EAKZpvH,EAAQovH,EAAO,OACRpvH,KAAS,CACd,MAAMqvH,EAAQJ,EAAY,MAAMG,EAAOpvH,CAAK,EAAGovH,EAAOpvH,EAAQ,CAAC,CAAC,EAC1DsS,EAAQy8G,EAAe,IAAG,EAChCT,EAAM,KAAK,CAACh8G,EAAOA,EAAQ+8G,EAAM,OAAS,CAAC,CAAC,EAC5CrF,EAAO,OAAO13G,EAAO,EAAG+8G,CAAK,CAC/B,CAGA,IAFAf,EAAM,QAAO,EACbtuH,EAAQ,GACD,EAAEA,EAAQsuH,EAAM,QACrBY,EAAKC,EAASb,EAAMtuH,CAAK,EAAE,CAAC,CAAC,EAAImvH,EAASb,EAAMtuH,CAAK,EAAE,CAAC,EACxDmvH,GAAUb,EAAMtuH,CAAK,EAAE,CAAC,EAAIsuH,EAAMtuH,CAAK,EAAE,CAAC,EAAI,EAEhD,OAAOkvH,CACT,CCjNO,MAAMzxF,GAAU,CACrB,QAAS6xF,GACT,SAAUC,EACZ,EAGMC,GAAwB,CAC5B,QAAS,GACT,SAAUC,EACZ,EAQA,SAASH,GAAetF,EAAQ,CAC9B,OAAAoE,GAAYpE,CAAM,EACXA,CACT,CAOA,SAASuF,GAAgB5tH,EAASw4G,EAAI,CAEpC,IAAImO,EACJ,OAAOjC,EAYP,SAASA,EAAWt/E,EAAM,CACxB,OAAAplC,EAAQ,MAAM,SAAS,EACvB2mH,EAAW3mH,EAAQ,MAAM,eAAgB,CACvC,YAAa,SACnB,CAAK,EACM+tH,EAAY3oF,CAAI,CACzB,CAYA,SAAS2oF,EAAY3oF,EAAM,CACzB,OAAIA,IAAS,KACJ4oF,EAAW5oF,CAAI,EAKpB0gF,GAAmB1gF,CAAI,EAClBplC,EAAQ,MAAM6tH,GAAuBI,EAAiBD,CAAU,EAAE5oF,CAAI,GAI/EplC,EAAQ,QAAQolC,CAAI,EACb2oF,EACT,CAOA,SAASC,EAAW5oF,EAAM,CACxB,OAAAplC,EAAQ,KAAK,cAAc,EAC3BA,EAAQ,KAAK,SAAS,EACfw4G,EAAGpzE,CAAI,CAChB,CAOA,SAAS6oF,EAAgB7oF,EAAM,CAC7B,OAAAplC,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,cAAc,EAC3B2mH,EAAS,KAAO3mH,EAAQ,MAAM,eAAgB,CAC5C,YAAa,UACb,SAAA2mH,CACN,CAAK,EACDA,EAAWA,EAAS,KACboH,CACT,CACF,CAOA,SAASD,GAAqB9tH,EAASw4G,EAAI0P,EAAK,CAC9C,MAAMliH,EAAO,KACb,OAAOkoH,EAOP,SAASA,EAAe9oF,EAAM,CAC5B,OAAAplC,EAAQ,KAAK,cAAc,EAC3BA,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClBsmH,GAAatmH,EAASwhC,EAAU,YAAY,CACrD,CAOA,SAASA,EAAS4D,EAAM,CACtB,GAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,EAC1C,OAAO8iF,EAAI9iF,CAAI,EAKjB,MAAMljC,EAAO8D,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAC/C,MAAI,CAACA,EAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,GAAK9D,GAAQA,EAAK,CAAC,EAAE,OAAS,cAAgBA,EAAK,CAAC,EAAE,eAAeA,EAAK,CAAC,EAAG,EAAI,EAAE,QAAU,EACrJs2G,EAAGpzE,CAAI,EAETplC,EAAQ,UAAUgG,EAAK,OAAO,WAAW,KAAMkiH,EAAK1P,CAAE,EAAEpzE,CAAI,CACrE,CACF,CCxHO,SAAS+oF,GAAmBnuH,EAASw4G,EAAI0P,EAAKrkH,EAAMuqH,EAAaC,EAAmBrkH,EAASskH,EAAYrkF,EAAK,CACnH,MAAMsD,EAAQtD,GAAO,OAAO,kBAC5B,IAAIskF,EAAU,EACd,OAAO59G,EAcP,SAASA,EAAMy0B,EAAM,CACnB,OAAIA,IAAS,IACXplC,EAAQ,MAAM6D,CAAI,EAClB7D,EAAQ,MAAMouH,CAAW,EACzBpuH,EAAQ,MAAMquH,CAAiB,EAC/BruH,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAKquH,CAAiB,EACvBG,GAILppF,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAMsgF,GAAatgF,CAAI,EAC3D8iF,EAAI9iF,CAAI,GAEjBplC,EAAQ,MAAM6D,CAAI,EAClB7D,EAAQ,MAAMgK,CAAO,EACrBhK,EAAQ,MAAMsuH,CAAU,EACxBtuH,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACM4E,EAAIwgC,CAAI,EACjB,CAYA,SAASopF,EAAeppF,EAAM,CAC5B,OAAIA,IAAS,IACXplC,EAAQ,MAAMquH,CAAiB,EAC/BruH,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAKquH,CAAiB,EAC9BruH,EAAQ,KAAKouH,CAAW,EACxBpuH,EAAQ,KAAK6D,CAAI,EACV20G,IAETx4G,EAAQ,MAAMsuH,CAAU,EACxBtuH,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACMyuH,EAASrpF,CAAI,EACtB,CAYA,SAASqpF,EAASrpF,EAAM,CACtB,OAAIA,IAAS,IACXplC,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAKsuH,CAAU,EAChBE,EAAeppF,CAAI,GAExBA,IAAS,MAAQA,IAAS,IAAM0gF,GAAmB1gF,CAAI,EAClD8iF,EAAI9iF,CAAI,GAEjBplC,EAAQ,QAAQolC,CAAI,EACbA,IAAS,GAAKspF,EAAiBD,EACxC,CAYA,SAASC,EAAetpF,EAAM,CAC5B,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IACzCplC,EAAQ,QAAQolC,CAAI,EACbqpF,GAEFA,EAASrpF,CAAI,CACtB,CAYA,SAASxgC,EAAIwgC,EAAM,CACjB,MAAI,CAACmpF,IAAYnpF,IAAS,MAAQA,IAAS,IAAM2gF,GAA0B3gF,CAAI,IAC7EplC,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAKsuH,CAAU,EACvBtuH,EAAQ,KAAKgK,CAAO,EACpBhK,EAAQ,KAAK6D,CAAI,EACV20G,EAAGpzE,CAAI,GAEZmpF,EAAUhhF,GAASnI,IAAS,IAC9BplC,EAAQ,QAAQolC,CAAI,EACpBmpF,IACO3pH,GAELwgC,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpBmpF,IACO3pH,GAMLwgC,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAMsgF,GAAatgF,CAAI,EAC3D8iF,EAAI9iF,CAAI,GAEjBplC,EAAQ,QAAQolC,CAAI,EACbA,IAAS,GAAKupF,EAAY/pH,EACnC,CAYA,SAAS+pH,EAAUvpF,EAAM,CACvB,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IACzCplC,EAAQ,QAAQolC,CAAI,EACbxgC,GAEFA,EAAIwgC,CAAI,CACjB,CACF,CCpKO,SAASwpF,GAAa5uH,EAASw4G,EAAI0P,EAAKrkH,EAAMgrH,EAAYP,EAAY,CAC3E,MAAMtoH,EAAO,KACb,IAAIsiC,EAAO,EAEPvqC,EACJ,OAAO4S,EAYP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM6D,CAAI,EAClB7D,EAAQ,MAAM6uH,CAAU,EACxB7uH,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK6uH,CAAU,EACvB7uH,EAAQ,MAAMsuH,CAAU,EACjBzC,CACT,CAYA,SAASA,EAAQzmF,EAAM,CACrB,OAAIkD,EAAO,KAAOlD,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAM,CAACrnC,GAMlEqnC,IAAS,IAAM,CAACkD,GAAQ,2BAA4BtiC,EAAK,OAAO,WACvDkiH,EAAI9iF,CAAI,EAEbA,IAAS,IACXplC,EAAQ,KAAKsuH,CAAU,EACvBtuH,EAAQ,MAAM6uH,CAAU,EACxB7uH,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK6uH,CAAU,EACvB7uH,EAAQ,KAAK6D,CAAI,EACV20G,GAILsN,GAAmB1gF,CAAI,GACzBplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClB6rH,IAET7rH,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACM8uH,EAAY1pF,CAAI,EACzB,CAYA,SAAS0pF,EAAY1pF,EAAM,CACzB,OAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAM0gF,GAAmB1gF,CAAI,GAAKkD,IAAS,KACtFtoC,EAAQ,KAAK,aAAa,EACnB6rH,EAAQzmF,CAAI,IAErBplC,EAAQ,QAAQolC,CAAI,EACfrnC,IAAMA,EAAO,CAACioH,GAAc5gF,CAAI,GAC9BA,IAAS,GAAK2pF,EAAcD,EACrC,CAYA,SAASC,EAAY3pF,EAAM,CACzB,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IACzCplC,EAAQ,QAAQolC,CAAI,EACpBkD,IACOwmF,GAEFA,EAAY1pF,CAAI,CACzB,CACF,CCzGO,SAAS4pF,GAAahvH,EAASw4G,EAAI0P,EAAKrkH,EAAMgrH,EAAYP,EAAY,CAE3E,IAAIr2C,EACJ,OAAOtnE,EAYP,SAASA,EAAMy0B,EAAM,CACnB,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IACzCplC,EAAQ,MAAM6D,CAAI,EAClB7D,EAAQ,MAAM6uH,CAAU,EACxB7uH,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK6uH,CAAU,EACvB52C,EAAS7yC,IAAS,GAAK,GAAKA,EACrB6pF,GAEF/G,EAAI9iF,CAAI,CACjB,CAcA,SAAS6pF,EAAM7pF,EAAM,CACnB,OAAIA,IAAS6yC,GACXj4E,EAAQ,MAAM6uH,CAAU,EACxB7uH,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK6uH,CAAU,EACvB7uH,EAAQ,KAAK6D,CAAI,EACV20G,IAETx4G,EAAQ,MAAMsuH,CAAU,EACjBzC,EAAQzmF,CAAI,EACrB,CAYA,SAASymF,EAAQzmF,EAAM,CACrB,OAAIA,IAAS6yC,GACXj4E,EAAQ,KAAKsuH,CAAU,EAChBW,EAAMh3C,CAAM,GAEjB7yC,IAAS,KACJ8iF,EAAI9iF,CAAI,EAIb0gF,GAAmB1gF,CAAI,GAEzBplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClBsmH,GAAatmH,EAAS6rH,EAAS,YAAY,IAEpD7rH,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACM+oH,EAAO3jF,CAAI,EACpB,CAOA,SAAS2jF,EAAO3jF,EAAM,CACpB,OAAIA,IAAS6yC,GAAU7yC,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC7DplC,EAAQ,KAAK,aAAa,EACnB6rH,EAAQzmF,CAAI,IAErBplC,EAAQ,QAAQolC,CAAI,EACbA,IAAS,GAAKikB,EAAS0/D,EAChC,CAYA,SAAS1/D,EAAOjkB,EAAM,CACpB,OAAIA,IAAS6yC,GAAU7yC,IAAS,IAC9BplC,EAAQ,QAAQolC,CAAI,EACb2jF,GAEFA,EAAO3jF,CAAI,CACpB,CACF,CCrIO,SAAS8pF,GAAkBlvH,EAASw4G,EAAI,CAE7C,IAAIz6G,EACJ,OAAO4S,EAGP,SAASA,EAAMy0B,EAAM,CACnB,OAAI0gF,GAAmB1gF,CAAI,GACzBplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EACzBjC,EAAO,GACA4S,GAELq1G,GAAc5gF,CAAI,EACbkhF,GAAatmH,EAAS2Q,EAAO5S,EAAO,aAAe,YAAY,EAAEqnC,CAAI,EAEvEozE,EAAGpzE,CAAI,CAChB,CACF,CC1BO,MAAM41E,GAAa,CACxB,KAAM,aACN,SAAUmU,EACZ,EAGMC,GAAc,CAClB,QAAS,GACT,SAAUC,EACZ,EAOA,SAASF,GAAmBnvH,EAASw4G,EAAI0P,EAAK,CAC5C,MAAMliH,EAAO,KAEb,IAAIglD,EACJ,OAAOr6C,EAYP,SAASA,EAAMy0B,EAAM,CAInB,OAAAplC,EAAQ,MAAM,YAAY,EACnB+7B,EAAOqJ,CAAI,CACpB,CAYA,SAASrJ,EAAOqJ,EAAM,CAGpB,OAAOwpF,GAAa,KAAK5oH,EAAMhG,EAASsvH,EAExCpH,EAAK,kBAAmB,wBAAyB,uBAAuB,EAAE9iF,CAAI,CAChF,CAYA,SAASkqF,EAAWlqF,EAAM,CAExB,OADA4lB,EAAao6D,GAAoBp/G,EAAK,eAAeA,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAG,EAAE,CAAC,EACrGo/B,IAAS,IACXplC,EAAQ,MAAM,kBAAkB,EAChCA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,kBAAkB,EACxBuvH,GAEFrH,EAAI9iF,CAAI,CACjB,CAYA,SAASmqF,EAAYnqF,EAAM,CAEzB,OAAO2gF,GAA0B3gF,CAAI,EAAI8pF,GAAkBlvH,EAASwvH,CAAiB,EAAEpqF,CAAI,EAAIoqF,EAAkBpqF,CAAI,CACvH,CAYA,SAASoqF,EAAkBpqF,EAAM,CAC/B,OAAO+oF,GAAmBnuH,EAASyvH,EAEnCvH,EAAK,wBAAyB,+BAAgC,qCAAsC,2BAA4B,6BAA6B,EAAE9iF,CAAI,CACrK,CAYA,SAASqqF,EAAiBrqF,EAAM,CAC9B,OAAOplC,EAAQ,QAAQovH,GAAa38E,EAAOA,CAAK,EAAErN,CAAI,CACxD,CAcA,SAASqN,EAAMrN,EAAM,CACnB,OAAO4gF,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAAS0vH,EAAiB,YAAY,EAAEtqF,CAAI,EAAIsqF,EAAgBtqF,CAAI,CAChH,CAcA,SAASsqF,EAAgBtqF,EAAM,CAC7B,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,YAAY,EAKzBgG,EAAK,OAAO,QAAQ,KAAKglD,CAAU,EAK5BwtD,EAAGpzE,CAAI,GAET8iF,EAAI9iF,CAAI,CACjB,CACF,CAOA,SAASiqF,GAAoBrvH,EAASw4G,EAAI0P,EAAK,CAC7C,OAAOkH,EAcP,SAASA,EAAYhqF,EAAM,CACzB,OAAO2gF,GAA0B3gF,CAAI,EAAI8pF,GAAkBlvH,EAAS2vH,CAAY,EAAEvqF,CAAI,EAAI8iF,EAAI9iF,CAAI,CACpG,CAaA,SAASuqF,EAAavqF,EAAM,CAC1B,OAAO4pF,GAAahvH,EAAS4vH,EAAY1H,EAAK,kBAAmB,wBAAyB,uBAAuB,EAAE9iF,CAAI,CACzH,CAYA,SAASwqF,EAAWxqF,EAAM,CACxB,OAAO4gF,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAAS6vH,EAA8B,YAAY,EAAEzqF,CAAI,EAAIyqF,EAA6BzqF,CAAI,CAC1I,CAYA,SAASyqF,EAA6BzqF,EAAM,CAC1C,OAAOA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,EAAIozE,EAAGpzE,CAAI,EAAI8iF,EAAI9iF,CAAI,CACxE,CACF,CClPO,MAAM0qF,GAAkB,CAC7B,KAAM,kBACN,SAAUC,EACZ,EAOA,SAASA,GAAwB/vH,EAASw4G,EAAI0P,EAAK,CACjD,OAAOv3G,EAaP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,QAAQolC,CAAI,EACbqN,CACT,CAaA,SAASA,EAAMrN,EAAM,CACnB,OAAI0gF,GAAmB1gF,CAAI,GACzBplC,EAAQ,KAAK,iBAAiB,EACvBw4G,EAAGpzE,CAAI,GAET8iF,EAAI9iF,CAAI,CACjB,CACF,CC5CO,MAAM4qF,GAAa,CACxB,KAAM,aACN,QAASC,GACT,SAAUC,EACZ,EAGA,SAASD,GAAkB5H,EAAQr/F,EAAS,CAC1C,IAAIglG,EAAa3F,EAAO,OAAS,EAC7B7B,EAAe,EAEf1qF,EAEAvC,EAGJ,OAAI8uF,EAAO7B,CAAY,EAAE,CAAC,EAAE,OAAS,eACnCA,GAAgB,GAIdwH,EAAa,EAAIxH,GAAgB6B,EAAO2F,CAAU,EAAE,CAAC,EAAE,OAAS,eAClEA,GAAc,GAEZ3F,EAAO2F,CAAU,EAAE,CAAC,EAAE,OAAS,uBAAyBxH,IAAiBwH,EAAa,GAAKA,EAAa,EAAIxH,GAAgB6B,EAAO2F,EAAa,CAAC,EAAE,CAAC,EAAE,OAAS,gBACjKA,GAAcxH,EAAe,IAAMwH,EAAa,EAAI,GAElDA,EAAaxH,IACf1qF,EAAU,CACR,KAAM,iBACN,MAAOusF,EAAO7B,CAAY,EAAE,CAAC,EAAE,MAC/B,IAAK6B,EAAO2F,CAAU,EAAE,CAAC,EAAE,GACjC,EACIz0F,EAAO,CACL,KAAM,YACN,MAAO8uF,EAAO7B,CAAY,EAAE,CAAC,EAAE,MAC/B,IAAK6B,EAAO2F,CAAU,EAAE,CAAC,EAAE,IAC3B,YAAa,MACnB,EACIxJ,GAAO6D,EAAQ7B,EAAcwH,EAAaxH,EAAe,EAAG,CAAC,CAAC,QAAS1qF,EAAS9S,CAAO,EAAG,CAAC,QAASuQ,EAAMvQ,CAAO,EAAG,CAAC,OAAQuQ,EAAMvQ,CAAO,EAAG,CAAC,OAAQ8S,EAAS9S,CAAO,CAAC,CAAC,GAEnKq/F,CACT,CAOA,SAAS6H,GAAmBlwH,EAASw4G,EAAI0P,EAAK,CAC5C,IAAI5/E,EAAO,EACX,OAAO33B,EAYP,SAASA,EAAMy0B,EAAM,CAEnB,OAAAplC,EAAQ,MAAM,YAAY,EACnB+7B,EAAOqJ,CAAI,CACpB,CAYA,SAASrJ,EAAOqJ,EAAM,CACpB,OAAAplC,EAAQ,MAAM,oBAAoB,EAC3B6qH,EAAazlF,CAAI,CAC1B,CAYA,SAASylF,EAAazlF,EAAM,CAC1B,OAAIA,IAAS,IAAMkD,IAAS,GAC1BtoC,EAAQ,QAAQolC,CAAI,EACbylF,GAILzlF,IAAS,MAAQ2gF,GAA0B3gF,CAAI,GACjDplC,EAAQ,KAAK,oBAAoB,EAC1B6rH,EAAQzmF,CAAI,GAEd8iF,EAAI9iF,CAAI,CACjB,CAYA,SAASymF,EAAQzmF,EAAM,CACrB,OAAIA,IAAS,IACXplC,EAAQ,MAAM,oBAAoB,EAC3BmwH,EAAgB/qF,CAAI,GAEzBA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,YAAY,EAIlBw4G,EAAGpzE,CAAI,GAEZ4gF,GAAc5gF,CAAI,EACbkhF,GAAatmH,EAAS6rH,EAAS,YAAY,EAAEzmF,CAAI,GAK1DplC,EAAQ,MAAM,gBAAgB,EACvB8jB,EAAKshB,CAAI,EAClB,CAcA,SAAS+qF,EAAgB/qF,EAAM,CAC7B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb+qF,IAETnwH,EAAQ,KAAK,oBAAoB,EAC1B6rH,EAAQzmF,CAAI,EACrB,CAYA,SAASthB,EAAKshB,EAAM,CAClB,OAAIA,IAAS,MAAQA,IAAS,IAAM2gF,GAA0B3gF,CAAI,GAChEplC,EAAQ,KAAK,gBAAgB,EACtB6rH,EAAQzmF,CAAI,IAErBplC,EAAQ,QAAQolC,CAAI,EACbthB,EACT,CACF,CCnLO,MAAMssG,GAAiB,CAC5B,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,IACF,EAcaC,GAAe,CAAC,MAAO,SAAU,QAAS,UAAU,EC5EpDC,GAAW,CACtB,SAAU,GACV,KAAM,WACN,UAAWC,GACX,SAAUC,EACZ,EAGMC,GAAkB,CACtB,QAAS,GACT,SAAUC,EACZ,EACMC,GAA2B,CAC/B,QAAS,GACT,SAAUC,EACZ,EAGA,SAASL,GAAkBlI,EAAQ,CACjC,IAAIhqH,EAAQgqH,EAAO,OACnB,KAAOhqH,KACD,EAAAgqH,EAAOhqH,CAAK,EAAE,CAAC,IAAM,SAAWgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,aAA9D,CAIF,OAAIA,EAAQ,GAAKgqH,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,OAAS,eAE7CgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,MAAQgqH,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,MAE9CgqH,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,MAAQgqH,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,MAElDgqH,EAAO,OAAOhqH,EAAQ,EAAG,CAAC,GAErBgqH,CACT,CAOA,SAASmI,GAAiBxwH,EAASw4G,EAAI0P,EAAK,CAC1C,MAAMliH,EAAO,KAEb,IAAIiyE,EAEA44C,EAEAjsF,EAEAvmC,EAEAyyH,EACJ,OAAOngH,EAYP,SAASA,EAAMy0B,EAAM,CAEnB,OAAOrJ,EAAOqJ,CAAI,CACpB,CAYA,SAASrJ,EAAOqJ,EAAM,CACpB,OAAAplC,EAAQ,MAAM,UAAU,EACxBA,EAAQ,MAAM,cAAc,EAC5BA,EAAQ,QAAQolC,CAAI,EACb0/C,CACT,CAgBA,SAASA,EAAK1/C,EAAM,CAClB,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb2rF,GAEL3rF,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpByrF,EAAa,GACNG,GAEL5rF,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpB6yC,EAAS,EAMFjyE,EAAK,UAAYwyG,EAAKyY,GAI3B1L,GAAWngF,CAAI,GAEjBplC,EAAQ,QAAQolC,CAAI,EACpBR,EAAS,OAAO,aAAaQ,CAAI,EAC1B6c,GAEFimE,EAAI9iF,CAAI,CACjB,CAgBA,SAAS2rF,EAAgB3rF,EAAM,CAC7B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpB6yC,EAAS,EACFi5C,GAEL9rF,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpB6yC,EAAS,EACT55E,EAAQ,EACD8yH,GAIL5L,GAAWngF,CAAI,GACjBplC,EAAQ,QAAQolC,CAAI,EACpB6yC,EAAS,EAGFjyE,EAAK,UAAYwyG,EAAKyY,GAExB/I,EAAI9iF,CAAI,CACjB,CAYA,SAAS8rF,EAAkB9rF,EAAM,CAC/B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EAGbp/B,EAAK,UAAYwyG,EAAKyY,GAExB/I,EAAI9iF,CAAI,CACjB,CAYA,SAAS+rF,EAAgB/rF,EAAM,CAC7B,MAAMzqC,GAAQ,SACd,OAAIyqC,IAASzqC,GAAM,WAAW0D,GAAO,GACnC2B,EAAQ,QAAQolC,CAAI,EAChB/mC,IAAU1D,GAAM,OAGXqL,EAAK,UAAYwyG,EAAK4Y,EAExBD,GAEFjJ,EAAI9iF,CAAI,CACjB,CAYA,SAAS4rF,EAAc5rF,EAAM,CAC3B,OAAImgF,GAAWngF,CAAI,GAEjBplC,EAAQ,QAAQolC,CAAI,EACpBR,EAAS,OAAO,aAAaQ,CAAI,EAC1B6c,GAEFimE,EAAI9iF,CAAI,CACjB,CAcA,SAAS6c,EAAQ7c,EAAM,CACrB,GAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAM2gF,GAA0B3gF,CAAI,EAAG,CAClF,MAAMisF,GAAQjsF,IAAS,GACjBhoC,GAAOwnC,EAAO,YAAW,EAC/B,MAAI,CAACysF,IAAS,CAACR,GAAcR,GAAa,SAASjzH,EAAI,GACrD66E,EAAS,EAGFjyE,EAAK,UAAYwyG,EAAGpzE,CAAI,EAAIgsF,EAAahsF,CAAI,GAElDgrF,GAAe,SAASxrF,EAAO,YAAW,CAAE,GAC9CqzC,EAAS,EACLo5C,IACFrxH,EAAQ,QAAQolC,CAAI,EACbksF,GAKFtrH,EAAK,UAAYwyG,EAAGpzE,CAAI,EAAIgsF,EAAahsF,CAAI,IAEtD6yC,EAAS,EAEFjyE,EAAK,WAAa,CAACA,EAAK,OAAO,KAAKA,EAAK,IAAG,EAAG,IAAI,EAAIkiH,EAAI9iF,CAAI,EAAIyrF,EAAaU,EAAwBnsF,CAAI,EAAIosF,EAA4BpsF,CAAI,EACzJ,CAGA,OAAIA,IAAS,IAAMogF,GAAkBpgF,CAAI,GACvCplC,EAAQ,QAAQolC,CAAI,EACpBR,GAAU,OAAO,aAAaQ,CAAI,EAC3B6c,GAEFimE,EAAI9iF,CAAI,CACjB,CAYA,SAASksF,EAAiBlsF,EAAM,CAC9B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EAGbp/B,EAAK,UAAYwyG,EAAK4Y,GAExBlJ,EAAI9iF,CAAI,CACjB,CAYA,SAASmsF,EAAwBnsF,EAAM,CACrC,OAAI4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACbmsF,GAEFE,EAAYrsF,CAAI,CACzB,CAyBA,SAASosF,EAA4BpsF,EAAM,CACzC,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbqsF,GAILrsF,IAAS,IAAMA,IAAS,IAAMmgF,GAAWngF,CAAI,GAC/CplC,EAAQ,QAAQolC,CAAI,EACbssF,GAEL1L,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACbosF,GAEFC,EAAYrsF,CAAI,CACzB,CAgBA,SAASssF,EAAsBtsF,EAAM,CAEnC,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMogF,GAAkBpgF,CAAI,GACpFplC,EAAQ,QAAQolC,CAAI,EACbssF,GAEFC,EAA2BvsF,CAAI,CACxC,CAeA,SAASusF,EAA2BvsF,EAAM,CACxC,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbwsF,GAEL5L,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACbusF,GAEFH,EAA4BpsF,CAAI,CACzC,CAeA,SAASwsF,EAA6BxsF,EAAM,CAC1C,OAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,GAClE8iF,EAAI9iF,CAAI,EAEbA,IAAS,IAAMA,IAAS,IAC1BplC,EAAQ,QAAQolC,CAAI,EACpB0rF,EAAU1rF,EACHysF,GAEL7L,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACbwsF,GAEFE,EAA+B1sF,CAAI,CAC5C,CAcA,SAASysF,EAA6BzsF,EAAM,CAC1C,OAAIA,IAAS0rF,GACX9wH,EAAQ,QAAQolC,CAAI,EACpB0rF,EAAU,KACHiB,GAEL3sF,IAAS,MAAQ0gF,GAAmB1gF,CAAI,EACnC8iF,EAAI9iF,CAAI,GAEjBplC,EAAQ,QAAQolC,CAAI,EACbysF,EACT,CAYA,SAASC,EAA+B1sF,EAAM,CAC5C,OAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAM2gF,GAA0B3gF,CAAI,EACnJusF,EAA2BvsF,CAAI,GAExCplC,EAAQ,QAAQolC,CAAI,EACb0sF,EACT,CAaA,SAASC,EAAkC3sF,EAAM,CAC/C,OAAIA,IAAS,IAAMA,IAAS,IAAM4gF,GAAc5gF,CAAI,EAC3CosF,EAA4BpsF,CAAI,EAElC8iF,EAAI9iF,CAAI,CACjB,CAYA,SAASqsF,EAAYrsF,EAAM,CACzB,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb4sF,GAEF9J,EAAI9iF,CAAI,CACjB,CAYA,SAAS4sF,EAAc5sF,EAAM,CAC3B,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,EAGnCgsF,EAAahsF,CAAI,EAEtB4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACb4sF,GAEF9J,EAAI9iF,CAAI,CACjB,CAYA,SAASgsF,EAAahsF,EAAM,CAC1B,OAAIA,IAAS,IAAM6yC,IAAW,GAC5Bj4E,EAAQ,QAAQolC,CAAI,EACb6sF,GAEL7sF,IAAS,IAAM6yC,IAAW,GAC5Bj4E,EAAQ,QAAQolC,CAAI,EACb8sF,IAEL9sF,IAAS,IAAM6yC,IAAW,GAC5Bj4E,EAAQ,QAAQolC,CAAI,EACb+sF,IAEL/sF,IAAS,IAAM6yC,IAAW,GAC5Bj4E,EAAQ,QAAQolC,CAAI,EACb6rF,GAEL7rF,IAAS,IAAM6yC,IAAW,GAC5Bj4E,EAAQ,QAAQolC,CAAI,EACbgtF,IAELtM,GAAmB1gF,CAAI,IAAM6yC,IAAW,GAAKA,IAAW,IAC1Dj4E,EAAQ,KAAK,cAAc,EACpBA,EAAQ,MAAMywH,GAAiB4B,GAAmBC,CAAiB,EAAEltF,CAAI,GAE9EA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,cAAc,EACpBsyH,EAAkBltF,CAAI,IAE/BplC,EAAQ,QAAQolC,CAAI,EACbgsF,EACT,CAaA,SAASkB,EAAkBltF,EAAM,CAC/B,OAAOplC,EAAQ,MAAM2wH,GAA0B4B,EAA0BF,EAAiB,EAAEjtF,CAAI,CAClG,CAaA,SAASmtF,EAAyBntF,EAAM,CACtC,OAAAplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClBwyH,CACT,CAaA,SAASA,EAAmBptF,EAAM,CAChC,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,EACnCktF,EAAkBltF,CAAI,GAE/BplC,EAAQ,MAAM,cAAc,EACrBoxH,EAAahsF,CAAI,EAC1B,CAYA,SAAS6sF,EAA0B7sF,EAAM,CACvC,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb6rF,GAEFG,EAAahsF,CAAI,CAC1B,CAYA,SAAS8sF,GAAuB9sF,EAAM,CACpC,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpBR,EAAS,GACF6tF,IAEFrB,EAAahsF,CAAI,CAC1B,CAYA,SAASqtF,GAAsBrtF,EAAM,CACnC,GAAIA,IAAS,GAAI,CACf,MAAMhoC,GAAOwnC,EAAO,YAAW,EAC/B,OAAIyrF,GAAa,SAASjzH,EAAI,GAC5B4C,EAAQ,QAAQolC,CAAI,EACb+sF,IAEFf,EAAahsF,CAAI,CAC1B,CACA,OAAImgF,GAAWngF,CAAI,GAAKR,EAAO,OAAS,GAEtC5kC,EAAQ,QAAQolC,CAAI,EACpBR,GAAU,OAAO,aAAaQ,CAAI,EAC3BqtF,IAEFrB,EAAahsF,CAAI,CAC1B,CAYA,SAASgtF,GAAwBhtF,EAAM,CACrC,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb6rF,GAEFG,EAAahsF,CAAI,CAC1B,CAoBA,SAAS6rF,EAA8B7rF,EAAM,CAC3C,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb+sF,IAIL/sF,IAAS,IAAM6yC,IAAW,GAC5Bj4E,EAAQ,QAAQolC,CAAI,EACb6rF,GAEFG,EAAahsF,CAAI,CAC1B,CAYA,SAAS+sF,GAAkB/sF,EAAM,CAC/B,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,cAAc,EACpBqyH,GAAkBjtF,CAAI,IAE/BplC,EAAQ,QAAQolC,CAAI,EACb+sF,GACT,CAYA,SAASE,GAAkBjtF,EAAM,CAC/B,OAAAplC,EAAQ,KAAK,UAAU,EAKhBw4G,EAAGpzE,CAAI,CAChB,CACF,CAOA,SAASwrF,GAAiC5wH,EAASw4G,EAAI0P,EAAK,CAC1D,MAAMliH,EAAO,KACb,OAAO2K,EAaP,SAASA,EAAMy0B,EAAM,CACnB,OAAI0gF,GAAmB1gF,CAAI,GACzBplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClByyC,GAEFy1E,EAAI9iF,CAAI,CACjB,CAaA,SAASqN,EAAMrN,EAAM,CACnB,OAAOp/B,EAAK,OAAO,KAAKA,EAAK,IAAG,EAAG,IAAI,EAAIkiH,EAAI9iF,CAAI,EAAIozE,EAAGpzE,CAAI,CAChE,CACF,CAOA,SAASsrF,GAAwB1wH,EAASw4G,EAAI0P,EAAK,CACjD,OAAOv3G,EAaP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClBA,EAAQ,QAAQypH,GAAWjR,EAAI0P,CAAG,CAC3C,CACF,CC91BO,MAAMwK,GAAW,CACtB,KAAM,WACN,SAAUC,EACZ,EAOA,SAASA,GAAiB3yH,EAASw4G,EAAI0P,EAAK,CAC1C,MAAMliH,EAAO,KAEb,IAAIiyE,EAEA55E,EAEAu0H,EACJ,OAAOjiH,EAYP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,UAAU,EACxBA,EAAQ,MAAM,cAAc,EAC5BA,EAAQ,QAAQolC,CAAI,EACb0/C,CACT,CAgBA,SAASA,EAAK1/C,EAAM,CAClB,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb2rF,GAEL3rF,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb4rF,GAEL5rF,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbytF,GAILtN,GAAWngF,CAAI,GACjBplC,EAAQ,QAAQolC,CAAI,EACb0tF,GAEF5K,EAAI9iF,CAAI,CACjB,CAgBA,SAAS2rF,EAAgB3rF,EAAM,CAC7B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb8rF,GAEL9rF,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpB/mC,EAAQ,EACD8yH,GAEL5L,GAAWngF,CAAI,GACjBplC,EAAQ,QAAQolC,CAAI,EACbo5E,GAEF0J,EAAI9iF,CAAI,CACjB,CAYA,SAAS8rF,EAAkB9rF,EAAM,CAC/B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb2tF,GAEF7K,EAAI9iF,CAAI,CACjB,CAYA,SAASm5E,EAAQn5E,EAAM,CACrB,OAAIA,IAAS,KACJ8iF,EAAI9iF,CAAI,EAEbA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb4tF,GAELlN,GAAmB1gF,CAAI,GACzBwtF,EAAcrU,EACP0U,GAAiB7tF,CAAI,IAE9BplC,EAAQ,QAAQolC,CAAI,EACbm5E,EACT,CAYA,SAASyU,EAAa5tF,EAAM,CAC1B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb2tF,GAEFxU,EAAQn5E,CAAI,CACrB,CAYA,SAAS2tF,EAAW3tF,EAAM,CACxB,OAAOA,IAAS,GAAKx0B,EAAIw0B,CAAI,EAAIA,IAAS,GAAK4tF,EAAa5tF,CAAI,EAAIm5E,EAAQn5E,CAAI,CAClF,CAYA,SAAS+rF,EAAgB/rF,EAAM,CAC7B,MAAMzqC,GAAQ,SACd,OAAIyqC,IAASzqC,GAAM,WAAW0D,GAAO,GACnC2B,EAAQ,QAAQolC,CAAI,EACb/mC,IAAU1D,GAAM,OAASu4H,EAAQ/B,GAEnCjJ,EAAI9iF,CAAI,CACjB,CAYA,SAAS8tF,EAAM9tF,EAAM,CACnB,OAAIA,IAAS,KACJ8iF,EAAI9iF,CAAI,EAEbA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACb+tF,GAELrN,GAAmB1gF,CAAI,GACzBwtF,EAAcM,EACPD,GAAiB7tF,CAAI,IAE9BplC,EAAQ,QAAQolC,CAAI,EACb8tF,EACT,CAYA,SAASC,EAAW/tF,EAAM,CACxB,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbguF,GAEFF,EAAM9tF,CAAI,CACnB,CAYA,SAASguF,EAAShuF,EAAM,CACtB,OAAIA,IAAS,GACJx0B,EAAIw0B,CAAI,EAEbA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbguF,GAEFF,EAAM9tF,CAAI,CACnB,CAYA,SAASo5E,EAAYp5E,EAAM,CACzB,OAAIA,IAAS,MAAQA,IAAS,GACrBx0B,EAAIw0B,CAAI,EAEb0gF,GAAmB1gF,CAAI,GACzBwtF,EAAcpU,EACPyU,GAAiB7tF,CAAI,IAE9BplC,EAAQ,QAAQolC,CAAI,EACbo5E,EACT,CAYA,SAASqU,EAAYztF,EAAM,CACzB,OAAIA,IAAS,KACJ8iF,EAAI9iF,CAAI,EAEbA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbiuF,GAELvN,GAAmB1gF,CAAI,GACzBwtF,EAAcC,EACPI,GAAiB7tF,CAAI,IAE9BplC,EAAQ,QAAQolC,CAAI,EACbytF,EACT,CAYA,SAASQ,EAAiBjuF,EAAM,CAC9B,OAAOA,IAAS,GAAKx0B,EAAIw0B,CAAI,EAAIytF,EAAYztF,CAAI,CACnD,CAYA,SAAS4rF,EAAc5rF,EAAM,CAE3B,OAAImgF,GAAWngF,CAAI,GACjBplC,EAAQ,QAAQolC,CAAI,EACbkuF,GAEFpL,EAAI9iF,CAAI,CACjB,CAYA,SAASkuF,EAASluF,EAAM,CAEtB,OAAIA,IAAS,IAAMogF,GAAkBpgF,CAAI,GACvCplC,EAAQ,QAAQolC,CAAI,EACbkuF,GAEFC,EAAgBnuF,CAAI,CAC7B,CAYA,SAASmuF,EAAgBnuF,EAAM,CAC7B,OAAI0gF,GAAmB1gF,CAAI,GACzBwtF,EAAcW,EACPN,GAAiB7tF,CAAI,GAE1B4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACbmuF,GAEF3iH,EAAIw0B,CAAI,CACjB,CAYA,SAAS0tF,EAAQ1tF,EAAM,CAErB,OAAIA,IAAS,IAAMogF,GAAkBpgF,CAAI,GACvCplC,EAAQ,QAAQolC,CAAI,EACb0tF,GAEL1tF,IAAS,IAAMA,IAAS,IAAM2gF,GAA0B3gF,CAAI,EACvDouF,EAAepuF,CAAI,EAErB8iF,EAAI9iF,CAAI,CACjB,CAYA,SAASouF,EAAepuF,EAAM,CAC5B,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbx0B,GAILw0B,IAAS,IAAMA,IAAS,IAAMmgF,GAAWngF,CAAI,GAC/CplC,EAAQ,QAAQolC,CAAI,EACbquF,GAEL3N,GAAmB1gF,CAAI,GACzBwtF,EAAcY,EACPP,GAAiB7tF,CAAI,GAE1B4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACbouF,GAEF5iH,EAAIw0B,CAAI,CACjB,CAYA,SAASquF,EAAqBruF,EAAM,CAElC,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMogF,GAAkBpgF,CAAI,GACpFplC,EAAQ,QAAQolC,CAAI,EACbquF,GAEFC,EAA0BtuF,CAAI,CACvC,CAaA,SAASsuF,EAA0BtuF,EAAM,CACvC,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACbuuF,GAEL7N,GAAmB1gF,CAAI,GACzBwtF,EAAcc,EACPT,GAAiB7tF,CAAI,GAE1B4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACbsuF,GAEFF,EAAepuF,CAAI,CAC5B,CAaA,SAASuuF,EAA4BvuF,EAAM,CACzC,OAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,GAClE8iF,EAAI9iF,CAAI,EAEbA,IAAS,IAAMA,IAAS,IAC1BplC,EAAQ,QAAQolC,CAAI,EACpB6yC,EAAS7yC,EACFwuF,GAEL9N,GAAmB1gF,CAAI,GACzBwtF,EAAce,EACPV,GAAiB7tF,CAAI,GAE1B4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,QAAQolC,CAAI,EACbuuF,IAET3zH,EAAQ,QAAQolC,CAAI,EACbyuF,EACT,CAYA,SAASD,EAA4BxuF,EAAM,CACzC,OAAIA,IAAS6yC,GACXj4E,EAAQ,QAAQolC,CAAI,EACpB6yC,EAAS,OACF67C,GAEL1uF,IAAS,KACJ8iF,EAAI9iF,CAAI,EAEb0gF,GAAmB1gF,CAAI,GACzBwtF,EAAcgB,EACPX,GAAiB7tF,CAAI,IAE9BplC,EAAQ,QAAQolC,CAAI,EACbwuF,EACT,CAYA,SAASC,EAA8BzuF,EAAM,CAC3C,OAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IAAMA,IAAS,GACjF8iF,EAAI9iF,CAAI,EAEbA,IAAS,IAAMA,IAAS,IAAM2gF,GAA0B3gF,CAAI,EACvDouF,EAAepuF,CAAI,GAE5BplC,EAAQ,QAAQolC,CAAI,EACbyuF,EACT,CAaA,SAASC,EAAiC1uF,EAAM,CAC9C,OAAIA,IAAS,IAAMA,IAAS,IAAM2gF,GAA0B3gF,CAAI,EACvDouF,EAAepuF,CAAI,EAErB8iF,EAAI9iF,CAAI,CACjB,CAYA,SAASx0B,EAAIw0B,EAAM,CACjB,OAAIA,IAAS,IACXplC,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,cAAc,EAC3BA,EAAQ,KAAK,UAAU,EAChBw4G,GAEF0P,EAAI9iF,CAAI,CACjB,CAgBA,SAAS6tF,GAAiB7tF,EAAM,CAC9B,OAAAplC,EAAQ,KAAK,cAAc,EAC3BA,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClB+zH,EACT,CAgBA,SAASA,GAAgB3uF,EAAM,CAG7B,OAAO4gF,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAASg0H,GAAuB,aAAchuH,EAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,EAAI,OAAY,CAAC,EAAEo/B,CAAI,EAAI4uF,GAAsB5uF,CAAI,CAC1M,CAgBA,SAAS4uF,GAAsB5uF,EAAM,CACnC,OAAAplC,EAAQ,MAAM,cAAc,EACrB4yH,EAAYxtF,CAAI,CACzB,CACF,CChpBO,MAAM6uF,GAAW,CACtB,KAAM,WACN,WAAYC,GACZ,UAAWC,GACX,SAAUC,EACZ,EAGMC,GAAoB,CACxB,SAAUC,EACZ,EAEMC,GAAyB,CAC7B,SAAUC,EACZ,EAEMC,GAA8B,CAClC,SAAUC,EACZ,EAGA,SAASR,GAAmB7L,EAAQ,CAClC,IAAIhqH,EAAQ,GAEZ,MAAMs2H,EAAY,GAClB,KAAO,EAAEt2H,EAAQgqH,EAAO,QAAQ,CAC9B,MAAM1uC,EAAQ0uC,EAAOhqH,CAAK,EAAE,CAAC,EAE7B,GADAs2H,EAAU,KAAKtM,EAAOhqH,CAAK,CAAC,EACxBs7E,EAAM,OAAS,cAAgBA,EAAM,OAAS,aAAeA,EAAM,OAAS,WAAY,CAE1F,MAAMrzC,EAASqzC,EAAM,OAAS,aAAe,EAAI,EACjDA,EAAM,KAAO,OACbt7E,GAASioC,CACX,CACF,CAGA,OAAI+hF,EAAO,SAAWsM,EAAU,QAC9BnQ,GAAO6D,EAAQ,EAAGA,EAAO,OAAQsM,CAAS,EAErCtM,CACT,CAGA,SAAS8L,GAAkB9L,EAAQr/F,EAAS,CAC1C,IAAI3qB,EAAQgqH,EAAO,OACf/hF,EAAS,EAETqzC,EAEAmL,EAEAP,EAEAqwC,EAGJ,KAAOv2H,KAEL,GADAs7E,EAAQ0uC,EAAOhqH,CAAK,EAAE,CAAC,EACnBymF,EAAM,CAER,GAAInL,EAAM,OAAS,QAAUA,EAAM,OAAS,aAAeA,EAAM,UAC/D,MAKE0uC,EAAOhqH,CAAK,EAAE,CAAC,IAAM,SAAWs7E,EAAM,OAAS,cACjDA,EAAM,UAAY,GAEtB,SAAW4K,GACT,GAAI8jC,EAAOhqH,CAAK,EAAE,CAAC,IAAM,UAAYs7E,EAAM,OAAS,cAAgBA,EAAM,OAAS,cAAgB,CAACA,EAAM,YACxGmL,EAAOzmF,EACHs7E,EAAM,OAAS,aAAa,CAC9BrzC,EAAS,EACT,KACF,OAEOqzC,EAAM,OAAS,aACxB4K,EAAQlmF,GAGZ,MAAM8kE,EAAQ,CACZ,KAAMklD,EAAOvjC,CAAI,EAAE,CAAC,EAAE,OAAS,YAAc,OAAS,QACtD,MAAO,CACL,GAAGujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,KACzB,EACI,IAAK,CACH,GAAGujC,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAAE,GACtC,CACA,EACQj/B,EAAQ,CACZ,KAAM,QACN,MAAO,CACL,GAAGi/B,EAAOvjC,CAAI,EAAE,CAAC,EAAE,KACzB,EACI,IAAK,CACH,GAAGujC,EAAO9jC,CAAK,EAAE,CAAC,EAAE,GAC1B,CACA,EACQhrD,EAAO,CACX,KAAM,YACN,MAAO,CACL,GAAG8uF,EAAOvjC,EAAOx+C,EAAS,CAAC,EAAE,CAAC,EAAE,GACtC,EACI,IAAK,CACH,GAAG+hF,EAAO9jC,EAAQ,CAAC,EAAE,CAAC,EAAE,KAC9B,CACA,EACE,OAAAqwC,EAAQ,CAAC,CAAC,QAASzxD,EAAOn6C,CAAO,EAAG,CAAC,QAASogE,EAAOpgE,CAAO,CAAC,EAG7D4rG,EAAQjQ,GAAKiQ,EAAOvM,EAAO,MAAMvjC,EAAO,EAAGA,EAAOx+C,EAAS,CAAC,CAAC,EAG7DsuF,EAAQjQ,GAAKiQ,EAAO,CAAC,CAAC,QAASr7F,EAAMvQ,CAAO,CAAC,CAAC,EAK9C4rG,EAAQjQ,GAAKiQ,EAAOxM,GAAWp/F,EAAQ,OAAO,WAAW,WAAW,KAAMq/F,EAAO,MAAMvjC,EAAOx+C,EAAS,EAAGi+C,EAAQ,CAAC,EAAGv7D,CAAO,CAAC,EAG9H4rG,EAAQjQ,GAAKiQ,EAAO,CAAC,CAAC,OAAQr7F,EAAMvQ,CAAO,EAAGq/F,EAAO9jC,EAAQ,CAAC,EAAG8jC,EAAO9jC,EAAQ,CAAC,EAAG,CAAC,OAAQ6E,EAAOpgE,CAAO,CAAC,CAAC,EAG7G4rG,EAAQjQ,GAAKiQ,EAAOvM,EAAO,MAAM9jC,EAAQ,CAAC,CAAC,EAG3CqwC,EAAQjQ,GAAKiQ,EAAO,CAAC,CAAC,OAAQzxD,EAAOn6C,CAAO,CAAC,CAAC,EAC9Cw7F,GAAO6D,EAAQvjC,EAAMujC,EAAO,OAAQuM,CAAK,EAClCvM,CACT,CAOA,SAAS+L,GAAiBp0H,EAASw4G,EAAI0P,EAAK,CAC1C,MAAMliH,EAAO,KACb,IAAI3H,EAAQ2H,EAAK,OAAO,OAEpB6uH,EAEAC,EAGJ,KAAOz2H,KACL,IAAK2H,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,OAAS,cAAgB2H,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,OAAS,cAAgB,CAAC2H,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,UAAW,CACnIw2H,EAAa7uH,EAAK,OAAO3H,CAAK,EAAE,CAAC,EACjC,KACF,CAEF,OAAOsS,EAiBP,SAASA,EAAMy0B,EAAM,CAEnB,OAAKyvF,EAaDA,EAAW,UACNE,EAAY3vF,CAAI,GAEzB0vF,EAAU9uH,EAAK,OAAO,QAAQ,SAASo/G,GAAoBp/G,EAAK,eAAe,CAC7E,MAAO6uH,EAAW,IAClB,IAAK7uH,EAAK,IAAG,CACnB,CAAK,CAAC,CAAC,EACHhG,EAAQ,MAAM,UAAU,EACxBA,EAAQ,MAAM,aAAa,EAC3BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAK,UAAU,EAChByyC,GAxBEy1E,EAAI9iF,CAAI,CAyBnB,CAkBA,SAASqN,EAAMrN,EAAM,CAKnB,OAAIA,IAAS,GACJplC,EAAQ,QAAQq0H,GAAmBW,EAAYF,EAAUE,EAAaD,CAAW,EAAE3vF,CAAI,EAI5FA,IAAS,GACJplC,EAAQ,QAAQu0H,GAAwBS,EAAYF,EAAUG,EAAmBF,CAAW,EAAE3vF,CAAI,EAIpG0vF,EAAUE,EAAW5vF,CAAI,EAAI2vF,EAAY3vF,CAAI,CACtD,CAgBA,SAAS6vF,EAAiB7vF,EAAM,CAC9B,OAAOplC,EAAQ,QAAQy0H,GAA6BO,EAAYD,CAAW,EAAE3vF,CAAI,CACnF,CAkBA,SAAS4vF,EAAW5vF,EAAM,CAExB,OAAOozE,EAAGpzE,CAAI,CAChB,CAkBA,SAAS2vF,EAAY3vF,EAAM,CACzB,OAAAyvF,EAAW,UAAY,GAChB3M,EAAI9iF,CAAI,CACjB,CACF,CAOA,SAASkvF,GAAiBt0H,EAASw4G,EAAI0P,EAAK,CAC1C,OAAOgN,EAYP,SAASA,EAAc9vF,EAAM,CAC3B,OAAAplC,EAAQ,MAAM,UAAU,EACxBA,EAAQ,MAAM,gBAAgB,EAC9BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,gBAAgB,EACtBm1H,CACT,CAYA,SAASA,EAAe/vF,EAAM,CAC5B,OAAO2gF,GAA0B3gF,CAAI,EAAI8pF,GAAkBlvH,EAASo1H,CAAY,EAAEhwF,CAAI,EAAIgwF,EAAahwF,CAAI,CAC7G,CAYA,SAASgwF,EAAahwF,EAAM,CAC1B,OAAIA,IAAS,GACJiwF,EAAYjwF,CAAI,EAElB+oF,GAAmBnuH,EAASs1H,EAA0BC,EAA4B,sBAAuB,6BAA8B,mCAAoC,yBAA0B,4BAA6B,EAAE,EAAEnwF,CAAI,CACnP,CAYA,SAASkwF,EAAyBlwF,EAAM,CACtC,OAAO2gF,GAA0B3gF,CAAI,EAAI8pF,GAAkBlvH,EAASw1H,CAAe,EAAEpwF,CAAI,EAAIiwF,EAAYjwF,CAAI,CAC/G,CAYA,SAASmwF,EAA2BnwF,EAAM,CACxC,OAAO8iF,EAAI9iF,CAAI,CACjB,CAYA,SAASowF,EAAgBpwF,EAAM,CAC7B,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,GAClC4pF,GAAahvH,EAASy1H,EAAoBvN,EAAK,gBAAiB,sBAAuB,qBAAqB,EAAE9iF,CAAI,EAEpHiwF,EAAYjwF,CAAI,CACzB,CAYA,SAASqwF,EAAmBrwF,EAAM,CAChC,OAAO2gF,GAA0B3gF,CAAI,EAAI8pF,GAAkBlvH,EAASq1H,CAAW,EAAEjwF,CAAI,EAAIiwF,EAAYjwF,CAAI,CAC3G,CAYA,SAASiwF,EAAYjwF,EAAM,CACzB,OAAIA,IAAS,IACXplC,EAAQ,MAAM,gBAAgB,EAC9BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,gBAAgB,EAC7BA,EAAQ,KAAK,UAAU,EAChBw4G,GAEF0P,EAAI9iF,CAAI,CACjB,CACF,CAOA,SAASovF,GAAsBx0H,EAASw4G,EAAI0P,EAAK,CAC/C,MAAMliH,EAAO,KACb,OAAO0vH,EAYP,SAASA,EAActwF,EAAM,CAC3B,OAAOwpF,GAAa,KAAK5oH,EAAMhG,EAAS21H,EAAoBC,EAAsB,YAAa,kBAAmB,iBAAiB,EAAExwF,CAAI,CAC3I,CAYA,SAASuwF,EAAmBvwF,EAAM,CAChC,OAAOp/B,EAAK,OAAO,QAAQ,SAASo/G,GAAoBp/G,EAAK,eAAeA,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAG,EAAE,CAAC,CAAC,EAAIwyG,EAAGpzE,CAAI,EAAI8iF,EAAI9iF,CAAI,CAC1J,CAYA,SAASwwF,EAAqBxwF,EAAM,CAClC,OAAO8iF,EAAI9iF,CAAI,CACjB,CACF,CAOA,SAASsvF,GAA2B10H,EAASw4G,EAAI0P,EAAK,CACpD,OAAO2N,EAcP,SAASA,EAAwBzwF,EAAM,CAGrC,OAAAplC,EAAQ,MAAM,WAAW,EACzBA,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,iBAAiB,EACvB81H,CACT,CAcA,SAASA,EAAuB1wF,EAAM,CACpC,OAAIA,IAAS,IACXplC,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,iBAAiB,EAC9BA,EAAQ,KAAK,WAAW,EACjBw4G,GAEF0P,EAAI9iF,CAAI,CACjB,CACF,CCniBO,MAAM2wF,GAAkB,CAC7B,KAAM,kBACN,WAAY9B,GAAS,WACrB,SAAU+B,EACZ,EAOA,SAASA,GAAwBh2H,EAASw4G,EAAI0P,EAAK,CACjD,MAAMliH,EAAO,KACb,OAAO2K,EAYP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,MAAM,kBAAkB,EAChCA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,kBAAkB,EACxB8kF,CACT,CAYA,SAASA,EAAK1/C,EAAM,CAClB,OAAIA,IAAS,IACXplC,EAAQ,MAAM,aAAa,EAC3BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAK,YAAY,EAClByyC,GAEFy1E,EAAI9iF,CAAI,CACjB,CA6BA,SAASqN,EAAMrN,EAAM,CAMnB,OAAOA,IAAS,IAAM,2BAA4Bp/B,EAAK,OAAO,WAAakiH,EAAI9iF,CAAI,EAAIozE,EAAGpzE,CAAI,CAChG,CACF,CCzFO,MAAM6wF,GAAiB,CAC5B,KAAM,iBACN,WAAYhC,GAAS,WACrB,SAAUiC,EACZ,EAOA,SAASA,GAAuBl2H,EAASw4G,EAAI0P,EAAK,CAChD,MAAMliH,EAAO,KACb,OAAO2K,EAYP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,WAAW,EACzBA,EAAQ,MAAM,aAAa,EAC3BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAK,WAAW,EACjByyC,CACT,CAGA,SAASA,EAAMrN,EAAM,CAKnB,OAAOA,IAAS,IAAM,2BAA4Bp/B,EAAK,OAAO,WAAakiH,EAAI9iF,CAAI,EAAIozE,EAAGpzE,CAAI,CAChG,CACF,CC1CO,MAAM+wF,GAAa,CACxB,KAAM,aACN,SAAUC,EACZ,EAOA,SAASA,GAAmBp2H,EAASw4G,EAAI,CACvC,OAAO7nG,EAGP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EAClBsmH,GAAatmH,EAASw4G,EAAI,YAAY,CAC/C,CACF,CCnBO,MAAM6d,GAAgB,CAC3B,KAAM,gBACN,SAAUC,EACZ,EAOA,SAASA,GAAsBt2H,EAASw4G,EAAI0P,EAAK,CAC/C,IAAI5/E,EAAO,EAEP2vC,EACJ,OAAOtnE,EAYP,SAASA,EAAMy0B,EAAM,CACnB,OAAAplC,EAAQ,MAAM,eAAe,EAEtB+7B,EAAOqJ,CAAI,CACpB,CAYA,SAASrJ,EAAOqJ,EAAM,CACpB,OAAA6yC,EAAS7yC,EACFymF,EAAQzmF,CAAI,CACrB,CAYA,SAASymF,EAAQzmF,EAAM,CACrB,OAAIA,IAAS6yC,GACXj4E,EAAQ,MAAM,uBAAuB,EAC9Bu2H,EAASnxF,CAAI,GAElBkD,GAAQ,IAAMlD,IAAS,MAAQ0gF,GAAmB1gF,CAAI,IACxDplC,EAAQ,KAAK,eAAe,EACrBw4G,EAAGpzE,CAAI,GAET8iF,EAAI9iF,CAAI,CACjB,CAYA,SAASmxF,EAASnxF,EAAM,CACtB,OAAIA,IAAS6yC,GACXj4E,EAAQ,QAAQolC,CAAI,EACpBkD,IACOiuF,IAETv2H,EAAQ,KAAK,uBAAuB,EAC7BgmH,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAAS6rH,EAAS,YAAY,EAAEzmF,CAAI,EAAIymF,EAAQzmF,CAAI,EAChG,CACF,CCpFO,MAAM+D,GAAO,CAClB,aAAc,CACZ,SAAUqtF,EACd,EACE,KAAMC,GACN,KAAM,OACN,SAAUC,EACZ,EAGMC,GAAoC,CACxC,QAAS,GACT,SAAUC,EACZ,EAGMC,GAAkB,CACtB,QAAS,GACT,SAAUC,EACZ,EAUA,SAASJ,GAAkB12H,EAASw4G,EAAI0P,EAAK,CAC3C,MAAMliH,EAAO,KACP9D,EAAO8D,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAC/C,IAAI6vD,EAAc3zD,GAAQA,EAAK,CAAC,EAAE,OAAS,aAAeA,EAAK,CAAC,EAAE,eAAeA,EAAK,CAAC,EAAG,EAAI,EAAE,OAAS,EACrGomC,EAAO,EACX,OAAO33B,EAGP,SAASA,EAAMy0B,EAAM,CACnB,MAAM0qD,EAAO9pF,EAAK,eAAe,OAASo/B,IAAS,IAAMA,IAAS,IAAMA,IAAS,GAAK,gBAAkB,eACxG,GAAI0qD,IAAS,gBAAkB,CAAC9pF,EAAK,eAAe,QAAUo/B,IAASp/B,EAAK,eAAe,OAAS2/G,GAAWvgF,CAAI,EAAG,CAOpH,GANKp/B,EAAK,eAAe,OACvBA,EAAK,eAAe,KAAO8pF,EAC3B9vF,EAAQ,MAAM8vF,EAAM,CAClB,WAAY,EACtB,CAAS,GAECA,IAAS,gBACX,OAAA9vF,EAAQ,MAAM,gBAAgB,EACvBolC,IAAS,IAAMA,IAAS,GAAKplC,EAAQ,MAAMq2H,GAAenO,EAAK6O,CAAQ,EAAE3xF,CAAI,EAAI2xF,EAAS3xF,CAAI,EAEvG,GAAI,CAACp/B,EAAK,WAAao/B,IAAS,GAC9B,OAAAplC,EAAQ,MAAM,gBAAgB,EAC9BA,EAAQ,MAAM,eAAe,EACtB+oH,EAAO3jF,CAAI,CAEtB,CACA,OAAO8iF,EAAI9iF,CAAI,CACjB,CAGA,SAAS2jF,EAAO3jF,EAAM,CACpB,OAAIugF,GAAWvgF,CAAI,GAAK,EAAEkD,EAAO,IAC/BtoC,EAAQ,QAAQolC,CAAI,EACb2jF,IAEJ,CAAC/iH,EAAK,WAAasiC,EAAO,KAAOtiC,EAAK,eAAe,OAASo/B,IAASp/B,EAAK,eAAe,OAASo/B,IAAS,IAAMA,IAAS,KAC/HplC,EAAQ,KAAK,eAAe,EACrB+2H,EAAS3xF,CAAI,GAEf8iF,EAAI9iF,CAAI,CACjB,CAKA,SAAS2xF,EAAS3xF,EAAM,CACtB,OAAAplC,EAAQ,MAAM,gBAAgB,EAC9BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,gBAAgB,EAC7BgG,EAAK,eAAe,OAASA,EAAK,eAAe,QAAUo/B,EACpDplC,EAAQ,MAAMypH,GAErBzjH,EAAK,UAAYkiH,EAAM8O,EAASh3H,EAAQ,QAAQ22H,GAAmCM,EAAaC,CAAW,CAAC,CAC9G,CAGA,SAASF,EAAQ5xF,EAAM,CACrB,OAAAp/B,EAAK,eAAe,iBAAmB,GACvC6vD,IACOohE,EAAY7xF,CAAI,CACzB,CAGA,SAAS8xF,EAAY9xF,EAAM,CACzB,OAAI4gF,GAAc5gF,CAAI,GACpBplC,EAAQ,MAAM,0BAA0B,EACxCA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,0BAA0B,EAChCi3H,GAEF/O,EAAI9iF,CAAI,CACjB,CAGA,SAAS6xF,EAAY7xF,EAAM,CACzB,OAAAp/B,EAAK,eAAe,KAAO6vD,EAAc7vD,EAAK,eAAehG,EAAQ,KAAK,gBAAgB,EAAG,EAAI,EAAE,OAC5Fw4G,EAAGpzE,CAAI,CAChB,CACF,CAOA,SAASoxF,GAAyBx2H,EAASw4G,EAAI0P,EAAK,CAClD,MAAMliH,EAAO,KACb,OAAAA,EAAK,eAAe,WAAa,OAC1BhG,EAAQ,MAAMypH,GAAWuN,EAASG,CAAQ,EAGjD,SAASH,EAAQ5xF,EAAM,CACrB,OAAAp/B,EAAK,eAAe,kBAAoBA,EAAK,eAAe,mBAAqBA,EAAK,eAAe,iBAI9FsgH,GAAatmH,EAASw4G,EAAI,iBAAkBxyG,EAAK,eAAe,KAAO,CAAC,EAAEo/B,CAAI,CACvF,CAGA,SAAS+xF,EAAS/xF,EAAM,CACtB,OAAIp/B,EAAK,eAAe,mBAAqB,CAACggH,GAAc5gF,CAAI,GAC9Dp/B,EAAK,eAAe,kBAAoB,OACxCA,EAAK,eAAe,iBAAmB,OAChCoxH,EAAiBhyF,CAAI,IAE9Bp/B,EAAK,eAAe,kBAAoB,OACxCA,EAAK,eAAe,iBAAmB,OAChChG,EAAQ,QAAQ62H,GAAiBre,EAAI4e,CAAgB,EAAEhyF,CAAI,EACpE,CAGA,SAASgyF,EAAiBhyF,EAAM,CAE9B,OAAAp/B,EAAK,eAAe,WAAa,GAEjCA,EAAK,UAAY,OAGVsgH,GAAatmH,EAASA,EAAQ,QAAQmpC,GAAMqvE,EAAI0P,CAAG,EAAG,aAAcliH,EAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,EAAI,OAAY,CAAC,EAAEo/B,CAAI,CAC/J,CACF,CAOA,SAAS0xF,GAAe92H,EAASw4G,EAAI0P,EAAK,CACxC,MAAMliH,EAAO,KACb,OAAOsgH,GAAatmH,EAAS4rH,EAAa,iBAAkB5lH,EAAK,eAAe,KAAO,CAAC,EAGxF,SAAS4lH,EAAYxmF,EAAM,CACzB,MAAMljC,EAAO8D,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAC/C,OAAO9D,GAAQA,EAAK,CAAC,EAAE,OAAS,kBAAoBA,EAAK,CAAC,EAAE,eAAeA,EAAK,CAAC,EAAG,EAAI,EAAE,SAAW8D,EAAK,eAAe,KAAOwyG,EAAGpzE,CAAI,EAAI8iF,EAAI9iF,CAAI,CACrJ,CACF,CAOA,SAASqxF,GAAgBz2H,EAAS,CAChCA,EAAQ,KAAK,KAAK,eAAe,IAAI,CACvC,CAOA,SAAS42H,GAAiC52H,EAASw4G,EAAI0P,EAAK,CAC1D,MAAMliH,EAAO,KAIb,OAAOsgH,GAAatmH,EAAS4rH,EAAa,2BAA4B5lH,EAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,EAAI,OAAY,CAAK,EAGtJ,SAAS4lH,EAAYxmF,EAAM,CACzB,MAAMljC,EAAO8D,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAC/C,MAAO,CAACggH,GAAc5gF,CAAI,GAAKljC,GAAQA,EAAK,CAAC,EAAE,OAAS,2BAA6Bs2G,EAAGpzE,CAAI,EAAI8iF,EAAI9iF,CAAI,CAC1G,CACF,CCtMO,MAAMiyF,GAAkB,CAC7B,KAAM,kBACN,UAAWC,GACX,SAAUC,EACZ,EAGA,SAASD,GAAyBjP,EAAQr/F,EAAS,CAEjD,IAAI3qB,EAAQgqH,EAAO,OAEfvsF,EAEAvC,EAEAyhF,EAIJ,KAAO38G,KACL,GAAIgqH,EAAOhqH,CAAK,EAAE,CAAC,IAAM,QAAS,CAChC,GAAIgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,UAAW,CACvCy9B,EAAUz9B,EACV,KACF,CACIgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,cAC5Bk7B,EAAOl7B,EAEX,MAGMgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,WAE5BgqH,EAAO,OAAOhqH,EAAO,CAAC,EAEpB,CAAC28G,GAAcqN,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,eAC3C28G,EAAa38G,GAInB,MAAMm5H,EAAU,CACd,KAAM,gBACN,MAAO,CACL,GAAGnP,EAAOvsF,CAAO,EAAE,CAAC,EAAE,KAC5B,EACI,IAAK,CACH,GAAGusF,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAAE,GACtC,CACA,EAGE,OAAAA,EAAO9uF,CAAI,EAAE,CAAC,EAAE,KAAO,oBAInByhF,GACFqN,EAAO,OAAO9uF,EAAM,EAAG,CAAC,QAASi+F,EAASxuG,CAAO,CAAC,EAClDq/F,EAAO,OAAOrN,EAAa,EAAG,EAAG,CAAC,OAAQqN,EAAOvsF,CAAO,EAAE,CAAC,EAAG9S,CAAO,CAAC,EACtEq/F,EAAOvsF,CAAO,EAAE,CAAC,EAAE,IAAM,CACvB,GAAGusF,EAAOrN,CAAU,EAAE,CAAC,EAAE,GAC/B,GAEIqN,EAAOvsF,CAAO,EAAE,CAAC,EAAI07F,EAIvBnP,EAAO,KAAK,CAAC,OAAQmP,EAASxuG,CAAO,CAAC,EAC/Bq/F,CACT,CAOA,SAASkP,GAAwBv3H,EAASw4G,EAAI0P,EAAK,CACjD,MAAMliH,EAAO,KAEb,IAAIiyE,EACJ,OAAOtnE,EAaP,SAASA,EAAMy0B,EAAM,CACnB,IAAI/mC,EAAQ2H,EAAK,OAAO,OAEpByxH,EAEJ,KAAOp5H,KAGL,GAAI2H,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,OAAS,cAAgB2H,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,OAAS,cAAgB2H,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,OAAS,UAAW,CAC1Io5H,EAAYzxH,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,OAAS,YAC3C,KACF,CAKF,MAAI,CAAC2H,EAAK,OAAO,KAAKA,EAAK,MAAM,IAAI,IAAMA,EAAK,WAAayxH,IAC3Dz3H,EAAQ,MAAM,mBAAmB,EACjCi4E,EAAS7yC,EACFrJ,EAAOqJ,CAAI,GAEb8iF,EAAI9iF,CAAI,CACjB,CAaA,SAASrJ,EAAOqJ,EAAM,CACpB,OAAAplC,EAAQ,MAAM,2BAA2B,EAClC+oH,EAAO3jF,CAAI,CACpB,CAaA,SAAS2jF,EAAO3jF,EAAM,CACpB,OAAIA,IAAS6yC,GACXj4E,EAAQ,QAAQolC,CAAI,EACb2jF,IAET/oH,EAAQ,KAAK,2BAA2B,EACjCgmH,GAAc5gF,CAAI,EAAIkhF,GAAatmH,EAASyyC,EAAO,YAAY,EAAErN,CAAI,EAAIqN,EAAMrN,CAAI,EAC5F,CAaA,SAASqN,EAAMrN,EAAM,CACnB,OAAIA,IAAS,MAAQ0gF,GAAmB1gF,CAAI,GAC1CplC,EAAQ,KAAK,mBAAmB,EACzBw4G,EAAGpzE,CAAI,GAET8iF,EAAI9iF,CAAI,CACjB,CACF,CC3KO,MAAMsyF,GAAO,CAClB,SAAUC,EACZ,EAQA,SAASA,GAAe33H,EAAS,CAC/B,MAAMgG,EAAO,KACPsmH,EAAUtsH,EAAQ,QAExBypH,GAAWmO,EAEX53H,EAAQ,QAAQ,KAAK,OAAO,WAAW,YAAa63H,EAAgBvR,GAAatmH,EAASA,EAAQ,QAAQ,KAAK,OAAO,WAAW,KAAM63H,EAAgB73H,EAAQ,QAAQ87B,GAAS+7F,CAAc,CAAC,EAAG,YAAY,CAAC,CAAC,EAChN,OAAOvL,EAGP,SAASsL,EAAcxyF,EAAM,CAC3B,GAAIA,IAAS,KAAM,CACjBplC,EAAQ,QAAQolC,CAAI,EACpB,MACF,CACA,OAAAplC,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,iBAAiB,EAC9BgG,EAAK,iBAAmB,OACjBsmH,CACT,CAGA,SAASuL,EAAezyF,EAAM,CAC5B,GAAIA,IAAS,KAAM,CACjBplC,EAAQ,QAAQolC,CAAI,EACpB,MACF,CACA,OAAAplC,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQolC,CAAI,EACpBplC,EAAQ,KAAK,YAAY,EACzBgG,EAAK,iBAAmB,OACjBsmH,CACT,CACF,CC9CO,MAAMwL,GAAW,CACtB,WAAYC,GAAc,CAC5B,EACapvF,GAASqvF,GAAkB,QAAQ,EACnCz+F,GAAOy+F,GAAkB,MAAM,EAQ5C,SAASA,GAAkBC,EAAO,CAChC,MAAO,CACL,WAAYF,GAAeE,IAAU,OAASC,GAAyB,MAAS,EAChF,SAAUC,CACd,EAOE,SAASA,EAAen4H,EAAS,CAC/B,MAAMgG,EAAO,KACPk/G,EAAa,KAAK,OAAO,WAAW+S,CAAK,EACzC1+F,EAAOv5B,EAAQ,QAAQklH,EAAYv0G,EAAOynH,CAAO,EACvD,OAAOznH,EAGP,SAASA,EAAMy0B,EAAM,CACnB,OAAOymF,EAAQzmF,CAAI,EAAI7L,EAAK6L,CAAI,EAAIgzF,EAAQhzF,CAAI,CAClD,CAGA,SAASgzF,EAAQhzF,EAAM,CACrB,GAAIA,IAAS,KAAM,CACjBplC,EAAQ,QAAQolC,CAAI,EACpB,MACF,CACA,OAAAplC,EAAQ,MAAM,MAAM,EACpBA,EAAQ,QAAQolC,CAAI,EACbthB,CACT,CAGA,SAASA,EAAKshB,EAAM,CAClB,OAAIymF,EAAQzmF,CAAI,GACdplC,EAAQ,KAAK,MAAM,EACZu5B,EAAK6L,CAAI,IAIlBplC,EAAQ,QAAQolC,CAAI,EACbthB,EACT,CAQA,SAAS+nG,EAAQzmF,EAAM,CACrB,GAAIA,IAAS,KACX,MAAO,GAET,MAAM+D,EAAO+7E,EAAW9/E,CAAI,EAC5B,IAAI/mC,EAAQ,GACZ,GAAI8qC,EAGF,KAAO,EAAE9qC,EAAQ8qC,EAAK,QAAQ,CAC5B,MAAM1sC,EAAO0sC,EAAK9qC,CAAK,EACvB,GAAI,CAAC5B,EAAK,UAAYA,EAAK,SAAS,KAAKuJ,EAAMA,EAAK,QAAQ,EAC1D,MAAO,EAEX,CAEF,MAAO,EACT,CACF,CACF,CAQA,SAAS+xH,GAAeM,EAAe,CACrC,OAAOC,EAGP,SAASA,EAAejQ,EAAQr/F,EAAS,CACvC,IAAI3qB,EAAQ,GAER8tH,EAIJ,KAAO,EAAE9tH,GAASgqH,EAAO,QACnB8D,IAAU,OACR9D,EAAOhqH,CAAK,GAAKgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,SAC7C8tH,EAAQ9tH,EACRA,MAEO,CAACgqH,EAAOhqH,CAAK,GAAKgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,UAEjDA,IAAU8tH,EAAQ,IACpB9D,EAAO8D,CAAK,EAAE,CAAC,EAAE,IAAM9D,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,IAC5CgqH,EAAO,OAAO8D,EAAQ,EAAG9tH,EAAQ8tH,EAAQ,CAAC,EAC1C9tH,EAAQ8tH,EAAQ,GAElBA,EAAQ,QAGZ,OAAOkM,EAAgBA,EAAchQ,EAAQr/F,CAAO,EAAIq/F,CAC1D,CACF,CAaA,SAAS6P,GAAuB7P,EAAQr/F,EAAS,CAC/C,IAAIkkG,EAAa,EAEjB,KAAO,EAAEA,GAAc7E,EAAO,QAC5B,IAAK6E,IAAe7E,EAAO,QAAUA,EAAO6E,CAAU,EAAE,CAAC,EAAE,OAAS,eAAiB7E,EAAO6E,EAAa,CAAC,EAAE,CAAC,EAAE,OAAS,OAAQ,CAC9H,MAAMppG,EAAOukG,EAAO6E,EAAa,CAAC,EAAE,CAAC,EAC/Bh0D,EAASlwC,EAAQ,YAAYlF,CAAI,EACvC,IAAIzlB,EAAQ66D,EAAO,OACfq/D,EAAc,GACdjwF,EAAO,EAEPkwF,EACJ,KAAOn6H,KAAS,CACd,MAAM86D,EAAQD,EAAO76D,CAAK,EAC1B,GAAI,OAAO86D,GAAU,SAAU,CAE7B,IADAo/D,EAAcp/D,EAAM,OACbA,EAAM,WAAWo/D,EAAc,CAAC,IAAM,IAC3CjwF,IACAiwF,IAEF,GAAIA,EAAa,MACjBA,EAAc,EAChB,SAESp/D,IAAU,GACjBq/D,EAAO,GACPlwF,YACS6wB,IAAU,GAEd,CAEL96D,IACA,KACF,CACF,CAMA,GAHI2qB,EAAQ,0BAA4BkkG,IAAe7E,EAAO,SAC5D//E,EAAO,GAELA,EAAM,CACR,MAAMqxC,EAAQ,CACZ,KAAMuzC,IAAe7E,EAAO,QAAUmQ,GAAQlwF,EAAO,EAAI,aAAe,oBACxE,MAAO,CACL,aAAcjqC,EAAQk6H,EAAcz0G,EAAK,MAAM,aAAey0G,EAC9D,OAAQz0G,EAAK,MAAM,OAASzlB,EAC5B,KAAMylB,EAAK,IAAI,KACf,OAAQA,EAAK,IAAI,OAASwkB,EAC1B,OAAQxkB,EAAK,IAAI,OAASwkB,CACtC,EACU,IAAK,CACH,GAAGxkB,EAAK,GACpB,CACA,EACQA,EAAK,IAAM,CACT,GAAG61D,EAAM,KACnB,EACY71D,EAAK,MAAM,SAAWA,EAAK,IAAI,OACjC,OAAO,OAAOA,EAAM61D,CAAK,GAEzB0uC,EAAO,OAAO6E,EAAY,EAAG,CAAC,QAASvzC,EAAO3wD,CAAO,EAAG,CAAC,OAAQ2wD,EAAO3wD,CAAO,CAAC,EAChFkkG,GAAc,EAElB,CACAA,GACF,CAEF,OAAO7E,CACT,CC3MO,MAAM/sE,GAAW,CACrB,GAAKnS,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKA,GACL,GAAKwgF,EACR,EAGa8O,GAAiB,CAC3B,GAAKzd,EACR,EAGa0d,GAAc,CACzB,CAAC,EAAE,EAAGlN,GACN,CAAC,EAAE,EAAGA,GACL,GAAKA,EACR,EAGakM,GAAO,CACjB,GAAK1H,GACL,GAAKqG,GACL,GAAK,CAACgB,GAAiBhB,EAAa,EACpC,GAAK/F,GACL,GAAK+G,GACL,GAAKhB,GACL,GAAK/L,GACL,IAAMA,EACT,EAGa3hF,GAAS,CACnB,GAAK47E,GACL,GAAK0F,EACR,EAGa1wF,GAAO,CAClB,CAAC,EAAE,EAAG48F,GACN,CAAC,EAAE,EAAGA,GACN,CAAC,EAAE,EAAGA,GACL,GAAKJ,GACL,GAAKxR,GACL,GAAK+D,GACL,GAAK,CAACU,GAAU0J,EAAQ,EACxB,GAAKuD,GACL,GAAK,CAACnG,GAAiB7F,EAAe,EACtC,GAAKgK,GACL,GAAK3L,GACL,GAAKwD,EACR,EAGa6M,GAAa,CACxB,KAAM,CAACrQ,GAAWsQ,EAAW,CAC/B,EAGa9P,GAAmB,CAC9B,KAAM,CAAC,GAAI,EAAE,CACf,EAGa+P,GAAU,CACrB,KAAM,EACR,oNCxBO,SAASC,GAAgBriC,EAAQsiC,EAAYjxG,EAAM,CAExD,IAAIq4F,EAAQ,CACV,aAAc,GACd,OAAQ,EACR,KAAMr4F,GAAQA,EAAK,MAAQ,EAC3B,OAAQA,GAAQA,EAAK,QAAU,EAC/B,OAAQA,GAAQA,EAAK,QAAU,CACnC,EAEE,MAAMkxG,EAAc,GAEdC,EAAuB,GAE7B,IAAI//D,EAAS,GAET9V,EAAQ,GASZ,MAAMpjD,EAAU,CACd,QAASk5H,EAAiBC,CAAqB,EAC/C,MAAOD,EAAiBE,CAAiB,EACzC,QAAAC,EACA,MAAAlN,EACA,KAAAtC,EACA,UAAWqP,EAAiBE,EAAmB,CAC7C,UAAW,EACjB,CAAK,CACL,EAOQpwG,EAAU,CACd,KAAM,KACN,eAAgB,GAChB,WAAAswG,EACA,OAAQ,GACR,IAAAn8B,EACA,OAAA1G,EACA,SAAU,KACV,eAAA8iC,EACA,YAAAC,EACA,MAAAC,CACJ,EAOE,IAAIt/G,EAAQ4+G,EAAW,SAAS,KAAK/vG,EAAShpB,CAAO,EAQrD,OAAI+4H,EAAW,YACbE,EAAqB,KAAKF,CAAU,EAE/B/vG,EAGP,SAASywG,EAAM/L,EAAO,CAKpB,OAJAx0D,EAASyrD,GAAKzrD,EAAQw0D,CAAK,EAC3BgM,EAAI,EAGAxgE,EAAOA,EAAO,OAAS,CAAC,IAAM,KACzB,IAETygE,EAAUZ,EAAY,CAAC,EAGvB/vG,EAAQ,OAASo/F,GAAW6Q,EAAsBjwG,EAAQ,OAAQA,CAAO,EAClEA,EAAQ,OACjB,CAOA,SAASuwG,EAAe5/C,EAAOigD,EAAY,CACzC,OAAOC,GAAgBL,EAAY7/C,CAAK,EAAGigD,CAAU,CACvD,CAGA,SAASJ,EAAY7/C,EAAO,CAC1B,OAAOmgD,GAAY5gE,EAAQygB,CAAK,CAClC,CAGA,SAASwjB,GAAM,CAEb,KAAM,CACJ,aAAA48B,EACA,OAAAC,EACA,KAAA9lC,EACA,OAAA+pB,EACA,OAAA33E,CACN,EAAQ65E,EACJ,MAAO,CACL,aAAA4Z,EACA,OAAAC,EACA,KAAA9lC,EACA,OAAA+pB,EACA,OAAA33E,CACN,CACE,CAGA,SAASgzF,EAAW3+H,EAAO,CACzBq+H,EAAYr+H,EAAM,IAAI,EAAIA,EAAM,OAChCs/H,EAAuB,CACzB,CAiBA,SAASP,GAAO,CAEd,IAAIQ,EACJ,KAAO/Z,EAAM,OAASjnD,EAAO,QAAQ,CACnC,MAAMC,EAAQD,EAAOinD,EAAM,MAAM,EAGjC,GAAI,OAAOhnD,GAAU,SAKnB,IAJA+gE,EAAa/Z,EAAM,OACfA,EAAM,aAAe,IACvBA,EAAM,aAAe,GAEhBA,EAAM,SAAW+Z,GAAc/Z,EAAM,aAAehnD,EAAM,QAC/DghE,EAAGhhE,EAAM,WAAWgnD,EAAM,YAAY,CAAC,OAGzCga,EAAGhhE,CAAK,CAEZ,CACF,CAUA,SAASghE,EAAG/0F,EAAM,CAGhBjrB,EAAQA,EAAMirB,CAAI,CACpB,CAGA,SAASi0F,EAAQj0F,EAAM,CACjB0gF,GAAmB1gF,CAAI,GACzB+6E,EAAM,OACNA,EAAM,OAAS,EACfA,EAAM,QAAU/6E,IAAS,GAAK,EAAI,EAClC60F,EAAuB,GACd70F,IAAS,KAClB+6E,EAAM,SACNA,EAAM,UAIJA,EAAM,aAAe,EACvBA,EAAM,UAENA,EAAM,eAGFA,EAAM,eAIVjnD,EAAOinD,EAAM,MAAM,EAAE,SACnBA,EAAM,aAAe,GACrBA,EAAM,WAKVn3F,EAAQ,SAAWoc,CAIrB,CAGA,SAAS+mF,EAAMtoH,EAAMu2H,EAAQ,CAG3B,MAAMzgD,EAAQygD,GAAU,GACxB,OAAAzgD,EAAM,KAAO91E,EACb81E,EAAM,MAAQwjB,EAAG,EACjBn0E,EAAQ,OAAO,KAAK,CAAC,QAAS2wD,EAAO3wD,CAAO,CAAC,EAC7Co6B,EAAM,KAAKu2B,CAAK,EACTA,CACT,CAGA,SAASkwC,EAAKhmH,EAAM,CAClB,MAAM81E,EAAQv2B,EAAM,IAAG,EACvB,OAAAu2B,EAAM,IAAMwjB,EAAG,EACfn0E,EAAQ,OAAO,KAAK,CAAC,OAAQ2wD,EAAO3wD,CAAO,CAAC,EACrC2wD,CACT,CAOA,SAASw/C,EAAsB5jF,EAAWymE,EAAM,CAC9C2d,EAAUpkF,EAAWymE,EAAK,IAAI,CAChC,CAOA,SAASod,EAAkB5kE,EAAGwnD,EAAM,CAClCA,EAAK,QAAO,CACd,CAUA,SAASkd,EAAiBmB,EAAUD,EAAQ,CAC1C,OAAO/mH,EAeP,SAASA,EAAK6xG,EAAY0N,EAAa0H,EAAY,CAEjD,IAAIC,GAEAC,GAEAC,GAEAze,EACJ,OAAO,MAAM,QAAQkJ,CAAU,EAC/BwV,GAAuBxV,CAAU,EAAI,aAAcA,EAEnDwV,GAAuB,CAA0BxV,CAAU,CAAE,EAAIyV,GAAsBzV,CAAU,EAUjG,SAASyV,GAAsB3hI,GAAK,CAClC,OAAO2X,GAGP,SAASA,GAAMy0B,GAAM,CACnB,MAAM4/E,GAAO5/E,KAAS,MAAQpsC,GAAIosC,EAAI,EAChCwmE,GAAMxmE,KAAS,MAAQpsC,GAAI,KAC3BmwC,EAAO,CAGb,GAAI,MAAM,QAAQ67E,EAAI,EAAIA,GAAOA,GAAO,CAACA,EAAI,EAAI,GAAK,GAAI,MAAM,QAAQpZ,EAAG,EAAIA,GAAMA,GAAM,CAACA,EAAG,EAAI,EAAG,EACtG,OAAO8uB,GAAuBvxF,CAAI,EAAE/D,EAAI,CAC1C,CACF,CAUA,SAASs1F,GAAuBvxF,GAAM,CAGpC,OAFAoxF,GAAmBpxF,GACnBqxF,GAAiB,EACbrxF,GAAK,SAAW,EACXmxF,EAEFM,EAAgBzxF,GAAKqxF,EAAc,CAAC,CAC7C,CAUA,SAASI,EAAgBrlF,GAAW,CAClC,OAAO5kC,GAGP,SAASA,GAAMy0B,GAAM,CAanB,OARA42E,EAAOhrE,EAAK,EACZypF,GAAmBllF,GACdA,GAAU,UACbvsB,EAAQ,iBAAmBusB,IAKzBA,GAAU,MAAQvsB,EAAQ,OAAO,WAAW,QAAQ,KAAK,SAASusB,GAAU,IAAI,EAC3E2yE,GAAQ,EAEV3yE,GAAU,SAAS,KAI1B6kF,EAAS,OAAO,OAAO,OAAO,OAAOpxG,CAAO,EAAGoxG,CAAM,EAAIpxG,EAAShpB,EAASw4G,GAAI0P,EAAG,EAAE9iF,EAAI,CAC1F,CACF,CAGA,SAASozE,GAAGpzE,GAAM,CAEhB,OAAAi1F,EAASI,GAAkBze,CAAI,EACxB4W,CACT,CAGA,SAAS1K,GAAI9iF,GAAM,CAGjB,OADA42E,EAAK,QAAO,EACR,EAAEwe,GAAiBD,GAAiB,OAC/BK,EAAgBL,GAAiBC,EAAc,CAAC,EAElDF,CACT,CACF,CACF,CAUA,SAASX,EAAUpkF,EAAWztB,EAAM,CAC9BytB,EAAU,YAAc,CAAC0jF,EAAqB,SAAS1jF,CAAS,GAClE0jF,EAAqB,KAAK1jF,CAAS,EAEjCA,EAAU,SACZivE,GAAOx7F,EAAQ,OAAQlB,EAAMkB,EAAQ,OAAO,OAASlB,EAAMytB,EAAU,QAAQvsB,EAAQ,OAAO,MAAMlB,CAAI,EAAGkB,CAAO,CAAC,EAE/GusB,EAAU,YACZvsB,EAAQ,OAASusB,EAAU,UAAUvsB,EAAQ,OAAQA,CAAO,EAEhE,CAQA,SAASgoB,GAAQ,CACf,MAAM6pF,EAAa19B,EAAG,EAChB29B,EAAgB9xG,EAAQ,SACxB+xG,EAAwB/xG,EAAQ,iBAChCgyG,EAAmBhyG,EAAQ,OAAO,OAClCiyG,EAAa,MAAM,KAAK73E,CAAK,EACnC,MAAO,CACL,KAAM43E,EACN,QAAAE,CACN,EAQI,SAASA,GAAU,CACjB/a,EAAQ0a,EACR7xG,EAAQ,SAAW8xG,EACnB9xG,EAAQ,iBAAmB+xG,EAC3B/xG,EAAQ,OAAO,OAASgyG,EACxB53E,EAAQ63E,EACRhB,EAAuB,CACzB,CACF,CASA,SAASA,GAA0B,CAC7B9Z,EAAM,QAAQ6Y,GAAe7Y,EAAM,OAAS,IAC9CA,EAAM,OAAS6Y,EAAY7Y,EAAM,IAAI,EACrCA,EAAM,QAAU6Y,EAAY7Y,EAAM,IAAI,EAAI,EAE9C,CACF,CAYA,SAAS2Z,GAAY5gE,EAAQygB,EAAO,CAClC,MAAMwhD,EAAaxhD,EAAM,MAAM,OACzByhD,EAAmBzhD,EAAM,MAAM,aAC/B0hD,EAAW1hD,EAAM,IAAI,OACrB2hD,EAAiB3hD,EAAM,IAAI,aAEjC,IAAI4hD,EACJ,GAAIJ,IAAeE,EAEjBE,EAAO,CAACriE,EAAOiiE,CAAU,EAAE,MAAMC,EAAkBE,CAAc,CAAC,MAC7D,CAEL,GADAC,EAAOriE,EAAO,MAAMiiE,EAAYE,CAAQ,EACpCD,EAAmB,GAAI,CACzB,MAAMn5H,EAAOs5H,EAAK,CAAC,EACf,OAAOt5H,GAAS,SAClBs5H,EAAK,CAAC,EAAIt5H,EAAK,MAAMm5H,CAAgB,EAGrCG,EAAK,MAAK,CAEd,CACID,EAAiB,GAEnBC,EAAK,KAAKriE,EAAOmiE,CAAQ,EAAE,MAAM,EAAGC,CAAc,CAAC,CAEvD,CACA,OAAOC,CACT,CAYA,SAAS1B,GAAgB3gE,EAAQ0gE,EAAY,CAC3C,IAAIv7H,EAAQ,GAEZ,MAAM+H,EAAS,GAEf,IAAIo1H,EACJ,KAAO,EAAEn9H,EAAQ66D,EAAO,QAAQ,CAC9B,MAAMC,EAAQD,EAAO76D,CAAK,EAE1B,IAAI1D,EACJ,GAAI,OAAOw+D,GAAU,SACnBx+D,EAAQw+D,cACKA,EAAK,CAClB,IAAK,GACH,CACEx+D,EAAQ,KACR,KACF,CACF,IAAK,GACH,CACEA,EAAQ;AAAA,EACR,KACF,CACF,IAAK,GACH,CACEA,EAAQ;AAAA,EACR,KACF,CACF,IAAK,GACH,CACEA,EAAQi/H,EAAa,IAAM,IAC3B,KACF,CACF,IAAK,GACH,CACE,GAAI,CAACA,GAAc4B,EAAO,SAC1B7gI,EAAQ,IACR,KACF,CACF,QAGIA,EAAQ,OAAO,aAAaw+D,CAAK,CAE3C,CACIqiE,EAAQriE,IAAU,GAClB/yD,EAAO,KAAKzL,CAAK,CACnB,CACA,OAAOyL,EAAO,KAAK,EAAE,CACvB,CC1kBO,SAASk1E,GAAM9tE,EAAS,CAM7B,MAAMipF,EAAS,CACb,WAJFmuB,GAAkB,CAAC6W,GAAmB,IAFrBjuH,GAAW,IAEuB,YAAc,EAAG,CAAC,EAKnE,QAAS6nC,EAAOvZ,EAAO,EACvB,QAAS,GACT,SAAUuZ,EAAOiG,EAAQ,EACzB,KAAMjG,EAAOqiF,EAAI,EACjB,KAAM,GACN,OAAQriF,EAAO1M,EAAM,EACrB,KAAM0M,EAAO9b,EAAI,CACrB,EACE,OAAOk9D,EAQP,SAASphD,EAAOi3E,EAAS,CACvB,OAAOoP,EAEP,SAASA,EAAQ5zG,EAAM,CACrB,OAAOgxG,GAAgBriC,EAAQ61B,EAASxkG,CAAI,CAC9C,CACF,CACF,CC3CO,SAAS6zG,GAAYtT,EAAQ,CAClC,KAAO,CAACoE,GAAYpE,CAAM,GAAG,CAG7B,OAAOA,CACT,CCAA,MAAMjY,GAAS,cAMR,SAASwrB,IAAa,CAC3B,IAAI3d,EAAS,EACTr5E,EAAS,GAETj0B,EAAQ,GAERkrH,EACJ,OAAOC,EAIP,SAASA,EAAanhI,EAAO8tC,EAAU73B,EAAK,CAE1C,MAAMsoD,EAAS,GAEf,IAAIj8D,EAEA6E,EAEAqrH,EAEA4O,EAEA32F,EAWJ,IAVAzqC,EAAQiqC,GAAU,OAAOjqC,GAAU,SAAWA,EAAM,SAAQ,EAAK,IAAI,YAAY8tC,GAAY,MAAS,EAAE,OAAO9tC,CAAK,GACpHwyH,EAAgB,EAChBvoF,EAAS,GACLj0B,IAEEhW,EAAM,WAAW,CAAC,IAAM,OAC1BwyH,IAEFx8G,EAAQ,QAEHw8G,EAAgBxyH,EAAM,QAAQ,CAKnC,GAJAy1G,GAAO,UAAY+c,EACnBlwH,EAAQmzG,GAAO,KAAKz1G,CAAK,EACzBohI,EAAc9+H,GAASA,EAAM,QAAU,OAAYA,EAAM,MAAQtC,EAAM,OACvEyqC,EAAOzqC,EAAM,WAAWohI,CAAW,EAC/B,CAAC9+H,EAAO,CACV2nC,EAASjqC,EAAM,MAAMwyH,CAAa,EAClC,KACF,CACA,GAAI/nF,IAAS,IAAM+nF,IAAkB4O,GAAeF,EAClD3iE,EAAO,KAAK,EAAE,EACd2iE,EAAmB,mBAEfA,IACF3iE,EAAO,KAAK,EAAE,EACd2iE,EAAmB,QAEjB1O,EAAgB4O,IAClB7iE,EAAO,KAAKv+D,EAAM,MAAMwyH,EAAe4O,CAAW,CAAC,EACnD9d,GAAU8d,EAAc5O,GAElB/nF,EAAI,CACV,IAAK,GACH,CACE8zB,EAAO,KAAK,KAAK,EACjB+kD,IACA,KACF,CACF,OACE,CAGE,IAFAn8G,EAAO,KAAK,KAAKm8G,EAAS,CAAC,EAAI,EAC/B/kD,EAAO,KAAK,EAAE,EACP+kD,IAAWn8G,GAAMo3D,EAAO,KAAK,EAAE,EACtC,KACF,CACF,IAAK,IACH,CACEA,EAAO,KAAK,EAAE,EACd+kD,EAAS,EACT,KACF,CACF,QAEI4d,EAAmB,GACnB5d,EAAS,CAEvB,CAEMkP,EAAgB4O,EAAc,CAChC,CACA,OAAInrH,IACEirH,GAAkB3iE,EAAO,KAAK,EAAE,EAChCt0B,GAAQs0B,EAAO,KAAKt0B,CAAM,EAC9Bs0B,EAAO,KAAK,IAAI,GAEXA,CACT,CACF,CChHA,MAAM8iE,GAA6B,oEAc5B,SAASC,GAAathI,EAAO,CAClC,OAAOA,EAAM,QAAQqhI,GAA4BE,EAAM,CACzD,CAYA,SAASA,GAAOnf,EAAIof,EAAIC,EAAI,CAC1B,GAAID,EAEF,OAAOA,EAKT,GADaC,EAAG,WAAW,CAAC,IACf,GAAI,CACf,MAAMn6H,EAAOm6H,EAAG,WAAW,CAAC,EACtBp7B,EAAM/+F,IAAS,KAAOA,IAAS,GACrC,OAAOkjH,GAAgCiX,EAAG,MAAMp7B,EAAM,EAAI,CAAC,EAAGA,EAAM,GAAK,EAAE,CAC7E,CACA,OAAOsjB,GAA8B8X,CAAE,GAAKrf,CAC9C,CCIA,MAAMthB,GAAM,GAAG,eAyBR,SAAS4gC,GAAa1hI,EAAO8tC,EAAUj7B,EAAS,CACrD,OAAI,OAAOi7B,GAAa,WACtBj7B,EAAUi7B,EACVA,EAAW,QAEN46E,GAAS71G,CAAO,EAAEmuH,GAAYrgD,GAAM9tE,CAAO,EAAE,SAAQ,EAAG,MAAMouH,GAAU,EAAGjhI,EAAO8tC,EAAU,EAAI,CAAC,CAAC,CAAC,CAC5G,CAOA,SAAS46E,GAAS71G,EAAS,CAEzB,MAAMi0D,EAAS,CACb,WAAY,GACZ,eAAgB,CAAC,WAAY,WAAY,UAAW,YAAa,QAAQ,EACzE,MAAO,CACL,SAAU66D,EAAOn7H,EAAI,EACrB,iBAAkBo7H,EAClB,cAAeA,EACf,WAAYD,EAAO9E,EAAO,EAC1B,WAAY8E,EAAO3S,EAAU,EAC7B,gBAAiB4S,EACjB,mBAAoBA,EACpB,WAAYD,EAAOE,CAAQ,EAC3B,oBAAqB53F,EACrB,oBAAqBA,EACrB,aAAc03F,EAAOE,EAAU53F,CAAM,EACrC,SAAU03F,EAAOxQ,EAAUlnF,CAAM,EACjC,aAAc23F,EACd,KAAMA,EACN,cAAeA,EACf,WAAYD,EAAOthB,CAAU,EAC7B,4BAA6Bp2E,EAC7B,sBAAuBA,EACvB,sBAAuBA,EACvB,SAAU03F,EAAOG,EAAQ,EACzB,gBAAiBH,EAAOI,CAAS,EACjC,kBAAmBJ,EAAOI,CAAS,EACnC,SAAUJ,EAAOpjF,GAAMtU,CAAM,EAC7B,aAAc23F,EACd,SAAUD,EAAOpjF,GAAMtU,CAAM,EAC7B,aAAc23F,EACd,MAAOD,EAAOK,EAAK,EACnB,MAAO/3F,EACP,KAAM03F,EAAOn7H,EAAI,EACjB,SAAUm7H,EAAOM,EAAQ,EACzB,cAAeC,EACf,YAAaP,EAAOnzF,GAAM2zF,CAAkB,EAC5C,cAAeR,EAAOnzF,EAAI,EAC1B,UAAWmzF,EAAO7E,EAAS,EAC3B,UAAWsF,EACX,gBAAiBn4F,EACjB,0BAA2BA,EAC3B,oBAAqBA,EACrB,cAAe03F,EAAO9E,EAAO,EAC7B,OAAQ8E,EAAOU,EAAM,EACrB,cAAeV,EAAOjG,EAAa,CACzC,EACI,KAAM,CACJ,WAAY4G,EAAM,EAClB,mBAAoBC,EACpB,SAAUD,EAAM,EAChB,cAAeE,GACf,iBAAkBC,GAClB,WAAYH,EAAM,EAClB,qBAAsBI,EACtB,oCAAqCC,GACrC,gCAAiCA,GACjC,wBAAyBC,GACzB,mBAAoBC,GACpB,WAAYP,EAAOQ,CAAgB,EACnC,gBAAiBC,EACjB,oBAAqBC,EACrB,oBAAqBC,EACrB,cAAeP,EACf,aAAcJ,EAAOY,CAAkB,EACvC,SAAUZ,EAAOa,CAAc,EAC/B,aAAcT,EACd,KAAMA,EACN,WAAYJ,EAAM,EAClB,4BAA6Bc,EAC7B,sBAAuBC,EACvB,sBAAuBC,EACvB,SAAUhB,EAAM,EAChB,gBAAiBA,EAAOiB,CAAe,EACvC,kBAAmBjB,EAAOiB,CAAe,EACzC,SAAUjB,EAAOkB,CAAc,EAC/B,aAAcd,EACd,SAAUJ,EAAOmB,CAAc,EAC/B,aAAcf,EACd,MAAOJ,EAAOoB,EAAW,EACzB,MAAOC,GACP,UAAWC,GACX,WAAYC,EACZ,KAAMvB,EAAOwB,CAAU,EACvB,SAAUxB,EAAM,EAChB,YAAaA,EAAM,EACnB,cAAeA,EAAM,EACrB,UAAWA,EAAM,EACjB,gBAAiByB,GACjB,0BAA2BC,EAC3B,oBAAqBC,GACrB,SAAUC,GACV,cAAe5B,EAAO6B,CAAmB,EACzC,0BAA2BC,EAC3B,kBAAmBC,EACnB,OAAQ/B,EAAM,EACd,cAAeA,EAAM,CAC3B,CACA,EACEgC,GAAUx9D,GAASj0D,GAAW,IAAI,iBAAmB,EAAE,EAGvD,MAAMsW,EAAO,GACb,OAAOo7G,EAUP,SAASA,EAAQ7W,EAAQ,CAEvB,IAAIlP,GAAO,CACT,KAAM,OACN,SAAU,EAChB,EAEI,MAAMnwF,GAAU,CACd,MAAO,CAACmwF,EAAI,EACZ,WAAY,GACZ,OAAA13C,EACA,MAAA0qD,EACA,KAAAtC,EACA,OAAAjlF,EACA,OAAA0uB,EACA,KAAAxvC,CACN,EAEUq7G,GAAY,GAClB,IAAI9gI,EAAQ,GACZ,KAAO,EAAEA,EAAQgqH,EAAO,QAGtB,GAAIA,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,eAAiBgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,gBACvE,GAAIgqH,EAAOhqH,CAAK,EAAE,CAAC,IAAM,QACvB8gI,GAAU,KAAK9gI,CAAK,MACf,CACL,MAAM6D,EAAOi9H,GAAU,IAAG,EAC1B9gI,EAAQ+gI,EAAY/W,EAAQnmH,EAAM7D,CAAK,CACzC,CAIJ,IADAA,EAAQ,GACD,EAAEA,EAAQgqH,EAAO,QAAQ,CAC9B,MAAMjhG,EAAUq6C,EAAO4mD,EAAOhqH,CAAK,EAAE,CAAC,CAAC,EACnCo9F,GAAI,KAAKr0E,EAASihG,EAAOhqH,CAAK,EAAE,CAAC,EAAE,IAAI,GACzC+oB,EAAQihG,EAAOhqH,CAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,OAAO,CAChD,eAAgBgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,cAC3C,EAAW2qB,EAAO,EAAGq/F,EAAOhqH,CAAK,EAAE,CAAC,CAAC,CAEjC,CAGA,GAAI2qB,GAAQ,WAAW,OAAS,EAAG,CACjC,MAAM9mB,EAAO8mB,GAAQ,WAAWA,GAAQ,WAAW,OAAS,CAAC,GAC7C9mB,EAAK,CAAC,GAAKm9H,IACnB,KAAKr2G,GAAS,OAAW9mB,EAAK,CAAC,CAAC,CAC1C,CAkBA,IAfAi3G,GAAK,SAAW,CACd,MAAOgH,GAAMkI,EAAO,OAAS,EAAIA,EAAO,CAAC,EAAE,CAAC,EAAE,MAAQ,CACpD,KAAM,EACN,OAAQ,EACR,OAAQ,CAChB,CAAO,EACD,IAAKlI,GAAMkI,EAAO,OAAS,EAAIA,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAAE,IAAM,CAChE,KAAM,EACN,OAAQ,EACR,OAAQ,CAChB,CAAO,CACP,EAGIhqH,EAAQ,GACD,EAAEA,EAAQojE,EAAO,WAAW,QACjC03C,GAAO13C,EAAO,WAAWpjE,CAAK,EAAE86G,EAAI,GAAKA,GAE3C,OAAOA,EACT,CAQA,SAASimB,EAAY/W,EAAQ13G,GAAOg3B,GAAQ,CAC1C,IAAItpC,GAAQsS,GAAQ,EAChB2uH,EAAmB,GACnBC,EAAa,GAEb3C,EAEAhQ,EAEA4S,EAEAzI,EACJ,KAAO,EAAE14H,IAASspC,IAAQ,CACxB,MAAMld,GAAQ49F,EAAOhqH,EAAK,EAC1B,OAAQosB,GAAM,CAAC,EAAE,KAAI,CACnB,IAAK,gBACL,IAAK,cACL,IAAK,aACH,CACMA,GAAM,CAAC,IAAM,QACf60G,IAEAA,IAEFvI,EAAW,OACX,KACF,CACF,IAAK,kBACH,CACMtsG,GAAM,CAAC,IAAM,UACXmyG,GAAY,CAAC7F,GAAY,CAACuI,GAAoB,CAACE,IACjDA,EAAsBnhI,IAExB04H,EAAW,QAEb,KACF,CACF,IAAK,aACL,IAAK,gBACL,IAAK,iBACL,IAAK,iBACL,IAAK,2BAID,MAEJ,QAEIA,EAAW,MAEvB,CACM,GAAI,CAACuI,GAAoB70G,GAAM,CAAC,IAAM,SAAWA,GAAM,CAAC,EAAE,OAAS,kBAAoB60G,IAAqB,IAAM70G,GAAM,CAAC,IAAM,SAAWA,GAAM,CAAC,EAAE,OAAS,iBAAmBA,GAAM,CAAC,EAAE,OAAS,eAAgB,CAC/M,GAAImyG,EAAU,CACZ,IAAI6C,GAAYphI,GAEhB,IADAuuH,EAAY,OACL6S,MAAa,CAClB,MAAMC,GAAYrX,EAAOoX,EAAS,EAClC,GAAIC,GAAU,CAAC,EAAE,OAAS,cAAgBA,GAAU,CAAC,EAAE,OAAS,kBAAmB,CACjF,GAAIA,GAAU,CAAC,IAAM,OAAQ,SACzB9S,IACFvE,EAAOuE,CAAS,EAAE,CAAC,EAAE,KAAO,kBAC5B2S,EAAa,IAEfG,GAAU,CAAC,EAAE,KAAO,aACpB9S,EAAY6S,EACd,SAAW,EAAAC,GAAU,CAAC,EAAE,OAAS,cAAgBA,GAAU,CAAC,EAAE,OAAS,oBAAsBA,GAAU,CAAC,EAAE,OAAS,8BAAgCA,GAAU,CAAC,EAAE,OAAS,oBAAsBA,GAAU,CAAC,EAAE,OAAS,kBAGnN,KAEJ,CACIF,IAAwB,CAAC5S,GAAa4S,EAAsB5S,KAC9DgQ,EAAS,QAAU,IAIrBA,EAAS,IAAM,OAAO,OAAO,GAAIhQ,EAAYvE,EAAOuE,CAAS,EAAE,CAAC,EAAE,MAAQniG,GAAM,CAAC,EAAE,GAAG,EACtF49F,EAAO,OAAOuE,GAAavuH,GAAO,EAAG,CAAC,OAAQu+H,EAAUnyG,GAAM,CAAC,CAAC,CAAC,EACjEpsB,KACAspC,IACF,CAGA,GAAIld,GAAM,CAAC,EAAE,OAAS,iBAAkB,CAEtC,MAAMhuB,GAAO,CACX,KAAM,WACN,QAAS,GACT,MAAO,OAAO,OAAO,GAAIguB,GAAM,CAAC,EAAE,KAAK,EAEvC,IAAK,MACjB,EACUmyG,EAAWngI,GACX4rH,EAAO,OAAOhqH,GAAO,EAAG,CAAC,QAAS5B,GAAMguB,GAAM,CAAC,CAAC,CAAC,EACjDpsB,KACAspC,KACA63F,EAAsB,OACtBzI,EAAW,EACb,CACF,CACF,CACA,OAAA1O,EAAO13G,EAAK,EAAE,CAAC,EAAE,QAAU4uH,EACpB53F,EACT,CAYA,SAAS20F,EAAOjnF,EAAQsqF,GAAK,CAC3B,OAAO76C,GAOP,SAASA,GAAKnL,GAAO,CACnBwyC,EAAM,KAAK,KAAM92E,EAAOskC,EAAK,EAAGA,EAAK,EACjCgmD,IAAKA,GAAI,KAAK,KAAMhmD,EAAK,CAC/B,CACF,CAKA,SAAS/0C,GAAS,CAChB,KAAK,MAAM,KAAK,CACd,KAAM,WACN,SAAU,EAChB,CAAK,CACH,CAKA,SAASunF,EAAM9yG,EAAMsgE,GAAOnqE,GAAc,CACzB,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAEvB,SACf,KAAK6J,CAAI,EAClB,KAAK,MAAM,KAAKA,CAAI,EACpB,KAAK,WAAW,KAAK,CAACsgE,GAAOnqE,IAAgB,MAAS,CAAC,EACvD6J,EAAK,SAAW,CACd,MAAO8mG,GAAMxmC,GAAM,KAAK,EAExB,IAAK,MACX,CACE,CAUA,SAASsjD,EAAO0C,EAAK,CACnB,OAAOp7C,GAOP,SAASA,GAAM5K,GAAO,CAChBgmD,GAAKA,EAAI,KAAK,KAAMhmD,EAAK,EAC7BkwC,EAAK,KAAK,KAAMlwC,EAAK,CACvB,CACF,CAKA,SAASkwC,EAAKlwC,EAAOimD,GAAa,CAChC,MAAMvmH,GAAO,KAAK,MAAM,IAAG,EACrByrE,GAAO,KAAK,WAAW,IAAG,EAChC,GAAKA,GAKMA,GAAK,CAAC,EAAE,OAASnL,EAAM,OAC5BimD,GACFA,GAAY,KAAK,KAAMjmD,EAAOmL,GAAK,CAAC,CAAC,GAErBA,GAAK,CAAC,GAAKu6C,IACnB,KAAK,KAAM1lD,EAAOmL,GAAK,CAAC,CAAC,OATnC,OAAM,IAAI,MAAM,iBAAmBnL,EAAM,KAAO,MAAQ0mC,GAAkB,CACxE,MAAO1mC,EAAM,MACb,IAAKA,EAAM,GACnB,CAAO,EAAI,kBAAkB,EASzBtgE,GAAK,SAAS,IAAM8mG,GAAMxmC,EAAM,GAAG,CACrC,CAKA,SAASrmB,GAAS,CAChB,OAAOX,GAAS,KAAK,MAAM,IAAG,CAAE,CAClC,CAUA,SAASmqE,GAAqB,CAC5B,KAAK,KAAK,4BAA8B,EAC1C,CAMA,SAASD,EAAqBljD,EAAO,CACnC,GAAI,KAAK,KAAK,4BAA6B,CACzC,MAAMkmD,GAAW,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EACjDA,GAAS,MAAQ,OAAO,SAAS,KAAK,eAAelmD,CAAK,EAAG,EAAE,EAC/D,KAAK,KAAK,4BAA8B,MAC1C,CACF,CAMA,SAASgkD,GAA4B,CACnC,MAAM75G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,KAAOyK,CACd,CAMA,SAAS85G,GAA4B,CACnC,MAAM95G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,KAAOyK,CACd,CAMA,SAAS45G,GAAwB,CAE3B,KAAK,KAAK,iBACd,KAAK,OAAM,EACX,KAAK,KAAK,eAAiB,GAC7B,CAMA,SAASD,GAAmB,CAC1B,MAAM35G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQyK,EAAK,QAAQ,2BAA4B,EAAE,EACxD,KAAK,KAAK,eAAiB,MAC7B,CAMA,SAAS+5G,GAAqB,CAC5B,MAAM/5G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQyK,EAAK,QAAQ,eAAgB,EAAE,CAC9C,CAMA,SAASk6G,EAA4BrkD,EAAO,CAC1C,MAAMyP,GAAQ,KAAK,OAAM,EACnB/vE,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQ+vE,GACb/vE,GAAK,WAAa+rG,GAAoB,KAAK,eAAezrC,CAAK,CAAC,EAAE,YAAW,CAC/E,CAMA,SAASskD,GAA8B,CACrC,MAAMn6G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQyK,CACf,CAMA,SAASi6G,GAAoC,CAC3C,MAAMj6G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,IAAMyK,CACb,CAMA,SAASo5G,EAAyBvjD,EAAO,CACvC,MAAMtgE,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7C,GAAI,CAACA,GAAK,MAAO,CACf,MAAM5K,GAAQ,KAAK,eAAekrE,CAAK,EAAE,OACzCtgE,GAAK,MAAQ5K,EACf,CACF,CAMA,SAASuwH,GAA0B,CACjC,KAAK,KAAK,6BAA+B,EAC3C,CAMA,SAASD,EAAgCplD,EAAO,CAC9C,MAAMtgE,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQ,KAAK,eAAesgE,CAAK,EAAE,YAAY,CAAC,IAAM,GAAK,EAAI,CACtE,CAMA,SAASmlD,GAAsB,CAC7B,KAAK,KAAK,6BAA+B,MAC3C,CAOA,SAASvC,EAAY5iD,EAAO,CAG1B,MAAMnU,GAFO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAEvB,SACtB,IAAItjE,GAAOsjE,GAASA,GAAS,OAAS,CAAC,GACnC,CAACtjE,IAAQA,GAAK,OAAS,UAEzBA,GAAOq3B,GAAI,EACXr3B,GAAK,SAAW,CACd,MAAOi+G,GAAMxmC,EAAM,KAAK,EAExB,IAAK,MACb,EACMnU,GAAS,KAAKtjE,EAAI,GAEpB,KAAK,MAAM,KAAKA,EAAI,CACtB,CAOA,SAASm7H,EAAW1jD,EAAO,CACzB,MAAMz3E,GAAO,KAAK,MAAM,IAAG,EAC3BA,GAAK,OAAS,KAAK,eAAey3E,CAAK,EACvCz3E,GAAK,SAAS,IAAMi+G,GAAMxmC,EAAM,GAAG,CACrC,CAOA,SAAS6kD,EAAiB7kD,EAAO,CAC/B,MAAM3wD,GAAU,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAEhD,GAAI,KAAK,KAAK,YAAa,CACzB,MAAM9mB,GAAO8mB,GAAQ,SAASA,GAAQ,SAAS,OAAS,CAAC,EACzD9mB,GAAK,SAAS,IAAMi+G,GAAMxmC,EAAM,GAAG,EACnC,KAAK,KAAK,YAAc,OACxB,MACF,CACI,CAAC,KAAK,KAAK,8BAAgClY,EAAO,eAAe,SAASz4C,GAAQ,IAAI,IACxFuzG,EAAY,KAAK,KAAM5iD,CAAK,EAC5B0jD,EAAW,KAAK,KAAM1jD,CAAK,EAE/B,CAOA,SAASukD,GAAkB,CACzB,KAAK,KAAK,YAAc,EAC1B,CAOA,SAASC,GAAiB,CACxB,MAAMr6G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQyK,CACf,CAOA,SAASs6G,GAAiB,CACxB,MAAMt6G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQyK,CACf,CAOA,SAASg6G,GAAiB,CACxB,MAAMh6G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQyK,CACf,CAOA,SAAS26G,GAAa,CACpB,MAAMplH,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAK7C,GAAI,KAAK,KAAK,YAAa,CAEzB,MAAMymH,GAAgB,KAAK,KAAK,eAAiB,WACjDzmH,EAAK,MAAQ,YAEbA,EAAK,cAAgBymH,GAErB,OAAOzmH,EAAK,IACZ,OAAOA,EAAK,KACd,MAEE,OAAOA,EAAK,WAEZ,OAAOA,EAAK,MAEd,KAAK,KAAK,cAAgB,MAC5B,CAOA,SAASglH,IAAc,CACrB,MAAMhlH,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAK7C,GAAI,KAAK,KAAK,YAAa,CAEzB,MAAMymH,GAAgB,KAAK,KAAK,eAAiB,WACjDzmH,EAAK,MAAQ,YAEbA,EAAK,cAAgBymH,GAErB,OAAOzmH,EAAK,IACZ,OAAOA,EAAK,KACd,MAEE,OAAOA,EAAK,WAEZ,OAAOA,EAAK,MAEd,KAAK,KAAK,cAAgB,MAC5B,CAOA,SAASklH,GAAgB5kD,EAAO,CAC9B,MAAMhxC,GAAS,KAAK,eAAegxC,CAAK,EAClCkmD,GAAW,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAGjDA,GAAS,MAAQ5D,GAAatzF,EAAM,EAEpCk3F,GAAS,WAAaza,GAAoBz8E,EAAM,EAAE,YAAW,CAC/D,CAOA,SAAS21F,IAAc,CACrB,MAAMx2E,EAAW,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC3CntD,GAAQ,KAAK,OAAM,EACnB0e,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAG7C,GADA,KAAK,KAAK,YAAc,GACpBA,GAAK,OAAS,OAAQ,CAExB,MAAMT,GAAWkvC,EAAS,SAC1BzuC,GAAK,SAAWT,EAClB,MACES,GAAK,IAAM1e,EAEf,CAOA,SAASgkI,GAAkC,CACzC,MAAM76G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,IAAMyK,CACb,CAOA,SAAS86G,IAA4B,CACnC,MAAM96G,EAAO,KAAK,OAAM,EAClBzK,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,MAAQyK,CACf,CAOA,SAAS+6G,IAAiB,CACxB,KAAK,KAAK,YAAc,MAC1B,CAOA,SAAS9B,GAAmB,CAC1B,KAAK,KAAK,cAAgB,WAC5B,CAOA,SAAS2B,GAAsB/kD,EAAO,CACpC,MAAMyP,GAAQ,KAAK,OAAM,EACnB/vE,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAG7CA,GAAK,MAAQ+vE,GAEb/vE,GAAK,WAAa+rG,GAAoB,KAAK,eAAezrC,CAAK,CAAC,EAAE,YAAW,EAC7E,KAAK,KAAK,cAAgB,MAC5B,CAOA,SAAS2jD,GAA+B3jD,EAAO,CAC7C,KAAK,KAAK,uBAAyBA,EAAM,IAC3C,CAMA,SAAS4jD,GAA8B5jD,EAAO,CAC5C,MAAM71D,GAAO,KAAK,eAAe61D,CAAK,EAChC91E,GAAO,KAAK,KAAK,uBAEvB,IAAIlJ,GACAkJ,IACFlJ,GAAQwqH,GAAgCrhG,GAAMjgB,KAAS,kCAAoC,GAAK,EAAE,EAClG,KAAK,KAAK,uBAAyB,QAGnClJ,GADe2pH,GAA8BxgG,EAAI,EAGnD,MAAM5hB,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,EAAK,OAASvH,EAChB,CAMA,SAAS6iI,GAAyB7jD,EAAO,CACvC,MAAMz3E,GAAO,KAAK,MAAM,IAAG,EAC3BA,GAAK,SAAS,IAAMi+G,GAAMxmC,EAAM,GAAG,CACrC,CAMA,SAASyjD,GAAuBzjD,EAAO,CACrC0jD,EAAW,KAAK,KAAM1jD,CAAK,EAC3B,MAAMtgE,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,IAAM,KAAK,eAAesgE,CAAK,CACtC,CAMA,SAASwjD,GAAoBxjD,EAAO,CAClC0jD,EAAW,KAAK,KAAM1jD,CAAK,EAC3B,MAAMtgE,GAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC7CA,GAAK,IAAM,UAAY,KAAK,eAAesgE,CAAK,CAClD,CAOA,SAASgwC,IAAa,CACpB,MAAO,CACL,KAAM,aACN,SAAU,EAChB,CACE,CAGA,SAAS6S,GAAW,CAClB,MAAO,CACL,KAAM,OACN,KAAM,KACN,KAAM,KACN,MAAO,EACb,CACE,CAGA,SAAS1Q,GAAW,CAClB,MAAO,CACL,KAAM,aACN,MAAO,EACb,CACE,CAGA,SAAS9Q,GAAa,CACpB,MAAO,CACL,KAAM,aACN,WAAY,GACZ,MAAO,KACP,MAAO,KACP,IAAK,EACX,CACE,CAGA,SAASyhB,IAAW,CAClB,MAAO,CACL,KAAM,WACN,SAAU,EAChB,CACE,CAGA,SAASjF,IAAU,CACjB,MAAO,CACL,KAAM,UAEN,MAAO,EACP,SAAU,EAChB,CACE,CAGA,SAASkF,GAAY,CACnB,MAAO,CACL,KAAM,OACZ,CACE,CAGA,SAASxjF,IAAO,CACd,MAAO,CACL,KAAM,OACN,MAAO,EACb,CACE,CAGA,SAASyjF,IAAQ,CACf,MAAO,CACL,KAAM,QACN,MAAO,KACP,IAAK,GACL,IAAK,IACX,CACE,CAGA,SAASx7H,IAAO,CACd,MAAO,CACL,KAAM,OACN,MAAO,KACP,IAAK,GACL,SAAU,EAChB,CACE,CAMA,SAASgoC,GAAKwwC,EAAO,CACnB,MAAO,CACL,KAAM,OACN,QAASA,EAAM,OAAS,cACxB,MAAO,KACP,OAAQA,EAAM,QACd,SAAU,EAChB,CACE,CAMA,SAASijD,GAASjjD,EAAO,CACvB,MAAO,CACL,KAAM,WACN,OAAQA,EAAM,QACd,QAAS,KACT,SAAU,EAChB,CACE,CAGA,SAAS89C,IAAY,CACnB,MAAO,CACL,KAAM,YACN,SAAU,EAChB,CACE,CAGA,SAASuF,IAAS,CAChB,MAAO,CACL,KAAM,SACN,SAAU,EAChB,CACE,CAGA,SAASzjG,IAAO,CACd,MAAO,CACL,KAAM,OACN,MAAO,EACb,CACE,CAGA,SAAS88F,IAAgB,CACvB,MAAO,CACL,KAAM,eACZ,CACE,CACF,CAUA,SAASlW,GAAMrgF,EAAG,CAChB,MAAO,CACL,KAAMA,EAAE,KACR,OAAQA,EAAE,OACV,OAAQA,EAAE,MACd,CACA,CAOA,SAASm/F,GAAUc,EAAUlb,EAAY,CACvC,IAAIxmH,EAAQ,GACZ,KAAO,EAAEA,EAAQwmH,EAAW,QAAQ,CAClC,MAAMlqH,EAAQkqH,EAAWxmH,CAAK,EAC1B,MAAM,QAAQ1D,CAAK,EACrBskI,GAAUc,EAAUplI,CAAK,EAEzBoqH,GAAUgb,EAAUplI,CAAK,CAE7B,CACF,CAOA,SAASoqH,GAAUgb,EAAUhb,EAAW,CAEtC,IAAI9rH,EACJ,IAAKA,KAAO8rH,EACV,GAAItpB,GAAI,KAAKspB,EAAW9rH,CAAG,EACzB,OAAQA,EAAG,CACT,IAAK,iBACH,CACE,MAAMgsH,EAAQF,EAAU9rH,CAAG,EACvBgsH,GACF8a,EAAS9mI,CAAG,EAAE,KAAK,GAAGgsH,CAAK,EAE7B,KACF,CACF,IAAK,aACH,CACE,MAAMA,EAAQF,EAAU9rH,CAAG,EACvBgsH,GACF8a,EAAS9mI,CAAG,EAAE,KAAK,GAAGgsH,CAAK,EAE7B,KACF,CACF,IAAK,QACL,IAAK,OACH,CACE,MAAMA,EAAQF,EAAU9rH,CAAG,EACvBgsH,GACF,OAAO,OAAO8a,EAAS9mI,CAAG,EAAGgsH,CAAK,EAEpC,KACF,CAEV,CAGA,CAGA,SAASoa,GAAera,EAAMC,EAAO,CACnC,MAAID,EACI,IAAI,MAAM,iBAAmBA,EAAK,KAAO,MAAQ3E,GAAkB,CACvE,MAAO2E,EAAK,MACZ,IAAKA,EAAK,GAChB,CAAK,EAAI,0BAA4BC,EAAM,KAAO,MAAQ5E,GAAkB,CACtE,MAAO4E,EAAM,MACb,IAAKA,EAAM,GACjB,CAAK,EAAI,WAAW,EAEV,IAAI,MAAM,oCAAsCA,EAAM,KAAO,MAAQ5E,GAAkB,CAC3F,MAAO4E,EAAM,MACb,IAAKA,EAAM,GACjB,CAAK,EAAI,iBAAiB,CAE1B,CCnoCe,SAAS+a,GAAYxyH,EAAS,CAG3C,MAAMxH,EAAO,KAEbA,EAAK,OAASywF,EAKd,SAASA,EAAOj7D,EAAK,CACnB,OAAO6gG,GAAa7gG,EAAK,CACvB,GAAGx1B,EAAK,KAAK,UAAU,EACvB,GAAGwH,EAIH,WAAYxH,EAAK,KAAK,qBAAqB,GAAK,GAChD,gBAAiBA,EAAK,KAAK,wBAAwB,GAAK,EAC9D,CAAK,CACH,CACF,CC1BO,SAASi6H,GAAW9lH,EAAOd,EAAM,CAEtC,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,aACT,WAAY,GACZ,SAAU+T,EAAM,KAAKA,EAAM,IAAId,CAAI,EAAG,EAAI,CAC9C,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCVO,SAASs2H,GAAUviH,EAAOd,EAAM,CAErC,MAAMjT,EAAS,CAAC,KAAM,UAAW,QAAS,KAAM,WAAY,GAAI,SAAU,EAAE,EAC5E,OAAA+T,EAAM,MAAMd,EAAMjT,CAAM,EACjB,CAAC+T,EAAM,UAAUd,EAAMjT,CAAM,EAAG,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,CAAC,CACpE,CCLO,SAASg/B,GAAKjrB,EAAOd,EAAM,CAChC,MAAM1e,EAAQ0e,EAAK,MAAQA,EAAK,MAAQ;AAAA,EAAO,GAEzCkhG,EAAa,GAEb5wD,EAAWtwC,EAAK,KAAOA,EAAK,KAAK,MAAM,KAAK,EAAI,GAGlDswC,EAAS,OAAS,IACpB4wD,EAAW,UAAY,CAAC,YAAc5wD,EAAS,CAAC,CAAC,GAKnD,IAAIvjD,EAAS,CACX,KAAM,UACN,QAAS,OACT,WAAAm0G,EACA,SAAU,CAAC,CAAC,KAAM,OAAQ,MAAA5/G,CAAK,CAAC,CACpC,EAEE,OAAI0e,EAAK,OACPjT,EAAO,KAAO,CAAC,KAAMiT,EAAK,IAAI,GAGhCc,EAAM,MAAMd,EAAMjT,CAAM,EACxBA,EAAS+T,EAAM,UAAUd,EAAMjT,CAAM,EAGrCA,EAAS,CAAC,KAAM,UAAW,QAAS,MAAO,WAAY,GAAI,SAAU,CAACA,CAAM,CAAC,EAC7E+T,EAAM,MAAMd,EAAMjT,CAAM,EACjBA,CACT,CChCO,SAAS85H,GAAc/lH,EAAOd,EAAM,CAEzC,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,MACT,WAAY,GACZ,SAAU+T,EAAM,IAAId,CAAI,CAC5B,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCVO,SAASq2H,GAAStiH,EAAOd,EAAM,CAEpC,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,KACT,WAAY,GACZ,SAAU+T,EAAM,IAAId,CAAI,CAC5B,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCRO,SAAS+5H,GAAkBhmH,EAAOd,EAAM,CAC7C,MAAM+mH,EACJ,OAAOjmH,EAAM,QAAQ,eAAkB,SACnCA,EAAM,QAAQ,cACd,gBACAzJ,EAAK,OAAO2I,EAAK,UAAU,EAAE,YAAW,EACxCgnH,EAASja,GAAa11G,EAAG,YAAW,CAAE,EACtCrS,EAAQ8b,EAAM,cAAc,QAAQzJ,CAAE,EAE5C,IAAI4vH,EAEAC,EAAepmH,EAAM,eAAe,IAAIzJ,CAAE,EAE1C6vH,IAAiB,QACnBA,EAAe,EACfpmH,EAAM,cAAc,KAAKzJ,CAAE,EAC3B4vH,EAAUnmH,EAAM,cAAc,QAE9BmmH,EAAUjiI,EAAQ,EAGpBkiI,GAAgB,EAChBpmH,EAAM,eAAe,IAAIzJ,EAAI6vH,CAAY,EAGzC,MAAMp/H,EAAO,CACX,KAAM,UACN,QAAS,IACT,WAAY,CACV,KAAM,IAAMi/H,EAAgB,MAAQC,EACpC,GACED,EACA,SACAC,GACCE,EAAe,EAAI,IAAMA,EAAe,IAC3C,gBAAiB,GACjB,gBAAiB,CAAC,gBAAgB,CACxC,EACI,SAAU,CAAC,CAAC,KAAM,OAAQ,MAAO,OAAOD,CAAO,CAAC,CAAC,CACrD,EACEnmH,EAAM,MAAMd,EAAMlY,CAAI,EAGtB,MAAMq/H,EAAM,CACV,KAAM,UACN,QAAS,MACT,WAAY,GACZ,SAAU,CAACr/H,CAAI,CACnB,EACE,OAAAgZ,EAAM,MAAMd,EAAMmnH,CAAG,EACdrmH,EAAM,UAAUd,EAAMmnH,CAAG,CAClC,CCrDO,SAAShJ,GAAQr9G,EAAOd,EAAM,CAEnC,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,IAAMiT,EAAK,MACpB,WAAY,GACZ,SAAUc,EAAM,IAAId,CAAI,CAC5B,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCRO,SAAS8yC,GAAK/+B,EAAOd,EAAM,CAChC,GAAIc,EAAM,QAAQ,mBAAoB,CAEpC,MAAM/T,EAAS,CAAC,KAAM,MAAO,MAAOiT,EAAK,KAAK,EAC9C,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CAGF,CCXO,SAASq6H,GAAOtmH,EAAOd,EAAM,CAClC,MAAMqnH,EAAUrnH,EAAK,cACrB,IAAIqhC,EAAS,IAQb,GANIgmF,IAAY,YACdhmF,GAAU,KACDgmF,IAAY,SACrBhmF,GAAU,KAAOrhC,EAAK,OAASA,EAAK,YAAc,KAGhDA,EAAK,OAAS,iBAChB,MAAO,CAAC,CAAC,KAAM,OAAQ,MAAO,KAAOA,EAAK,IAAMqhC,CAAM,CAAC,EAGzD,MAAMimF,EAAWxmH,EAAM,IAAId,CAAI,EACzBpX,EAAO0+H,EAAS,CAAC,EAEnB1+H,GAAQA,EAAK,OAAS,OACxBA,EAAK,MAAQ,IAAMA,EAAK,MAExB0+H,EAAS,QAAQ,CAAC,KAAM,OAAQ,MAAO,GAAG,CAAC,EAG7C,MAAMz+H,EAAOy+H,EAASA,EAAS,OAAS,CAAC,EAEzC,OAAIz+H,GAAQA,EAAK,OAAS,OACxBA,EAAK,OAASw4C,EAEdimF,EAAS,KAAK,CAAC,KAAM,OAAQ,MAAOjmF,CAAM,CAAC,EAGtCimF,CACT,CC7BO,SAASC,GAAezmH,EAAOd,EAAM,CAC1C,MAAM3I,EAAK,OAAO2I,EAAK,UAAU,EAAE,YAAW,EACxC2hG,EAAa7gG,EAAM,eAAe,IAAIzJ,CAAE,EAE9C,GAAI,CAACsqG,EACH,OAAOylB,GAAOtmH,EAAOd,CAAI,EAI3B,MAAMkhG,EAAa,CAAC,IAAK6L,GAAapL,EAAW,KAAO,EAAE,EAAG,IAAK3hG,EAAK,GAAG,EAEtE2hG,EAAW,QAAU,MAAQA,EAAW,QAAU,SACpDT,EAAW,MAAQS,EAAW,OAIhC,MAAM50G,EAAS,CAAC,KAAM,UAAW,QAAS,MAAO,WAAAm0G,EAAY,SAAU,EAAE,EACzE,OAAApgG,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCpBO,SAASu2H,GAAMxiH,EAAOd,EAAM,CAEjC,MAAMkhG,EAAa,CAAC,IAAK6L,GAAa/sG,EAAK,GAAG,CAAC,EAE3CA,EAAK,MAAQ,MAAQA,EAAK,MAAQ,SACpCkhG,EAAW,IAAMlhG,EAAK,KAGpBA,EAAK,QAAU,MAAQA,EAAK,QAAU,SACxCkhG,EAAW,MAAQlhG,EAAK,OAI1B,MAAMjT,EAAS,CAAC,KAAM,UAAW,QAAS,MAAO,WAAAm0G,EAAY,SAAU,EAAE,EACzE,OAAApgG,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CClBO,SAASy6H,GAAW1mH,EAAOd,EAAM,CAEtC,MAAMkgB,EAAO,CAAC,KAAM,OAAQ,MAAOlgB,EAAK,MAAM,QAAQ,YAAa,GAAG,CAAC,EACvEc,EAAM,MAAMd,EAAMkgB,CAAI,EAGtB,MAAMnzB,EAAS,CACb,KAAM,UACN,QAAS,OACT,WAAY,GACZ,SAAU,CAACmzB,CAAI,CACnB,EACE,OAAApf,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCXO,SAAS06H,GAAc3mH,EAAOd,EAAM,CACzC,MAAM3I,EAAK,OAAO2I,EAAK,UAAU,EAAE,YAAW,EACxC2hG,EAAa7gG,EAAM,eAAe,IAAIzJ,CAAE,EAE9C,GAAI,CAACsqG,EACH,OAAOylB,GAAOtmH,EAAOd,CAAI,EAI3B,MAAMkhG,EAAa,CAAC,KAAM6L,GAAapL,EAAW,KAAO,EAAE,CAAC,EAExDA,EAAW,QAAU,MAAQA,EAAW,QAAU,SACpDT,EAAW,MAAQS,EAAW,OAIhC,MAAM50G,EAAS,CACb,KAAM,UACN,QAAS,IACT,WAAAm0G,EACA,SAAUpgG,EAAM,IAAId,CAAI,CAC5B,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCzBO,SAASjF,GAAKgZ,EAAOd,EAAM,CAEhC,MAAMkhG,EAAa,CAAC,KAAM6L,GAAa/sG,EAAK,GAAG,CAAC,EAE5CA,EAAK,QAAU,MAAQA,EAAK,QAAU,SACxCkhG,EAAW,MAAQlhG,EAAK,OAI1B,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,IACT,WAAAm0G,EACA,SAAUpgG,EAAM,IAAId,CAAI,CAC5B,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCjBO,SAASw2H,GAASziH,EAAOd,EAAM6T,EAAQ,CAC5C,MAAM6zG,EAAU5mH,EAAM,IAAId,CAAI,EACxB6hE,EAAQhuD,EAAS8zG,GAAU9zG,CAAM,EAAI+zG,GAAc5nH,CAAI,EAEvDkhG,EAAa,GAEb3hG,EAAW,GAEjB,GAAI,OAAOS,EAAK,SAAY,UAAW,CACrC,MAAMpX,EAAO8+H,EAAQ,CAAC,EAEtB,IAAItJ,EAEAx1H,GAAQA,EAAK,OAAS,WAAaA,EAAK,UAAY,IACtDw1H,EAAYx1H,GAEZw1H,EAAY,CAAC,KAAM,UAAW,QAAS,IAAK,WAAY,GAAI,SAAU,EAAE,EACxEsJ,EAAQ,QAAQtJ,CAAS,GAGvBA,EAAU,SAAS,OAAS,GAC9BA,EAAU,SAAS,QAAQ,CAAC,KAAM,OAAQ,MAAO,GAAG,CAAC,EAGvDA,EAAU,SAAS,QAAQ,CACzB,KAAM,UACN,QAAS,QACT,WAAY,CAAC,KAAM,WAAY,QAASp+G,EAAK,QAAS,SAAU,EAAI,EACpE,SAAU,EAChB,CAAK,EAIDkhG,EAAW,UAAY,CAAC,gBAAgB,CAC1C,CAEA,IAAIl8G,EAAQ,GAEZ,KAAO,EAAEA,EAAQ0iI,EAAQ,QAAQ,CAC/B,MAAMhoH,EAAQgoH,EAAQ1iI,CAAK,GAIzB68E,GACA78E,IAAU,GACV0a,EAAM,OAAS,WACfA,EAAM,UAAY,MAElBH,EAAS,KAAK,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,CAAC,EAGvCG,EAAM,OAAS,WAAaA,EAAM,UAAY,KAAO,CAACmiE,EACxDtiE,EAAS,KAAK,GAAGG,EAAM,QAAQ,EAE/BH,EAAS,KAAKG,CAAK,CAEvB,CAEA,MAAM7W,EAAO6+H,EAAQA,EAAQ,OAAS,CAAC,EAGnC7+H,IAASg5E,GAASh5E,EAAK,OAAS,WAAaA,EAAK,UAAY,MAChE0W,EAAS,KAAK,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,CAAC,EAI3C,MAAMxS,EAAS,CAAC,KAAM,UAAW,QAAS,KAAM,WAAAm0G,EAAY,SAAA3hG,CAAQ,EACpE,OAAAuB,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CAMA,SAAS46H,GAAU3nH,EAAM,CACvB,IAAI6hE,EAAQ,GACZ,GAAI7hE,EAAK,OAAS,OAAQ,CACxB6hE,EAAQ7hE,EAAK,QAAU,GACvB,MAAMT,EAAWS,EAAK,SACtB,IAAIhb,EAAQ,GAEZ,KAAO,CAAC68E,GAAS,EAAE78E,EAAQua,EAAS,QAClCsiE,EAAQ+lD,GAAcroH,EAASva,CAAK,CAAC,CAEzC,CAEA,OAAO68E,CACT,CAMA,SAAS+lD,GAAc5nH,EAAM,CAG3B,OAFeA,EAAK,QAGhBA,EAAK,SAAS,OAAS,CAE7B,CCtGO,SAAS8vB,GAAKhvB,EAAOd,EAAM,CAEhC,MAAMkhG,EAAa,GACbwmB,EAAU5mH,EAAM,IAAId,CAAI,EAC9B,IAAIhb,EAAQ,GAOZ,IALI,OAAOgb,EAAK,OAAU,UAAYA,EAAK,QAAU,IACnDkhG,EAAW,MAAQlhG,EAAK,OAInB,EAAEhb,EAAQ0iI,EAAQ,QAAQ,CAC/B,MAAMhoH,EAAQgoH,EAAQ1iI,CAAK,EAE3B,GACE0a,EAAM,OAAS,WACfA,EAAM,UAAY,MAClBA,EAAM,YACN,MAAM,QAAQA,EAAM,WAAW,SAAS,GACxCA,EAAM,WAAW,UAAU,SAAS,gBAAgB,EACpD,CACAwhG,EAAW,UAAY,CAAC,oBAAoB,EAC5C,KACF,CACF,CAGA,MAAMn0G,EAAS,CACb,KAAM,UACN,QAASiT,EAAK,QAAU,KAAO,KAC/B,WAAAkhG,EACA,SAAUpgG,EAAM,KAAK4mH,EAAS,EAAI,CACtC,EACE,OAAA5mH,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCnCO,SAASqxH,GAAUt9G,EAAOd,EAAM,CAErC,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,IACT,WAAY,GACZ,SAAU+T,EAAM,IAAId,CAAI,CAC5B,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCVO,SAAS4lB,GAAK7R,EAAOd,EAAM,CAEhC,MAAMjT,EAAS,CAAC,KAAM,OAAQ,SAAU+T,EAAM,KAAKA,EAAM,IAAId,CAAI,CAAC,CAAC,EACnE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCLO,SAAS42H,GAAO7iH,EAAOd,EAAM,CAElC,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,SACT,WAAY,GACZ,SAAU+T,EAAM,IAAId,CAAI,CAC5B,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCRO,SAAS2oC,GAAM50B,EAAOd,EAAM,CACjC,MAAM6nH,EAAO/mH,EAAM,IAAId,CAAI,EACrB8nH,EAAWD,EAAK,MAAK,EAErBE,EAAe,GAErB,GAAID,EAAU,CAEZ,MAAMl/H,EAAO,CACX,KAAM,UACN,QAAS,QACT,WAAY,GACZ,SAAUkY,EAAM,KAAK,CAACgnH,CAAQ,EAAG,EAAI,CAC3C,EACIhnH,EAAM,MAAMd,EAAK,SAAS,CAAC,EAAGpX,CAAI,EAClCm/H,EAAa,KAAKn/H,CAAI,CACxB,CAEA,GAAIi/H,EAAK,OAAS,EAAG,CAEnB,MAAMx7E,EAAO,CACX,KAAM,UACN,QAAS,QACT,WAAY,GACZ,SAAUvrC,EAAM,KAAK+mH,EAAM,EAAI,CACrC,EAEUvwH,EAAQyvG,GAAW/mG,EAAK,SAAS,CAAC,CAAC,EACnCzI,EAAMsvG,GAAS7mG,EAAK,SAASA,EAAK,SAAS,OAAS,CAAC,CAAC,EACxD1I,GAASC,IAAK80C,EAAK,SAAW,CAAC,MAAA/0C,EAAO,IAAAC,CAAG,GAC7CwwH,EAAa,KAAK17E,CAAI,CACxB,CAGA,MAAMt/C,EAAS,CACb,KAAM,UACN,QAAS,QACT,WAAY,GACZ,SAAU+T,EAAM,KAAKinH,EAAc,EAAI,CAC3C,EACE,OAAAjnH,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CC1CO,SAASi7H,GAASlnH,EAAOd,EAAM6T,EAAQ,CAC5C,MAAMs4C,EAAWt4C,EAASA,EAAO,SAAW,OAGtC+0B,GADWujB,EAAWA,EAAS,QAAQnsD,CAAI,EAAI,KACxB,EAAI,KAAO,KAElCioH,EAAQp0G,GAAUA,EAAO,OAAS,QAAUA,EAAO,MAAQ,OAC3Dya,EAAS25F,EAAQA,EAAM,OAASjoH,EAAK,SAAS,OACpD,IAAIkoH,EAAY,GAEhB,MAAMC,EAAQ,GAEd,KAAO,EAAED,EAAY55F,GAAQ,CAE3B,MAAM85F,EAAOpoH,EAAK,SAASkoH,CAAS,EAE9BhnB,EAAa,GACb4H,EAAamf,EAAQA,EAAMC,CAAS,EAAI,OAE1Cpf,IACF5H,EAAW,MAAQ4H,GAIrB,IAAI/7G,EAAS,CAAC,KAAM,UAAW,QAAA67C,EAAS,WAAAs4D,EAAY,SAAU,EAAE,EAE5DknB,IACFr7H,EAAO,SAAW+T,EAAM,IAAIsnH,CAAI,EAChCtnH,EAAM,MAAMsnH,EAAMr7H,CAAM,EACxBA,EAAS+T,EAAM,UAAUsnH,EAAMr7H,CAAM,GAGvCo7H,EAAM,KAAKp7H,CAAM,CACnB,CAGA,MAAMA,EAAS,CACb,KAAM,UACN,QAAS,KACT,WAAY,GACZ,SAAU+T,EAAM,KAAKqnH,EAAO,EAAI,CACpC,EACE,OAAArnH,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CC9CO,SAASs7H,GAAUvnH,EAAOd,EAAM,CAIrC,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,KACT,WAAY,GACZ,SAAU+T,EAAM,IAAId,CAAI,CAC5B,EACE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CC5BA,MAAMu7H,GAAM,EACN7mB,GAAQ,GAWP,SAAS8mB,GAAUjnI,EAAO,CAC/B,MAAM2Q,EAAS,OAAO3Q,CAAK,EACrBy1G,EAAS,YACf,IAAInzG,EAAQmzG,EAAO,KAAK9kG,CAAM,EAC1BlL,EAAO,EAEX,MAAM+9G,EAAQ,GAEd,KAAOlhH,GACLkhH,EAAM,KACJ0jB,GAASv2H,EAAO,MAAMlL,EAAMnD,EAAM,KAAK,EAAGmD,EAAO,EAAG,EAAI,EACxDnD,EAAM,CAAC,CACb,EAEImD,EAAOnD,EAAM,MAAQA,EAAM,CAAC,EAAE,OAC9BA,EAAQmzG,EAAO,KAAK9kG,CAAM,EAG5B,OAAA6yG,EAAM,KAAK0jB,GAASv2H,EAAO,MAAMlL,CAAI,EAAGA,EAAO,EAAG,EAAK,CAAC,EAEjD+9G,EAAM,KAAK,EAAE,CACtB,CAYA,SAAS0jB,GAASlnI,EAAOgW,EAAOC,EAAK,CACnC,IAAIuqH,EAAa,EACbE,EAAW1gI,EAAM,OAErB,GAAIgW,EAAO,CACT,IAAIy0B,EAAOzqC,EAAM,YAAYwgI,CAAU,EAEvC,KAAO/1F,IAASu8F,IAAOv8F,IAAS01E,IAC9BqgB,IACA/1F,EAAOzqC,EAAM,YAAYwgI,CAAU,CAEvC,CAEA,GAAIvqH,EAAK,CACP,IAAIw0B,EAAOzqC,EAAM,YAAY0gI,EAAW,CAAC,EAEzC,KAAOj2F,IAASu8F,IAAOv8F,IAAS01E,IAC9BugB,IACAj2F,EAAOzqC,EAAM,YAAY0gI,EAAW,CAAC,CAEzC,CAEA,OAAOA,EAAWF,EAAaxgI,EAAM,MAAMwgI,EAAYE,CAAQ,EAAI,EACrE,CClDO,SAAS9hG,GAAKpf,EAAOd,EAAM,CAEhC,MAAMjT,EAAS,CAAC,KAAM,OAAQ,MAAOw7H,GAAU,OAAOvoH,EAAK,KAAK,CAAC,CAAC,EAClE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCPO,SAASiwH,GAAcl8G,EAAOd,EAAM,CAEzC,MAAMjT,EAAS,CACb,KAAM,UACN,QAAS,KACT,WAAY,GACZ,SAAU,EACd,EACE,OAAA+T,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CCOO,MAAMg9B,GAAW,CACxB,WAAE68F,GACA,MAAOvD,GACT,KAAEt3F,GACA,OAAQ86F,GACV,SAAEzD,GACF,kBAAE0D,GACF,QAAE3I,GACF,KAAEt+E,GACF,eAAE0nF,GACF,MAAEjE,GACF,WAAEkE,GACF,cAAEC,GACF,KAAE3/H,GACF,SAAEy7H,GACF,KAAEzzF,GACF,UAAEsuF,GAEF,KAAEzrG,GACF,OAAEgxG,GACA,MAAAjuF,GACA,UAAA2yF,GACA,SAAAL,GACF,KAAE9nG,GACF,cAAE88F,GACA,KAAMyL,GACN,KAAMA,GACN,WAAYA,GACZ,mBAAoBA,EACtB,EAGA,SAASA,IAAS,CAElB,CCWO,SAASC,GAA2BvtE,EAAGwtE,EAAkB,CAE9D,MAAM57H,EAAS,CAAC,CAAC,KAAM,OAAQ,MAAO,GAAG,CAAC,EAE1C,OAAI47H,EAAmB,GACrB57H,EAAO,KAAK,CACV,KAAM,UACN,QAAS,MACT,WAAY,GACZ,SAAU,CAAC,CAAC,KAAM,OAAQ,MAAO,OAAO47H,CAAgB,CAAC,CAAC,CAChE,CAAK,EAGI57H,CACT,CAaO,SAAS67H,GAAyBC,EAAgBF,EAAkB,CACzE,MACE,sBACCE,EAAiB,IACjBF,EAAmB,EAAI,IAAMA,EAAmB,GAErD,CAWO,SAASG,GAAOhoH,EAAO,CAC5B,MAAMimH,EACJ,OAAOjmH,EAAM,QAAQ,eAAkB,SACnCA,EAAM,QAAQ,cACd,gBACAioH,EACJjoH,EAAM,QAAQ,qBAAuB4nH,GACjCM,EACJloH,EAAM,QAAQ,mBAAqB8nH,GAC/BK,EAAgBnoH,EAAM,QAAQ,eAAiB,YAC/CooH,EAAuBpoH,EAAM,QAAQ,sBAAwB,KAC7DqoH,EAA0BroH,EAAM,QAAQ,yBAA2B,CACvE,UAAW,CAAC,SAAS,CACzB,EAEQsoH,EAAY,GAClB,IAAIP,EAAiB,GAErB,KAAO,EAAEA,EAAiB/nH,EAAM,cAAc,QAAQ,CACpD,MAAM6gG,EAAa7gG,EAAM,aAAa,IACpCA,EAAM,cAAc+nH,CAAc,CACxC,EAEI,GAAI,CAAClnB,EACH,SAGF,MAAMl/E,EAAU3hB,EAAM,IAAI6gG,CAAU,EAC9BtqG,EAAK,OAAOsqG,EAAW,UAAU,EAAE,YAAW,EAC9CqlB,EAASja,GAAa11G,EAAG,YAAW,CAAE,EAC5C,IAAIsxH,EAAmB,EAEvB,MAAMU,EAAiB,GACjBC,EAASxoH,EAAM,eAAe,IAAIzJ,CAAE,EAG1C,KAAOiyH,IAAW,QAAa,EAAEX,GAAoBW,GAAQ,CACvDD,EAAe,OAAS,GAC1BA,EAAe,KAAK,CAAC,KAAM,OAAQ,MAAO,GAAG,CAAC,EAGhD,IAAI9pH,EACF,OAAOwpH,GAAwB,SAC3BA,EACAA,EAAoBF,EAAgBF,CAAgB,EAEtD,OAAOppH,GAAa,WACtBA,EAAW,CAAC,KAAM,OAAQ,MAAOA,CAAQ,GAG3C8pH,EAAe,KAAK,CAClB,KAAM,UACN,QAAS,IACT,WAAY,CACV,KACE,IACAtC,EACA,SACAC,GACC2B,EAAmB,EAAI,IAAMA,EAAmB,IACnD,oBAAqB,GACrB,UACE,OAAOK,GAAsB,SACzBA,EACAA,EAAkBH,EAAgBF,CAAgB,EACxD,UAAW,CAAC,uBAAuB,CAC7C,EACQ,SAAU,MAAM,QAAQppH,CAAQ,EAAIA,EAAW,CAACA,CAAQ,CAChE,CAAO,CACH,CAEA,MAAM1W,EAAO45B,EAAQA,EAAQ,OAAS,CAAC,EAEvC,GAAI55B,GAAQA,EAAK,OAAS,WAAaA,EAAK,UAAY,IAAK,CAC3D,MAAM0gI,EAAW1gI,EAAK,SAASA,EAAK,SAAS,OAAS,CAAC,EACnD0gI,GAAYA,EAAS,OAAS,OAChCA,EAAS,OAAS,IAElB1gI,EAAK,SAAS,KAAK,CAAC,KAAM,OAAQ,MAAO,GAAG,CAAC,EAG/CA,EAAK,SAAS,KAAK,GAAGwgI,CAAc,CACtC,MACE5mG,EAAQ,KAAK,GAAG4mG,CAAc,EAIhC,MAAM9F,EAAW,CACf,KAAM,UACN,QAAS,KACT,WAAY,CAAC,GAAIwD,EAAgB,MAAQC,CAAM,EAC/C,SAAUlmH,EAAM,KAAK2hB,EAAS,EAAI,CACxC,EAEI3hB,EAAM,MAAM6gG,EAAY4hB,CAAQ,EAEhC6F,EAAU,KAAK7F,CAAQ,CACzB,CAEA,GAAI6F,EAAU,SAAW,EAIzB,MAAO,CACL,KAAM,UACN,QAAS,UACT,WAAY,CAAC,cAAe,GAAM,UAAW,CAAC,WAAW,CAAC,EAC1D,SAAU,CACR,CACE,KAAM,UACN,QAASF,EACT,WAAY,CACV,GAAG/nB,GAAgBgoB,CAAuB,EAC1C,GAAI,gBACd,EACQ,SAAU,CAAC,CAAC,KAAM,OAAQ,MAAOF,CAAa,CAAC,CACvD,EACM,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,EAC1B,CACE,KAAM,UACN,QAAS,KACT,WAAY,GACZ,SAAUnoH,EAAM,KAAKsoH,EAAW,EAAI,CAC5C,EACM,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,CAChC,CACA,CACA,CCnEA,MAAMhnC,GAAM,GAAG,eAGTka,GAAe,GAYd,SAASktB,GAAY1pB,EAAM3rG,EAAS,CACzC,MAAM4hG,EAAW5hG,GAAWmoG,GAEtBmtB,EAAiB,IAAI,IAErBC,EAAe,IAAI,IAEnBC,EAAiB,IAAI,IAIrB5/F,EAAW,CAAC,GAAG6/F,GAAiB,GAAG7zB,EAAS,QAAQ,EAGpDj1F,EAAQ,CACZ,IAAAyxF,EACA,UAAAs3B,GACA,eAAAJ,EACA,aAAAC,EACA,eAAAC,EACA,cAAe,GACnB,SAAI5/F,EACA,IAAA0yE,EACA,QAAS1G,EACT,MAAAt+E,GACJ,KAAInoB,EACJ,EAEEu6C,UAAMi2D,EAAM,SAAU9/F,EAAM,CAC1B,GAAIA,EAAK,OAAS,cAAgBA,EAAK,OAAS,qBAAsB,CACpE,MAAMrgB,EAAMqgB,EAAK,OAAS,aAAeypH,EAAiBC,EACpDryH,EAAK,OAAO2I,EAAK,UAAU,EAAE,YAAW,EAIzCrgB,EAAI,IAAI0X,CAAE,GAEb1X,EAAI,IAAI0X,EAAI2I,CAAI,CAEpB,CACF,CAAC,EAEMc,EAYP,SAAS27F,EAAIz8F,EAAM6T,EAAQ,CACzB,MAAMrpB,EAAOwV,EAAK,KACZ8pH,EAAShpH,EAAM,SAAStW,CAAI,EAElC,GAAI43F,GAAI,KAAKthF,EAAM,SAAUtW,CAAI,GAAKs/H,EACpC,OAAOA,EAAOhpH,EAAOd,EAAM6T,CAAM,EAGnC,GAAI/S,EAAM,QAAQ,aAAeA,EAAM,QAAQ,YAAY,SAAStW,CAAI,EAAG,CACzE,GAAI,aAAcwV,EAAM,CACtB,KAAM,CAAC,SAAAT,EAAU,GAAG7P,CAAO,EAAIsQ,EACzBjT,EAASo0G,GAAgBzxG,CAAO,EAEtC,OAAA3C,EAAO,SAAW+T,EAAM,IAAId,CAAI,EAEzBjT,CACT,CAGA,OAAOo0G,GAAgBnhG,CAAI,CAC7B,CAIA,OAFgBc,EAAM,QAAQ,gBAAkBipH,IAEjCjpH,EAAOd,EAAM6T,CAAM,CACpC,CAUA,SAAS0+E,EAAI1+E,EAAQ,CAEnB,MAAM7d,EAAS,GAEf,GAAI,aAAc6d,EAAQ,CACxB,MAAMs2B,EAAQt2B,EAAO,SACrB,IAAI7uB,EAAQ,GACZ,KAAO,EAAEA,EAAQmlD,EAAM,QAAQ,CAC7B,MAAMp9C,EAAS+T,EAAM,IAAIqpC,EAAMnlD,CAAK,EAAG6uB,CAAM,EAG7C,GAAI9mB,EAAQ,CACV,GAAI/H,GAASmlD,EAAMnlD,EAAQ,CAAC,EAAE,OAAS,UACjC,CAAC,MAAM,QAAQ+H,CAAM,GAAKA,EAAO,OAAS,SAC5CA,EAAO,MAAQi9H,GAAuBj9H,EAAO,KAAK,GAGhD,CAAC,MAAM,QAAQA,CAAM,GAAKA,EAAO,OAAS,WAAW,CACvD,MAAMnE,EAAOmE,EAAO,SAAS,CAAC,EAE1BnE,GAAQA,EAAK,OAAS,SACxBA,EAAK,MAAQohI,GAAuBphI,EAAK,KAAK,EAElD,CAGE,MAAM,QAAQmE,CAAM,EACtBiJ,EAAO,KAAK,GAAGjJ,CAAM,EAErBiJ,EAAO,KAAKjJ,CAAM,CAEtB,CACF,CACF,CAEA,OAAOiJ,CACT,CACF,CAYA,SAASyhB,GAAMhJ,EAAMD,EAAI,CACnBC,EAAK,WAAUD,EAAG,SAAW+pE,GAAS9pE,CAAI,EAChD,CAcA,SAASo7G,GAAUp7G,EAAMD,EAAI,CAE3B,IAAIzhB,EAASyhB,EAGb,GAAIC,GAAQA,EAAK,KAAM,CACrB,MAAMw7G,EAAQx7G,EAAK,KAAK,MAClBy7G,EAAYz7G,EAAK,KAAK,UACtB07G,EAAc17G,EAAK,KAAK,YAE9B,GAAI,OAAOw7G,GAAU,SAGnB,GAAIl9H,EAAO,OAAS,UAClBA,EAAO,QAAUk9H,MAMd,CAGH,MAAM1qH,EAAW,aAAcxS,EAASA,EAAO,SAAW,CAACA,CAAM,EACjEA,EAAS,CAAC,KAAM,UAAW,QAASk9H,EAAO,WAAY,GAAI,SAAA1qH,CAAQ,CACrE,CAGExS,EAAO,OAAS,WAAao9H,GAC/B,OAAO,OAAOp9H,EAAO,WAAYo0G,GAAgBgpB,CAAW,CAAC,EAI7D,aAAcp9H,GACdA,EAAO,UACPm9H,IAAc,MACdA,IAAc,SAEdn9H,EAAO,SAAWm9H,EAEtB,CAEA,OAAOn9H,CACT,CAYA,SAASg9H,GAAsBjpH,EAAOd,EAAM,CAC1C,MAAMyK,EAAOzK,EAAK,MAAQ,GAEpBjT,EACJ,UAAWiT,GACX,EAAEoiF,GAAI,KAAK33E,EAAM,aAAa,GAAK23E,GAAI,KAAK33E,EAAM,WAAW,GACzD,CAAC,KAAM,OAAQ,MAAOzK,EAAK,KAAK,EAChC,CACE,KAAM,UACN,QAAS,MACT,WAAY,GACZ,SAAUc,EAAM,IAAId,CAAI,CAClC,EAEE,OAAAc,EAAM,MAAMd,EAAMjT,CAAM,EACjB+T,EAAM,UAAUd,EAAMjT,CAAM,CACrC,CAcO,SAASuC,GAAK66C,EAAO03B,EAAO,CAEjC,MAAM90E,EAAS,GACf,IAAI/H,EAAQ,GAMZ,IAJI68E,GACF90E,EAAO,KAAK,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,CAAC,EAGlC,EAAE/H,EAAQmlD,EAAM,QACjBnlD,GAAO+H,EAAO,KAAK,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,CAAC,EAClDA,EAAO,KAAKo9C,EAAMnlD,CAAK,CAAC,EAG1B,OAAI68E,GAAS13B,EAAM,OAAS,GAC1Bp9C,EAAO,KAAK,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,CAAC,EAGlCA,CACT,CAUA,SAASi9H,GAAuB1oI,EAAO,CACrC,IAAI0D,EAAQ,EACR+mC,EAAOzqC,EAAM,WAAW0D,CAAK,EAEjC,KAAO+mC,IAAS,GAAKA,IAAS,IAC5B/mC,IACA+mC,EAAOzqC,EAAM,WAAW0D,CAAK,EAG/B,OAAO1D,EAAM,MAAM0D,CAAK,CAC1B,CCpYO,SAASolI,GAAOtqB,EAAM3rG,EAAS,CACpC,MAAM2M,EAAQ0oH,GAAY1pB,EAAM3rG,CAAO,EACjC6L,EAAOc,EAAM,IAAIg/F,EAAM,MAAS,EAChCuqB,EAAOvB,GAAOhoH,CAAK,EAEnB/T,EAAS,MAAM,QAAQiT,CAAI,EAC7B,CAAC,KAAM,OAAQ,SAAUA,CAAI,EAC7BA,GAAQ,CAAC,KAAM,OAAQ,SAAU,EAAE,EAEvC,OAAIqqH,GAKFt9H,EAAO,SAAS,KAAK,CAAC,KAAM,OAAQ,MAAO;AAAA,CAAI,EAAGs9H,CAAI,EAGjDt9H,CACT,CC0Ce,SAASu9H,GAAaC,EAAap2H,EAAS,CACzD,OAAIo2H,GAAe,QAASA,EAInB,eAAgBzqB,EAAMllE,EAAM,CAEjC,MAAM4vF,EACJJ,GAAOtqB,EAAM,CAAC,KAAAllE,EAAM,GAAGzmC,CAAO,CAAC,EAEjC,MAAMo2H,EAAY,IAAIC,EAAU5vF,CAAI,CACtC,EAMK,SAAUklE,EAAMllE,EAAM,CAM3B,OACEwvF,GAAOtqB,EAAM,CAAC,KAAAllE,EAAM,GAAI2vF,GAAep2H,CAAQ,CAAC,CAEpD,CACF,CChKO,SAASs2H,GAAkB3qB,EAAM,CACtCj2D,GAAMi2D,EAAM,SAAU9/F,EAAMhb,EAAO6uB,EAAQ,CACzC,GACE7uB,IAAU,QACV6uB,GACA7T,EAAK,OAAS,aACdA,EAAK,SAAS,MAAM,SAAUN,EAAO,CACnC,OAAOA,EAAM,OAAS,QAAU,QAAQ,KAAKA,EAAM,KAAK,CAC1D,CAAC,EAED,OAAAmU,EAAO,SAAS,OAAO7uB,EAAO,CAAC,EACxBA,CAEX,CAAC,CACH,CCPe,SAAS0lI,GACtBv2H,EAAU,CAAC,OAAQ,CAAC,OAAQ,OAAO,CAAC,EACpC,CASA,OAAO,SAAU2rG,EAAM,CAErB,MAAM4B,EAAc,IAAI,IAGxB73D,GAAMi2D,EAAM,aAAc,SAAU9/F,EAAMhb,EAAO6uB,EAAQ,CAEvD,GADA6tF,EAAY,IAAI1hG,EAAK,WAAYA,EAAK,GAAG,EACrC6T,GAAU,OAAO7uB,GAAU,SAAU,CACvC,MAAMi1C,EAAMj6B,EAAK,IACjB,GACEi6B,GACAA,EAAI,SAAS,GAAG,GAChB,CAAC9lC,EAAQ,OAAO,KAAMnE,GAAUiqC,EAAI,WAAW,GAAGjqC,CAAK,GAAG,CAAC,EAE3D,OAAA6jB,EAAO,SAAS,OAAO7uB,EAAO,CAAC,EACxBA,CAEX,CACF,CAAC,EAED6kD,GAAMi2D,EAAM,SAAU9/F,EAAMhb,EAAO6uB,EAAQ,CACzC,GACEA,GACA,OAAO7uB,GAAU,WAChBgb,EAAK,OAAS,QAAUA,EAAK,OAAS,iBACvC,CACA,MAAMi6B,EACJj6B,EAAK,OAAS,OAASA,EAAK,IAAM0hG,EAAY,IAAI1hG,EAAK,UAAU,EACnE,GACEi6B,GACAA,EAAI,SAAS,GAAG,GAChB,CAAC9lC,EAAQ,OAAO,KAAMnE,GAAUiqC,EAAI,WAAW,GAAGjqC,CAAK,GAAG,CAAC,EAE3D,OAAA6jB,EAAO,SAAS,OAAO7uB,EAAO,EAAG,GAAGgb,EAAK,QAAQ,EAC1Chb,CAEX,CACF,CAAC,EAEDylI,GAAkB3qB,CAAI,CACxB,CACF,CClEO,SAAS6qB,GAAKjiI,EAAO,CAC1B,GAAIA,EACF,MAAMA,CAEV,8CCTA,IAAIhI,EAAS,OAAO,UAAU,eAC1BkqI,EAAQ,OAAO,UAAU,SACzBC,EAAiB,OAAO,eACxBC,EAAO,OAAO,yBAEdnqI,EAAU,SAAiBL,EAAK,CACnC,OAAI,OAAO,MAAM,SAAY,WACrB,MAAM,QAAQA,CAAG,EAGlBsqI,EAAM,KAAKtqI,CAAG,IAAM,gBAC5B,EAEIkB,EAAgB,SAAuBmB,EAAK,CAC/C,GAAI,CAACA,GAAOioI,EAAM,KAAKjoI,CAAG,IAAM,kBAC/B,MAAO,GAGR,IAAIooI,EAAoBrqI,EAAO,KAAKiC,EAAK,aAAa,EAClDqoI,EAAmBroI,EAAI,aAAeA,EAAI,YAAY,WAAajC,EAAO,KAAKiC,EAAI,YAAY,UAAW,eAAe,EAE7H,GAAIA,EAAI,aAAe,CAACooI,GAAqB,CAACC,EAC7C,MAAO,GAKR,IAAIprI,EACJ,IAAKA,KAAO+C,EAAK,CAEjB,OAAO,OAAO/C,EAAQ,KAAec,EAAO,KAAKiC,EAAK/C,CAAG,CAC1D,EAGIqrI,EAAc,SAAqB1gI,EAAQ4J,EAAS,CACnD02H,GAAkB12H,EAAQ,OAAS,YACtC02H,EAAetgI,EAAQ4J,EAAQ,KAAM,CACpC,WAAY,GACZ,aAAc,GACd,MAAOA,EAAQ,SACf,SAAU,EACb,CAAG,EAED5J,EAAO4J,EAAQ,IAAI,EAAIA,EAAQ,QAEjC,EAGI+2H,EAAc,SAAqBvoI,EAAKoB,EAAM,CACjD,GAAIA,IAAS,YACZ,GAAKrD,EAAO,KAAKiC,EAAKoB,CAAI,GAEnB,GAAI+mI,EAGV,OAAOA,EAAKnoI,EAAKoB,CAAI,EAAE,UAJvB,QAQF,OAAOpB,EAAIoB,CAAI,CAChB,EAEA3D,UAAiB,SAASA,GAAS,CAClC,IAAI+T,EAASpQ,EAAMwxC,EAAK7F,EAAMy7F,EAAazsF,EACvCn0C,EAAS,UAAU,CAAC,EACpB/J,EAAI,EACJ8tC,EAAS,UAAU,OACnBj6B,EAAO,GAaX,IAVI,OAAO9J,GAAW,YACrB8J,EAAO9J,EACPA,EAAS,UAAU,CAAC,GAAK,GAEzB/J,EAAI,IAED+J,GAAU,MAAS,OAAOA,GAAW,UAAY,OAAOA,GAAW,cACtEA,EAAS,IAGH/J,EAAI8tC,EAAQ,EAAE9tC,EAGpB,GAFA2T,EAAU,UAAU3T,CAAC,EAEjB2T,GAAW,KAEd,IAAKpQ,KAAQoQ,EACZohC,EAAM21F,EAAY3gI,EAAQxG,CAAI,EAC9B2rC,EAAOw7F,EAAY/2H,EAASpQ,CAAI,EAG5BwG,IAAWmlC,IAEVr7B,GAAQq7B,IAASluC,EAAckuC,CAAI,IAAMy7F,EAAcxqI,EAAQ+uC,CAAI,KAClEy7F,GACHA,EAAc,GACdzsF,EAAQnJ,GAAO50C,EAAQ40C,CAAG,EAAIA,EAAM,IAEpCmJ,EAAQnJ,GAAO/zC,EAAc+zC,CAAG,EAAIA,EAAM,GAI3C01F,EAAY1gI,EAAQ,CAAE,KAAMxG,EAAM,SAAU3D,EAAOiU,EAAMqqC,EAAOhP,CAAI,EAAG,GAG7D,OAAOA,EAAS,KAC1Bu7F,EAAY1gI,EAAQ,CAAE,KAAMxG,EAAM,SAAU2rC,EAAM,GAQvD,OAAOnlC,CACR,iCCpHe,SAAS/I,GAAcF,EAAO,CAC5C,GAAI,OAAOA,GAAU,UAAYA,IAAU,KAC1C,MAAO,GAGR,MAAMw0F,EAAY,OAAO,eAAex0F,CAAK,EAC7C,OAAQw0F,IAAc,MAAQA,IAAc,OAAO,WAAa,OAAO,eAAeA,CAAS,IAAM,OAAS,EAAE,OAAO,eAAex0F,IAAU,EAAE,OAAO,YAAYA,EACtK,CCUO,SAAS8pI,IAAS,CAEvB,MAAM5oI,EAAM,GAEN6oI,EAAW,CAAC,IAAAxgI,EAAK,IAAAykH,CAAG,EAE1B,OAAO+b,EAGP,SAASxgI,KAAOmL,EAAQ,CACtB,IAAIs1H,EAAkB,GAEtB,MAAMx7H,EAAWkG,EAAO,IAAG,EAE3B,GAAI,OAAOlG,GAAa,WACtB,MAAM,IAAI,UAAU,2CAA6CA,CAAQ,EAG3ErH,EAAK,KAAM,GAAGuN,CAAM,EAQpB,SAASvN,EAAKC,KAAUikC,EAAQ,CAC9B,MAAM/qC,EAAKY,EAAI,EAAE8oI,CAAe,EAChC,IAAItmI,EAAQ,GAEZ,GAAI0D,EAAO,CACToH,EAASpH,CAAK,EACd,MACF,CAGA,KAAO,EAAE1D,EAAQgR,EAAO,SAClB22B,EAAO3nC,CAAK,IAAM,MAAQ2nC,EAAO3nC,CAAK,IAAM,UAC9C2nC,EAAO3nC,CAAK,EAAIgR,EAAOhR,CAAK,GAKhCgR,EAAS22B,EAGL/qC,EACF0N,GAAK1N,EAAI6G,CAAI,EAAE,GAAGkkC,CAAM,EAExB78B,EAAS,KAAM,GAAG68B,CAAM,CAE5B,CACF,CAGA,SAAS2iF,EAAIic,EAAY,CACvB,GAAI,OAAOA,GAAe,WACxB,MAAM,IAAI,UACR,+CAAiDA,CACzD,EAGI,OAAA/oI,EAAI,KAAK+oI,CAAU,EACZF,CACT,CACF,CAUO,SAAS/7H,GAAKmkE,EAAY3jE,EAAU,CAEzC,IAAIoU,EAEJ,OAAO0+D,EAQP,SAASA,KAAW+7B,EAAY,CAC9B,MAAM6sB,EAAoB/3D,EAAW,OAASkrC,EAAW,OAEzD,IAAI5xG,EAEAy+H,GACF7sB,EAAW,KAAKpvG,CAAI,EAGtB,GAAI,CACFxC,EAAS0mE,EAAW,MAAM,KAAMkrC,CAAU,CAC5C,OAASj2G,EAAO,CACd,MAAM+iI,EAAkC/iI,EAMxC,GAAI8iI,GAAqBtnH,EACvB,MAAMunH,EAGR,OAAOl8H,EAAKk8H,CAAS,CACvB,CAEKD,IACCz+H,aAAkB,QACpBA,EAAO,KAAK2+H,EAAMn8H,CAAI,EACbxC,aAAkB,MAC3BwC,EAAKxC,CAAM,EAEX2+H,EAAK3+H,CAAM,EAGjB,CAMA,SAASwC,EAAK7G,KAAUikC,EAAQ,CACzBzoB,IACHA,EAAS,GACTpU,EAASpH,EAAO,GAAGikC,CAAM,EAE7B,CAOA,SAAS++F,EAAKpqI,EAAO,CACnBiO,EAAK,KAAMjO,CAAK,CAClB,CACF,CC5GO,MAAMqqI,GAAU,CAAC,SAAAC,GAAU,QAAAC,GAAS,QAAAC,GAAS,KAAAC,GAAM,IAAK,GAAG,EAclE,SAASH,GAAS9vH,EAAMgwH,EAAS,CAC/B,GAAIA,IAAY,QAAa,OAAOA,GAAY,SAC9C,MAAM,IAAI,UAAU,iCAAiC,EAGvDE,GAAWlwH,CAAI,EACf,IAAIxE,EAAQ,EACRC,EAAM,GACNvS,EAAQ8W,EAAK,OAEbmwH,EAEJ,GACEH,IAAY,QACZA,EAAQ,SAAW,GACnBA,EAAQ,OAAShwH,EAAK,OACtB,CACA,KAAO9W,KACL,GAAI8W,EAAK,YAAY9W,CAAK,IAAM,IAG9B,GAAIinI,EAAc,CAChB30H,EAAQtS,EAAQ,EAChB,KACF,OACSuS,EAAM,IAGf00H,EAAe,GACf10H,EAAMvS,EAAQ,GAIlB,OAAOuS,EAAM,EAAI,GAAKuE,EAAK,MAAMxE,EAAOC,CAAG,CAC7C,CAEA,GAAIu0H,IAAYhwH,EACd,MAAO,GAGT,IAAIowH,EAAmB,GACnBC,EAAeL,EAAQ,OAAS,EAEpC,KAAO9mI,KACL,GAAI8W,EAAK,YAAY9W,CAAK,IAAM,IAG9B,GAAIinI,EAAc,CAChB30H,EAAQtS,EAAQ,EAChB,KACF,OAEIknI,EAAmB,IAGrBD,EAAe,GACfC,EAAmBlnI,EAAQ,GAGzBmnI,EAAe,KAEbrwH,EAAK,YAAY9W,CAAK,IAAM8mI,EAAQ,YAAYK,GAAc,EAC5DA,EAAe,IAGjB50H,EAAMvS,IAKRmnI,EAAe,GACf50H,EAAM20H,IAMd,OAAI50H,IAAUC,EACZA,EAAM20H,EACG30H,EAAM,IACfA,EAAMuE,EAAK,QAGNA,EAAK,MAAMxE,EAAOC,CAAG,CAC9B,CAUA,SAASs0H,GAAQ/vH,EAAM,CAGrB,GAFAkwH,GAAWlwH,CAAI,EAEXA,EAAK,SAAW,EAClB,MAAO,IAGT,IAAIvE,EAAM,GACNvS,EAAQ8W,EAAK,OAEbswH,EAGJ,KAAO,EAAEpnI,GACP,GAAI8W,EAAK,YAAY9W,CAAK,IAAM,IAC9B,GAAIonI,EAAgB,CAClB70H,EAAMvS,EACN,KACF,OACUonI,IAEVA,EAAiB,IAIrB,OAAO70H,EAAM,EACTuE,EAAK,YAAY,CAAC,IAAM,GACtB,IACA,IACFvE,IAAQ,GAAKuE,EAAK,YAAY,CAAC,IAAM,GACnC,KACAA,EAAK,MAAM,EAAGvE,CAAG,CACzB,CAUA,SAASu0H,GAAQhwH,EAAM,CACrBkwH,GAAWlwH,CAAI,EAEf,IAAI9W,EAAQ8W,EAAK,OAEbvE,EAAM,GACN80H,EAAY,EACZC,EAAW,GAGXC,EAAc,EAEdH,EAEJ,KAAOpnI,KAAS,CACd,MAAM+mC,EAAOjwB,EAAK,YAAY9W,CAAK,EAEnC,GAAI+mC,IAAS,GAAc,CAGzB,GAAIqgG,EAAgB,CAClBC,EAAYrnI,EAAQ,EACpB,KACF,CAEA,QACF,CAEIuS,EAAM,IAGR60H,EAAiB,GACjB70H,EAAMvS,EAAQ,GAGZ+mC,IAAS,GAEPugG,EAAW,EACbA,EAAWtnI,EACFunI,IAAgB,IACzBA,EAAc,GAEPD,EAAW,KAGpBC,EAAc,GAElB,CAEA,OACED,EAAW,GACX/0H,EAAM,GAENg1H,IAAgB,GAEfA,IAAgB,GAAKD,IAAa/0H,EAAM,GAAK+0H,IAAaD,EAAY,EAEhE,GAGFvwH,EAAK,MAAMwwH,EAAU/0H,CAAG,CACjC,CAUA,SAASw0H,MAAQhwH,EAAU,CACzB,IAAI/W,EAAQ,GAERwnI,EAEJ,KAAO,EAAExnI,EAAQ+W,EAAS,QACxBiwH,GAAWjwH,EAAS/W,CAAK,CAAC,EAEtB+W,EAAS/W,CAAK,IAChBwnI,EACEA,IAAW,OAAYzwH,EAAS/W,CAAK,EAAIwnI,EAAS,IAAMzwH,EAAS/W,CAAK,GAI5E,OAAOwnI,IAAW,OAAY,IAAM5qB,GAAU4qB,CAAM,CACtD,CAYA,SAAS5qB,GAAU9lG,EAAM,CACvBkwH,GAAWlwH,CAAI,EAEf,MAAM2wH,EAAW3wH,EAAK,YAAY,CAAC,IAAM,GAGzC,IAAIxa,EAAQorI,GAAgB5wH,EAAM,CAAC2wH,CAAQ,EAE3C,OAAInrI,EAAM,SAAW,GAAK,CAACmrI,IACzBnrI,EAAQ,KAGNA,EAAM,OAAS,GAAKwa,EAAK,YAAYA,EAAK,OAAS,CAAC,IAAM,KAC5Dxa,GAAS,KAGJmrI,EAAW,IAAMnrI,EAAQA,CAClC,CAYA,SAASorI,GAAgB5wH,EAAM6wH,EAAgB,CAC7C,IAAI5/H,EAAS,GACT6/H,EAAoB,EACpBC,EAAY,GACZhuC,EAAO,EACP75F,EAAQ,GAER+mC,EAEA+gG,EAEJ,KAAO,EAAE9nI,GAAS8W,EAAK,QAAQ,CAC7B,GAAI9W,EAAQ8W,EAAK,OACfiwB,EAAOjwB,EAAK,YAAY9W,CAAK,MACxB,IAAI+mC,IAAS,GAClB,MAEAA,EAAO,GAGT,GAAIA,IAAS,GAAc,CACzB,GAAI,EAAA8gG,IAAc7nI,EAAQ,GAAK65F,IAAS,GAEjC,GAAIguC,IAAc7nI,EAAQ,GAAK65F,IAAS,EAAG,CAChD,GACE9xF,EAAO,OAAS,GAChB6/H,IAAsB,GACtB7/H,EAAO,YAAYA,EAAO,OAAS,CAAC,IAAM,IAC1CA,EAAO,YAAYA,EAAO,OAAS,CAAC,IAAM,IAE1C,GAAIA,EAAO,OAAS,GAGlB,GAFA+/H,EAAiB//H,EAAO,YAAY,GAAG,EAEnC+/H,IAAmB//H,EAAO,OAAS,EAAG,CACpC+/H,EAAiB,GACnB//H,EAAS,GACT6/H,EAAoB,IAEpB7/H,EAASA,EAAO,MAAM,EAAG+/H,CAAc,EACvCF,EAAoB7/H,EAAO,OAAS,EAAIA,EAAO,YAAY,GAAG,GAGhE8/H,EAAY7nI,EACZ65F,EAAO,EACP,QACF,UACS9xF,EAAO,OAAS,EAAG,CAC5BA,EAAS,GACT6/H,EAAoB,EACpBC,EAAY7nI,EACZ65F,EAAO,EACP,QACF,EAGE8tC,IACF5/H,EAASA,EAAO,OAAS,EAAIA,EAAS,MAAQ,KAC9C6/H,EAAoB,EAExB,MACM7/H,EAAO,OAAS,EAClBA,GAAU,IAAM+O,EAAK,MAAM+wH,EAAY,EAAG7nI,CAAK,EAE/C+H,EAAS+O,EAAK,MAAM+wH,EAAY,EAAG7nI,CAAK,EAG1C4nI,EAAoB5nI,EAAQ6nI,EAAY,EAG1CA,EAAY7nI,EACZ65F,EAAO,CACT,MAAW9yD,IAAS,IAAgB8yD,EAAO,GACzCA,IAEAA,EAAO,EAEX,CAEA,OAAO9xF,CACT,CAUA,SAASi/H,GAAWlwH,EAAM,CACxB,GAAI,OAAOA,GAAS,SAClB,MAAM,IAAI,UACR,mCAAqC,KAAK,UAAUA,CAAI,CAC9D,CAEA,CCpaO,MAAMixH,GAAU,CAAC,IAAAC,EAAG,EAE3B,SAASA,IAAM,CACb,MAAO,GACT,CCYO,SAASC,GAAMC,EAAe,CACnC,MAAO,GACLA,IAAkB,MAChB,OAAOA,GAAkB,UACzB,SAAUA,GACVA,EAAc,MACd,aAAcA,GACdA,EAAc,UAEdA,EAAc,OAAS,OAE7B,CClBO,SAASC,GAAUrxH,EAAM,CAC9B,GAAI,OAAOA,GAAS,SAClBA,EAAO,IAAI,IAAIA,CAAI,UACV,CAACmxH,GAAMnxH,CAAI,EAAG,CAEvB,MAAMpT,EAAQ,IAAI,UAChB,+EACEoT,EACA,GACR,EACI,MAAApT,EAAM,KAAO,uBACPA,CACR,CAEA,GAAIoT,EAAK,WAAa,QAAS,CAE7B,MAAMpT,EAAQ,IAAI,UAAU,gCAAgC,EAC5D,MAAAA,EAAM,KAAO,yBACPA,CACR,CAEA,OAAO0kI,GAAoBtxH,CAAI,CACjC,CAUA,SAASsxH,GAAoBnzF,EAAK,CAChC,GAAIA,EAAI,WAAa,GAAI,CAEvB,MAAMvxC,EAAQ,IAAI,UAChB,sDACN,EACI,MAAAA,EAAM,KAAO,4BACPA,CACR,CAEA,MAAM2kI,EAAWpzF,EAAI,SACrB,IAAIj1C,EAAQ,GAEZ,KAAO,EAAEA,EAAQqoI,EAAS,QACxB,GACEA,EAAS,YAAYroI,CAAK,IAAM,IAChCqoI,EAAS,YAAYroI,EAAQ,CAAC,IAAM,GACpC,CACA,MAAMsoI,EAAQD,EAAS,YAAYroI,EAAQ,CAAC,EAC5C,GAAIsoI,IAAU,IAAgBA,IAAU,IAAe,CAErD,MAAM5kI,EAAQ,IAAI,UAChB,qDACV,EACQ,MAAAA,EAAM,KAAO,4BACPA,CACR,CACF,CAGF,OAAO,mBAAmB2kI,CAAQ,CACpC,CCvDA,MAAMx+C,GAA8B,CAClC,UACA,OACA,WACA,OACA,UACA,SACF,EAEO,MAAM0+C,EAAM,CAuBjB,YAAYjsI,EAAO,CAEjB,IAAI6S,EAEC7S,EAEM2rI,GAAM3rI,CAAK,EACpB6S,EAAU,CAAC,KAAM7S,CAAK,EACb,OAAOA,GAAU,UAAYksI,GAAalsI,CAAK,EACxD6S,EAAU,CAAC,MAAA7S,CAAK,EAEhB6S,EAAU7S,EANV6S,EAAU,GAkBZ,KAAK,IAAM,QAASA,EAAU,GAAK44H,GAAQ,IAAG,EAU9C,KAAK,KAAO,GASZ,KAAK,QAAU,GAOf,KAAK,SAAW,GAOhB,KAAK,MAYL,KAAK,IAUL,KAAK,OASL,KAAK,OAIL,IAAI/nI,EAAQ,GAEZ,KAAO,EAAEA,EAAQ6pF,GAAM,QAAQ,CAC7B,MAAM+vC,EAAQ/vC,GAAM7pF,CAAK,EAKvB45H,KAASzqH,GACTA,EAAQyqH,CAAK,IAAM,QACnBzqH,EAAQyqH,CAAK,IAAM,OAGnB,KAAKA,CAAK,EAAIA,IAAU,UAAY,CAAC,GAAGzqH,EAAQyqH,CAAK,CAAC,EAAIzqH,EAAQyqH,CAAK,EAE3E,CAGA,IAAIA,EAGJ,IAAKA,KAASzqH,EAEP06E,GAAM,SAAS+vC,CAAK,IAEvB,KAAKA,CAAK,EAAIzqH,EAAQyqH,CAAK,EAGjC,CAQA,IAAI,UAAW,CACb,OAAO,OAAO,KAAK,MAAS,SACxB+M,GAAQ,SAAS,KAAK,IAAI,EAC1B,MACN,CAcA,IAAI,SAASC,EAAU,CACrB6B,GAAe7B,EAAU,UAAU,EACnC8B,GAAW9B,EAAU,UAAU,EAC/B,KAAK,KAAOD,GAAQ,KAAK,KAAK,SAAW,GAAIC,CAAQ,CACvD,CAQA,IAAI,SAAU,CACZ,OAAO,OAAO,KAAK,MAAS,SACxBD,GAAQ,QAAQ,KAAK,IAAI,EACzB,MACN,CAYA,IAAI,QAAQE,EAAS,CACnBG,GAAW,KAAK,SAAU,SAAS,EACnC,KAAK,KAAOL,GAAQ,KAAKE,GAAW,GAAI,KAAK,QAAQ,CACvD,CAQA,IAAI,SAAU,CACZ,OAAO,OAAO,KAAK,MAAS,SACxBF,GAAQ,QAAQ,KAAK,IAAI,EACzB,MACN,CAcA,IAAI,QAAQG,EAAS,CAInB,GAHA4B,GAAW5B,EAAS,SAAS,EAC7BE,GAAW,KAAK,QAAS,SAAS,EAE9BF,EAAS,CACX,GAAIA,EAAQ,YAAY,CAAC,IAAM,GAC7B,MAAM,IAAI,MAAM,+BAA+B,EAGjD,GAAIA,EAAQ,SAAS,IAAK,CAAC,EACzB,MAAM,IAAI,MAAM,wCAAwC,CAE5D,CAEA,KAAK,KAAOH,GAAQ,KAAK,KAAK,QAAS,KAAK,MAAQG,GAAW,GAAG,CACpE,CAQA,IAAI,MAAO,CACT,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,CAAC,CAC7C,CAcA,IAAI,KAAKhwH,EAAM,CACTmxH,GAAMnxH,CAAI,IACZA,EAAOqxH,GAAUrxH,CAAI,GAGvB2xH,GAAe3xH,EAAM,MAAM,EAEvB,KAAK,OAASA,GAChB,KAAK,QAAQ,KAAKA,CAAI,CAE1B,CAQA,IAAI,MAAO,CACT,OAAO,OAAO,KAAK,MAAS,SACxB6vH,GAAQ,SAAS,KAAK,KAAM,KAAK,OAAO,EACxC,MACN,CAcA,IAAI,KAAKgC,EAAM,CACbF,GAAeE,EAAM,MAAM,EAC3BD,GAAWC,EAAM,MAAM,EACvB,KAAK,KAAOhC,GAAQ,KAAK,KAAK,SAAW,GAAIgC,GAAQ,KAAK,SAAW,GAAG,CAC1E,CA+DA,KAAKzmB,EAAeC,EAAwB3lB,EAAQ,CAElD,MAAMzd,EAAU,KAAK,QAAQmjC,EAAeC,EAAwB3lB,CAAM,EAE1E,MAAAzd,EAAQ,MAAQ,GAEVA,CACR,CA4DA,KAAKmjC,EAAeC,EAAwB3lB,EAAQ,CAElD,MAAMzd,EAAU,KAAK,QAAQmjC,EAAeC,EAAwB3lB,CAAM,EAE1E,OAAAzd,EAAQ,MAAQ,OAETA,CACT,CA4DA,QAAQmjC,EAAeC,EAAwB3lB,EAAQ,CACrD,MAAMzd,EAAU,IAAIkjC,GAElBC,EACAC,EACA3lB,CACN,EAEI,OAAI,KAAK,OACPzd,EAAQ,KAAO,KAAK,KAAO,IAAMA,EAAQ,KACzCA,EAAQ,KAAO,KAAK,MAGtBA,EAAQ,MAAQ,GAEhB,KAAK,SAAS,KAAKA,CAAO,EAEnBA,CACT,CAeA,SAAS30C,EAAU,CACjB,OAAI,KAAK,QAAU,OACV,GAGL,OAAO,KAAK,OAAU,SACjB,KAAK,MAGE,IAAI,YAAYA,GAAY,MAAS,EACtC,OAAO,KAAK,KAAK,CAClC,CACF,CAYA,SAASs+F,GAAWE,EAAM7pI,EAAM,CAC9B,GAAI6pI,GAAQA,EAAK,SAASjC,GAAQ,GAAG,EACnC,MAAM,IAAI,MACR,IAAM5nI,EAAO,uCAAyC4nI,GAAQ,IAAM,GAC1E,CAEA,CAYA,SAAS8B,GAAeG,EAAM7pI,EAAM,CAClC,GAAI,CAAC6pI,EACH,MAAM,IAAI,MAAM,IAAM7pI,EAAO,mBAAmB,CAEpD,CAYA,SAASioI,GAAWlwH,EAAM/X,EAAM,CAC9B,GAAI,CAAC+X,EACH,MAAM,IAAI,MAAM,YAAc/X,EAAO,iCAAiC,CAE1E,CAUA,SAASypI,GAAalsI,EAAO,CAC3B,MAAO,GACLA,GACE,OAAOA,GAAU,UACjB,eAAgBA,GAChB,eAAgBA,EAEtB,CCloBO,MAAMusI,IAYP,SAAU/uF,EAAU,CAGlB,MAAM9uC,EAFO,KACO,YAIX,UAEH1O,EAAQ0O,EAAM8uC,CAAQ,EAEtBzyC,EAAQ,UAAY,CACxB,OAAO/K,EAAM,MAAM+K,EAAO,SAAS,CACrC,EAEA,cAAO,eAAeA,EAAO2D,CAAK,EAc3B3D,CACT,GCiUA+1F,GAAM,GAAG,eAeR,MAAM0rC,WAAkBD,EAAiB,CAI9C,aAAc,CAEZ,MAAM,MAAM,EAeZ,KAAK,SAAW,OAYhB,KAAK,OAAS,OAad,KAAK,UAAY,GAajB,KAAK,SAAW,OAShB,KAAK,YAAc,GASnB,KAAK,OAAS,OASd,KAAK,UAAY,GAUjB,KAAK,OAAS,OASd,KAAK,aAAezC,GAAM,CAC5B,CAaA,MAAO,CAEL,MAAMb,EAEF,IAAIuD,GAER,IAAI9oI,EAAQ,GAEZ,KAAO,EAAEA,EAAQ,KAAK,UAAU,QAAQ,CACtC,MAAM+oI,EAAW,KAAK,UAAU/oI,CAAK,EACrCulI,EAAY,IAAI,GAAGwD,CAAQ,CAC7B,CAEA,OAAAxD,EAAY,KAAKnqI,GAAO,GAAM,GAAI,KAAK,SAAS,CAAC,EAE1CmqI,CACT,CA6DA,KAAK3qI,EAAK0B,EAAO,CACf,OAAI,OAAO1B,GAAQ,SAEb,UAAU,SAAW,GACvBouI,GAAe,OAAQ,KAAK,MAAM,EAClC,KAAK,UAAUpuI,CAAG,EAAI0B,EACf,MAID8gG,GAAI,KAAK,KAAK,UAAWxiG,CAAG,GAAK,KAAK,UAAUA,CAAG,GAAM,OAI/DA,GACFouI,GAAe,OAAQ,KAAK,MAAM,EAClC,KAAK,UAAYpuI,EACV,MAIF,KAAK,SACd,CAmBA,QAAS,CACP,GAAI,KAAK,OACP,OAAO,KAMT,MAAM+M,EAAyD,KAE/D,KAAO,EAAE,KAAK,YAAc,KAAK,UAAU,QAAQ,CACjD,KAAM,CAACohI,EAAU,GAAG55H,CAAO,EAAI,KAAK,UAAU,KAAK,WAAW,EAE9D,GAAIA,EAAQ,CAAC,IAAM,GACjB,SAGEA,EAAQ,CAAC,IAAM,KACjBA,EAAQ,CAAC,EAAI,QAGf,MAAM85H,EAAcF,EAAS,KAAKphI,EAAM,GAAGwH,CAAO,EAE9C,OAAO85H,GAAgB,YACzB,KAAK,aAAa,IAAIA,CAAW,CAErC,CAEA,YAAK,OAAS,GACd,KAAK,YAAc,OAAO,kBAEnB,IACT,CAgBA,MAAMrzF,EAAM,CACV,KAAK,OAAM,EACX,MAAMszF,EAAWC,GAAMvzF,CAAI,EACrBwiD,EAAS,KAAK,QAAU,KAAK,OACnC,OAAAgxC,GAAa,QAAShxC,CAAM,EACrBA,EAAO,OAAO8wC,CAAQ,EAAGA,CAAQ,CAC1C,CA4CA,QAAQtzF,EAAMrrC,EAAM,CAClB,MAAM5C,EAAO,KAEb,YAAK,OAAM,EACXyhI,GAAa,UAAW,KAAK,QAAU,KAAK,MAAM,EAClDC,GAAe,UAAW,KAAK,UAAY,KAAK,QAAQ,EAEjD9+H,EAAOmiG,EAAS,OAAWniG,CAAI,EAAI,IAAI,QAAQmiG,CAAQ,EAQ9D,SAASA,EAASrpF,EAASi7E,EAAQ,CACjC,MAAM4qC,EAAWC,GAAMvzF,CAAI,EAGrB0zF,EAEsB3hI,EAAK,MAAMuhI,CAAQ,EAG/CvhI,EAAK,IAAI2hI,EAAWJ,EAAU,SAAUxlI,EAAOo3G,EAAMllE,EAAM,CACzD,GAAIlyC,GAAS,CAACo3G,GAAQ,CAACllE,EACrB,OAAO2zF,EAAS7lI,CAAK,EAKvB,MAAM8lI,EAEsB1uB,EAGtB2uB,EAAgB9hI,EAAK,UAAU6hI,EAAa5zF,CAAI,EAElD8zF,GAAgBD,CAAa,EAC/B7zF,EAAK,MAAQ6zF,EAEb7zF,EAAK,OAAS6zF,EAGhBF,EAAS7lI,EAAsDkyC,CAAI,CACrE,CAAC,EAOD,SAAS2zF,EAAS7lI,EAAOkyC,EAAM,CACzBlyC,GAAS,CAACkyC,EACZ0oD,EAAO56F,CAAK,EACH2f,EACTA,EAAQuyB,CAAI,EAGZrrC,EAAK,OAAWqrC,CAAI,CAExB,CACF,CACF,CAiCA,YAAYA,EAAM,CAEhB,IAAI+zF,EAAW,GAEX5hI,EAEJ,YAAK,OAAM,EACXqhI,GAAa,cAAe,KAAK,QAAU,KAAK,MAAM,EACtDC,GAAe,cAAe,KAAK,UAAY,KAAK,QAAQ,EAE5D,KAAK,QAAQzzF,EAAM2zF,CAAQ,EAC3BK,GAAW,cAAe,UAAWD,CAAQ,EAGtC5hI,EAKP,SAASwhI,EAAS7lI,EAAOkyC,EAAM,CAC7B+zF,EAAW,GACXhE,GAAKjiI,CAAK,EACVqE,EAAS6tC,CACX,CACF,CAwCA,IAAIklE,EAAMllE,EAAMrrC,EAAM,CACpBs/H,GAAW/uB,CAAI,EACf,KAAK,OAAM,EAEX,MAAMgvB,EAAe,KAAK,aAE1B,MAAI,CAACv/H,GAAQ,OAAOqrC,GAAS,aAC3BrrC,EAAOqrC,EACPA,EAAO,QAGFrrC,EAAOmiG,EAAS,OAAWniG,CAAI,EAAI,IAAI,QAAQmiG,CAAQ,EAW9D,SAASA,EAASrpF,EAASi7E,EAAQ,CAKjC,MAAM4qC,EAAWC,GAAMvzF,CAAI,EAC3Bk0F,EAAa,IAAIhvB,EAAMouB,EAAUK,CAAQ,EAQzC,SAASA,EAAS7lI,EAAOqmI,EAAYn0F,EAAM,CACzC,MAAMo0F,EAEFD,GAAcjvB,EAGdp3G,EACF46F,EAAO56F,CAAK,EACH2f,EACTA,EAAQ2mH,CAAa,EAGrBz/H,EAAK,OAAWy/H,EAAep0F,CAAI,CAEvC,CACF,CACF,CAmBA,QAAQklE,EAAMllE,EAAM,CAElB,IAAI+zF,EAAW,GAEX5hI,EAEJ,YAAK,IAAI+yG,EAAMllE,EAAM2zF,CAAQ,EAE7BK,GAAW,UAAW,MAAOD,CAAQ,EAE9B5hI,EAKP,SAASwhI,EAAS7lI,EAAOo3G,EAAM,CAC7B6qB,GAAKjiI,CAAK,EACVqE,EAAS+yG,EACT6uB,EAAW,EACb,CACF,CA+BA,UAAU7uB,EAAMllE,EAAM,CACpB,KAAK,OAAM,EACX,MAAMszF,EAAWC,GAAMvzF,CAAI,EACrBovE,EAAW,KAAK,UAAY,KAAK,SACvC,OAAAqkB,GAAe,YAAarkB,CAAQ,EACpC6kB,GAAW/uB,CAAI,EAERkK,EAASlK,EAAMouB,CAAQ,CAChC,CA2DA,IAAI5sI,KAAUq9G,EAAY,CACxB,MAAMswB,EAAY,KAAK,UACjBhyH,EAAY,KAAK,UAIvB,GAFA+wH,GAAe,MAAO,KAAK,MAAM,EAE7B1sI,GAAU,KAEP,GAAI,OAAOA,GAAU,WAC1B4tI,EAAU5tI,EAAOq9G,CAAU,UAClB,OAAOr9G,GAAU,SACtB,MAAM,QAAQA,CAAK,EACrB6tI,EAAQ7tI,CAAK,EAEb8tI,EAAU9tI,CAAK,MAGjB,OAAM,IAAI,UAAU,+BAAiCA,EAAQ,GAAG,EAGlE,OAAO,KAMP,SAAS+tI,EAAI/tI,EAAO,CAClB,GAAI,OAAOA,GAAU,WACnB4tI,EAAU5tI,EAAO,EAAE,UACV,OAAOA,GAAU,SAC1B,GAAI,MAAM,QAAQA,CAAK,EAAG,CACxB,KAAM,CAAC2uB,EAAQ,GAAG0uF,CAAU,EACkBr9G,EAC9C4tI,EAAUj/G,EAAQ0uF,CAAU,CAC9B,MACEywB,EAAU9tI,CAAK,MAGjB,OAAM,IAAI,UAAU,+BAAiCA,EAAQ,GAAG,CAEpE,CAMA,SAAS8tI,EAAUriI,EAAQ,CACzB,GAAI,EAAE,YAAaA,IAAW,EAAE,aAAcA,GAC5C,MAAM,IAAI,MACR,4KACV,EAGMoiI,EAAQpiI,EAAO,OAAO,EAElBA,EAAO,WACTkQ,EAAU,SAAW7c,GAAO,GAAM6c,EAAU,SAAUlQ,EAAO,QAAQ,EAEzE,CAMA,SAASoiI,EAAQG,EAAS,CACxB,IAAItqI,EAAQ,GAEZ,GAAIsqI,GAAY,KAET,GAAI,MAAM,QAAQA,CAAO,EAC9B,KAAO,EAAEtqI,EAAQsqI,EAAQ,QAAQ,CAC/B,MAAMl6C,EAAQk6C,EAAQtqI,CAAK,EAC3BqqI,EAAIj6C,CAAK,CACX,YAEM,IAAI,UAAU,oCAAsCk6C,EAAU,GAAG,CAE3E,CAOA,SAASJ,EAAUj/G,EAAQ0uF,EAAY,CACrC,IAAI35G,EAAQ,GACRuqI,EAAa,GAEjB,KAAO,EAAEvqI,EAAQiqI,EAAU,QACzB,GAAIA,EAAUjqI,CAAK,EAAE,CAAC,IAAMirB,EAAQ,CAClCs/G,EAAavqI,EACb,KACF,CAGF,GAAIuqI,IAAe,GACjBN,EAAU,KAAK,CAACh/G,EAAQ,GAAG0uF,CAAU,CAAC,UAI/BA,EAAW,OAAS,EAAG,CAC9B,GAAI,CAAC6wB,EAAS,GAAGlsB,CAAI,EAAI3E,EACzB,MAAM8wB,EAAiBR,EAAUM,CAAU,EAAE,CAAC,EAC1CG,GAAWD,CAAc,GAAKC,GAAWF,CAAO,IAClDA,EAAUpvI,GAAO,GAAMqvI,EAAgBD,CAAO,GAGhDP,EAAUM,CAAU,EAAI,CAACt/G,EAAQu/G,EAAS,GAAGlsB,CAAI,CACnD,CACF,CACF,CACF,CA8BO,MAAMqsB,GAAU,IAAI7B,GAAS,EAAG,OAAM,EAS7C,SAASM,GAAarqI,EAAMzC,EAAO,CACjC,GAAI,OAAOA,GAAU,WACnB,MAAM,IAAI,UAAU,WAAayC,EAAO,oBAAoB,CAEhE,CASA,SAASsqI,GAAetqI,EAAMzC,EAAO,CACnC,GAAI,OAAOA,GAAU,WACnB,MAAM,IAAI,UAAU,WAAayC,EAAO,sBAAsB,CAElE,CASA,SAASiqI,GAAejqI,EAAM6rI,EAAQ,CACpC,GAAIA,EACF,MAAM,IAAI,MACR,gBACE7rI,EACA,kHACR,CAEA,CAQA,SAAS8qI,GAAW7uH,EAAM,CAGxB,GAAI,CAAC0vH,GAAW1vH,CAAI,GAAK,OAAOA,EAAK,MAAS,SAC5C,MAAM,IAAI,UAAU,uBAAyBA,EAAO,GAAG,CAG3D,CAUA,SAAS4uH,GAAW7qI,EAAM8rI,EAAWlB,EAAU,CAC7C,GAAI,CAACA,EACH,MAAM,IAAI,MACR,IAAM5qI,EAAO,0BAA4B8rI,EAAY,WAC3D,CAEA,CAMA,SAAS1B,GAAM7sI,EAAO,CACpB,OAAOwuI,GAAgBxuI,CAAK,EAAIA,EAAQ,IAAIisI,GAAMjsI,CAAK,CACzD,CAMA,SAASwuI,GAAgBxuI,EAAO,CAC9B,MAAO,GACLA,GACE,OAAOA,GAAU,UACjB,YAAaA,GACb,aAAcA,EAEpB,CAMA,SAASotI,GAAgBptI,EAAO,CAC9B,OAAO,OAAOA,GAAU,UAAYksI,GAAalsI,CAAK,CACxD,CAUA,SAASksI,GAAalsI,EAAO,CAC3B,MAAO,GACLA,GACE,OAAOA,GAAU,UACjB,eAAgBA,GAChB,eAAgBA,EAEtB,CCvxCO,SAASyuI,IAAkB,CAC9B,OAAQrjD,GAAU,gBAAiB,eAAgB,IAAI,GAChD,SAAS,cAAc,mCAAmC,GAAG,OAC7D,IACX,CCtBA,OAAO,wBAA0B,GACjC,OAAO,kBAAoB,CAACr1E,EAAIvH,EAAUkgI,EAAW/rI,IAAU,CAC7DgsI,GAAe54H,EAAIvH,EAAUkgI,EAAW/rI,CAAK,CAC/C,EACA,SAASgsI,GAAe54H,EAAIvH,EAAUkgI,EAAY,IAAM,CACxD,EAAG/rI,EAAO,CACR,MAAMisI,EAAoB,CACxB,mBAAoB,GACpB,UAAW,GACX,YAAa,GACb,GAAGjsI,CACP,EACE,GAAI,OAAO,sBAAsBoT,CAAE,EAAG,CACpCitE,GAAO,MAAM,oCAAoCjtE,CAAE,qBAAqB,EACxE,MACF,CACA,OAAO,sBAAsBA,CAAE,EAAI,CACjC,GAAAA,EACA,SAAAvH,EACA,UAAAkgI,EACA,GAAGE,CACP,CACA,CACA,SAASC,GAAa5vI,EAAI4T,EAAS,CACjC,KAAM,CAAE,eAAAi8H,EAAgB,WAAAC,EAAY,WAAAC,EAAY,YAAAC,CAAW,EAAKp8H,EAChE,GAAIi8H,IAAmB,aAGvB,IAAI,CAAC,OAAO,sBAAsBA,CAAc,EAAG,CACjD9rD,GAAO,MAAM,+BAAiC8rD,EAAiB,iBAAiB,EAChF,MACF,CACA,OAAO,sBAAsBA,CAAc,EAAE,SAAS7vI,EAAI,CAAE,eAAA6vI,EAAgB,WAAAC,EAAY,WAAAC,EAAY,YAAAC,EAAa,EACnH,CACA,SAASC,GAAcJ,EAAgB7vI,EAAI,CACrC6vI,IAAmB,cAGlB,OAAO,sBAAsBA,CAAc,GAGhD,OAAO,sBAAsBA,CAAc,EAAE,UAAU7vI,CAAE,CAC3D,CACA,SAASkwI,GAAmBp5H,EAAI,CAC9B,MAAO,CAAC,CAAC,OAAO,sBAAsBA,CAAE,CAC1C,CACA,SAASq5H,GAAmBr5H,EAAI,CAC9B,MAAO,CAAC,CAAC,OAAO,sBAAsBA,CAAE,GAAG,kBAC7C,CACA,SAASs5H,GAAat5H,EAAI,CACxB,MAAO,CAAC,CAAC,OAAO,sBAAsBA,CAAE,GAAG,SAC7C,CACA,SAASu5H,GAAYv5H,EAAI,CACvB,MAAO,CAAC,CAAC,OAAO,sBAAsBA,CAAE,GAAG,WAC7C,CCIO,SAASojB,GAAEjwB,EAAMvG,EAAO3C,EAAO,CAEpC,MAAM0e,EAAO,CAAC,KAAM,OAAOxV,CAAI,CAAC,EAEhC,OAC0BlJ,GAAU,OACjC,OAAO2C,GAAU,UAAY,MAAM,QAAQA,CAAK,GAEjD3C,EAAQ2C,EAER,OAAO,OAAO+b,EAAM/b,CAAK,EAGvB,MAAM,QAAQ3C,CAAK,EAErB0e,EAAK,SAAW1e,EACgBA,GAAU,OAE1C0e,EAAK,MAAQ,OAAO1e,CAAK,GAGpB0e,CACT,CC1EA,MAAMm1C,GAAa,CAAC,MAAM,EACpBG,GAA4B3wC,GAAgB,CAChD,OAAQ,yBACR,MAAO,CACL,KAAM,GACN,iBAAkB,CAAE,KAAM,QAAS,QAAS,EAAK,CACrD,EACE,MAAM4wC,EAAS,CACb,MAAO,CAACY,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,IAAK,CAC1C,KAAMw2B,EAAQ,KACd,IAAK,sBACL,OAAQ,SACR,MAAOzxD,GAAe,CAACqyD,EAAK,OAAO,aAAc,CAC/C,CAACA,EAAK,OAAO,sBAAsB,EAAGZ,EAAQ,gBACxD,CAAS,CAAC,CACV,EAAS,CACDrsC,GAAWitC,EAAK,OAAQ,UAAW,GAAI,IAAM,CAC3Cl2B,GAAgBp6B,GAAgB0vD,EAAQ,IAAI,EAAG,CAAC,CAC1D,CAAS,CACT,EAAS,GAAIJ,EAAU,EAErB,CACF,CAAC,EACK07E,GAAe,sBACfC,GAAyB,gCACzBpsD,GAAS,CACb,uBAAwB,8BACxB,aAAAmsD,GACA,uBAAAC,EACF,EACM9lH,GAAa,CACjB,OAAU05D,EACZ,EACMqsD,GAAyC97E,GAAYK,GAAW,CAAC,CAAC,eAAgBtqC,EAAU,CAAC,CAAC,EAK9FgmH,GAAc,2FACdC,GAAuB,+GAC7B,SAASC,GAAe,CAAE,SAAAvhB,EAAU,YAAAwhB,EAAa,oBAAAC,CAAmB,EAAI,CACtE,OAAO,SAAStxB,EAAM,CAChBsxB,GAAuB,CAACD,GAAe,CAACxhB,GAG5C9P,GAAaC,EAAO9/F,GAASA,EAAK,OAAS,OAAQ,CAACA,EAAM4pE,IAAc,CACtE,GAAIA,EAAU,KAAM48C,GAAaA,EAAS,OAAS,QAAUA,EAAS,OAAS,eAAe,EAC5F,OAEF,MAAM3yG,EAAS+1D,EAAU,GAAG,EAAE,EACxB5kF,EAAQ6uB,EAAO,SAAS,QAAQ7T,CAAI,GAAK,EACzC4xB,EAASy/F,GAASrxH,EAAK,KAAK,EAC5BsxH,EAAc,OAAO1/F,GAAW,SAAW,CAACnX,GAAE,OAAQmX,CAAM,CAAC,EAAIA,EAAO,IAAK9uC,GAC7E,OAAOA,GAAM,SACR23B,GAAE,OAAQ33B,CAAC,EAEb23B,GAAE,OAAQ,CACf,IAAK33B,EAAE,MAAM,IACvB,EAAW,CAAC23B,GAAE,OAAQ33B,EAAE,MAAM,IAAI,CAAC,CAAC,CAC7B,EAAE,OAAQqJ,GAAMA,CAAC,EAAE,KAAI,EACxB,OAAA0nB,EAAO,SAAS,OAAO7uB,EAAO,EAAG,GAAGssI,CAAW,EACxC,CAAC1xB,GAAM56G,EAAQssI,EAAY,MAAM,CAC1C,CAAC,CACH,CACF,CACA,SAASD,GAASnxG,EAAM,CACtB,IAAIt8B,EAAQqtI,GAAqB,KAAK/wG,CAAI,EAC1C,MAAM4P,EAAO,GACb,IAAIx4B,EAAQ,EACZ,KAAO1T,IAAU,MAAM,CACrB,IAAI2tI,EAAO3tI,EAAM,CAAC,EACd4tI,EACAC,EAAavxG,EAAK,UAAU5oB,EAAO1T,EAAM,MAAQA,EAAM,CAAC,EAAE,MAAM,EAChE2tI,EAAK,CAAC,IAAM,MACdE,GAAcF,EAAK,CAAC,EACpBA,EAAOA,EAAK,UAAU,CAAC,EAAE,KAAI,GAE/B,MAAMG,EAAWH,EAAKA,EAAK,OAAS,CAAC,GACjCG,IAAa,KAAOA,IAAa,KAAOA,IAAa,KAAO9tI,EAAM,CAAC,EAAE,CAAC,IAAM,KAAO8tI,IAAa,OAClGH,EAAOA,EAAK,UAAU,EAAGA,EAAK,OAAS,CAAC,EACxCC,EAAYE,GAEd5hG,EAAK,KAAK2hG,CAAU,EACpB3hG,EAAK,KAAK,CAAE,UAAWihG,GAAwB,MAAO,CAAE,KAAMQ,EAAK,KAAI,EAAI,iBAAkB,EAAI,CAAE,CAAE,EACjGC,GACF1hG,EAAK,KAAK0hG,CAAS,EAErBl6H,EAAQ1T,EAAM,MAAQA,EAAM,CAAC,EAAE,OAC/BA,EAAQqtI,GAAqB,KAAK/wG,CAAI,CACxC,CACA4P,EAAK,KAAK5P,EAAK,UAAU5oB,CAAK,CAAC,EAC/B,MAAMq6H,EAAa7hG,EAAK,IAAK1sC,GAAS,OAAOA,GAAS,SAAWA,EAAOA,EAAK,MAAM,IAAI,EAAE,KAAK,EAAE,EAChG,OAAI88B,IAASyxG,EACJ7hG,GAETw0C,GAAO,MAAM,uDAAyDpkD,CAAI,EACnEA,EACT,CACA,SAAS0xG,GAAS1+E,EAAQjZ,EAAK,CAC7B,MAAM43F,EAAe,CAACnyI,EAAK8mH,IAAW9mH,EAAI,WAAW8mH,CAAM,EAAI9mH,EAAI,MAAM8mH,EAAO,MAAM,EAAI9mH,EACpFoyI,EAAiB,CAACpyI,KAAQ2oC,IAAaA,EAAS,OAAO,CAAC96B,EAAKi5G,IAAWqrB,EAAatkI,EAAKi5G,CAAM,EAAG9mH,CAAG,EAC5G,GAAI,CAACwzD,EACH,OAAO,KAET,MAAM0yC,EAAgB,eAAe,KAAK3rD,CAAG,EACvC83F,EAAgB,wBAAwB,KAAK93F,CAAG,EAOtD,GANI,CAAC2rD,GAAiBmsC,GAGlBnsC,GAAiB,CAAC3rD,EAAI,WAAWI,GAAU,CAAE,GAG7C,CAACurD,GAAiB,CAAC3rD,EAAI,WAAW,GAAG,EACvC,OAAO,KAET,MAAM+3F,EAAcpsC,EAAgBksC,EAAe73F,EAAKI,GAAU,EAAI,YAAY,EAAIJ,EAChFg4F,EAAqBH,EAAe5+E,EAAO,QAAQ,QAAQ,KAAMxY,GAAU,EAAI,YAAY,EAC3Fw3F,EAAsBJ,EAAeE,EAAaC,CAAkB,GAAK,IACzE7+E,EAAQF,EAAO,QAAQg/E,CAAmB,EAChD,OAAK9+E,EAAM,QAAQ,OAGZA,EAAM,SAFJ,IAGX,CCzHA3lC,GAASizC,EAAG,EACZ,MAAMvL,GAAa,CAAC,aAAc,gBAAiB,gBAAiB,eAAe,EAC7EC,GAAa,CAAC,KAAK,EACnBC,GAAa,CAAE,MAAO,yBAAyB,EAC/CmB,GAAa,CAAE,MAAO,sBAAsB,EAC5CC,GAAa,CAAE,MAAO,sBAAsB,EAC5C07E,GAAe,IAAS,IACxBC,GAAuB,GACvB98E,GAA4B3wC,GAAgB,CAChD,OAAQ,oBACR,MAAO,CACL,UAAW,GACX,YAAa,CAAE,KAAM,QAAS,QAAS,EAAI,EAC3C,iBAAkB,CAAE,KAAM,QAAS,QAAS,EAAK,CACrD,EACE,MAAM4wC,EAAS,CACb,MAAMtxD,EAAQsxD,EACRrC,EAAS74C,GAAOs4C,GAAW,IAAI,EAC/B0/E,EAAW,uBAAuB97E,GAAe,CAAE,GACnD+7E,EAAY7gI,GAAI,EAAK,EACrB8gI,EAAeztH,GAAe,cAAc,EAC5C0tH,EAAsB1tH,GAAe,qBAAqB,EAC1D2tH,EAAa3tH,GAAe,YAAY,EACxC,CAAE,MAAA63C,CAAK,EAAKJ,GAAek2E,CAAU,EACrC,CAAE,OAAQC,GAAuBn2E,GAAeg2E,CAAY,EAClE50E,GAAwB80E,EAAY,CAAC,CAACjoF,EAAK,IAAM,CAC/CtzC,GAAS,IAAM,CACbo7H,EAAU,MAAQ9nF,GAAM,cAC1B,CAAC,CACH,CAAC,EACD,MAAMmoF,EAAkBlhI,GAAI,EAAK,EAC3BkY,EAAWlY,GAAI,EAAK,EAC1B,IAAImhI,EAAc,KAClB,MAAMC,EAAaphI,GAAI,EAAK,EACtBqhI,EAAgBrhI,GAAI,IAAI,EACxBshI,EAAethI,GAAI,CAAC,EACpBuhI,EAAoBvhI,GAAI,CAAC,EACzBwhI,EAAkBxhI,GAAI,GAAG,EACzByhI,EAAkBzhI,GAAI,OAAO,YAAc,GAAG,EAC9C0hI,EAAgBlqI,GAAS,IACtB,CAAChF,EAAM,kBAAoBA,EAAM,aAAe0uI,EAAgB,KACxE,EACKS,EAAwBnqI,GAAS,IAC9B0nI,GAAa1sI,EAAM,UAAU,cAAc,CACnD,EACKovI,EAAoBpqI,GAAS,IAC1B2nI,GAAY3sI,EAAM,UAAU,cAAc,CAClD,EACKqvI,EAAkBrqI,GAAS,IACxBwnI,GAAmBxsI,EAAM,UAAU,cAAc,CACzD,EACKsvI,EAAoBtqI,GAAS,IAC5B6pI,EAAc,MAGZ,CAAE,OAAQ,GAAGA,EAAc,KAAK,eAAe,EAF7C,IAGV,EACKU,EAAevqI,GAAS,IACrB,KAAK,MAAM6pI,EAAc,OAASJ,EAAmB,KAAK,CAClE,EACKe,EAA8BxqI,GAAS,IACpCqqI,EAAgB,OAAS5C,GAAmBzsI,EAAM,UAAU,cAAc,CAClF,EACKyvI,EAAWzqI,GAAS,IACjB,CAAChF,EAAM,UAAU,UACzB,EACK0vI,EAAgB1qI,GAAS,IACJ,CAAC,IAAK,IAAK,IAAK,GAAQ,EACzB,UAAW2nC,IAAQ+rB,EAAM,MAAQ/rB,EAAG,CAC7D,EACKgjG,EAAmB3qI,GAAS,IAAM,CACtC,GAAI0qI,EAAc,QAAU,EAC1B,MAAO,CACL,QAAS,MACnB,EAEM,MAAME,GAAYF,EAAc,MAChC,MAAO,CACL,UAAAE,GACA,gBAAiBA,EACzB,CACI,CAAC,EACKC,EAAc7qI,GAAS,IAAM,CACjC,MAAMnB,GAAO7D,EAAM,UAAU,gBAAgB,KAC7C,OAAK6D,GAGDA,GAAK,WAAW,UAAU,EACrBA,GAAK,UAAU,CAAC,EAErBA,GAAK,WAAW,SAAS,EACpBA,GAAK,UAAU,CAAC,EAElBA,GARE,EASX,CAAC,EACKsrD,EAAQnqD,GAAS,IACd2oI,GAAS1+E,EAAQjvD,EAAM,UAAU,gBAAgB,IAAI,CAC7D,EACK8vI,EAA+B9qI,GAAS,IACrCmqD,EAAM,MAAQY,GAAa,GACnC,EACKggF,EAA2B/qI,GAAS,IACjCmqD,EAAM,MAAQ,CAAE,GAAIA,EAAM,KAAK,EAAK,CAAE,KAAMnvD,EAAM,UAAU,gBAAgB,KAAM,OAAQ,QAAQ,CAC1G,EACDgQ,GAAMq+H,EAAYzyI,IAAQ,CACxB,GAAI,CAACA,GAAK,CACR+yI,EAAc,WAAW,IAAM,CACxBN,EAAU,OACb2B,GAAsB,CAE1B,EAAG9B,EAAY,EACf,MACF,CACIS,IACF,aAAaA,CAAW,EACxBA,EAAc,MAEXjpH,EAAS,OACZuqH,GAAqB,CAEzB,EAAG,CAAE,UAAW,GAAM,EACtBlzH,GAAgB,IAAM,CAChB4xH,IACF,aAAaA,CAAW,EACxBA,EAAc,MAEhBuB,GAAU,EACVF,GAAsB,CACxB,CAAC,EACD,SAASG,IAAoB,CAC3BzB,EAAgB,MAAQ,GACxBuB,GAAqB,CACvB,CACA,SAASA,IAAwB,CAI/B,GAHI,CAAC1B,EAAoB,OAGrBvuI,EAAM,UAAU,iBAAmB,aACrC,OAEFuuI,EAAoB,MAAM,UAAY,GACtC,MAAM6B,GAAS,SAAS,cAAc,KAAK,EAC3CA,GAAO,MAAM,MAAQ,OACrB7B,EAAoB,MAAM,YAAY6B,EAAM,EAC5Cn9H,GAAS,IAAM,CACbi5H,GAAakE,GAAQ,CACnB,GAAGpwI,EAAM,UACT,YAAakvI,EAAc,KACrC,CAAS,EACDxpH,EAAS,MAAQ,EACnB,CAAC,CACH,CACA,SAASsqH,IAAyB,CAC5BtqH,EAAS,OAAS8oH,EAAW,QAC/BjC,GAAcvsI,EAAM,UAAU,eAAgBwuI,EAAW,KAAK,EAC9D9oH,EAAS,MAAQ,GAErB,CACA,SAAS2qH,GAAmB,CAC1B,MAAMC,GAAW/B,EAAoB,OAAO,kBAC5C,GAAI+B,GAAU,CACZ,MAAMC,GAAgB,OAAO,iBAAiBD,EAAQ,EAChDE,GAAY,WAAWD,GAAc,SAAS,EAC9CE,GAAY,WAAWF,GAAc,SAAS,EACpDvB,EAAgB,MAAQwB,GAAY,EAAIA,GAAY,IACpDvB,EAAgB,MAAQ,OAAO,SAASwB,EAAS,GAAKA,GAAY,EAAIA,GAAY,OAAO,YAAc,GACzG,MACEzB,EAAgB,MAAQ,IACxBC,EAAgB,MAAQ,OAAO,YAAc,GAEjD,CACA,SAASyB,GAAYvjH,GAAO,CACtB,CAACiiH,EAAkB,OAAS,CAACd,EAAa,QAG9C+B,EAAgB,EAChBzB,EAAW,MAAQ,GACnBE,EAAa,MAAQ3hH,GAAM,QAC3B4hH,EAAkB,MAAQT,EAAa,MAAM,sBAAqB,EAAG,OACrE,OAAO,iBAAiB,cAAeqC,CAAQ,EAC/C,OAAO,iBAAiB,YAAaT,EAAU,EACjD,CACA,SAASU,GAAgBC,GAAO,CAC9B,GAAI,CAACzB,EAAkB,OAAS,CAACd,EAAa,MAC5C,OAEF+B,EAAgB,EAEhB,MAAM7rI,IADgBqqI,EAAc,OAASE,EAAkB,OAClC8B,GAC7BhC,EAAc,MAAQ,KAAK,IAAII,EAAgB,MAAO,KAAK,IAAID,EAAgB,MAAOxqI,EAAI,CAAC,CAC7F,CACA,SAASmsI,EAASxjH,GAAO,CACvB,GAAI,CAACyhH,EAAW,OAAS,CAACN,EAAa,MACrC,OAEF,MAAMwC,GAAS3jH,GAAM,QAAU2hH,EAAa,MAC5CD,EAAc,MAAQ,KAAK,IAAII,EAAgB,MAAO,KAAK,IAAID,EAAgB,MAAOD,EAAkB,MAAQ+B,EAAM,CAAC,CACzH,CACA,SAASZ,IAAa,CACftB,EAAW,QAGhBA,EAAW,MAAQ,GACnB,OAAO,oBAAoB,cAAe+B,CAAQ,EAClD,OAAO,oBAAoB,YAAaT,EAAU,EACpD,CACA,MAAO,CAACh+E,GAAMC,MACL5sC,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,QAAS,aACT,IAAK0zG,EACL,MAAO3uI,GAAe,CAAE,qBAAsB2vI,EAA4B,OAAS,CAACN,EAAc,KAAK,CAAE,CACjH,EAAS,CACD59E,EAAQ,WAAa+9E,EAAgB,OAAS9pH,EAAS,EAAIuV,EAAmB,MAAO,CACnF,IAAK,EACL,GAAIszG,EACJ,QAAS,eACT,IAAKE,EACL,MAAOzuI,GAAe,CAAC,gBAAiB,CAAE,aAAcsvI,EAAsB,KAAK,CAAE,CAAC,EACtF,MAAOlwI,GAAeqwI,EAAkB,KAAK,CACvD,EAAW,CACDl9E,EAAmB,MAAO,CACxB,QAAS,sBACT,IAAKm8E,EACL,MAAO,wBACnB,EAAa,KAAM,GAAG,EACZa,EAAkB,OAAS7pH,IAAauV,EAAmB,MAAO,CAChE,IAAK,EACL,MAAO,+BACP,KAAM,SACN,SAAU,IACV,mBAAoB,WACpB,aAAcjtB,EAAMqxB,EAAC,EAAE,eAAe,EACtC,gBAAiBqwG,EAAa,MAC9B,gBAAiBP,EAAgB,MACjC,gBAAiBC,EAAgB,MACjC,gBAAiBb,EACjB,cAAe5nG,GAAckqG,GAAa,CAAC,OAAQ,SAAS,CAAC,EAC7D,UAAW,CACTv+E,GAAO,CAAC,IAAMA,GAAO,CAAC,EAAIvrB,GAASJ,GAAe2tB,IAAWy8E,GAAgB,CAACzC,EAAoB,EAAG,CAAC,OAAQ,SAAS,CAAC,EAAG,CAAC,IAAI,CAAC,GACjIh8E,GAAO,CAAC,IAAMA,GAAO,CAAC,EAAIvrB,GAASJ,GAAe2tB,IAAWy8E,GAAgBzC,EAAoB,EAAG,CAAC,OAAQ,SAAS,CAAC,EAAG,CAAC,MAAM,CAAC,EAChJ,CACA,EAAa,KAAM,GAAIj9E,EAAU,GAAK1zC,GAAmB,GAAI,EAAI,CACjE,EAAW,CAAC,GAAK,CAACiyH,EAAS,OAASn+E,EAAQ,WAAaA,EAAQ,UAAU,iBAAmB,CAAC+9E,EAAgB,OAAS9pH,EAAS,EAAIC,GAAY3B,GAAwBisH,EAA6B,KAAK,EAAG/zG,GAAW,CAAE,IAAK,GAAKg0G,EAAyB,MAAO,CAC3P,IAAK,sBACL,MAAO,gBACjB,CAAS,EAAG,CACF,QAASp7H,GAAQ,IAAM,CACrB28C,EAAQ,UAAU,gBAAgB,OAAS/rC,EAAS,EAAIuV,EAAmB,MAAO,CAChF,IAAK,EACL,MAAO,wBACP,IAAKw2B,EAAQ,UAAU,gBAAgB,KACrD,EAAe,KAAM,EAAGH,EAAU,GAAK3zC,GAAmB,GAAI,EAAI,EACtD40C,EAAmB,MAAOhB,GAAY,CACpCgB,EAAmB,IAAKG,GAAY3wD,GAAgB0vD,EAAQ,UAAU,gBAAgB,IAAI,EAAG,CAAC,EAC9Fc,EAAmB,IAAK,CACtB,MAAO,8BACP,MAAOnzD,GAAe0wI,EAAiB,KAAK,CAC5D,EAAiB/tI,GAAgB0vD,EAAQ,UAAU,gBAAgB,WAAW,EAAG,CAAC,EACpEc,EAAmB,IAAKI,GAAY5wD,GAAgBiuI,EAAY,KAAK,EAAG,CAAC,CACvF,CAAa,CACb,CAAW,EACD,EAAG,CACb,EAAW,EAAE,GAAKryH,GAAmB,GAAI,EAAI,EACrC8zC,EAAQ,kBAAoBk+E,EAA4B,OAAS,CAACN,EAAc,OAAS3pH,EAAS,EAAIC,GAAY6sC,GAAU,CAC1H,IAAK,EACL,MAAO,6BACP,QAAS89E,EACnB,EAAW,CACD,QAASx7H,GAAQ,IAAM,CACrBqnB,GAAgBp6B,GAAgBiM,EAAMqxB,EAAC,EAAE,yBAAyB,CAAC,EAAG,CAAC,CACnF,CAAW,EACD,EAAG,CACb,CAAS,GAAK1hB,GAAmB,GAAI,EAAI,CACzC,EAAS,CAAC,EAER,CACF,CAAC,EACKuzH,GAAoC//E,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC5RnG7nC,GAASgzC,EAAG,EAKZ,MAAMw0E,GAAQ,IACd,SAASC,GAAQzyG,EAAS,CACxB,MAAM0yG,EAAW1jI,GAAI,EAAK,EACpBw1E,EAAOh+E,GAAS,IAAMksI,EAAS,MAAQn+E,GAAWK,EAAc,EAChE+9E,EAAUnsI,GAAS,IAAMksI,EAAS,MAAQhyG,GAAE,QAAQ,EAAIA,GAAE,mBAAmB,CAAC,EACpF,eAAeuM,GAAO,CACpB,GAAIylG,EAAS,MACX,OAEF,MAAM7zI,EAAQ0Q,GAAQywB,CAAO,EAC7B,GAAI,CACF,MAAM,UAAU,UAAU,UAAUnhC,CAAK,CAC3C,MAAQ,CACN,OAAO,GAAIA,CAAK,CAClB,CACA6zI,EAAS,MAAQ,GACjB,WAAW,IAAM,CACfA,EAAS,MAAQ,EACnB,EAAGF,EAAK,CACV,CACA,MAAO,CACL,SAAAE,EACA,KAAAzlG,EACA,KAAAu3C,EACA,QAAAmuD,CACJ,CACA,CCRA,MAAMhmD,GAAc,CAClB,KAAM,kBACN,WAAY,CACV,kBAAA4lD,EACJ,EACE,MAAO,CAIL,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAII,cAAe,CACb,KAAM,MACN,QAAS,IACf,EAII,MAAO,CACL,KAAM,OACN,QAAS,CACf,EAII,gBAAiB,CACf,KAAM,QACN,QAAS,EACf,EAII,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAII,iBAAkB,CAChB,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,CACL,WAAY,KACZ,QAAS,EACf,CACE,EACA,SAAU,CACR,WAAY,CACV,OAAO,KAAK,SAAW,KAAK,oBAAoB,SAAW,CAC7D,EACA,QAAS,CACP,OAAI,KAAK,cACA,KAAK,cAEV,KAAK,iBAAmB,CAAC,KAAK,SAAW,CAAC,KAAK,WAC1C,CAAC,KAAK,iBAAiB,EAEzB,KAAK,WAAa,OAAO,OAAO,KAAK,UAAU,EAAI,EAC5D,EACA,gBAAiB,CACf,OAAO,KAAK,OAAO,CAAC,GAAK,IAC3B,EACA,qBAAsB,CACpB,OAAO,KAAK,OAAO,OAAO,OAAO,EAAE,MAAM,EAAG,KAAK,KAAK,CACxD,EACA,mBAAoB,CAClB,MAAO,CACL,WAAY,GACZ,gBAAiB,CACf,GAAI,KAAK,KACT,KAAM,KAAK,KACX,KAAM,KAAK,IACrB,EACQ,eAAgB,YACxB,CACI,CACJ,EACE,MAAO,CACL,KAAM,OACV,EACE,SAAU,CACR,KAAK,MAAK,CACZ,EACA,QAAS,CACP,OAAQ,CAEN,GADA,KAAK,QAAU,GACX,KAAK,cAAe,CACtB,KAAK,WAAa,KAClB,KAAK,QAAU,GACf,MACF,CACA,GAAI,CAAC,IAAI,OAAOhE,EAAW,EAAE,KAAK,KAAK,IAAI,EAAG,CAC5C,KAAK,WAAa,KAClB,KAAK,QAAU,GACf,MACF,CACA,KAAK,QAAO,EAAG,KAAM1tD,GAAa,CAChC,KAAK,WAAaA,EAAS,KAAK,IAAI,KAAK,WACzC,KAAK,QAAU,GACf,KAAK,MAAM,QAAQ,CACrB,CAAC,EAAE,MAAO56E,GAAU,CAClB47E,GAAO,MAAM,iDAAkD,CAAE,MAAA57E,CAAK,CAAE,EACxE,KAAK,QAAU,GACf,KAAK,MAAM,QAAQ,CACrB,CAAC,CACH,EACA,SAAU,CACR,MAAM9E,EAAQ,IAAI,OAAOotI,EAAW,EAAE,KAAK,KAAK,KAAK,MAAM,EACrDqE,EAAW1xD,GAAc,IAAO,KACtC,OAAI,KAAK,QAAU,GAAK//E,EACfyxI,EAAWhjC,GAAM,IAAIr4D,GAAe,0BAA0B,EAAI,cAAc,mBAAmBp2C,EAAM,CAAC,CAAC,CAAC,iBAAiBmsI,IAAiB,EAAE,EAAI19B,GAAM,IAAIr4D,GAAe,oBAAoB,EAAI,cAAc,mBAAmBp2C,EAAM,CAAC,CAAC,CAAC,EAAE,EAEnPyxI,EAAWhjC,GAAM,KAAKr4D,GAAe,0BAA0B,EAAG,CACvE,KAAM,KAAK,KACX,QAAS,GACT,MAAO,KAAK,MACZ,aAAc+1F,GAAe,CACrC,CAAO,EAAI19B,GAAM,KAAKr4D,GAAe,oBAAoB,EAAG,CACpD,KAAM,KAAK,KACX,QAAS,GACT,MAAO,KAAK,KACpB,CAAO,CACH,CACJ,CACA,EACA,SAAS+qC,GAAY5uB,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CAClE,MAAMowD,EAA+B5tH,GAAiB,mBAAmB,EACzE,OAAOw9D,EAAS,WAAa17D,EAAS,EAAIuV,EAAmB,MAAO,CAClE,IAAK,EACL,MAAOj7B,GAAe,CAAC,gBAAiB,CAAE,eAAgBmhF,EAAM,QAAS,CAAC,CAC9E,EAAK,EACAz7D,EAAU,EAAI,EAAGuV,EAAmBra,GAAU,KAAM6D,GAAW28D,EAAS,oBAAsBjT,IACtFzoD,EAAS,EAAIC,GAAY6rH,EAA8B,CAC5D,IAAKrjE,EAAU,iBAAiB,GAChC,UAAAA,EACA,YAAa9Z,EAAO,YACpB,iBAAkBA,EAAO,gBACjC,EAAS,KAAM,EAAG,CAAC,YAAa,cAAe,kBAAkB,CAAC,EAC7D,EAAG,GAAG,EACX,EAAK,CAAC,GAAK12C,GAAmB,GAAI,EAAI,CACtC,CACA,MAAM8zH,GAAkCtgF,GAAYm6B,GAAa,CAAC,CAAC,SAAUrK,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EAC5H,SAASywD,GAAOl0I,EAAOglH,EAAW,CAChC,MAAMr0G,EAAS,OAAO3Q,CAAK,EAC3B,GAAI,OAAOglH,GAAc,SACvB,MAAM,IAAI,UAAU,oBAAoB,EAE1C,IAAI7mD,EAAQ,EACRz6D,EAAQiN,EAAO,QAAQq0G,CAAS,EACpC,KAAOthH,IAAU,IACfy6D,IACAz6D,EAAQiN,EAAO,QAAQq0G,EAAWthH,EAAQshH,EAAU,MAAM,EAE5D,OAAO7mD,CACT,CAGA,MAAMysD,GAAaD,GAAW,UAAU,EAClCE,GAAoBF,GAAW,YAAY,EACjD,SAASI,GAAaopB,EAAO,CAC3B,OAGEA,IAAU,OAASA,EAAQ,IAAMA,IAAU,IAE/C,CACA,SAAShpB,GAAmBgpB,EAAO,CACjC,OAAOA,IAAU,MAAQA,EAAQ,EACnC,CACA,SAAS/oB,GAA0B+oB,EAAO,CACxC,OAAOA,IAAU,OAASA,EAAQ,GAAKA,IAAU,GACnD,CACA,SAAS9oB,GAAc8oB,EAAO,CAC5B,OAAOA,IAAU,IAAMA,IAAU,IAAMA,IAAU,EACnD,CACA,MAAM7oB,GAAqBX,GAAW,IAAI,OAAO,gBAAiB,GAAG,CAAC,EAChEY,GAAoBZ,GAAW,IAAI,EACzC,SAASA,GAAWa,EAAO,CACzB,OAAO3/D,EACP,SAASA,EAAMsoF,EAAO,CACpB,OAAOA,IAAU,MAAQA,EAAQ,IAAM3oB,EAAM,KAAK,OAAO,aAAa2oB,CAAK,CAAC,CAC9E,CACF,CACA,SAASxrB,GAAmB36E,EAAQ,CAClC,GAAI,OAAOA,GAAW,SACpB,MAAM,IAAI,UAAU,mBAAmB,EAEzC,OAAOA,EAAO,QAAQ,sBAAuB,MAAM,EAAE,QAAQ,KAAM,OAAO,CAC5E,CACA,MAAM4vE,IAeH,SAAStkD,EAAM,CACd,GAAIA,GAAS,KACX,OAAOukD,GAET,GAAI,OAAOvkD,GAAS,WAClB,OAAO4jD,GAAY5jD,CAAI,EAEzB,GAAI,OAAOA,GAAS,SAClB,OAAO,MAAM,QAAQA,CAAI,EAAI2jD,GAAW3jD,CAAI,EAG1C86E,GAEE96E,CACV,EAGI,GAAI,OAAOA,GAAS,SAClB,OAAOykD,GAAYzkD,CAAI,EAEzB,MAAM,IAAI,MAAM,8CAA8C,CAChE,GAEF,SAAS2jD,GAAWE,EAAO,CACzB,MAAMC,EAAS,GACf,IAAI15G,EAAQ,GACZ,KAAO,EAAEA,EAAQy5G,EAAM,QACrBC,EAAO15G,CAAK,EAAIk6G,GAAQT,EAAMz5G,CAAK,CAAC,EAEtC,OAAOw5G,GAAYJ,CAAG,EACtB,SAASA,KAAOO,EAAY,CAC1B,IAAIg3B,EAAS,GACb,KAAO,EAAEA,EAASj3B,EAAO,QACvB,GAAIA,EAAOi3B,CAAM,EAAE,MAAM,KAAMh3B,CAAU,EAAG,MAAO,GAErD,MAAO,EACT,CACF,CACA,SAAS+2B,GAAkBvoF,EAAO,CAChC,MAAMmyD,EAEJnyD,EAEF,OAAOqxD,GAAYjM,CAAG,EACtB,SAASA,EAAIvyF,EAAM,CACjB,MAAMu/F,EAGJv/F,EAEF,IAAIpgB,EACJ,IAAKA,KAAOutD,EACV,GAAIoyD,EAAa3/G,CAAG,IAAM0/G,EAAc1/G,CAAG,EAAG,MAAO,GAEvD,MAAO,EACT,CACF,CACA,SAASy/G,GAAYlyD,EAAO,CAC1B,OAAOqxD,GAAYh0G,CAAI,EACvB,SAASA,EAAKwV,EAAM,CAClB,OAAOA,GAAQA,EAAK,OAASmtC,CAC/B,CACF,CACA,SAASqxD,GAAYI,EAAc,CACjC,OAAOzxD,EACP,SAASA,EAAM7rD,EAAO0D,EAAO6uB,EAAQ,CACnC,MAAO,GACL2rF,GAAel+G,CAAK,GAAKs9G,EAAa,KACpC,KACAt9G,EACA,OAAO0D,GAAU,SAAWA,EAAQ,OACpC6uB,GAAU,MAClB,EAEE,CACF,CACA,SAASsrF,IAAK,CACZ,MAAO,EACT,CACA,SAASK,GAAel+G,EAAO,CAC7B,OAAOA,IAAU,MAAQ,OAAOA,GAAU,UAAY,SAAUA,CAClE,CACA,SAAS4oH,GAAepK,EAAM81B,EAAOzhI,EAAS,CAE5C,MAAMg2G,EAAUjL,IADC/qG,GAAW,IACK,QAAU,EAAE,EACvCi2G,EAAQC,GAAQurB,CAAK,EAC3B,IAAItrB,EAAY,GAChB,KAAO,EAAEA,EAAYF,EAAM,QACzBvK,GAAaC,EAAM,OAAQ3gB,CAAO,EAEpC,SAASA,EAAQn/E,EAAMigG,EAAS,CAC9B,IAAIj7G,EAAQ,GACRulH,EACJ,KAAO,EAAEvlH,EAAQi7G,EAAQ,QAAQ,CAC/B,MAAMpsF,EAASosF,EAAQj7G,CAAK,EACtBmnE,EAAWo+C,EAAcA,EAAY,SAAW,OACtD,GAAIJ,EACFt2F,EACAs4C,EAAWA,EAAS,QAAQt4C,CAAM,EAAI,OACtC02F,CACR,EACQ,OAEFA,EAAc12F,CAChB,CACA,GAAI02F,EACF,OAAOx8F,EAAQ/N,EAAMigG,CAAO,CAEhC,CACA,SAASlyF,EAAQ/N,EAAMigG,EAAS,CAC9B,MAAMpsF,EAASosF,EAAQA,EAAQ,OAAS,CAAC,EACnCmD,EAAOgH,EAAME,CAAS,EAAE,CAAC,EACzBurB,EAAWzrB,EAAME,CAAS,EAAE,CAAC,EACnC,IAAIhzG,EAAQ,EAEZ,MAAMtS,EADW6uB,EAAO,SACD,QAAQ7T,CAAI,EACnC,IAAIyqG,EAAS,GACTtgE,EAAQ,GACZi5D,EAAK,UAAY,EACjB,IAAIx/G,EAAQw/G,EAAK,KAAKpjG,EAAK,KAAK,EAChC,KAAOpc,GAAO,CACZ,MAAM20F,EAAW30F,EAAM,MACjB8mH,EAAc,CAClB,MAAO9mH,EAAM,MACb,MAAOA,EAAM,MACb,MAAO,CAAC,GAAGq8G,EAASjgG,CAAI,CAChC,EACM,IAAI1e,EAAQu0I,EAAS,GAAGjyI,EAAO8mH,CAAW,EAqB1C,GApBI,OAAOppH,GAAU,WACnBA,EAAQA,EAAM,OAAS,EAAI,CAAE,KAAM,OAAQ,MAAAA,CAAK,EAAK,QAEnDA,IAAU,GACZ8hH,EAAK,UAAY7qB,EAAW,GAExBjhF,IAAUihF,GACZpuC,EAAM,KAAK,CACT,KAAM,OACN,MAAOnqC,EAAK,MAAM,MAAM1I,EAAOihF,CAAQ,CACnD,CAAW,EAEC,MAAM,QAAQj3F,CAAK,EACrB6oD,EAAM,KAAK,GAAG7oD,CAAK,EACVA,GACT6oD,EAAM,KAAK7oD,CAAK,EAElBgW,EAAQihF,EAAW30F,EAAM,CAAC,EAAE,OAC5B6mH,EAAS,IAEP,CAACrH,EAAK,OACR,MAEFx/G,EAAQw/G,EAAK,KAAKpjG,EAAK,KAAK,CAC9B,CACA,OAAIyqG,GACEnzG,EAAQ0I,EAAK,MAAM,QACrBmqC,EAAM,KAAK,CAAE,KAAM,OAAQ,MAAOnqC,EAAK,MAAM,MAAM1I,CAAK,EAAG,EAE7Duc,EAAO,SAAS,OAAO7uB,EAAO,EAAG,GAAGmlD,CAAK,GAEzCA,EAAQ,CAACnqC,CAAI,EAERhb,EAAQmlD,EAAM,MACvB,CACF,CACA,SAASkgE,GAAQM,EAAa,CAC5B,MAAM59G,EAAS,GACf,GAAI,CAAC,MAAM,QAAQ49G,CAAW,EAC5B,MAAM,IAAI,UAAU,mDAAmD,EAEzE,MAAMirB,EAAQ,CAACjrB,EAAY,CAAC,GAAK,MAAM,QAAQA,EAAY,CAAC,CAAC,EAAIA,EAAc,CAACA,CAAW,EAC3F,IAAI3lH,EAAQ,GACZ,KAAO,EAAEA,EAAQ4wI,EAAM,QAAQ,CAC7B,MAAMhrB,EAAQgrB,EAAM5wI,CAAK,EACzB+H,EAAO,KAAK,CAAC89G,GAAaD,EAAM,CAAC,CAAC,EAAGE,GAAWF,EAAM,CAAC,CAAC,CAAC,CAAC,CAC5D,CACA,OAAO79G,CACT,CACA,SAAS89G,GAAazH,EAAM,CAC1B,OAAO,OAAOA,GAAS,SAAW,IAAI,OAAO6G,GAAmB7G,CAAI,EAAG,GAAG,EAAIA,CAChF,CACA,SAAS0H,GAAW+qB,EAAU,CAC5B,OAAO,OAAOA,GAAa,WAAaA,EAAW,UAAW,CAC5D,OAAOA,CACT,CACF,CACA,MAAMC,GAAc,WACdC,GAAiB,CAAC,WAAY,OAAQ,QAAS,OAAO,EAC5D,SAASC,IAAiC,CACxC,MAAO,CACL,WAAY,CAACC,EAA4B,EACzC,MAAO,CACL,gBAAiBC,GACjB,qBAAsBC,GACtB,oBAAqBA,GACrB,mBAAoBA,EAC1B,EACI,KAAM,CACJ,gBAAiBC,GACjB,qBAAsBC,GACtB,oBAAqBC,GACrB,mBAAoBC,EAC1B,CACA,CACA,CACA,SAASC,IAA+B,CACtC,MAAO,CACL,OAAQ,CACN,CACE,UAAW,IACX,OAAQ,aACR,MAAO,YACP,YAAAV,GACA,eAAAC,EACR,EACM,CACE,UAAW,IACX,OAAQ,OACR,MAAO,YACP,YAAAD,GACA,eAAAC,EACR,EACM,CACE,UAAW,IACX,OAAQ,OACR,MAAO,MACP,YAAAD,GACA,eAAAC,EACR,CACA,CACA,CACA,CACA,SAASG,GAAqB51D,EAAO,CACnC,KAAK,MAAM,CAAE,KAAM,OAAQ,MAAO,KAAM,IAAK,GAAI,SAAU,EAAE,EAAIA,CAAK,CACxE,CACA,SAAS61D,GAA0B71D,EAAO,CACxC,KAAK,OAAO,MAAM,iBAAiB,KAAK,KAAMA,CAAK,CACrD,CACA,SAASg2D,GAAwBh2D,EAAO,CACtC,KAAK,OAAO,KAAK,iBAAiB,KAAK,KAAMA,CAAK,CACpD,CACA,SAASi2D,GAAuBj2D,EAAO,CACrC,KAAK,OAAO,KAAK,KAAK,KAAK,KAAMA,CAAK,EACtC,MAAMtgE,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EACxCA,EAAK,KACVA,EAAK,IAAM,UAAY,KAAK,eAAesgE,CAAK,CAClD,CACA,SAAS+1D,GAAyB/1D,EAAO,CACvC,KAAK,OAAO,KAAK,cAAc,KAAK,KAAMA,CAAK,CACjD,CACA,SAAS81D,GAAoB91D,EAAO,CAClC,KAAK,KAAKA,CAAK,CACjB,CACA,SAAS21D,GAA6Bn2B,EAAM,CAC1CoK,GACEpK,EACA,CACE,CAAC,kDAAmD22B,EAAO,EAC3D,CAAC,oCAAqCC,EAAS,CACrD,EACI,CAAE,OAAQ,CAAC,OAAQ,eAAe,CAAC,CACvC,CACA,CACA,SAASD,GAAQt7E,EAAGmuC,EAAUqtC,EAASC,EAAOhzI,EAAO,CACnD,IAAI4iH,EAAS,GASb,GARI,CAAC8G,GAAS1pH,CAAK,IAGf,MAAM,KAAK0lG,CAAQ,IACrBqtC,EAAUrtC,EAAWqtC,EACrBrtC,EAAW,GACXkd,EAAS,WAEP,CAACqwB,GAAgBF,CAAO,GAC1B,MAAO,GAET,MAAM9pG,EAAQiqG,GAASH,EAAUC,CAAK,EACtC,GAAI,CAAC/pG,EAAM,CAAC,EAAG,MAAO,GACtB,MAAM9/B,EAAS,CACb,KAAM,OACN,MAAO,KACP,IAAKy5G,EAASld,EAAWz8D,EAAM,CAAC,EAChC,SAAU,CAAC,CAAE,KAAM,OAAQ,MAAOy8D,EAAWz8D,EAAM,CAAC,CAAC,CAAE,CAC3D,EACE,OAAIA,EAAM,CAAC,EACF,CAAC9/B,EAAQ,CAAE,KAAM,OAAQ,MAAO8/B,EAAM,CAAC,EAAG,EAE5C9/B,CACT,CACA,SAAS2pI,GAAUv7E,EAAG47E,EAAOhnD,EAAOnsF,EAAO,CACzC,MAEE,CAAC0pH,GAAS1pH,EAAO,EAAI,GACrB,UAAU,KAAKmsF,CAAK,EAEb,GAEF,CACL,KAAM,OACN,MAAO,KACP,IAAK,UAAYgnD,EAAQ,IAAMhnD,EAC/B,SAAU,CAAC,CAAE,KAAM,OAAQ,MAAOgnD,EAAQ,IAAMhnD,CAAK,CAAE,CAC3D,CACA,CACA,SAAS8mD,GAAgBF,EAAS,CAChC,MAAM9pG,EAAQ8pG,EAAQ,MAAM,GAAG,EAC/B,MAAI,EAAA9pG,EAAM,OAAS,GAAKA,EAAMA,EAAM,OAAS,CAAC,IAAM,IAAI,KAAKA,EAAMA,EAAM,OAAS,CAAC,CAAC,GAAK,CAAC,aAAa,KAAKA,EAAMA,EAAM,OAAS,CAAC,CAAC,IAAMA,EAAMA,EAAM,OAAS,CAAC,IAAM,IAAI,KAAKA,EAAMA,EAAM,OAAS,CAAC,CAAC,GAAK,CAAC,aAAa,KAAKA,EAAMA,EAAM,OAAS,CAAC,CAAC,GAItP,CACA,SAASiqG,GAAS78F,EAAK,CACrB,MAAM+8F,EAAY,sBAAsB,KAAK/8F,CAAG,EAChD,GAAI,CAAC+8F,EACH,MAAO,CAAC/8F,EAAK,MAAM,EAErBA,EAAMA,EAAI,MAAM,EAAG+8F,EAAU,KAAK,EAClC,IAAIC,EAASD,EAAU,CAAC,EACpBE,EAAoBD,EAAO,QAAQ,GAAG,EAC1C,MAAME,EAAgB3B,GAAOv7F,EAAK,GAAG,EACrC,IAAIm9F,EAAgB5B,GAAOv7F,EAAK,GAAG,EACnC,KAAOi9F,IAAsB,IAAMC,EAAgBC,GACjDn9F,GAAOg9F,EAAO,MAAM,EAAGC,EAAoB,CAAC,EAC5CD,EAASA,EAAO,MAAMC,EAAoB,CAAC,EAC3CA,EAAoBD,EAAO,QAAQ,GAAG,EACtCG,IAEF,MAAO,CAACn9F,EAAKg9F,CAAM,CACrB,CACA,SAAS3pB,GAAS1pH,EAAOyzI,EAAO,CAC9B,MAAM5B,EAAQ7xI,EAAM,MAAM,WAAWA,EAAM,MAAQ,CAAC,EACpD,OAAQA,EAAM,QAAU,GAAKipH,GAAkB4oB,CAAK,GAAK7oB,GAAmB6oB,CAAK,KAAO,CAAC4B,GAAS5B,IAAU,GAC9G,CACA,SAAS1pB,GAAoBzqH,EAAO,CAClC,OAAOA,EAAM,QAAQ,cAAe,GAAG,EAAE,QAAQ,SAAU,EAAE,EAAE,YAAW,EAAG,YAAW,CAC1F,CACAwlI,GAAkB,KAAOwQ,GACzB,SAASC,IAA0B,CACjC,KAAK,OAAM,CACb,CACA,SAASC,GAAkBl3D,EAAO,CAChC,KAAK,MAAM,CAAE,KAAM,oBAAqB,WAAY,GAAI,MAAO,EAAE,EAAIA,CAAK,CAC5E,CACA,SAASm3D,IAAqC,CAC5C,KAAK,OAAM,CACb,CACA,SAASC,GAAwBp3D,EAAO,CACtC,KAAK,MACH,CAAE,KAAM,qBAAsB,WAAY,GAAI,MAAO,GAAI,SAAU,EAAE,EACrEA,CACJ,CACA,CACA,SAASq3D,GAAuBr3D,EAAO,CACrC,MAAMyP,EAAQ,KAAK,OAAM,EACnB/vE,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EACxCA,EAAK,KACVA,EAAK,WAAa+rG,GAChB,KAAK,eAAezrC,CAAK,CAC7B,EAAI,YAAW,EACbtgE,EAAK,MAAQ+vE,CACf,CACA,SAAS6nD,GAAiBt3D,EAAO,CAC/B,KAAK,KAAKA,CAAK,CACjB,CACA,SAASu3D,GAAkCv3D,EAAO,CAChD,MAAMyP,EAAQ,KAAK,OAAM,EACnB/vE,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EACxCA,EAAK,KACVA,EAAK,WAAa+rG,GAChB,KAAK,eAAezrC,CAAK,CAC7B,EAAI,YAAW,EACbtgE,EAAK,MAAQ+vE,CACf,CACA,SAAS+nD,GAAuBx3D,EAAO,CACrC,KAAK,KAAKA,CAAK,CACjB,CACA,SAASg3D,IAAwB,CAC/B,MAAO,GACT,CACA,SAASxQ,GAAkB9mH,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAC/C,MAAMo1B,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxC,IAAIrhH,EAAQy2I,EAAQ,KAAK,IAAI,EAC7B,MAAMC,EAAQl3H,EAAM,MAAM,mBAAmB,EACvCm3H,EAAUn3H,EAAM,MAAM,WAAW,EACvC,OAAAxf,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKA,EAAM,cAAcd,CAAI,EAAG,CAAE,MAAO,IAAK,OAAQ1e,CAAK,CAAE,CACvE,EACE22I,EAAO,EACPD,EAAK,EACL12I,GAASy2I,EAAQ,KAAK,GAAG,EAClBz2I,CACT,CACA,SAAS42I,IAA0B,CACjC,MAAO,CACL,MAAO,CACL,sBAAuBX,GACvB,gBAAiBC,GACjB,iCAAkCC,GAClC,sBAAuBC,EAC7B,EACI,KAAM,CACJ,sBAAuBC,GACvB,gBAAiBC,GACjB,iCAAkCC,GAClC,sBAAuBC,EAC7B,CACA,CACA,CACA,SAASK,GAAsBhkI,EAAS,CACtC,IAAIikI,EAAiB,GACrB,OAAIjkI,GAAWA,EAAQ,iBACrBikI,EAAiB,IAEZ,CACL,SAAU,CAAE,mBAAAC,EAAoB,kBAAAvR,EAAiB,EAEjD,OAAQ,CAAC,CAAE,UAAW,IAAK,YAAa,CAAC,QAAS,WAAY,WAAW,CAAC,CAAE,CAChF,EACE,SAASuR,EAAmBr4H,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAChD,MAAMo1B,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxC,IAAIrhH,EAAQy2I,EAAQ,KAAK,IAAI,EAC7B,MAAMC,EAAQl3H,EAAM,MAAM,oBAAoB,EACxCm3H,EAAUn3H,EAAM,MAAM,OAAO,EACnC,OAAAxf,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKA,EAAM,cAAcd,CAAI,EAAG,CAAE,OAAQ1e,EAAO,MAAO,GAAG,CAAE,CACzE,EACI22I,EAAO,EACP32I,GAASy2I,EAAQ,KAAK,IAAI,EACtB/3H,EAAK,UAAYA,EAAK,SAAS,OAAS,IAC1C+3H,EAAQ,MAAM,CAAC,EACfz2I,GAASy2I,EAAQ,MACdK,EAAiB;AAAA,EAAO,KAAOt3H,EAAM,YACpCA,EAAM,cAAcd,EAAM+3H,EAAQ,QAAO,CAAE,EAC3CK,EAAiBE,GAASC,EACpC,CACA,GAEIP,EAAK,EACE12I,CACT,CACF,CACA,SAASi3I,GAAe19C,EAAM71F,EAAOwzI,EAAO,CAC1C,OAAOxzI,IAAU,EAAI61F,EAAOy9C,GAAOz9C,EAAM71F,EAAOwzI,CAAK,CACvD,CACA,SAASF,GAAOz9C,EAAM71F,EAAOwzI,EAAO,CAClC,OAAQA,EAAQ,GAAK,QAAU39C,CACjC,CACA,MAAM49C,GAAiC,CACrC,WACA,qBACA,iBACA,YACA,aACA,iBACF,EACAC,GAAa,KAAOC,GACpB,SAASC,IAA+B,CACtC,MAAO,CACL,eAAgB,CAAC,QAAQ,EACzB,MAAO,CAAE,cAAeC,EAAkB,EAC1C,KAAM,CAAE,cAAeC,EAAiB,CAC5C,CACA,CACA,SAASC,IAA6B,CACpC,MAAO,CACL,OAAQ,CACN,CACE,UAAW,IACX,YAAa,WACb,eAAgBN,EACxB,CACA,EACI,SAAU,CAAE,OAAQC,EAAY,CACpC,CACA,CACA,SAASG,GAAmBv4D,EAAO,CACjC,KAAK,MAAM,CAAE,KAAM,SAAU,SAAU,EAAE,EAAIA,CAAK,CACpD,CACA,SAASw4D,GAAkBx4D,EAAO,CAChC,KAAK,KAAKA,CAAK,CACjB,CACA,SAASo4D,GAAa14H,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAC1C,MAAMo1B,EAAUj3H,EAAM,cAAc6hG,CAAI,EAClCq1B,EAAQl3H,EAAM,MAAM,eAAe,EACzC,IAAIxf,EAAQy2I,EAAQ,KAAK,IAAI,EAC7B,OAAAz2I,GAASwf,EAAM,kBAAkBd,EAAM,CACrC,GAAG+3H,EAAQ,QAAO,EAClB,OAAQz2I,EACR,MAAO,GACX,CAAG,EACDA,GAASy2I,EAAQ,KAAK,IAAI,EAC1BC,EAAK,EACE12I,CACT,CACA,SAASq3I,IAAa,CACpB,MAAO,GACT,CACA,SAASK,GAAoB13I,EAAO,CAClC,OAAOA,EAAM,MACf,CACA,SAAS23I,GAAcvjG,EAAOvhC,EAAS,CACrC,MAAM4hG,EAAW5hG,GAAW,GACtB8zH,GAASlyB,EAAS,OAAS,IAAI,OAAM,EACrCmjC,EAAenjC,EAAS,cAAgBijC,GACxC1pE,EAAa,GACb6pE,EAAa,GACbC,EAAa,GACbC,EAAsB,GAC5B,IAAIC,EAAkB,EAClBC,EAAW,GACf,KAAO,EAAEA,EAAW7jG,EAAM,QAAQ,CAChC,MAAM8jG,EAAO,GACPC,EAAS,GACf,IAAIC,EAAe,GAInB,IAHIhkG,EAAM6jG,CAAQ,EAAE,OAASD,IAC3BA,EAAkB5jG,EAAM6jG,CAAQ,EAAE,QAE7B,EAAEG,EAAehkG,EAAM6jG,CAAQ,EAAE,QAAQ,CAC9C,MAAMnR,EAAOnqB,GAAUvoE,EAAM6jG,CAAQ,EAAEG,CAAY,CAAC,EACpD,GAAI3jC,EAAS,kBAAoB,GAAO,CACtC,MAAM9mE,EAAOiqG,EAAa9Q,CAAI,EAC9BqR,EAAOC,CAAY,EAAIzqG,GACnBoqG,EAAoBK,CAAY,IAAM,QAAUzqG,EAAOoqG,EAAoBK,CAAY,KACzFL,EAAoBK,CAAY,EAAIzqG,EAExC,CACAuqG,EAAK,KAAKpR,CAAI,CAChB,CACA+Q,EAAWI,CAAQ,EAAIC,EACvBJ,EAAWG,CAAQ,EAAIE,CACzB,CACA,IAAIE,EAAc,GAClB,GAAI,OAAO1R,GAAU,UAAY,WAAYA,EAC3C,KAAO,EAAE0R,EAAcL,GACrBhqE,EAAWqqE,CAAW,EAAIC,GAAY3R,EAAM0R,CAAW,CAAC,MAErD,CACL,MAAMlE,EAAQmE,GAAY3R,CAAK,EAC/B,KAAO,EAAE0R,EAAcL,GACrBhqE,EAAWqqE,CAAW,EAAIlE,CAE9B,CACAkE,EAAc,GACd,MAAME,EAAM,GACNC,EAAQ,GACd,KAAO,EAAEH,EAAcL,GAAiB,CACtC,MAAM7D,EAAQnmE,EAAWqqE,CAAW,EACpC,IAAIj3G,EAAS,GACT0W,EAAQ,GACRq8F,IAAU,IACZ/yG,EAAS,IACT0W,EAAQ,KACCq8F,IAAU,IACnB/yG,EAAS,IACA+yG,IAAU,MACnBr8F,EAAQ,KAEV,IAAInK,EAAO8mE,EAAS,kBAAoB,GAAQ,EAAI,KAAK,IACvD,EACAsjC,EAAoBM,CAAW,EAAIj3G,EAAO,OAAS0W,EAAM,MAC/D,EACI,MAAMgvF,EAAO1lG,EAAS,IAAI,OAAOuM,CAAI,EAAImK,EACrC28D,EAAS,kBAAoB,KAC/B9mE,EAAOvM,EAAO,OAASuM,EAAOmK,EAAM,OAChCnK,EAAOoqG,EAAoBM,CAAW,IACxCN,EAAoBM,CAAW,EAAI1qG,GAErC6qG,EAAMH,CAAW,EAAI1qG,GAEvB4qG,EAAIF,CAAW,EAAIvR,CACrB,CACA+Q,EAAW,OAAO,EAAG,EAAGU,CAAG,EAC3BT,EAAW,OAAO,EAAG,EAAGU,CAAK,EAC7BP,EAAW,GACX,MAAMz0B,EAAQ,GACd,KAAO,EAAEy0B,EAAWJ,EAAW,QAAQ,CACrC,MAAMK,EAAOL,EAAWI,CAAQ,EAC1BE,EAASL,EAAWG,CAAQ,EAClCI,EAAc,GACd,MAAM9+C,EAAO,GACb,KAAO,EAAE8+C,EAAcL,GAAiB,CACtC,MAAMlR,EAAOoR,EAAKG,CAAW,GAAK,GAClC,IAAIj3G,EAAS,GACT0W,EAAQ,GACZ,GAAI28D,EAAS,kBAAoB,GAAO,CACtC,MAAM9mE,EAAOoqG,EAAoBM,CAAW,GAAKF,EAAOE,CAAW,GAAK,GAClElE,EAAQnmE,EAAWqqE,CAAW,EAChClE,IAAU,IACZ/yG,EAAS,IAAI,OAAOuM,CAAI,EACfwmG,IAAU,GACfxmG,EAAO,GACTvM,EAAS,IAAI,OAAOuM,EAAO,EAAI,EAAG,EAClCmK,EAAQ,IAAI,OAAOnK,EAAO,EAAI,EAAG,IAEjCvM,EAAS,IAAI,OAAOuM,EAAO,CAAC,EAC5BmK,EAAQ1W,GAGV0W,EAAQ,IAAI,OAAOnK,CAAI,CAE3B,CACI8mE,EAAS,iBAAmB,IAAS,CAAC4jC,GACxC9+C,EAAK,KAAK,GAAG,EAEXkb,EAAS,UAAY,IAEzB,EAAEA,EAAS,kBAAoB,IAASqyB,IAAS,MAAQryB,EAAS,iBAAmB,IAAS4jC,IAC5F9+C,EAAK,KAAK,GAAG,EAEXkb,EAAS,kBAAoB,IAC/Blb,EAAK,KAAKn4D,CAAM,EAElBm4D,EAAK,KAAKutC,CAAI,EACVryB,EAAS,kBAAoB,IAC/Blb,EAAK,KAAKzhD,CAAK,EAEb28D,EAAS,UAAY,IACvBlb,EAAK,KAAK,GAAG,GAEXkb,EAAS,eAAiB,IAAS4jC,IAAgBL,EAAkB,IACvEz+C,EAAK,KAAK,GAAG,CAEjB,CACAiqB,EAAM,KACJ/O,EAAS,eAAiB,GAAQlb,EAAK,KAAK,EAAE,EAAE,QAAQ,MAAO,EAAE,EAAIA,EAAK,KAAK,EAAE,CACvF,CACE,CACA,OAAOiqB,EAAM,KAAK;AAAA,CAAI,CACxB,CACA,SAAS7G,GAAU38G,EAAO,CACxB,OAAOA,GAAU,KAA2B,GAAK,OAAOA,CAAK,CAC/D,CACA,SAASs4I,GAAYt4I,EAAO,CAC1B,MAAMm0I,EAAQ,OAAOn0I,GAAU,SAAWA,EAAM,YAAY,CAAC,EAAI,EACjE,OAAOm0I,IAAU,IAAMA,IAAU,GAAK,GAAKA,IAAU,IAAMA,IAAU,IAAM,IAAMA,IAAU,IAAMA,IAAU,IAAM,IAAM,CACzH,CACA,SAAS7O,GAAW5mH,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACxC,MAAMq1B,EAAQl3H,EAAM,MAAM,YAAY,EAChCi3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxCo1B,EAAQ,KAAK,IAAI,EACjBA,EAAQ,MAAM,CAAC,EACf,MAAMz2I,EAAQwf,EAAM,YAClBA,EAAM,cAAcd,EAAM+3H,EAAQ,QAAO,CAAE,EAC3CgC,EACJ,EACE,OAAA/B,EAAK,EACE12I,CACT,CACA,SAASy4I,GAAMl/C,EAAM1/B,EAAGq9E,EAAO,CAC7B,MAAO,KAAOA,EAAQ,GAAK,KAAO39C,CACpC,CACA,SAASm/C,GAAejwF,EAAO+3C,EAAS,CACtC,OAAOm4C,GAAYlwF,EAAO+3C,EAAQ,YAAa,EAAI,GAAK,CAACm4C,GAAYlwF,EAAO+3C,EAAQ,eAAgB,EAAK,CAC3G,CACA,SAASm4C,GAAYlwF,EAAO6rF,EAAOsE,EAAM,CAIvC,GAHI,OAAOtE,GAAU,WACnBA,EAAQ,CAACA,CAAK,GAEZ,CAACA,GAASA,EAAM,SAAW,EAC7B,OAAOsE,EAET,IAAIl1I,EAAQ,GACZ,KAAO,EAAEA,EAAQ4wI,EAAM,QACrB,GAAI7rF,EAAM,SAAS6rF,EAAM5wI,CAAK,CAAC,EAC7B,MAAO,GAGX,MAAO,EACT,CACA,SAASq+H,GAAUloE,EAAGg/E,EAAIr5H,EAAO6hG,EAAM,CACrC,IAAI39G,EAAQ,GACZ,KAAO,EAAEA,EAAQ8b,EAAM,OAAO,QAC5B,GAAIA,EAAM,OAAO9b,CAAK,EAAE,YAAc;AAAA,GAAQg1I,GAAel5H,EAAM,MAAOA,EAAM,OAAO9b,CAAK,CAAC,EAC3F,MAAO,QAAQ,KAAK29G,EAAK,MAAM,EAAI,GAAK,IAG5C,MAAO;AAAA,CACT,CACA,SAASy3B,GAAc94I,EAAO+4I,EAAW,CACvC,MAAMpoI,EAAS,OAAO3Q,CAAK,EAC3B,IAAI0D,EAAQiN,EAAO,QAAQooI,CAAS,EAChCC,EAAWt1I,EACXy6D,EAAQ,EACR7uB,EAAM,EACV,GAAI,OAAOypG,GAAc,SACvB,MAAM,IAAI,UAAU,oBAAoB,EAE1C,KAAOr1I,IAAU,IACXA,IAAUs1I,EACR,EAAE76E,EAAQ7uB,IACZA,EAAM6uB,GAGRA,EAAQ,EAEV66E,EAAWt1I,EAAQq1I,EAAU,OAC7Br1I,EAAQiN,EAAO,QAAQooI,EAAWC,CAAQ,EAE5C,OAAO1pG,CACT,CACA,SAAS2pG,GAAqBv6H,EAAMc,EAAO,CACzC,MAAO,GACLA,EAAM,QAAQ,SAAW,IAASd,EAAK,OACvC,CAACA,EAAK,MACN,WAAW,KAAKA,EAAK,KAAK,GAC1B,CAAC,0CAA0C,KAAKA,EAAK,KAAK,EAE9D,CACA,SAASw6H,GAAW15H,EAAO,CACzB,MAAM89D,EAAS99D,EAAM,QAAQ,OAAS,IACtC,GAAI89D,IAAW,KAAOA,IAAW,IAC/B,MAAM,IAAI,MACR,+BAAiCA,EAAS,gDAChD,EAEE,OAAOA,CACT,CACA,SAAS67D,GAAOz6H,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACpC,MAAM/jC,EAAS47D,GAAW15H,CAAK,EACzBvV,EAAMyU,EAAK,OAAS,GACpBqhC,EAASu9B,IAAW,IAAM,cAAgB,QAChD,GAAI27D,GAAqBv6H,EAAMc,CAAK,EAAG,CACrC,MAAM45H,EAAQ55H,EAAM,MAAM,cAAc,EAClC65H,EAAS75H,EAAM,YAAYvV,EAAK5L,EAAG,EACzC,OAAA+6I,EAAK,EACEC,CACT,CACA,MAAM5C,EAAUj3H,EAAM,cAAc6hG,CAAI,EAClCua,EAAWt+C,EAAO,OAAO,KAAK,IAAIw7D,GAAc7uI,EAAKqzE,CAAM,EAAI,EAAG,CAAC,CAAC,EACpEo5D,EAAQl3H,EAAM,MAAM,YAAY,EACtC,IAAIxf,EAAQy2I,EAAQ,KAAK7a,CAAQ,EACjC,GAAIl9G,EAAK,KAAM,CACb,MAAMi4H,EAAUn3H,EAAM,MAAM,iBAAiBugC,CAAM,EAAE,EACrD//C,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,KAAM,CACpB,OAAQ1e,EACR,MAAO,IACP,OAAQ,CAAC,GAAG,EACZ,GAAGy2I,EAAQ,QAAO,CAC1B,CAAO,CACP,EACIE,EAAO,CACT,CACA,GAAIj4H,EAAK,MAAQA,EAAK,KAAM,CAC1B,MAAMi4H,EAAUn3H,EAAM,MAAM,iBAAiBugC,CAAM,EAAE,EACrD//C,GAASy2I,EAAQ,KAAK,GAAG,EACzBz2I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,KAAM,CACpB,OAAQ1e,EACR,MAAO;AAAA,EACP,OAAQ,CAAC,GAAG,EACZ,GAAGy2I,EAAQ,QAAO,CAC1B,CAAO,CACP,EACIE,EAAO,CACT,CACA,OAAA32I,GAASy2I,EAAQ,KAAK;AAAA,CAAI,EACtBxsI,IACFjK,GAASy2I,EAAQ,KAAKxsI,EAAM;AAAA,CAAI,GAElCjK,GAASy2I,EAAQ,KAAK7a,CAAQ,EAC9B8a,EAAK,EACE12I,CACT,CACA,SAAS3B,GAAIk7F,EAAM1/B,EAAGq9E,EAAO,CAC3B,OAAQA,EAAQ,GAAK,QAAU39C,CACjC,CACA,SAAS+/C,GAAW95H,EAAO,CACzB,MAAM89D,EAAS99D,EAAM,QAAQ,OAAS,IACtC,GAAI89D,IAAW,KAAOA,IAAW,IAC/B,MAAM,IAAI,MACR,gCAAkCA,EAAS,8CACjD,EAEE,OAAOA,CACT,CACA,SAAS+iC,GAAW3hG,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACxC,MAAMk4B,EAAQD,GAAW95H,CAAK,EACxBugC,EAASw5F,IAAU,IAAM,QAAU,aACnC7C,EAAQl3H,EAAM,MAAM,YAAY,EACtC,IAAIm3H,EAAUn3H,EAAM,MAAM,OAAO,EACjC,MAAMi3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxC,IAAIrhH,EAAQy2I,EAAQ,KAAK,GAAG,EAC5B,OAAAz2I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKA,EAAM,cAAcd,CAAI,EAAG,CACpC,OAAQ1e,EACR,MAAO,IACP,GAAGy2I,EAAQ,QAAO,CACxB,CAAK,CACL,EACEz2I,GAASy2I,EAAQ,KAAK,KAAK,EAC3BE,EAAO,EAGL,CAACj4H,EAAK,KACN,eAAe,KAAKA,EAAK,GAAG,GAE5Bi4H,EAAUn3H,EAAM,MAAM,oBAAoB,EAC1Cxf,GAASy2I,EAAQ,KAAK,GAAG,EACzBz2I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,IAAK,CAAE,OAAQ1e,EAAO,MAAO,IAAK,GAAGy2I,EAAQ,QAAO,CAAE,CAAE,CAC9E,EACIz2I,GAASy2I,EAAQ,KAAK,GAAG,IAEzBE,EAAUn3H,EAAM,MAAM,gBAAgB,EACtCxf,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,IAAK,CACnB,OAAQ1e,EACR,MAAO0e,EAAK,MAAQ,IAAM;AAAA,EAC1B,GAAG+3H,EAAQ,QAAO,CAC1B,CAAO,CACP,GAEEE,EAAO,EACHj4H,EAAK,QACPi4H,EAAUn3H,EAAM,MAAM,QAAQugC,CAAM,EAAE,EACtC//C,GAASy2I,EAAQ,KAAK,IAAM8C,CAAK,EACjCv5I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,MAAO,CACrB,OAAQ1e,EACR,MAAOu5I,EACP,GAAG9C,EAAQ,QAAO,CAC1B,CAAO,CACP,EACIz2I,GAASy2I,EAAQ,KAAK8C,CAAK,EAC3B5C,EAAO,GAETD,EAAK,EACE12I,CACT,CACA,SAASw5I,GAAch6H,EAAO,CAC5B,MAAM89D,EAAS99D,EAAM,QAAQ,UAAY,IACzC,GAAI89D,IAAW,KAAOA,IAAW,IAC/B,MAAM,IAAI,MACR,mCAAqCA,EAAS,gDACpD,EAEE,OAAOA,CACT,CACA,SAASm8D,GAAyBtF,EAAO,CACvC,MAAO,MAAQA,EAAM,SAAS,EAAE,EAAE,YAAW,EAAK,GACpD,CACA,SAAS3mB,GAAkB2mB,EAAO,CAChC,GAAIA,IAAU,MAAQ/oB,GAA0B+oB,CAAK,GAAK5oB,GAAkB4oB,CAAK,EAC/E,MAAO,GAET,GAAI7oB,GAAmB6oB,CAAK,EAC1B,MAAO,EAEX,CACA,SAASuF,GAAWC,EAASvrB,EAAQ9wC,EAAQ,CAC3C,MAAMs8D,EAAcpsB,GAAkBmsB,CAAO,EACvCE,EAAarsB,GAAkBY,CAAM,EAC3C,OAAIwrB,IAAgB,OACXC,IAAe,OAIpBv8D,IAAW,IAAM,CAAE,OAAQ,GAAM,QAAS,EAAI,EAAK,CAAE,OAAQ,GAAO,QAAS,EAAK,EAChFu8D,IAAe,EAEjB,CAAE,OAAQ,GAAM,QAAS,EAAI,EAG7B,CAAE,OAAQ,GAAO,QAAS,EAAI,EAG9BD,IAAgB,EACXC,IAAe,OAEpB,CAAE,OAAQ,GAAO,QAAS,EAAK,EAC7BA,IAAe,EAEjB,CAAE,OAAQ,GAAM,QAAS,EAAI,EAG7B,CAAE,OAAQ,GAAO,QAAS,EAAK,EAG5BA,IAAe,OAEpB,CAAE,OAAQ,GAAO,QAAS,EAAK,EAC7BA,IAAe,EAEjB,CAAE,OAAQ,GAAM,QAAS,EAAK,EAG9B,CAAE,OAAQ,GAAO,QAAS,EAAK,CAEnC,CACA/X,GAAS,KAAOgY,GAChB,SAAShY,GAASpjH,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACtC,MAAM/jC,EAASk8D,GAAch6H,CAAK,EAC5Bk3H,EAAQl3H,EAAM,MAAM,UAAU,EAC9Bi3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EAClCjgF,EAASq1G,EAAQ,KAAKn5D,CAAM,EAClC,IAAIm0C,EAAUglB,EAAQ,KACpBj3H,EAAM,kBAAkBd,EAAM,CAC5B,MAAO4+D,EACP,OAAAl8C,EACA,GAAGq1G,EAAQ,QAAO,CACxB,CAAK,CACL,EACE,MAAMsD,EAActoB,EAAQ,WAAW,CAAC,EAClCtnC,EAAOuvD,GACXr4B,EAAK,OAAO,WAAWA,EAAK,OAAO,OAAS,CAAC,EAC7C04B,EACAz8D,CACJ,EACM6M,EAAK,SACPsnC,EAAUgoB,GAAyBM,CAAW,EAAItoB,EAAQ,MAAM,CAAC,GAEnE,MAAMuoB,EAAcvoB,EAAQ,WAAWA,EAAQ,OAAS,CAAC,EACnD7nC,EAAQ8vD,GAAWr4B,EAAK,MAAM,WAAW,CAAC,EAAG24B,EAAa18D,CAAM,EAClEsM,EAAM,SACR6nC,EAAUA,EAAQ,MAAM,EAAG,EAAE,EAAIgoB,GAAyBO,CAAW,GAEvE,MAAMliG,EAAQ2+F,EAAQ,KAAKn5D,CAAM,EACjC,OAAAo5D,EAAK,EACLl3H,EAAM,+BAAiC,CACrC,MAAOoqE,EAAM,QACb,OAAQO,EAAK,OACjB,EACS/oD,EAASqwF,EAAU35E,CAC5B,CACA,SAASgiG,GAAajgF,EAAGg/E,EAAIr5H,EAAO,CAClC,OAAOA,EAAM,QAAQ,UAAY,GACnC,CACA,SAAS+oC,GAAMi2D,EAAMQ,EAAeC,EAAkBC,EAAc,CAClE,IAAIT,EACAnlD,EACAukC,EACA,OAAOmhB,GAAkB,YAAc,OAAOC,GAAqB,YACrE3lD,EAAO,OACPukC,EAAUmhB,EACVP,EAAUQ,IAEV3lD,EAAO0lD,EACPnhB,EAAUohB,EACVR,EAAUS,GAEZX,GAAaC,EAAMllD,EAAM6lD,EAAUV,CAAO,EAC1C,SAASU,EAASzgG,EAAMigG,EAAS,CAC/B,MAAMpsF,EAASosF,EAAQA,EAAQ,OAAS,CAAC,EACnCj7G,EAAQ6uB,EAASA,EAAO,SAAS,QAAQ7T,CAAI,EAAI,OACvD,OAAOm/E,EAAQn/E,EAAMhb,EAAO6uB,CAAM,CACpC,CACF,CACA,SAAS0nH,GAAsBv7H,EAAMc,EAAO,CAC1C,IAAI06H,EAAmB,GACvB,OAAA3xF,GAAM7pC,EAAM,SAASO,EAAO,CAC1B,GAAI,UAAWA,GAAS,WAAW,KAAKA,EAAM,KAAK,GAAKA,EAAM,OAAS,QACrE,OAAAi7H,EAAmB,GACZ77B,EAEX,CAAC,EACM,IACJ,CAAC3/F,EAAK,OAASA,EAAK,MAAQ,IAAMs5C,GAASt5C,CAAI,IAAMc,EAAM,QAAQ,QAAU06H,GAElF,CACA,SAASrd,GAAQn+G,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACrC,MAAM84B,EAAO,KAAK,IAAI,KAAK,IAAI,EAAGz7H,EAAK,OAAS,CAAC,EAAG,CAAC,EAC/C+3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxC,GAAI44B,GAAsBv7H,EAAMc,CAAK,EAAG,CACtC,MAAM45H,EAAQ55H,EAAM,MAAM,eAAe,EACnC46H,EAAW56H,EAAM,MAAM,UAAU,EACjC65H,EAAS75H,EAAM,kBAAkBd,EAAM,CAC3C,GAAG+3H,EAAQ,QAAO,EAClB,OAAQ;AAAA,EACR,MAAO;AAAA,CACb,CAAK,EACD,OAAA2D,EAAQ,EACRhB,EAAK,EACEC,EAAS;AAAA,GAAQc,IAAS,EAAI,IAAM,KAAK,OAE9Cd,EAAO,QAEN,KAAK,IAAIA,EAAO,YAAY,IAAI,EAAGA,EAAO,YAAY;AAAA,CAAI,CAAC,EAAI,EACtE,CACE,CACA,MAAMzd,EAAW,IAAI,OAAOue,CAAI,EAC1BzD,EAAQl3H,EAAM,MAAM,YAAY,EAChCm3H,EAAUn3H,EAAM,MAAM,UAAU,EACtCi3H,EAAQ,KAAK7a,EAAW,GAAG,EAC3B,IAAI57H,EAAQwf,EAAM,kBAAkBd,EAAM,CACxC,OAAQ,KACR,MAAO;AAAA,EACP,GAAG+3H,EAAQ,QAAO,CACtB,CAAG,EACD,MAAI,SAAS,KAAKz2I,CAAK,IACrBA,EAAQy5I,GAAyBz5I,EAAM,WAAW,CAAC,CAAC,EAAIA,EAAM,MAAM,CAAC,GAEvEA,EAAQA,EAAQ47H,EAAW,IAAM57H,EAAQ47H,EACrCp8G,EAAM,QAAQ,WAChBxf,GAAS,IAAM47H,GAEjB+a,EAAO,EACPD,EAAK,EACE12I,CACT,CACAu+C,GAAK,KAAO87F,GACZ,SAAS97F,GAAK7/B,EAAM,CAClB,OAAOA,EAAK,OAAS,EACvB,CACA,SAAS27H,IAAW,CAClB,MAAO,GACT,CACArY,GAAM,KAAOsY,GACb,SAAStY,GAAMtjH,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACnC,MAAMk4B,EAAQD,GAAW95H,CAAK,EACxBugC,EAASw5F,IAAU,IAAM,QAAU,aACnC7C,EAAQl3H,EAAM,MAAM,OAAO,EACjC,IAAIm3H,EAAUn3H,EAAM,MAAM,OAAO,EACjC,MAAMi3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxC,IAAIrhH,EAAQy2I,EAAQ,KAAK,IAAI,EAC7B,OAAAz2I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,IAAK,CAAE,OAAQ1e,EAAO,MAAO,IAAK,GAAGy2I,EAAQ,QAAO,CAAE,CAAE,CAC5E,EACEz2I,GAASy2I,EAAQ,KAAK,IAAI,EAC1BE,EAAO,EAGL,CAACj4H,EAAK,KAAOA,EAAK,OAClB,eAAe,KAAKA,EAAK,GAAG,GAE5Bi4H,EAAUn3H,EAAM,MAAM,oBAAoB,EAC1Cxf,GAASy2I,EAAQ,KAAK,GAAG,EACzBz2I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,IAAK,CAAE,OAAQ1e,EAAO,MAAO,IAAK,GAAGy2I,EAAQ,QAAO,CAAE,CAAE,CAC9E,EACIz2I,GAASy2I,EAAQ,KAAK,GAAG,IAEzBE,EAAUn3H,EAAM,MAAM,gBAAgB,EACtCxf,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,IAAK,CACnB,OAAQ1e,EACR,MAAO0e,EAAK,MAAQ,IAAM,IAC1B,GAAG+3H,EAAQ,QAAO,CAC1B,CAAO,CACP,GAEEE,EAAO,EACHj4H,EAAK,QACPi4H,EAAUn3H,EAAM,MAAM,QAAQugC,CAAM,EAAE,EACtC//C,GAASy2I,EAAQ,KAAK,IAAM8C,CAAK,EACjCv5I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,MAAO,CACrB,OAAQ1e,EACR,MAAOu5I,EACP,GAAG9C,EAAQ,QAAO,CAC1B,CAAO,CACP,EACIz2I,GAASy2I,EAAQ,KAAK8C,CAAK,EAC3B5C,EAAO,GAET32I,GAASy2I,EAAQ,KAAK,GAAG,EACzBC,EAAK,EACE12I,CACT,CACA,SAASs6I,IAAY,CACnB,MAAO,GACT,CACArU,GAAe,KAAOsU,GACtB,SAAStU,GAAevnH,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAC5C,MAAMn4G,EAAOwV,EAAK,cACZg4H,EAAQl3H,EAAM,MAAM,gBAAgB,EAC1C,IAAIm3H,EAAUn3H,EAAM,MAAM,OAAO,EACjC,MAAMi3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxC,IAAIrhH,EAAQy2I,EAAQ,KAAK,IAAI,EAC7B,MAAM+D,EAAMh7H,EAAM,KAAKd,EAAK,IAAK,CAC/B,OAAQ1e,EACR,MAAO,IACP,GAAGy2I,EAAQ,QAAO,CACtB,CAAG,EACDz2I,GAASy2I,EAAQ,KAAK+D,EAAM,IAAI,EAChC7D,EAAO,EACP,MAAMluF,EAAQjpC,EAAM,MACpBA,EAAM,MAAQ,GACdm3H,EAAUn3H,EAAM,MAAM,WAAW,EACjC,MAAMmxD,EAAYnxD,EAAM,KAAKA,EAAM,cAAcd,CAAI,EAAG,CACtD,OAAQ1e,EACR,MAAO,IACP,GAAGy2I,EAAQ,QAAO,CACtB,CAAG,EACD,OAAAE,EAAO,EACPn3H,EAAM,MAAQipC,EACdiuF,EAAK,EACDxtI,IAAS,QAAU,CAACsxI,GAAOA,IAAQ7pE,EACrC3wE,GAASy2I,EAAQ,KAAK9lE,EAAY,GAAG,EAC5BznE,IAAS,WAClBlJ,EAAQA,EAAM,MAAM,EAAG,EAAE,EAEzBA,GAASy2I,EAAQ,KAAK,GAAG,EAEpBz2I,CACT,CACA,SAASu6I,IAAqB,CAC5B,MAAO,GACT,CACArU,GAAW,KAAOuU,GAClB,SAASvU,GAAWxnH,EAAMm7C,EAAGr6C,EAAO,CAClC,IAAIxf,EAAQ0e,EAAK,OAAS,GACtBk9G,EAAW,IACXl4H,EAAQ,GACZ,KAAO,IAAI,OAAO,WAAak4H,EAAW,UAAU,EAAE,KAAK57H,CAAK,GAC9D47H,GAAY,IAKd,IAHI,WAAW,KAAK57H,CAAK,IAAM,WAAW,KAAKA,CAAK,GAAK,WAAW,KAAKA,CAAK,GAAK,QAAQ,KAAKA,CAAK,KACnGA,EAAQ,IAAMA,EAAQ,KAEjB,EAAE0D,EAAQ8b,EAAM,OAAO,QAAQ,CACpC,MAAMghF,EAAUhhF,EAAM,OAAO9b,CAAK,EAC5BsjH,EAAaxnG,EAAM,eAAeghF,CAAO,EAC/C,IAAIl+F,EACJ,GAAKk+F,EAAQ,QACb,KAAOl+F,EAAQ0kH,EAAW,KAAKhnH,CAAK,GAAG,CACrC,IAAIi3F,EAAW30F,EAAM,MACjBtC,EAAM,WAAWi3F,CAAQ,IAAM,IAAMj3F,EAAM,WAAWi3F,EAAW,CAAC,IAAM,IAC1EA,IAEFj3F,EAAQA,EAAM,MAAM,EAAGi3F,CAAQ,EAAI,IAAMj3F,EAAM,MAAMsC,EAAM,MAAQ,CAAC,CACtE,CACF,CACA,OAAOs5H,EAAW57H,EAAQ47H,CAC5B,CACA,SAAS6e,IAAiB,CACxB,MAAO,GACT,CACA,SAASC,GAAqBh8H,EAAMc,EAAO,CACzC,MAAMvV,EAAM+tD,GAASt5C,CAAI,EACzB,MAAO,GACL,CAACc,EAAM,QAAQ,cACfd,EAAK,KACL,CAACA,EAAK,OACNA,EAAK,UAAYA,EAAK,SAAS,SAAW,GAAKA,EAAK,SAAS,CAAC,EAAE,OAAS,SACxEzU,IAAQyU,EAAK,KAAO,UAAYzU,IAAQyU,EAAK,MAC9C,oBAAoB,KAAKA,EAAK,GAAG,GAEjC,CAAC,iBAAiB,KAAKA,EAAK,GAAG,EAEnC,CACAlY,GAAK,KAAOm0I,GACZ,SAASn0I,GAAKkY,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAClC,MAAMk4B,EAAQD,GAAW95H,CAAK,EACxBugC,EAASw5F,IAAU,IAAM,QAAU,aACnC9C,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxC,IAAIq1B,EACAC,EACJ,GAAI+D,GAAqBh8H,EAAMc,CAAK,EAAG,CACrC,MAAMipC,EAAQjpC,EAAM,MACpBA,EAAM,MAAQ,GACdk3H,EAAQl3H,EAAM,MAAM,UAAU,EAC9B,IAAI65H,EAAS5C,EAAQ,KAAK,GAAG,EAC7B,OAAA4C,GAAU5C,EAAQ,KAChBj3H,EAAM,kBAAkBd,EAAM,CAC5B,OAAQ26H,EACR,MAAO,IACP,GAAG5C,EAAQ,QAAO,CAC1B,CAAO,CACP,EACI4C,GAAU5C,EAAQ,KAAK,GAAG,EAC1BC,EAAK,EACLl3H,EAAM,MAAQipC,EACP4wF,CACT,CACA3C,EAAQl3H,EAAM,MAAM,MAAM,EAC1Bm3H,EAAUn3H,EAAM,MAAM,OAAO,EAC7B,IAAIxf,EAAQy2I,EAAQ,KAAK,GAAG,EAC5B,OAAAz2I,GAASy2I,EAAQ,KACfj3H,EAAM,kBAAkBd,EAAM,CAC5B,OAAQ1e,EACR,MAAO,KACP,GAAGy2I,EAAQ,QAAO,CACxB,CAAK,CACL,EACEz2I,GAASy2I,EAAQ,KAAK,IAAI,EAC1BE,EAAO,EAGL,CAACj4H,EAAK,KAAOA,EAAK,OAClB,eAAe,KAAKA,EAAK,GAAG,GAE5Bi4H,EAAUn3H,EAAM,MAAM,oBAAoB,EAC1Cxf,GAASy2I,EAAQ,KAAK,GAAG,EACzBz2I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,IAAK,CAAE,OAAQ1e,EAAO,MAAO,IAAK,GAAGy2I,EAAQ,QAAO,CAAE,CAAE,CAC9E,EACIz2I,GAASy2I,EAAQ,KAAK,GAAG,IAEzBE,EAAUn3H,EAAM,MAAM,gBAAgB,EACtCxf,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,IAAK,CACnB,OAAQ1e,EACR,MAAO0e,EAAK,MAAQ,IAAM,IAC1B,GAAG+3H,EAAQ,QAAO,CAC1B,CAAO,CACP,GAEEE,EAAO,EACHj4H,EAAK,QACPi4H,EAAUn3H,EAAM,MAAM,QAAQugC,CAAM,EAAE,EACtC//C,GAASy2I,EAAQ,KAAK,IAAM8C,CAAK,EACjCv5I,GAASy2I,EAAQ,KACfj3H,EAAM,KAAKd,EAAK,MAAO,CACrB,OAAQ1e,EACR,MAAOu5I,EACP,GAAG9C,EAAQ,QAAO,CAC1B,CAAO,CACP,EACIz2I,GAASy2I,EAAQ,KAAK8C,CAAK,EAC3B5C,EAAO,GAET32I,GAASy2I,EAAQ,KAAK,GAAG,EACzBC,EAAK,EACE12I,CACT,CACA,SAAS26I,GAASj8H,EAAMm7C,EAAGr6C,EAAO,CAChC,OAAOk7H,GAAqBh8H,EAAMc,CAAK,EAAI,IAAM,GACnD,CACA2mH,GAAc,KAAOyU,GACrB,SAASzU,GAAcznH,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAC3C,MAAMn4G,EAAOwV,EAAK,cACZg4H,EAAQl3H,EAAM,MAAM,eAAe,EACzC,IAAIm3H,EAAUn3H,EAAM,MAAM,OAAO,EACjC,MAAMi3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxC,IAAIrhH,EAAQy2I,EAAQ,KAAK,GAAG,EAC5B,MAAM5mF,EAAQrwC,EAAM,kBAAkBd,EAAM,CAC1C,OAAQ1e,EACR,MAAO,IACP,GAAGy2I,EAAQ,QAAO,CACtB,CAAG,EACDz2I,GAASy2I,EAAQ,KAAK5mF,EAAQ,IAAI,EAClC8mF,EAAO,EACP,MAAMluF,EAAQjpC,EAAM,MACpBA,EAAM,MAAQ,GACdm3H,EAAUn3H,EAAM,MAAM,WAAW,EACjC,MAAMmxD,EAAYnxD,EAAM,KAAKA,EAAM,cAAcd,CAAI,EAAG,CACtD,OAAQ1e,EACR,MAAO,IACP,GAAGy2I,EAAQ,QAAO,CACtB,CAAG,EACD,OAAAE,EAAO,EACPn3H,EAAM,MAAQipC,EACdiuF,EAAK,EACDxtI,IAAS,QAAU,CAAC2mD,GAASA,IAAU8gB,EACzC3wE,GAASy2I,EAAQ,KAAK9lE,EAAY,GAAG,EAC5BznE,IAAS,WAClBlJ,EAAQA,EAAM,MAAM,EAAG,EAAE,EAEzBA,GAASy2I,EAAQ,KAAK,GAAG,EAEpBz2I,CACT,CACA,SAAS46I,IAAoB,CAC3B,MAAO,GACT,CACA,SAASC,GAAYr7H,EAAO,CAC1B,MAAM89D,EAAS99D,EAAM,QAAQ,QAAU,IACvC,GAAI89D,IAAW,KAAOA,IAAW,KAAOA,IAAW,IACjD,MAAM,IAAI,MACR,gCAAkCA,EAAS,mDACjD,EAEE,OAAOA,CACT,CACA,SAASw9D,GAAiBt7H,EAAO,CAC/B,MAAMu7H,EAASF,GAAYr7H,CAAK,EAC1Bw7H,EAAcx7H,EAAM,QAAQ,YAClC,GAAI,CAACw7H,EACH,OAAOD,IAAW,IAAM,IAAM,IAEhC,GAAIC,IAAgB,KAAOA,IAAgB,KAAOA,IAAgB,IAChE,MAAM,IAAI,MACR,gCAAkCA,EAAc,wDACtD,EAEE,GAAIA,IAAgBD,EAClB,MAAM,IAAI,MACR,uBAAyBA,EAAS,0BAA4BC,EAAc,oBAClF,EAEE,OAAOA,CACT,CACA,SAASC,GAAmBz7H,EAAO,CACjC,MAAM89D,EAAS99D,EAAM,QAAQ,eAAiB,IAC9C,GAAI89D,IAAW,KAAOA,IAAW,IAC/B,MAAM,IAAI,MACR,gCAAkCA,EAAS,oDACjD,EAEE,OAAOA,CACT,CACA,SAAS49D,GAAU17H,EAAO,CACxB,MAAM89D,EAAS99D,EAAM,QAAQ,MAAQ,IACrC,GAAI89D,IAAW,KAAOA,IAAW,KAAOA,IAAW,IACjD,MAAM,IAAI,MACR,gCAAkCA,EAAS,iDACjD,EAEE,OAAOA,CACT,CACA,SAAS9uC,GAAK9vB,EAAM6T,EAAQ/S,EAAO6hG,EAAM,CACvC,MAAMq1B,EAAQl3H,EAAM,MAAM,MAAM,EAC1B27H,EAAgB37H,EAAM,cAC5B,IAAIu7H,EAASr8H,EAAK,QAAUu8H,GAAmBz7H,CAAK,EAAIq7H,GAAYr7H,CAAK,EACzE,MAAMw7H,EAAct8H,EAAK,QAAUq8H,IAAW,IAAM,IAAM,IAAMD,GAAiBt7H,CAAK,EACtF,IAAI47H,EAAqB7oH,GAAU/S,EAAM,eAAiBu7H,IAAWv7H,EAAM,eAAiB,GAC5F,GAAI,CAACd,EAAK,QAAS,CACjB,MAAM28H,EAAgB38H,EAAK,SAAWA,EAAK,SAAS,CAAC,EAAI,OAUzD,IAPGq8H,IAAW,KAAOA,IAAW,MAC9BM,IAAkB,CAACA,EAAc,UAAY,CAACA,EAAc,SAAS,CAAC,IACtE77H,EAAM,MAAMA,EAAM,MAAM,OAAS,CAAC,IAAM,QAAUA,EAAM,MAAMA,EAAM,MAAM,OAAS,CAAC,IAAM,YAAcA,EAAM,MAAMA,EAAM,MAAM,OAAS,CAAC,IAAM,QAAUA,EAAM,MAAMA,EAAM,MAAM,OAAS,CAAC,IAAM,YAClMA,EAAM,WAAWA,EAAM,WAAW,OAAS,CAAC,IAAM,GAAKA,EAAM,WAAWA,EAAM,WAAW,OAAS,CAAC,IAAM,GAAKA,EAAM,WAAWA,EAAM,WAAW,OAAS,CAAC,IAAM,IAEhK47H,EAAqB,IAEnBF,GAAU17H,CAAK,IAAMu7H,GAAUM,EAAe,CAChD,IAAI33I,EAAQ,GACZ,KAAO,EAAEA,EAAQgb,EAAK,SAAS,QAAQ,CACrC,MAAM5c,EAAO4c,EAAK,SAAShb,CAAK,EAChC,GAAI5B,GAAQA,EAAK,OAAS,YAAcA,EAAK,UAAYA,EAAK,SAAS,CAAC,GAAKA,EAAK,SAAS,CAAC,EAAE,OAAS,gBAAiB,CACtHs5I,EAAqB,GACrB,KACF,CACF,CACF,CACF,CACIA,IACFL,EAASC,GAEXx7H,EAAM,cAAgBu7H,EACtB,MAAM/6I,EAAQwf,EAAM,cAAcd,EAAM2iG,CAAI,EAC5C,OAAA7hG,EAAM,eAAiBu7H,EACvBv7H,EAAM,cAAgB27H,EACtBzE,EAAK,EACE12I,CACT,CACA,SAASs7I,GAAoB97H,EAAO,CAClC,MAAM3c,EAAQ2c,EAAM,QAAQ,gBAAkB,MAC9C,GAAI3c,IAAU,OAASA,IAAU,OAASA,IAAU,QAClD,MAAM,IAAI,MACR,gCAAkCA,EAAQ,mEAChD,EAEE,OAAOA,CACT,CACA,SAASo/H,GAASvjH,EAAM6T,EAAQ/S,EAAO6hG,EAAM,CAC3C,MAAMk6B,EAAiBD,GAAoB97H,CAAK,EAChD,IAAIu7H,EAASv7H,EAAM,eAAiBq7H,GAAYr7H,CAAK,EACjD+S,GAAUA,EAAO,OAAS,QAAUA,EAAO,UAC7CwoH,GAAU,OAAOxoH,EAAO,OAAU,UAAYA,EAAO,MAAQ,GAAKA,EAAO,MAAQ,IAAM/S,EAAM,QAAQ,sBAAwB,GAAQ,EAAI+S,EAAO,SAAS,QAAQ7T,CAAI,GAAKq8H,GAE5K,IAAIptG,EAAOotG,EAAO,OAAS,GACvBQ,IAAmB,OAASA,IAAmB,UAAYhpH,GAAUA,EAAO,OAAS,QAAUA,EAAO,QAAU7T,EAAK,WACvHivB,EAAO,KAAK,KAAKA,EAAO,CAAC,EAAI,GAE/B,MAAM8oG,EAAUj3H,EAAM,cAAc6hG,CAAI,EACxCo1B,EAAQ,KAAKsE,EAAS,IAAI,OAAOptG,EAAOotG,EAAO,MAAM,CAAC,EACtDtE,EAAQ,MAAM9oG,CAAI,EAClB,MAAM+oG,EAAQl3H,EAAM,MAAM,UAAU,EAC9Bxf,EAAQwf,EAAM,YAClBA,EAAM,cAAcd,EAAM+3H,EAAQ,QAAO,CAAE,EAC3C+E,CACJ,EACE,OAAA9E,EAAK,EACE12I,EACP,SAASw7I,EAAKjiD,EAAM71F,EAAOwzI,EAAO,CAChC,OAAIxzI,GACMwzI,EAAQ,GAAK,IAAI,OAAOvpG,CAAI,GAAK4rD,GAEnC29C,EAAQ6D,EAASA,EAAS,IAAI,OAAOptG,EAAOotG,EAAO,MAAM,GAAKxhD,CACxE,CACF,CACA,SAASujC,GAAUp+G,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACvC,MAAMq1B,EAAQl3H,EAAM,MAAM,WAAW,EAC/Bm3H,EAAUn3H,EAAM,MAAM,UAAU,EAChCxf,EAAQwf,EAAM,kBAAkBd,EAAM2iG,CAAI,EAChD,OAAAs1B,EAAO,EACPD,EAAK,EACE12I,CACT,CACA,MAAMy7I,GAEJ79B,GAAQ,CACN,QACA,SACA,WAEA,WACA,oBACA,QACA,iBACA,aAEA,aACA,OACA,gBAEA,oBAEA,oBACA,SACA,OAEA,eACJ,CAAG,EAEH,SAASvsF,GAAK3S,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAKlC,OAJoB3iG,EAAK,SAAS,KAAK,SAASymB,EAAG,CACjD,OAAOs2G,GAASt2G,CAAC,CACnB,CAAC,EAC+B3lB,EAAM,kBAAoBA,EAAM,eAC/C,KAAKA,EAAOd,EAAM2iG,CAAI,CACzC,CACA,SAASq6B,GAAYl8H,EAAO,CAC1B,MAAM89D,EAAS99D,EAAM,QAAQ,QAAU,IACvC,GAAI89D,IAAW,KAAOA,IAAW,IAC/B,MAAM,IAAI,MACR,iCAAmCA,EAAS,8CAClD,EAEE,OAAOA,CACT,CACA+kD,GAAO,KAAOsZ,GACd,SAAStZ,GAAO3jH,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACpC,MAAM/jC,EAASo+D,GAAYl8H,CAAK,EAC1Bk3H,EAAQl3H,EAAM,MAAM,QAAQ,EAC5Bi3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EAClCjgF,EAASq1G,EAAQ,KAAKn5D,EAASA,CAAM,EAC3C,IAAIm0C,EAAUglB,EAAQ,KACpBj3H,EAAM,kBAAkBd,EAAM,CAC5B,MAAO4+D,EACP,OAAAl8C,EACA,GAAGq1G,EAAQ,QAAO,CACxB,CAAK,CACL,EACE,MAAMsD,EAActoB,EAAQ,WAAW,CAAC,EAClCtnC,EAAOuvD,GACXr4B,EAAK,OAAO,WAAWA,EAAK,OAAO,OAAS,CAAC,EAC7C04B,EACAz8D,CACJ,EACM6M,EAAK,SACPsnC,EAAUgoB,GAAyBM,CAAW,EAAItoB,EAAQ,MAAM,CAAC,GAEnE,MAAMuoB,EAAcvoB,EAAQ,WAAWA,EAAQ,OAAS,CAAC,EACnD7nC,EAAQ8vD,GAAWr4B,EAAK,MAAM,WAAW,CAAC,EAAG24B,EAAa18D,CAAM,EAClEsM,EAAM,SACR6nC,EAAUA,EAAQ,MAAM,EAAG,EAAE,EAAIgoB,GAAyBO,CAAW,GAEvE,MAAMliG,EAAQ2+F,EAAQ,KAAKn5D,EAASA,CAAM,EAC1C,OAAAo5D,EAAK,EACLl3H,EAAM,+BAAiC,CACrC,MAAOoqE,EAAM,QACb,OAAQO,EAAK,OACjB,EACS/oD,EAASqwF,EAAU35E,CAC5B,CACA,SAAS6jG,GAAW9hF,EAAGg/E,EAAIr5H,EAAO,CAChC,OAAOA,EAAM,QAAQ,QAAU,GACjC,CACA,SAASo8H,GAAOl9H,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACpC,OAAO7hG,EAAM,KAAKd,EAAK,MAAO2iG,CAAI,CACpC,CACA,SAASw6B,GAAoBr8H,EAAO,CAClC,MAAMs8H,EAAat8H,EAAM,QAAQ,gBAAkB,EACnD,GAAIs8H,EAAa,EACf,MAAM,IAAI,MACR,2CAA6CA,EAAa,sDAChE,EAEE,OAAOA,CACT,CACA,SAASpgB,GAAc7hE,EAAGg/E,EAAIr5H,EAAO,CACnC,MAAMxf,GAASk7I,GAAU17H,CAAK,GAAKA,EAAM,QAAQ,WAAa,IAAM,KAAK,OAAOq8H,GAAoBr8H,CAAK,CAAC,EAC1G,OAAOA,EAAM,QAAQ,WAAaxf,EAAM,MAAM,EAAG,EAAE,EAAIA,CACzD,CACA,MAAMwoI,GAAS,CACb,WAAAlD,GACA,MAAOvD,GACP,KAAMoX,GACN,WAAA94B,GACA,SAAAyhB,GACA,UAAAC,GACA,QAAAlF,GACA,KAAAt+E,GACA,MAAAyjF,GACA,eAAAiE,GACA,WAAAC,GACA,KAAA1/H,GACA,cAAA2/H,GACA,KAAA33F,GACA,SAAAyzF,GACA,UAAAnF,GACA,KAAAzrG,GACA,OAAAgxG,GACA,KAAMuZ,GACN,cAAAlgB,EACF,EACA,SAASqgB,IAAuB,CAC9B,MAAO,CACL,MAAO,CACL,MAAOC,GACP,UAAWC,GACX,YAAaA,GACb,SAAUC,EAChB,EACI,KAAM,CACJ,SAAUC,GACV,MAAOC,GACP,UAAWltB,GACX,YAAaA,GACb,SAAUA,EAChB,CACA,CACA,CACA,SAAS8sB,GAAWh9D,EAAO,CACzB,MAAM2nD,EAAQ3nD,EAAM,OACpB,KAAK,MACH,CACE,KAAM,QACN,MAAO2nD,EAAM,IAAI,SAASxhG,EAAG,CAC3B,OAAOA,IAAM,OAAS,KAAOA,CAC/B,CAAC,EACD,SAAU,EAChB,EACI65C,CACJ,EACE,KAAK,KAAK,QAAU,EACtB,CACA,SAASo9D,GAAUp9D,EAAO,CACxB,KAAK,KAAKA,CAAK,EACf,KAAK,KAAK,QAAU,MACtB,CACA,SAASk9D,GAASl9D,EAAO,CACvB,KAAK,MAAM,CAAE,KAAM,WAAY,SAAU,EAAE,EAAIA,CAAK,CACtD,CACA,SAASkwC,GAAKlwC,EAAO,CACnB,KAAK,KAAKA,CAAK,CACjB,CACA,SAASi9D,GAAUj9D,EAAO,CACxB,KAAK,MAAM,CAAE,KAAM,YAAa,SAAU,EAAE,EAAIA,CAAK,CACvD,CACA,SAASm9D,GAAan9D,EAAO,CAC3B,IAAIh/E,EAAQ,KAAK,OAAM,EACnB,KAAK,KAAK,UACZA,EAAQA,EAAM,QAAQ,aAAckpH,EAAO,GAE7C,MAAMxqG,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EACxCA,EAAK,KACVA,EAAK,MAAQ1e,EACb,KAAK,KAAKg/E,CAAK,CACjB,CACA,SAASkqC,GAAQ9G,EAAIof,EAAI,CACvB,OAAOA,IAAO,IAAMA,EAAKpf,CAC3B,CACA,SAASi6B,GAAmBxpI,EAAS,CACnC,MAAM4hG,EAAW5hG,GAAW,GACtBs9D,EAAUskC,EAAS,iBACnB6nC,EAAkB7nC,EAAS,eAC3BmjC,EAAenjC,EAAS,aACxB8nC,EAASpsE,EAAU,IAAM,IAC/B,MAAO,CACL,OAAQ,CACN,CAAE,UAAW,KAAM,YAAa,WAAW,EAC3C,CAAE,UAAW;AAAA,EAAM,YAAa,WAAW,EAG3C,CAAE,QAAS,GAAM,UAAW,IAAK,MAAO,QAAQ,EAEhD,CAAE,UAAW,IAAK,YAAa,WAAW,EAG1C,CAAE,QAAS,GAAM,UAAW,IAAK,MAAO,GAAG,EAM3C,CAAE,QAAS,GAAM,UAAW,IAAK,MAAO,OAAO,CACrD,EACI,SAAU,CACR,WAAYqsE,EACZ,MAAOC,EACP,UAAWC,EACX,SAAUC,CAChB,CACA,EACE,SAASF,EAAY/9H,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CACzC,OAAOu7B,EAAcC,EAAkBn+H,EAAMc,EAAO6hG,CAAI,EAAG3iG,EAAK,KAAK,CACvE,CACA,SAASi+H,EAAej+H,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAC5C,MAAMk3B,EAAMuE,EAAqBp+H,EAAMc,EAAO6hG,CAAI,EAC5CrhH,EAAQ48I,EAAc,CAACrE,CAAG,CAAC,EACjC,OAAOv4I,EAAM,MAAM,EAAGA,EAAM,QAAQ;AAAA,CAAI,CAAC,CAC3C,CACA,SAAS08I,EAAgBh+H,EAAMm7C,EAAGr6C,EAAO6hG,EAAM,CAC7C,MAAMq1B,EAAQl3H,EAAM,MAAM,WAAW,EAC/Bm3H,EAAUn3H,EAAM,MAAM,UAAU,EAChCxf,EAAQwf,EAAM,kBAAkBd,EAAM,CAC1C,GAAG2iG,EACH,OAAQk7B,EACR,MAAOA,CACb,CAAK,EACD,OAAA5F,EAAO,EACPD,EAAK,EACE12I,CACT,CACA,SAAS48I,EAAcG,EAAQpW,EAAO,CACpC,OAAOgR,GAAcoF,EAAQ,CAC3B,MAAApW,EAEA,gBAAA2V,EAEA,QAAAnsE,EAEA,aAAAynE,CACN,CAAK,CACH,CACA,SAASiF,EAAkBn+H,EAAMc,EAAO6hG,EAAM,CAC5C,MAAMpjG,EAAWS,EAAK,SACtB,IAAIhb,EAAQ,GACZ,MAAM+H,EAAS,GACTkrI,EAAUn3H,EAAM,MAAM,OAAO,EACnC,KAAO,EAAE9b,EAAQua,EAAS,QACxBxS,EAAO/H,CAAK,EAAIo5I,EAAqB7+H,EAASva,CAAK,EAAG8b,EAAO6hG,CAAI,EAEnE,OAAAs1B,EAAO,EACAlrI,CACT,CACA,SAASqxI,EAAqBp+H,EAAMc,EAAO6hG,EAAM,CAC/C,MAAMpjG,EAAWS,EAAK,SACtB,IAAIhb,EAAQ,GACZ,MAAM+H,EAAS,GACTkrI,EAAUn3H,EAAM,MAAM,UAAU,EACtC,KAAO,EAAE9b,EAAQua,EAAS,QACxBxS,EAAO/H,CAAK,EAAIg5I,EAAgBz+H,EAASva,CAAK,EAAGgb,EAAMc,EAAO6hG,CAAI,EAEpE,OAAAs1B,EAAO,EACAlrI,CACT,CACA,SAAS+wI,EAAoB99H,EAAM6T,EAAQ/S,EAAO,CAChD,IAAIxf,EAAQwoI,GAAO,WAAW9pH,EAAM6T,EAAQ/S,CAAK,EACjD,OAAIA,EAAM,MAAM,SAAS,WAAW,IAClCxf,EAAQA,EAAM,QAAQ,MAAO,MAAM,GAE9BA,CACT,CACF,CACA,SAASg9I,IAA8B,CACrC,MAAO,CACL,KAAM,CACJ,0BAA2BC,GAC3B,4BAA6BA,GAC7B,UAAWC,EACjB,CACA,CACA,CACA,SAASC,IAA4B,CACnC,MAAO,CACL,OAAQ,CAAC,CAAE,QAAS,GAAM,UAAW,IAAK,MAAO,QAAS,EAC1D,SAAU,CAAE,SAAUC,EAAwB,CAClD,CACA,CACA,SAASH,GAAUj+D,EAAO,CACxB,MAAMtgE,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EACxCA,EAAK,KACVA,EAAK,QAAUsgE,EAAM,OAAS,2BAChC,CACA,SAASk+D,GAA8Bl+D,EAAO,CAC5C,MAAMzsD,EAAS,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC/C,GAAIA,GAAUA,EAAO,OAAS,YAAc,OAAOA,EAAO,SAAY,UAAW,CAC/E,MAAM7T,EAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EACxCA,EAAK,KACV,MAAMpX,EAAOoX,EAAK,SAAS,CAAC,EAC5B,GAAIpX,GAAQA,EAAK,OAAS,OAAQ,CAChC,MAAMujE,EAAWt4C,EAAO,SACxB,IAAI7uB,EAAQ,GACR25I,EACJ,KAAO,EAAE35I,EAAQmnE,EAAS,QAAQ,CAChC,MAAMyyE,EAAUzyE,EAASnnE,CAAK,EAC9B,GAAI45I,EAAQ,OAAS,YAAa,CAChCD,EAAkBC,EAClB,KACF,CACF,CACID,IAAoB3+H,IACtBpX,EAAK,MAAQA,EAAK,MAAM,MAAM,CAAC,EAC3BA,EAAK,MAAM,SAAW,EACxBoX,EAAK,SAAS,MAAK,EACVA,EAAK,UAAYpX,EAAK,UAAY,OAAOA,EAAK,SAAS,MAAM,QAAW,WACjFA,EAAK,SAAS,MAAM,SACpBA,EAAK,SAAS,MAAM,SACpBoX,EAAK,SAAS,MAAQ,OAAO,OAAO,GAAIpX,EAAK,SAAS,KAAK,GAGjE,CACF,CACA,KAAK,KAAK03E,CAAK,CACjB,CACA,SAASo+D,GAAyB1+H,EAAM6T,EAAQ/S,EAAO6hG,EAAM,CAC3D,MAAM/5G,EAAOoX,EAAK,SAAS,CAAC,EACtB6+H,EAAY,OAAO7+H,EAAK,SAAY,WAAapX,GAAQA,EAAK,OAAS,YACvEk2I,EAAW,KAAO9+H,EAAK,QAAU,IAAM,KAAO,KAC9C+3H,EAAUj3H,EAAM,cAAc6hG,CAAI,EACpCk8B,GACF9G,EAAQ,KAAK+G,CAAQ,EAEvB,IAAIx9I,EAAQwoI,GAAO,SAAS9pH,EAAM6T,EAAQ/S,EAAO,CAC/C,GAAG6hG,EACH,GAAGo1B,EAAQ,QAAO,CACtB,CAAG,EACD,OAAI8G,IACFv9I,EAAQA,EAAM,QAAQ,kCAAmC6rD,CAAK,GAEzD7rD,EACP,SAAS6rD,EAAMu2D,EAAI,CACjB,OAAOA,EAAKo7B,CACd,CACF,CACA,SAASC,IAAkB,CACzB,MAAO,CACL/I,GAA8B,EAC9BkC,GAAuB,EACvBU,GAA4B,EAC5ByE,GAAoB,EACpBiB,GAA2B,CAC/B,CACA,CACA,SAASU,GAAc7qI,EAAS,CAC9B,MAAO,CACL,WAAY,CACVqiI,GAA4B,EAC5B2B,GAAsBhkI,CAAO,EAC7B4kI,GAA0B,EAC1B4E,GAAmBxpI,CAAO,EAC1BsqI,GAAyB,CAC/B,CACA,CACA,CACA,SAAStzB,GAAOyqB,EAAOt+H,EAAOjX,EAAQ+qH,EAAO,CAC3C,MAAM7zG,EAAMq+H,EAAM,OAClB,IAAIvqB,EAAa,EACb1M,EAOJ,GANIrnG,EAAQ,EACVA,EAAQ,CAACA,EAAQC,EAAM,EAAIA,EAAMD,EAEjCA,EAAQA,EAAQC,EAAMA,EAAMD,EAE9BjX,EAASA,EAAS,EAAIA,EAAS,EAC3B+qH,EAAM,OAAS,IACjBzM,EAAa,MAAM,KAAKyM,CAAK,EAC7BzM,EAAW,QAAQrnG,EAAOjX,CAAM,EAChCu1I,EAAM,OAAO,GAAGj3B,CAAU,WAEtBt+G,GAAQu1I,EAAM,OAAOt+H,EAAOjX,CAAM,EAC/BgrH,EAAaD,EAAM,QACxBzM,EAAayM,EAAM,MAAMC,EAAYA,EAAa,GAAG,EACrD1M,EAAW,QAAQrnG,EAAO,CAAC,EAC3Bs+H,EAAM,OAAO,GAAGj3B,CAAU,EAC1B0M,GAAc,IACd/zG,GAAS,GAGf,CACA,MAAM7W,GAAiB,GAAG,eAC1B,SAAS8qH,GAAkBC,EAAY,CACrC,MAAMjZ,EAAM,GACZ,IAAIvtG,EAAQ,GACZ,KAAO,EAAEA,EAAQwmH,EAAW,QAC1BC,GAAgBlZ,EAAKiZ,EAAWxmH,CAAK,CAAC,EAExC,OAAOutG,CACT,CACA,SAASkZ,GAAgBlZ,EAAKmZ,EAAW,CACvC,IAAI1xG,EACJ,IAAKA,KAAQ0xG,EAAW,CAEtB,MAAMC,GADQlrH,GAAe,KAAK8xG,EAAKv4F,CAAI,EAAIu4F,EAAIv4F,CAAI,EAAI,UACpCu4F,EAAIv4F,CAAI,EAAI,IAC7B4xG,EAAQF,EAAU1xG,CAAI,EAC5B,IAAIy7H,EACJ,GAAI7pB,EACF,IAAK6pB,KAAS7pB,EAAO,CACdnrH,GAAe,KAAKkrH,EAAM8pB,CAAK,IAAG9pB,EAAK8pB,CAAK,EAAI,IACrD,MAAMn0I,EAAQsqH,EAAM6pB,CAAK,EACzB5pB,GAEEF,EAAK8pB,CAAK,EACV,MAAM,QAAQn0I,CAAK,EAAIA,EAAQA,EAAQ,CAACA,CAAK,EAAI,EAC3D,CACM,CAEJ,CACF,CACA,SAASuqH,GAAW1lG,EAAUyvH,EAAO,CACnC,IAAI5wI,EAAQ,GACZ,MAAM09B,EAAS,GACf,KAAO,EAAE19B,EAAQ4wI,EAAM,SACpBA,EAAM5wI,CAAK,EAAE,MAAQ,QAAUmhB,EAAWuc,GAAQ,KAAKkzG,EAAM5wI,CAAK,CAAC,EAEtEmmH,GAAOhlG,EAAU,EAAG,EAAGuc,CAAM,CAC/B,CACA,MAAMu8G,GAAY,CAChB,SAAUC,GACV,QAAS,EACX,EACM35C,GAAS,CACb,SAAU45C,GACV,QAAS,EACX,EACMrjI,GAAO,CACX,SAAUsjI,GACV,QAAS,EACX,EACMC,GAAQ,CACZ,SAAUC,GACV,QAAS,EACX,EACMC,GAAsB,CAC1B,SAAUC,GACV,QAAS,EACX,EACMC,GAAc,CAClB,KAAM,cACN,SAAUC,GACV,SAAUC,EACZ,EACMC,GAAmB,CACvB,KAAM,mBACN,SAAUC,GACV,SAAUC,EACZ,EACMC,GAAgB,CACpB,KAAM,gBACN,SAAUC,GACV,SAAUC,EACZ,EACM//G,GAAO,GACb,SAASggH,IAAqB,CAC5B,MAAO,CACL,KAAAhgH,EACJ,CACA,CACA,IAAI6L,GAAO,GACX,KAAOA,GAAO,KACZ7L,GAAK6L,EAAI,EAAIg0G,GACbh0G,KACIA,KAAS,GAAIA,GAAO,GACfA,KAAS,KAAIA,GAAO,IAE/B7L,GAAK,EAAE,EAAI6/G,GACX7/G,GAAK,EAAE,EAAI6/G,GACX7/G,GAAK,EAAE,EAAI6/G,GACX7/G,GAAK,EAAE,EAAI6/G,GACX7/G,GAAK,EAAE,EAAI,CAAC6/G,GAAeH,EAAgB,EAC3C1/G,GAAK,GAAG,EAAI,CAAC6/G,GAAeH,EAAgB,EAC5C1/G,GAAK,EAAE,EAAI,CAAC6/G,GAAeN,EAAW,EACtCv/G,GAAK,GAAG,EAAI,CAAC6/G,GAAeN,EAAW,EACvC,SAASO,GAAsBr5I,EAASw5I,EAAKtxB,EAAK,CAChD,MAAMliH,EAAO,KACb,IAAIyzI,EACA31H,EACJ,OAAOnT,EACP,SAASA,EAAMm+H,EAAO,CACpB,MAAI,CAAC4K,GAAS5K,CAAK,GAAK,CAACwK,GAAc,KAAKtzI,EAAMA,EAAK,QAAQ,GAAK2zI,GAAmB3zI,EAAK,MAAM,EACzFkiH,EAAI4mB,CAAK,GAElB9uI,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,MAAM,sBAAsB,EAC7BowI,EAAMtB,CAAK,EACpB,CACA,SAASsB,EAAMtB,EAAO,CACpB,OAAI4K,GAAS5K,CAAK,GAChB9uI,EAAQ,QAAQ8uI,CAAK,EACdsB,GAELtB,IAAU,IACZ9uI,EAAQ,QAAQ8uI,CAAK,EACd8K,GAEF1xB,EAAI4mB,CAAK,CAClB,CACA,SAAS8K,EAAY9K,EAAO,CAC1B,OAAIA,IAAU,GACL9uI,EAAQ,MAAM44I,GAAqBiB,EAAkBC,CAAc,EAAEhL,CAAK,EAE/EA,IAAU,IAAMA,IAAU,IAAMtpB,GAAkBspB,CAAK,GACzDhrH,EAAO,GACP9jB,EAAQ,QAAQ8uI,CAAK,EACd8K,GAEFC,EAAiB/K,CAAK,CAC/B,CACA,SAASgL,EAAehL,EAAO,CAC7B,OAAA9uI,EAAQ,QAAQ8uI,CAAK,EACrB2K,EAAM,GACCG,CACT,CACA,SAASC,EAAiB/K,EAAO,CAC/B,OAAIhrH,GAAQ21H,GAAOl0B,GAAWv/G,EAAK,QAAQ,GACzChG,EAAQ,KAAK,sBAAsB,EACnCA,EAAQ,KAAK,iBAAiB,EACvBw5I,EAAI1K,CAAK,GAEX5mB,EAAI4mB,CAAK,CAClB,CACF,CACA,SAASiK,GAAoB/4I,EAASw5I,EAAKtxB,EAAK,CAC9C,MAAMliH,EAAO,KACb,OAAO+zI,EACP,SAASA,EAASjL,EAAO,CACvB,OAAIA,IAAU,IAAMA,IAAU,KAAO,CAACkK,GAAY,KAAKhzI,EAAMA,EAAK,QAAQ,GAAK2zI,GAAmB3zI,EAAK,MAAM,EACpGkiH,EAAI4mB,CAAK,GAElB9uI,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,MAAM,oBAAoB,EAC3BA,EAAQ,MAAMs4I,GAAWt4I,EAAQ,QAAQ4+F,GAAQ5+F,EAAQ,QAAQmV,GAAM6kI,CAAQ,EAAG9xB,CAAG,EAAGA,CAAG,EAAE4mB,CAAK,EAC3G,CACA,SAASkL,EAASlL,EAAO,CACvB,OAAA9uI,EAAQ,KAAK,oBAAoB,EACjCA,EAAQ,KAAK,iBAAiB,EACvBw5I,EAAI1K,CAAK,CAClB,CACF,CACA,SAASoK,GAAyBl5I,EAASw5I,EAAKtxB,EAAK,CACnD,MAAMliH,EAAO,KACb,IAAI4+B,EAAS,GACT7mC,EAAO,GACX,OAAOk8I,EACP,SAASA,EAAcnL,EAAO,CAC5B,OAAKA,IAAU,IAAMA,IAAU,MAAQqK,GAAiB,KAAKnzI,EAAMA,EAAK,QAAQ,GAAK,CAAC2zI,GAAmB3zI,EAAK,MAAM,GAClHhG,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,MAAM,qBAAqB,EACnC4kC,GAAU,OAAO,cAAckqG,CAAK,EACpC9uI,EAAQ,QAAQ8uI,CAAK,EACdoL,GAEFhyB,EAAI4mB,CAAK,CAClB,CACA,SAASoL,EAAqBpL,EAAO,CACnC,GAAIvpB,GAAWupB,CAAK,GAAKlqG,EAAO,OAAS,EACvC,OAAAA,GAAU,OAAO,cAAckqG,CAAK,EACpC9uI,EAAQ,QAAQ8uI,CAAK,EACdoL,EAET,GAAIpL,IAAU,GAAI,CAChB,MAAMnsC,EAAW/9D,EAAO,YAAW,EACnC,GAAI+9D,IAAa,QAAUA,IAAa,QACtC,OAAA3iG,EAAQ,QAAQ8uI,CAAK,EACdqL,CAEX,CACA,OAAOjyB,EAAI4mB,CAAK,CAClB,CACA,SAASqL,EAAsBrL,EAAO,CACpC,OAAIA,IAAU,IACZ9uI,EAAQ,QAAQ8uI,CAAK,EACjB/wI,EACKq8I,GAETr8I,EAAO,GACAo8I,IAEFjyB,EAAI4mB,CAAK,CAClB,CACA,SAASsL,EAActL,EAAO,CAC5B,OAAOA,IAAU,MAAQppB,GAAaopB,CAAK,GAAK/oB,GAA0B+oB,CAAK,GAAK5oB,GAAkB4oB,CAAK,GAAK7oB,GAAmB6oB,CAAK,EAAI5mB,EAAI4mB,CAAK,EAAI9uI,EAAQ,QAAQ4+F,GAAQ5+F,EAAQ,QAAQmV,GAAMklI,CAAa,EAAGnyB,CAAG,EAAE4mB,CAAK,CACnO,CACA,SAASuL,EAAcvL,EAAO,CAC5B,OAAA9uI,EAAQ,KAAK,qBAAqB,EAClCA,EAAQ,KAAK,iBAAiB,EACvBw5I,EAAI1K,CAAK,CAClB,CACF,CACA,SAASyJ,GAAkBv4I,EAASw5I,EAAKtxB,EAAK,CAC5C,IAAI5/E,EAAO,EACX,OAAOgyG,EACP,SAASA,EAAgBxL,EAAO,CAC9B,OAAKA,IAAU,IAAMA,IAAU,MAAQxmG,EAAO,GAC5CA,IACAtoC,EAAQ,QAAQ8uI,CAAK,EACdwL,GAELxL,IAAU,IAAMxmG,IAAS,GAC3BtoC,EAAQ,QAAQ8uI,CAAK,EACdyL,GAEFryB,EAAI4mB,CAAK,CAClB,CACA,SAASyL,EAAezL,EAAO,CAC7B,OAAOA,IAAU,KAAO5mB,EAAI4mB,CAAK,EAAI0K,EAAI1K,CAAK,CAChD,CACF,CACA,SAAS0J,GAAex4I,EAASw5I,EAAKtxB,EAAK,CACzC,IAAIsyB,EACAC,EACA18I,EACJ,OAAO28I,EACP,SAASA,EAAa5L,EAAO,CAC3B,OAAIA,IAAU,IAAMA,IAAU,GACrB9uI,EAAQ,MAAM04I,GAAOiC,EAAaC,CAAmB,EAAE9L,CAAK,EAEjEA,IAAU,MAAQ/oB,GAA0B+oB,CAAK,GAAK5oB,GAAkB4oB,CAAK,GAAKA,IAAU,IAAM7oB,GAAmB6oB,CAAK,EACrH6L,EAAY7L,CAAK,GAE1B/wI,EAAO,GACPiC,EAAQ,QAAQ8uI,CAAK,EACd4L,EACT,CACA,SAASE,EAAoB9L,EAAO,CAClC,OAAIA,IAAU,GACZ0L,EAA0B,IAE1BC,EAA8BD,EAC9BA,EAA0B,QAE5Bx6I,EAAQ,QAAQ8uI,CAAK,EACd4L,CACT,CACA,SAASC,EAAY7L,EAAO,CAC1B,OAAI2L,GAA+BD,GAA2B,CAACz8I,EACtDmqH,EAAI4mB,CAAK,EAEX0K,EAAI1K,CAAK,CAClB,CACF,CACA,SAAS2J,GAAaz4I,EAASw5I,EAAK,CAClC,IAAI7uB,EAAW,EACXkwB,EAAY,EAChB,OAAOC,EACP,SAASA,EAAWhM,EAAO,CACzB,OAAIA,IAAU,IACZnkB,IACA3qH,EAAQ,QAAQ8uI,CAAK,EACdgM,GAELhM,IAAU,IAAM+L,EAAYlwB,EACvBowB,EAAkBjM,CAAK,EAE5BA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IACrO9uI,EAAQ,MAAM04I,GAAOc,EAAKuB,CAAiB,EAAEjM,CAAK,EAEvDA,IAAU,MAAQ/oB,GAA0B+oB,CAAK,GAAK5oB,GAAkB4oB,CAAK,EACxE0K,EAAI1K,CAAK,GAElB9uI,EAAQ,QAAQ8uI,CAAK,EACdgM,EACT,CACA,SAASC,EAAkBjM,EAAO,CAChC,OAAIA,IAAU,IACZ+L,IAEF76I,EAAQ,QAAQ8uI,CAAK,EACdgM,CACT,CACF,CACA,SAASnC,GAAc34I,EAASw5I,EAAKtxB,EAAK,CACxC,OAAOooB,EACP,SAASA,EAAOxB,EAAO,CACrB,OAAIA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,KAC5L9uI,EAAQ,QAAQ8uI,CAAK,EACdwB,GAELxB,IAAU,IACZ9uI,EAAQ,QAAQ8uI,CAAK,EACdkM,GAELlM,IAAU,IACZ9uI,EAAQ,QAAQ8uI,CAAK,EACdmM,GAIPnM,IAAU,IACVA,IAAU,MAAQ/oB,GAA0B+oB,CAAK,GAAK5oB,GAAkB4oB,CAAK,EAEtE0K,EAAI1K,CAAK,EAEX5mB,EAAI4mB,CAAK,CAClB,CACA,SAASmM,EAAkBnM,EAAO,CAChC,OAAIA,IAAU,MAAQA,IAAU,IAAMA,IAAU,IAAM/oB,GAA0B+oB,CAAK,GAAK5oB,GAAkB4oB,CAAK,EACxG0K,EAAI1K,CAAK,EAEXwB,EAAOxB,CAAK,CACrB,CACA,SAASkM,EAA6BlM,EAAO,CAC3C,OAAOvpB,GAAWupB,CAAK,EAAIoM,EAA8BpM,CAAK,EAAI5mB,EAAI4mB,CAAK,CAC7E,CACA,SAASoM,EAA8BpM,EAAO,CAC5C,OAAIA,IAAU,IACZ9uI,EAAQ,QAAQ8uI,CAAK,EACdwB,GAEL/qB,GAAWupB,CAAK,GAClB9uI,EAAQ,QAAQ8uI,CAAK,EACdoM,GAEFhzB,EAAI4mB,CAAK,CAClB,CACF,CACA,SAAS+J,GAA4B74I,EAASw5I,EAAKtxB,EAAK,CACtD,OAAOv3G,EACP,SAASA,EAAMm+H,EAAO,CACpB,OAAA9uI,EAAQ,QAAQ8uI,CAAK,EACdr8F,CACT,CACA,SAASA,EAAMq8F,EAAO,CACpB,OAAOtpB,GAAkBspB,CAAK,EAAI5mB,EAAI4mB,CAAK,EAAI0K,EAAI1K,CAAK,CAC1D,CACF,CACA,SAASkK,GAAYlK,EAAO,CAC1B,OAAOA,IAAU,MAAQA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,KAAO/oB,GAA0B+oB,CAAK,CAC3J,CACA,SAASqK,GAAiBrK,EAAO,CAC/B,MAAO,CAACvpB,GAAWupB,CAAK,CAC1B,CACA,SAASwK,GAAcxK,EAAO,CAC5B,MAAO,EAAEA,IAAU,IAAM4K,GAAS5K,CAAK,EACzC,CACA,SAAS4K,GAAS5K,EAAO,CACvB,OAAOA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAAMtpB,GAAkBspB,CAAK,CAChG,CACA,SAAS6K,GAAmBtxB,EAAQ,CAClC,IAAIhqH,EAAQgqH,EAAO,OACfjiH,EAAS,GACb,KAAO/H,KAAS,CACd,MAAMs7E,EAAQ0uC,EAAOhqH,CAAK,EAAE,CAAC,EAC7B,IAAKs7E,EAAM,OAAS,aAAeA,EAAM,OAAS,eAAiB,CAACA,EAAM,UAAW,CACnFvzE,EAAS,GACT,KACF,CACA,GAAIuzE,EAAM,8BAA+B,CACvCvzE,EAAS,GACT,KACF,CACF,CACA,OAAIiiH,EAAO,OAAS,GAAK,CAACjiH,IACxBiiH,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAAE,8BAAgC,IAExDjiH,CACT,CACA,SAASgiH,GAAW+yB,EAAa9yB,EAAQr/F,EAAS,CAChD,MAAMzL,EAAS,GACf,IAAIlf,EAAQ,GACZ,KAAO,EAAEA,EAAQ88I,EAAY,QAAQ,CACnC,MAAMz5H,EAAUy5H,EAAY98I,CAAK,EAAE,WAC/BqjB,GAAW,CAACnE,EAAO,SAASmE,CAAO,IACrC2mG,EAAS3mG,EAAQ2mG,EAAQr/F,CAAO,EAChCzL,EAAO,KAAKmE,CAAO,EAEvB,CACA,OAAO2mG,CACT,CACA,SAAS/B,GAAatmH,EAASw5I,EAAK31I,EAAMomC,EAAK,CAC7C,MAAMsD,EAAQtD,EAAMA,EAAM,EAAI,OAAO,kBACrC,IAAI3B,EAAO,EACX,OAAO33B,EACP,SAASA,EAAMm+H,EAAO,CACpB,OAAI9oB,GAAc8oB,CAAK,GACrB9uI,EAAQ,MAAM6D,CAAI,EACXg8G,EAAOivB,CAAK,GAEd0K,EAAI1K,CAAK,CAClB,CACA,SAASjvB,EAAOivB,EAAO,CACrB,OAAI9oB,GAAc8oB,CAAK,GAAKxmG,IAASiF,GACnCvtC,EAAQ,QAAQ8uI,CAAK,EACdjvB,IAET7/G,EAAQ,KAAK6D,CAAI,EACV21I,EAAI1K,CAAK,EAClB,CACF,CACA,MAAMrlB,GAAY,CAChB,QAAS,GACT,SAAUC,EACZ,EACA,SAASA,GAAkB1pH,EAASw5I,EAAKtxB,EAAK,CAC5C,OAAOv3G,EACP,SAASA,EAAMm+H,EAAO,CACpB,OAAO9oB,GAAc8oB,CAAK,EAAIxoB,GAAatmH,EAASyyC,EAAO,YAAY,EAAEq8F,CAAK,EAAIr8F,EAAMq8F,CAAK,CAC/F,CACA,SAASr8F,EAAMq8F,EAAO,CACpB,OAAOA,IAAU,MAAQhpB,GAAmBgpB,CAAK,EAAI0K,EAAI1K,CAAK,EAAI5mB,EAAI4mB,CAAK,CAC7E,CACF,CACA,MAAMsM,GAAS,CACb,SAAUtkB,GACV,QAAS,EACX,EACA,SAASukB,IAAc,CACrB,MAAO,CACL,SAAU,CACP,GAAK,CACJ,KAAM,wBACN,SAAUC,GACV,aAAc,CACZ,SAAUC,EACpB,EACQ,KAAMC,EACd,CACA,EACI,KAAM,CACH,GAAK,CACJ,KAAM,kBACN,SAAUC,EAClB,EACO,GAAK,CACJ,KAAM,2BACN,IAAK,QACL,SAAUC,GACV,UAAWC,EACnB,CACA,CACA,CACA,CACA,SAASD,GAAiC17I,EAASw5I,EAAKtxB,EAAK,CAC3D,MAAMliH,EAAO,KACb,IAAI3H,EAAQ2H,EAAK,OAAO,OACxB,MAAM8uH,EAAU9uH,EAAK,OAAO,eAAiBA,EAAK,OAAO,aAAe,IACxE,IAAI6uH,EACJ,KAAOx2H,KAAS,CACd,MAAMs7E,EAAQ3zE,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAClC,GAAIs7E,EAAM,OAAS,aAAc,CAC/Bk7C,EAAal7C,EACb,KACF,CACA,GAAIA,EAAM,OAAS,mBAAqBA,EAAM,OAAS,aAAeA,EAAM,OAAS,SAAWA,EAAM,OAAS,SAAWA,EAAM,OAAS,OACvI,KAEJ,CACA,OAAOhpE,EACP,SAASA,EAAMm+H,EAAO,CACpB,GAAI,CAACja,GAAc,CAACA,EAAW,UAC7B,OAAO3M,EAAI4mB,CAAK,EAElB,MAAMp+H,EAAK00G,GAAoBp/G,EAAK,eAAe,CACjD,MAAO6uH,EAAW,IAClB,IAAK7uH,EAAK,IAAG,CACnB,CAAK,CAAC,EACF,OAAI0K,EAAG,YAAY,CAAC,IAAM,IAAM,CAACokH,EAAQ,SAASpkH,EAAG,MAAM,CAAC,CAAC,EACpDw3G,EAAI4mB,CAAK,GAElB9uI,EAAQ,MAAM,4BAA4B,EAC1CA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,4BAA4B,EAClCw5I,EAAI1K,CAAK,EAClB,CACF,CACA,SAAS6M,GAAkCtzB,EAAQr/F,EAAS,CAC1D,IAAI3qB,EAAQgqH,EAAO,OACnB,KAAOhqH,KACL,GAAIgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,cAAgBgqH,EAAOhqH,CAAK,EAAE,CAAC,IAAM,QAAS,CAC1EgqH,EAAOhqH,CAAK,EAAE,CAAC,EACf,KACF,CAEFgqH,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,KAAO,OAC5BgqH,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,KAAO,6BAC5B,MAAMyP,EAAO,CACX,KAAM,kBACN,MAAO,OAAO,OAAO,GAAIu6G,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,EACnD,IAAK,OAAO,OAAO,GAAIgqH,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAC3D,EACQpwC,EAAS,CACb,KAAM,wBACN,MAAO,OAAO,OAAO,GAAIowC,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,EACjD,IAAK,OAAO,OAAO,GAAIgqH,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CACnD,EACE45E,EAAO,IAAI,SACXA,EAAO,IAAI,SACXA,EAAO,IAAI,eACX,MAAMtvC,EAAS,CACb,KAAM,wBACN,MAAO,OAAO,OAAO,GAAIsvC,EAAO,GAAG,EACnC,IAAK,OAAO,OAAO,GAAIowC,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAAE,KAAK,CAC7D,EACQlvD,EAAQ,CACZ,KAAM,cACN,YAAa,SACb,MAAO,OAAO,OAAO,GAAIxwB,EAAO,KAAK,EACrC,IAAK,OAAO,OAAO,GAAIA,EAAO,GAAG,CACrC,EACQgiB,EAAc,CAElB09D,EAAOhqH,EAAQ,CAAC,EAChBgqH,EAAOhqH,EAAQ,CAAC,EAChB,CAAC,QAASyP,EAAMkb,CAAO,EAEvBq/F,EAAOhqH,EAAQ,CAAC,EAChBgqH,EAAOhqH,EAAQ,CAAC,EAEhB,CAAC,QAAS45E,EAAQjvD,CAAO,EACzB,CAAC,OAAQivD,EAAQjvD,CAAO,EAExB,CAAC,QAAS2f,EAAQ3f,CAAO,EACzB,CAAC,QAASmwC,EAAOnwC,CAAO,EACxB,CAAC,OAAQmwC,EAAOnwC,CAAO,EACvB,CAAC,OAAQ2f,EAAQ3f,CAAO,EAExBq/F,EAAOA,EAAO,OAAS,CAAC,EACxBA,EAAOA,EAAO,OAAS,CAAC,EACxB,CAAC,OAAQv6G,EAAMkb,CAAO,CAC1B,EACE,OAAAq/F,EAAO,OAAOhqH,EAAOgqH,EAAO,OAAShqH,EAAQ,EAAG,GAAGssD,CAAW,EACvD09D,CACT,CACA,SAASozB,GAAwBz7I,EAASw5I,EAAKtxB,EAAK,CAClD,MAAMliH,EAAO,KACP8uH,EAAU9uH,EAAK,OAAO,eAAiBA,EAAK,OAAO,aAAe,IACxE,IAAIsiC,EAAO,EACPxkB,EACJ,OAAOnT,EACP,SAASA,EAAMm+H,EAAO,CACpB,OAAA9uI,EAAQ,MAAM,iBAAiB,EAC/BA,EAAQ,MAAM,4BAA4B,EAC1CA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,4BAA4B,EAClC47I,CACT,CACA,SAASA,EAAU9M,EAAO,CACxB,OAAIA,IAAU,GAAW5mB,EAAI4mB,CAAK,GAClC9uI,EAAQ,MAAM,uBAAuB,EACrCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,uBAAuB,EACpCA,EAAQ,MAAM,uBAAuB,EACrCA,EAAQ,MAAM,aAAa,EAAE,YAAc,SACpC67I,EACT,CACA,SAASA,EAAS/M,EAAO,CACvB,GAEExmG,EAAO,KACPwmG,IAAU,IAAM,CAAChrH,GAEjBgrH,IAAU,MAAQA,IAAU,IAAM/oB,GAA0B+oB,CAAK,EAEjE,OAAO5mB,EAAI4mB,CAAK,EAElB,GAAIA,IAAU,GAAI,CAChB9uI,EAAQ,KAAK,aAAa,EAC1B,MAAM25E,EAAQ35E,EAAQ,KAAK,uBAAuB,EAClD,OAAK80H,EAAQ,SAAS1P,GAAoBp/G,EAAK,eAAe2zE,CAAK,CAAC,CAAC,GAGrE35E,EAAQ,MAAM,4BAA4B,EAC1CA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,4BAA4B,EACzCA,EAAQ,KAAK,iBAAiB,EACvBw5I,GANEtxB,EAAI4mB,CAAK,CAOpB,CACA,OAAK/oB,GAA0B+oB,CAAK,IAClChrH,EAAO,IAETwkB,IACAtoC,EAAQ,QAAQ8uI,CAAK,EACdA,IAAU,GAAKgN,EAAaD,CACrC,CACA,SAASC,EAAWhN,EAAO,CACzB,OAAIA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAC5C9uI,EAAQ,QAAQ8uI,CAAK,EACrBxmG,IACOuzG,GAEFA,EAAS/M,CAAK,CACvB,CACF,CACA,SAASwM,GAAwBt7I,EAASw5I,EAAKtxB,EAAK,CAClD,MAAMliH,EAAO,KACP8uH,EAAU9uH,EAAK,OAAO,eAAiBA,EAAK,OAAO,aAAe,IACxE,IAAIglD,EACA1iB,EAAO,EACPxkB,EACJ,OAAOnT,EACP,SAASA,EAAMm+H,EAAO,CACpB,OAAA9uI,EAAQ,MAAM,uBAAuB,EAAE,WAAa,GACpDA,EAAQ,MAAM,4BAA4B,EAC1CA,EAAQ,MAAM,kCAAkC,EAChDA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,kCAAkC,EACxC+7I,CACT,CACA,SAASA,EAAcjN,EAAO,CAC5B,OAAIA,IAAU,IACZ9uI,EAAQ,MAAM,6BAA6B,EAC3CA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,6BAA6B,EAC1CA,EAAQ,MAAM,kCAAkC,EAChDA,EAAQ,MAAM,aAAa,EAAE,YAAc,SACpC8uH,GAEF5G,EAAI4mB,CAAK,CAClB,CACA,SAAShgB,EAAYggB,EAAO,CAC1B,GAEExmG,EAAO,KACPwmG,IAAU,IAAM,CAAChrH,GAEjBgrH,IAAU,MAAQA,IAAU,IAAM/oB,GAA0B+oB,CAAK,EAEjE,OAAO5mB,EAAI4mB,CAAK,EAElB,GAAIA,IAAU,GAAI,CAChB9uI,EAAQ,KAAK,aAAa,EAC1B,MAAM25E,EAAQ35E,EAAQ,KAAK,kCAAkC,EAC7D,OAAAgrD,EAAao6D,GAAoBp/G,EAAK,eAAe2zE,CAAK,CAAC,EAC3D35E,EAAQ,MAAM,kCAAkC,EAChDA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,kCAAkC,EAC/CA,EAAQ,KAAK,4BAA4B,EAClCsvH,CACT,CACA,OAAKvJ,GAA0B+oB,CAAK,IAClChrH,EAAO,IAETwkB,IACAtoC,EAAQ,QAAQ8uI,CAAK,EACdA,IAAU,GAAK/f,EAAcD,CACtC,CACA,SAASC,EAAY+f,EAAO,CAC1B,OAAIA,IAAU,IAAMA,IAAU,IAAMA,IAAU,IAC5C9uI,EAAQ,QAAQ8uI,CAAK,EACrBxmG,IACOwmF,GAEFA,EAAYggB,CAAK,CAC1B,CACA,SAASxf,EAAWwf,EAAO,CACzB,OAAIA,IAAU,IACZ9uI,EAAQ,MAAM,kBAAkB,EAChCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,kBAAkB,EAC1B80H,EAAQ,SAAS9pE,CAAU,GAC9B8pE,EAAQ,KAAK9pE,CAAU,EAElBs7D,GAAatmH,EAASg8I,EAAiB,iCAAiC,GAE1E9zB,EAAI4mB,CAAK,CAClB,CACA,SAASkN,EAAgBlN,EAAO,CAC9B,OAAO0K,EAAI1K,CAAK,CAClB,CACF,CACA,SAASyM,GAA+Bv7I,EAASw5I,EAAKtxB,EAAK,CACzD,OAAOloH,EAAQ,MAAMypH,GAAW+vB,EAAKx5I,EAAQ,QAAQo7I,GAAQ5B,EAAKtxB,CAAG,CAAC,CACxE,CACA,SAASszB,GAAyBx7I,EAAS,CACzCA,EAAQ,KAAK,uBAAuB,CACtC,CACA,SAAS82H,GAAe92H,EAASw5I,EAAKtxB,EAAK,CACzC,MAAMliH,EAAO,KACb,OAAOsgH,GAAatmH,EAAS4rH,EAAa,8BAA+B,CAAK,EAC9E,SAASA,EAAYkjB,EAAO,CAC1B,MAAM5sI,EAAO8D,EAAK,OAAOA,EAAK,OAAO,OAAS,CAAC,EAC/C,OAAO9D,GAAQA,EAAK,CAAC,EAAE,OAAS,+BAAiCA,EAAK,CAAC,EAAE,eAAeA,EAAK,CAAC,EAAG,EAAI,EAAE,SAAW,EAAIs3I,EAAI1K,CAAK,EAAI5mB,EAAI4mB,CAAK,CAC9I,CACF,CACA,SAASmN,GAAiBzuI,EAAS,CAEjC,IAAI0uI,GADa1uI,GAAW,IACN,YACtB,MAAM6/G,EAAY,CAChB,KAAM,gBACN,SAAU8uB,EACV,WAAYC,CAChB,EACE,OAAIF,GAAW,OACbA,EAAS,IAEJ,CACL,KAAM,CACH,IAAM7uB,CACb,EACI,WAAY,CACV,KAAM,CAACA,CAAS,CACtB,EACI,iBAAkB,CAChB,KAAM,CAAC,GAAG,CAChB,CACA,EACE,SAAS+uB,EAAwB/zB,EAAQr/F,EAAS,CAChD,IAAI3qB,EAAQ,GACZ,KAAO,EAAEA,EAAQgqH,EAAO,QACtB,GAAIA,EAAOhqH,CAAK,EAAE,CAAC,IAAM,SAAWgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,kCAAoCgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAQ,CACzH,IAAIymF,EAAOzmF,EACX,KAAOymF,KACL,GAAIujC,EAAOvjC,CAAI,EAAE,CAAC,IAAM,QAAUujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,OAAS,kCAAoCujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,OAC/GujC,EAAOhqH,CAAK,EAAE,CAAC,EAAE,IAAI,OAASgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,MAAM,SAAWgqH,EAAOvjC,CAAI,EAAE,CAAC,EAAE,IAAI,OAASujC,EAAOvjC,CAAI,EAAE,CAAC,EAAE,MAAM,OAAQ,CACzHujC,EAAOhqH,CAAK,EAAE,CAAC,EAAE,KAAO,wBACxBgqH,EAAOvjC,CAAI,EAAE,CAAC,EAAE,KAAO,wBACvB,MAAMo7C,EAAgB,CACpB,KAAM,gBACN,MAAO,OAAO,OAAO,GAAI7X,EAAOvjC,CAAI,EAAE,CAAC,EAAE,KAAK,EAC9C,IAAK,OAAO,OAAO,GAAIujC,EAAOhqH,CAAK,EAAE,CAAC,EAAE,GAAG,CACzD,EACkBmsD,EAAQ,CACZ,KAAM,oBACN,MAAO,OAAO,OAAO,GAAI69D,EAAOvjC,CAAI,EAAE,CAAC,EAAE,GAAG,EAC5C,IAAK,OAAO,OAAO,GAAIujC,EAAOhqH,CAAK,EAAE,CAAC,EAAE,KAAK,CAC3D,EACkBuqH,EAAa,CAAC,CAAC,QAASsX,EAAel3G,CAAO,EAAG,CAAC,QAASq/F,EAAOvjC,CAAI,EAAE,CAAC,EAAG97D,CAAO,EAAG,CAAC,OAAQq/F,EAAOvjC,CAAI,EAAE,CAAC,EAAG97D,CAAO,EAAG,CAAC,QAASwhC,EAAOxhC,CAAO,CAAC,EACnJ2vG,EAAa3vG,EAAQ,OAAO,WAAW,WAAW,KACpD2vG,GACFnU,GAAOoE,EAAYA,EAAW,OAAQ,EAAGR,GAAWuQ,EAAYtQ,EAAO,MAAMvjC,EAAO,EAAGzmF,CAAK,EAAG2qB,CAAO,CAAC,EAEzGw7F,GAAOoE,EAAYA,EAAW,OAAQ,EAAG,CAAC,CAAC,OAAQp+D,EAAOxhC,CAAO,EAAG,CAAC,QAASq/F,EAAOhqH,CAAK,EAAE,CAAC,EAAG2qB,CAAO,EAAG,CAAC,OAAQq/F,EAAOhqH,CAAK,EAAE,CAAC,EAAG2qB,CAAO,EAAG,CAAC,OAAQk3G,EAAel3G,CAAO,CAAC,CAAC,EAChLw7F,GAAO6D,EAAQvjC,EAAO,EAAGzmF,EAAQymF,EAAO,EAAG8jC,CAAU,EACrDvqH,EAAQymF,EAAO8jC,EAAW,OAAS,EACnC,KACF,CAEJ,CAGF,IADAvqH,EAAQ,GACD,EAAEA,EAAQgqH,EAAO,QAClBA,EAAOhqH,CAAK,EAAE,CAAC,EAAE,OAAS,mCAC5BgqH,EAAOhqH,CAAK,EAAE,CAAC,EAAE,KAAO,QAG5B,OAAOgqH,CACT,CACA,SAAS8zB,EAAsBn8I,EAASw5I,EAAKtxB,EAAK,CAChD,MAAMm0B,EAAY,KAAK,SACjBh0B,EAAS,KAAK,OACpB,IAAI//E,EAAO,EACX,OAAO33B,EACP,SAASA,EAAMm+H,EAAO,CACpB,OAAIuN,IAAc,KAAOh0B,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAAE,OAAS,kBACtDH,EAAI4mB,CAAK,GAElB9uI,EAAQ,MAAM,gCAAgC,EACvCgtH,EAAK8hB,CAAK,EACnB,CACA,SAAS9hB,EAAK8hB,EAAO,CACnB,MAAM/yG,EAASosF,GAAkBk0B,CAAS,EAC1C,GAAIvN,IAAU,IACZ,OAAIxmG,EAAO,EAAU4/E,EAAI4mB,CAAK,GAC9B9uI,EAAQ,QAAQ8uI,CAAK,EACrBxmG,IACO0kF,GAET,GAAI1kF,EAAO,GAAK,CAAC4zG,EAAQ,OAAOh0B,EAAI4mB,CAAK,EACzC,MAAMn1D,EAAQ35E,EAAQ,KAAK,gCAAgC,EACrDyyC,EAAQ01E,GAAkB2mB,CAAK,EACrC,OAAAn1D,EAAM,MAAQ,CAAClnC,GAASA,IAAU,GAAK,EAAQ1W,EAC/C49C,EAAM,OAAS,CAAC59C,GAAUA,IAAW,GAAK,EAAQ0W,EAC3C+mG,EAAI1K,CAAK,CAClB,CACF,CACF,CACA,MAAMwN,EAAQ,CAIZ,aAAc,CACZ,KAAK,IAAM,EACb,CASA,IAAIj+I,EAAO3E,EAAQgvI,EAAK,CACtB6T,GAAkB,KAAMl+I,EAAO3E,EAAQgvI,CAAG,CAC5C,CAmBA,QAAQrgB,EAAQ,CAId,GAHA,KAAK,IAAI,KAAK,SAASxqH,EAAGC,EAAG,CAC3B,OAAOD,EAAE,CAAC,EAAIC,EAAE,CAAC,CACnB,CAAC,EACG,KAAK,IAAI,SAAW,EACtB,OAEF,IAAIO,EAAQ,KAAK,IAAI,OACrB,MAAMm+I,EAAO,GACb,KAAOn+I,EAAQ,GACbA,GAAS,EACTm+I,EAAK,KAAKn0B,EAAO,MAAM,KAAK,IAAIhqH,CAAK,EAAE,CAAC,EAAI,KAAK,IAAIA,CAAK,EAAE,CAAC,CAAC,EAAG,KAAK,IAAIA,CAAK,EAAE,CAAC,CAAC,EACnFgqH,EAAO,OAAS,KAAK,IAAIhqH,CAAK,EAAE,CAAC,EAEnCm+I,EAAK,KAAKn0B,EAAO,OAAO,EACxBA,EAAO,OAAS,EAChB,IAAIqF,EAAQ8uB,EAAK,IAAG,EACpB,KAAO9uB,GAAO,CACZ,UAAW91E,KAAW81E,EACpBrF,EAAO,KAAKzwE,CAAO,EAErB81E,EAAQ8uB,EAAK,IAAG,CAClB,CACA,KAAK,IAAI,OAAS,CACpB,CACF,CACA,SAASD,GAAkBE,EAAS7mE,EAAIl8E,EAAQgvI,EAAK,CACnD,IAAIrqI,EAAQ,EACZ,GAAI,EAAA3E,IAAW,GAAKgvI,EAAI,SAAW,GAGnC,MAAOrqI,EAAQo+I,EAAQ,IAAI,QAAQ,CACjC,GAAIA,EAAQ,IAAIp+I,CAAK,EAAE,CAAC,IAAMu3E,EAAI,CAChC6mE,EAAQ,IAAIp+I,CAAK,EAAE,CAAC,GAAK3E,EACzB+iJ,EAAQ,IAAIp+I,CAAK,EAAE,CAAC,EAAE,KAAK,GAAGqqI,CAAG,EACjC,MACF,CACArqI,GAAS,CACX,CACAo+I,EAAQ,IAAI,KAAK,CAAC7mE,EAAIl8E,EAAQgvI,CAAG,CAAC,EACpC,CACA,SAASgU,GAAcr0B,EAAQhqH,EAAO,CACpC,IAAIs+I,EAAiB,GACrB,MAAMrb,EAAQ,GACd,KAAOjjI,EAAQgqH,EAAO,QAAQ,CAC5B,MAAM59F,EAAQ49F,EAAOhqH,CAAK,EAC1B,GAAIs+I,GACF,GAAIlyH,EAAM,CAAC,IAAM,QACXA,EAAM,CAAC,EAAE,OAAS,gBACpB62G,EAAM,KAAKjZ,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,OAAS,uBAAyB,OAAS,MAAM,UAE1EosB,EAAM,CAAC,EAAE,OAAS,gBAC3B,GAAI49F,EAAOhqH,EAAQ,CAAC,EAAE,CAAC,EAAE,OAAS,uBAAwB,CACxD,MAAMu+I,EAAatb,EAAM,OAAS,EAClCA,EAAMsb,CAAU,EAAItb,EAAMsb,CAAU,IAAM,OAAS,SAAW,OAChE,UACSnyH,EAAM,CAAC,EAAE,OAAS,oBAC3B,WAEOA,EAAM,CAAC,IAAM,SAAWA,EAAM,CAAC,EAAE,OAAS,sBACnDkyH,EAAiB,IAEnBt+I,GAAS,CACX,CACA,OAAOijI,CACT,CACA,SAASub,IAAW,CAClB,MAAO,CACL,KAAM,CACJ,KAAM,CACJ,KAAM,QACN,SAAUC,GACV,WAAYC,EACpB,CACA,CACA,CACA,CACA,SAASD,GAAc98I,EAASw5I,EAAKtxB,EAAK,CACxC,MAAMliH,EAAO,KACb,IAAIsiC,EAAO,EACP00G,EAAQ,EACRj/I,EACJ,OAAO4S,EACP,SAASA,EAAMm+H,EAAO,CACpB,IAAIzwI,EAAQ2H,EAAK,OAAO,OAAS,EACjC,KAAO3H,EAAQ,IAAI,CACjB,MAAMwF,EAAOmC,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,KACnC,GAAIwF,IAAS,cACbA,IAAS,aAAcxF,QAClB,MACP,CACA,MAAM6D,EAAO7D,EAAQ,GAAK2H,EAAK,OAAO3H,CAAK,EAAE,CAAC,EAAE,KAAO,KACjDyD,EAAOI,IAAS,aAAeA,IAAS,WAAa+6I,EAAeC,EAC1E,OAAIp7I,IAASm7I,GAAgBj3I,EAAK,OAAO,KAAKA,EAAK,MAAM,IAAI,EACpDkiH,EAAI4mB,CAAK,EAEXhtI,EAAKgtI,CAAK,CACnB,CACA,SAASoO,EAAcpO,EAAO,CAC5B,OAAA9uI,EAAQ,MAAM,WAAW,EACzBA,EAAQ,MAAM,UAAU,EACjBm9I,EAAarO,CAAK,CAC3B,CACA,SAASqO,EAAarO,EAAO,CAC3B,OAAIA,IAAU,MAGd/wI,EAAO,GACPi/I,GAAS,GACFI,EAAatO,CAAK,CAC3B,CACA,SAASsO,EAAatO,EAAO,CAC3B,OAAIA,IAAU,KACL5mB,EAAI4mB,CAAK,EAEdhpB,GAAmBgpB,CAAK,EACtBkO,EAAQ,GACVA,EAAQ,EACRh3I,EAAK,UAAY,GACjBhG,EAAQ,KAAK,UAAU,EACvBA,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,YAAY,EAClBq9I,GAEFn1B,EAAI4mB,CAAK,EAEd9oB,GAAc8oB,CAAK,EACdxoB,GAAatmH,EAASo9I,EAAc,YAAY,EAAEtO,CAAK,GAEhEkO,GAAS,EACLj/I,IACFA,EAAO,GACPuqC,GAAQ,GAENwmG,IAAU,KACZ9uI,EAAQ,MAAM,kBAAkB,EAChCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,kBAAkB,EAC/BjC,EAAO,GACAq/I,IAETp9I,EAAQ,MAAM,MAAM,EACbs9I,EAAYxO,CAAK,GAC1B,CACA,SAASwO,EAAYxO,EAAO,CAC1B,OAAIA,IAAU,MAAQA,IAAU,KAAO/oB,GAA0B+oB,CAAK,GACpE9uI,EAAQ,KAAK,MAAM,EACZo9I,EAAatO,CAAK,IAE3B9uI,EAAQ,QAAQ8uI,CAAK,EACdA,IAAU,GAAKyO,EAAgBD,EACxC,CACA,SAASC,EAAczO,EAAO,CAC5B,OAAIA,IAAU,IAAMA,IAAU,KAC5B9uI,EAAQ,QAAQ8uI,CAAK,EACdwO,GAEFA,EAAYxO,CAAK,CAC1B,CACA,SAASuO,EAAmBvO,EAAO,CAEjC,OADA9oI,EAAK,UAAY,GACbA,EAAK,OAAO,KAAKA,EAAK,IAAG,EAAG,IAAI,EAC3BkiH,EAAI4mB,CAAK,GAElB9uI,EAAQ,MAAM,mBAAmB,EACjCjC,EAAO,GACHioH,GAAc8oB,CAAK,EACdxoB,GAAatmH,EAASw9I,EAAqB,aAAcx3I,EAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,EAAI,OAAS,CAAC,EAAE8oI,CAAK,EAE3I0O,EAAoB1O,CAAK,EAClC,CACA,SAAS0O,EAAoB1O,EAAO,CAClC,OAAIA,IAAU,IAAMA,IAAU,GACrB2O,EAAyB3O,CAAK,EAEnCA,IAAU,KACZ/wI,EAAO,GACPiC,EAAQ,MAAM,kBAAkB,EAChCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,kBAAkB,EACxB09I,GAEFC,EAAiB7O,CAAK,CAC/B,CACA,SAAS4O,EAAwB5O,EAAO,CACtC,OAAI9oB,GAAc8oB,CAAK,EACdxoB,GAAatmH,EAASy9I,EAA0B,YAAY,EAAE3O,CAAK,EAErE2O,EAAyB3O,CAAK,CACvC,CACA,SAAS2O,EAAyB3O,EAAO,CACvC,OAAIA,IAAU,IACZkO,GAAS,EACTj/I,EAAO,GACPiC,EAAQ,MAAM,sBAAsB,EACpCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,sBAAsB,EAC5B49I,GAEL9O,IAAU,IACZkO,GAAS,EACFY,EAAgC9O,CAAK,GAE1CA,IAAU,MAAQhpB,GAAmBgpB,CAAK,EACrC+O,EAAuB/O,CAAK,EAE9B6O,EAAiB7O,CAAK,CAC/B,CACA,SAAS8O,EAAgC9O,EAAO,CAC9C,OAAIA,IAAU,IACZ9uI,EAAQ,MAAM,sBAAsB,EAC7B89I,EAAoBhP,CAAK,GAE3B6O,EAAiB7O,CAAK,CAC/B,CACA,SAASgP,EAAoBhP,EAAO,CAClC,OAAIA,IAAU,IACZ9uI,EAAQ,QAAQ8uI,CAAK,EACdgP,GAELhP,IAAU,IACZ/wI,EAAO,GACPiC,EAAQ,KAAK,sBAAsB,EACnCA,EAAQ,MAAM,sBAAsB,EACpCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,sBAAsB,EAC5B+9I,IAET/9I,EAAQ,KAAK,sBAAsB,EAC5B+9I,EAAiCjP,CAAK,EAC/C,CACA,SAASiP,EAAiCjP,EAAO,CAC/C,OAAI9oB,GAAc8oB,CAAK,EACdxoB,GAAatmH,EAAS69I,EAAwB,YAAY,EAAE/O,CAAK,EAEnE+O,EAAuB/O,CAAK,CACrC,CACA,SAAS+O,EAAuB/O,EAAO,CACrC,OAAIA,IAAU,IACL0O,EAAoB1O,CAAK,EAE9BA,IAAU,MAAQhpB,GAAmBgpB,CAAK,EACxC,CAAC/wI,GAAQuqC,IAAS00G,EACbW,EAAiB7O,CAAK,GAE/B9uI,EAAQ,KAAK,mBAAmB,EAChCA,EAAQ,KAAK,WAAW,EACjBw5I,EAAI1K,CAAK,GAEX6O,EAAiB7O,CAAK,CAC/B,CACA,SAAS6O,EAAiB7O,EAAO,CAC/B,OAAO5mB,EAAI4mB,CAAK,CAClB,CACA,SAASmO,EAAanO,EAAO,CAC3B,OAAA9uI,EAAQ,MAAM,UAAU,EACjBg+I,EAAalP,CAAK,CAC3B,CACA,SAASkP,EAAalP,EAAO,CAC3B,OAAIA,IAAU,KACZ9uI,EAAQ,MAAM,kBAAkB,EAChCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,kBAAkB,EACxBg+I,GAELlP,IAAU,MAAQhpB,GAAmBgpB,CAAK,GAC5C9uI,EAAQ,KAAK,UAAU,EAChBw5I,EAAI1K,CAAK,GAEd9oB,GAAc8oB,CAAK,EACdxoB,GAAatmH,EAASg+I,EAAc,YAAY,EAAElP,CAAK,GAEhE9uI,EAAQ,MAAM,MAAM,EACbi+I,EAAYnP,CAAK,EAC1B,CACA,SAASmP,EAAYnP,EAAO,CAC1B,OAAIA,IAAU,MAAQA,IAAU,KAAO/oB,GAA0B+oB,CAAK,GACpE9uI,EAAQ,KAAK,MAAM,EACZg+I,EAAalP,CAAK,IAE3B9uI,EAAQ,QAAQ8uI,CAAK,EACdA,IAAU,GAAKoP,EAAgBD,EACxC,CACA,SAASC,EAAcpP,EAAO,CAC5B,OAAIA,IAAU,IAAMA,IAAU,KAC5B9uI,EAAQ,QAAQ8uI,CAAK,EACdmP,GAEFA,EAAYnP,CAAK,CAC1B,CACF,CACA,SAASiO,GAAa10B,EAAQr/F,EAAS,CACrC,IAAI3qB,EAAQ,GACR8/I,EAA0B,GAC1BC,EAAU,EACVC,EAAW,CAAC,EAAG,EAAG,EAAG,CAAC,EACtB5c,EAAO,CAAC,EAAG,EAAG,EAAG,CAAC,EAClB6c,EAAgC,GAChCC,EAAe,EACfC,EACAC,EACAC,EACJ,MAAMvI,EAAO,IAAImG,GACjB,KAAO,EAAEj+I,EAAQgqH,EAAO,QAAQ,CAC9B,MAAM59F,EAAQ49F,EAAOhqH,CAAK,EACpBs7E,EAAQlvD,EAAM,CAAC,EACjBA,EAAM,CAAC,IAAM,QACXkvD,EAAM,OAAS,aACjB2kE,EAAgC,GAC5BC,IAAiB,IACnBI,GAAcxI,EAAMntH,EAASu1H,EAAcC,EAAcC,CAAW,EACpEA,EAAc,OACdF,EAAe,GAEjBC,EAAe,CACb,KAAM,QACN,MAAO,OAAO,OAAO,GAAI7kE,EAAM,KAAK,EAEpC,IAAK,OAAO,OAAO,GAAIA,EAAM,GAAG,CAC1C,EACQw8D,EAAK,IAAI93I,EAAO,EAAG,CAAC,CAAC,QAASmgJ,EAAcx1H,CAAO,CAAC,CAAC,GAC5C2wD,EAAM,OAAS,YAAcA,EAAM,OAAS,qBACrDwkE,EAA0B,GAC1BO,EAAc,OACdL,EAAW,CAAC,EAAG,EAAG,EAAG,CAAC,EACtB5c,EAAO,CAAC,EAAGpjI,EAAQ,EAAG,EAAG,CAAC,EACtBigJ,IACFA,EAAgC,GAChCG,EAAc,CACZ,KAAM,YACN,MAAO,OAAO,OAAO,GAAI9kE,EAAM,KAAK,EAEpC,IAAK,OAAO,OAAO,GAAIA,EAAM,GAAG,CAC5C,EACUw8D,EAAK,IAAI93I,EAAO,EAAG,CAAC,CAAC,QAASogJ,EAAaz1H,CAAO,CAAC,CAAC,GAEtDo1H,EAAUzkE,EAAM,OAAS,oBAAsB,EAAI8kE,EAAc,EAAI,GAC5DL,IAAYzkE,EAAM,OAAS,QAAUA,EAAM,OAAS,wBAA0BA,EAAM,OAAS,yBACtGwkE,EAA0B,GACtB1c,EAAK,CAAC,IAAM,IACV4c,EAAS,CAAC,IAAM,IAClB5c,EAAK,CAAC,EAAIA,EAAK,CAAC,EAChBid,EAAcE,GAAUzI,EAAMntH,EAASq1H,EAAUD,EAAS,OAAQM,CAAW,EAC7EL,EAAW,CAAC,EAAG,EAAG,EAAG,CAAC,GAExB5c,EAAK,CAAC,EAAIpjI,IAEHs7E,EAAM,OAAS,qBACpBwkE,EACFA,EAA0B,IAEtBE,EAAS,CAAC,IAAM,IAClB5c,EAAK,CAAC,EAAIA,EAAK,CAAC,EAChBid,EAAcE,GAAUzI,EAAMntH,EAASq1H,EAAUD,EAAS,OAAQM,CAAW,GAE/EL,EAAW5c,EACXA,EAAO,CAAC4c,EAAS,CAAC,EAAGhgJ,EAAO,EAAG,CAAC,IAG3Bs7E,EAAM,OAAS,aACxB2kE,EAAgC,GAChCC,EAAelgJ,GACNs7E,EAAM,OAAS,YAAcA,EAAM,OAAS,qBACrD4kE,EAAelgJ,EACXggJ,EAAS,CAAC,IAAM,GAClB5c,EAAK,CAAC,EAAIA,EAAK,CAAC,EAChBid,EAAcE,GAAUzI,EAAMntH,EAASq1H,EAAUD,EAAS//I,EAAOqgJ,CAAW,GACnEjd,EAAK,CAAC,IAAM,IACrBid,EAAcE,GAAUzI,EAAMntH,EAASy4G,EAAM2c,EAAS//I,EAAOqgJ,CAAW,GAE1EN,EAAU,GACDA,IAAYzkE,EAAM,OAAS,QAAUA,EAAM,OAAS,wBAA0BA,EAAM,OAAS,0BACtG8nD,EAAK,CAAC,EAAIpjI,EAEd,CAMA,IALIkgJ,IAAiB,GACnBI,GAAcxI,EAAMntH,EAASu1H,EAAcC,EAAcC,CAAW,EAEtEtI,EAAK,QAAQntH,EAAQ,MAAM,EAC3B3qB,EAAQ,GACD,EAAEA,EAAQ2qB,EAAQ,OAAO,QAAQ,CACtC,MAAMyB,EAAQzB,EAAQ,OAAO3qB,CAAK,EAC9BosB,EAAM,CAAC,IAAM,SAAWA,EAAM,CAAC,EAAE,OAAS,UAC5CA,EAAM,CAAC,EAAE,OAASiyH,GAAc1zH,EAAQ,OAAQ3qB,CAAK,EAEzD,CACA,OAAOgqH,CACT,CACA,SAASu2B,GAAUzI,EAAMntH,EAASilB,EAAOmwG,EAASS,EAAQC,EAAc,CACtE,MAAMC,EAAYX,IAAY,EAAI,cAAgBA,IAAY,EAAI,iBAAmB,YAC/EY,EAAY,eACd/wG,EAAM,CAAC,IAAM,IACf6wG,EAAa,IAAM,OAAO,OAAO,GAAIG,GAASj2H,EAAQ,OAAQilB,EAAM,CAAC,CAAC,CAAC,EACvEkoG,EAAK,IAAIloG,EAAM,CAAC,EAAG,EAAG,CAAC,CAAC,OAAQ6wG,EAAc91H,CAAO,CAAC,CAAC,GAEzD,MAAMm0E,EAAM8hD,GAASj2H,EAAQ,OAAQilB,EAAM,CAAC,CAAC,EAQ7C,GAPA6wG,EAAe,CACb,KAAMC,EACN,MAAO,OAAO,OAAO,GAAI5hD,CAAG,EAE5B,IAAK,OAAO,OAAO,GAAIA,CAAG,CAC9B,EACEg5C,EAAK,IAAIloG,EAAM,CAAC,EAAG,EAAG,CAAC,CAAC,QAAS6wG,EAAc91H,CAAO,CAAC,CAAC,EACpDilB,EAAM,CAAC,IAAM,EAAG,CAClB,MAAMixG,EAAeD,GAASj2H,EAAQ,OAAQilB,EAAM,CAAC,CAAC,EAChDkxG,EAAaF,GAASj2H,EAAQ,OAAQilB,EAAM,CAAC,CAAC,EAC9CmxG,EAAa,CACjB,KAAMJ,EACN,MAAO,OAAO,OAAO,GAAIE,CAAY,EACrC,IAAK,OAAO,OAAO,GAAIC,CAAU,CACvC,EAEI,GADAhJ,EAAK,IAAIloG,EAAM,CAAC,EAAG,EAAG,CAAC,CAAC,QAASmxG,EAAYp2H,CAAO,CAAC,CAAC,EAClDo1H,IAAY,EAAG,CACjB,MAAMztI,EAAQqY,EAAQ,OAAOilB,EAAM,CAAC,CAAC,EAC/Br9B,EAAMoY,EAAQ,OAAOilB,EAAM,CAAC,CAAC,EAInC,GAHAt9B,EAAM,CAAC,EAAE,IAAM,OAAO,OAAO,GAAIC,EAAI,CAAC,EAAE,GAAG,EAC3CD,EAAM,CAAC,EAAE,KAAO,YAChBA,EAAM,CAAC,EAAE,YAAc,OACnBs9B,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAI,EAAG,CAC3B,MAAMpwC,EAAIowC,EAAM,CAAC,EAAI,EACfnwC,EAAImwC,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAI,EAChCkoG,EAAK,IAAIt4I,EAAGC,EAAG,EAAE,CACnB,CACF,CACAq4I,EAAK,IAAIloG,EAAM,CAAC,EAAI,EAAG,EAAG,CAAC,CAAC,OAAQmxG,EAAYp2H,CAAO,CAAC,CAAC,CAC3D,CACA,OAAI61H,IAAW,SACbC,EAAa,IAAM,OAAO,OAAO,GAAIG,GAASj2H,EAAQ,OAAQ61H,CAAM,CAAC,EACrE1I,EAAK,IAAI0I,EAAQ,EAAG,CAAC,CAAC,OAAQC,EAAc91H,CAAO,CAAC,CAAC,EACrD81H,EAAe,QAEVA,CACT,CACA,SAASH,GAAcxI,EAAMntH,EAAS3qB,EAAO0wC,EAAOswG,EAAW,CAC7D,MAAMC,EAAQ,GACRC,EAAUN,GAASj2H,EAAQ,OAAQ3qB,CAAK,EAC1CghJ,IACFA,EAAU,IAAM,OAAO,OAAO,GAAIE,CAAO,EACzCD,EAAM,KAAK,CAAC,OAAQD,EAAWr2H,CAAO,CAAC,GAEzC+lB,EAAM,IAAM,OAAO,OAAO,GAAIwwG,CAAO,EACrCD,EAAM,KAAK,CAAC,OAAQvwG,EAAO/lB,CAAO,CAAC,EACnCmtH,EAAK,IAAI93I,EAAQ,EAAG,EAAGihJ,CAAK,CAC9B,CACA,SAASL,GAAS52B,EAAQhqH,EAAO,CAC/B,MAAMosB,EAAQ49F,EAAOhqH,CAAK,EACpBwqE,EAAOp+C,EAAM,CAAC,IAAM,QAAU,QAAU,MAC9C,OAAOA,EAAM,CAAC,EAAEo+C,CAAI,CACtB,CACA,MAAM22E,GAAgB,CACpB,KAAM,gBACN,SAAUC,EACZ,EACA,SAASC,IAAkB,CACzB,MAAO,CACL,KAAM,CACH,GAAKF,EACZ,CACA,CACA,CACA,SAASC,GAAsBz/I,EAASw5I,EAAKtxB,EAAK,CAChD,MAAMliH,EAAO,KACb,OAAO8+E,EACP,SAASA,EAAKgqD,EAAO,CACnB,OAEE9oI,EAAK,WAAa,MAElB,CAACA,EAAK,mCAECkiH,EAAI4mB,CAAK,GAElB9uI,EAAQ,MAAM,eAAe,EAC7BA,EAAQ,MAAM,qBAAqB,EACnCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,qBAAqB,EAC3B+oH,EACT,CACA,SAASA,EAAO+lB,EAAO,CACrB,OAAI/oB,GAA0B+oB,CAAK,GACjC9uI,EAAQ,MAAM,6BAA6B,EAC3CA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,6BAA6B,EACnCukF,GAELuqD,IAAU,IAAMA,IAAU,KAC5B9uI,EAAQ,MAAM,2BAA2B,EACzCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,2BAA2B,EACjCukF,GAEF2jC,EAAI4mB,CAAK,CAClB,CACA,SAASvqD,EAAMuqD,EAAO,CACpB,OAAIA,IAAU,IACZ9uI,EAAQ,MAAM,qBAAqB,EACnCA,EAAQ,QAAQ8uI,CAAK,EACrB9uI,EAAQ,KAAK,qBAAqB,EAClCA,EAAQ,KAAK,eAAe,EACrByyC,GAEFy1E,EAAI4mB,CAAK,CAClB,CACA,SAASr8F,EAAMq8F,EAAO,CACpB,OAAIhpB,GAAmBgpB,CAAK,EACnB0K,EAAI1K,CAAK,EAEd9oB,GAAc8oB,CAAK,EACd9uI,EAAQ,MAAM,CACnB,SAAU2/I,EAClB,EAASnG,EAAKtxB,CAAG,EAAE4mB,CAAK,EAEb5mB,EAAI4mB,CAAK,CAClB,CACF,CACA,SAAS6Q,GAAkB3/I,EAASw5I,EAAKtxB,EAAK,CAC5C,OAAO5B,GAAatmH,EAASyyC,EAAO,YAAY,EAChD,SAASA,EAAMq8F,EAAO,CACpB,OAAOA,IAAU,KAAO5mB,EAAI4mB,CAAK,EAAI0K,EAAI1K,CAAK,CAChD,CACF,CACA,SAAS8Q,GAAIpyI,EAAS,CACpB,OAAOo3G,GAAkB,CACvB20B,GAAkB,EAClB8B,GAAW,EACXY,GAAiBzuI,CAAO,EACxBqvI,GAAQ,EACR6C,GAAe,CACnB,CAAG,CACH,CACA,MAAM/pC,GAAe,GACrB,SAASkqC,GAAUryI,EAAS,CAC1B,MAAMxH,EAEJ,KAEIopG,EAAW5hG,GAAWmoG,GACtB7xF,EAAO9d,EAAK,KAAI,EAChB85I,EAAsBh8H,EAAK,sBAAwBA,EAAK,oBAAsB,IAC9Ei8H,EAAyBj8H,EAAK,yBAA2BA,EAAK,uBAAyB,IACvFk8H,EAAuBl8H,EAAK,uBAAyBA,EAAK,qBAAuB,IACvFg8H,EAAoB,KAAKF,GAAIxwC,CAAQ,CAAC,EACtC2wC,EAAuB,KAAK3H,IAAiB,EAC7C4H,EAAqB,KAAK3H,GAAcjpC,CAAQ,CAAC,CACnD,CACA,MAAMvxB,GAA8B7/D,GAAgB,CAClD,OAAQ,uBACR,MAAO,CACL,UAAW,EACf,EACE,MAAM4wC,EAAS,CACb,KAAM,CAAE,KAAA7lB,EAAM,KAAAu3C,EAAM,QAAAmuD,CAAO,EAAKF,GAAQ,IAAM,SAAS,eAAe3/E,EAAQ,SAAS,EAAE,WAAW,EACpG,MAAO,CAACY,EAAMC,KACL5sC,EAAS,EAAIC,GAAY6sC,GAAU,CACxC,QAAS,WACT,KAAM,QACN,aAAcxkD,EAAMsjI,CAAO,EAC3B,MAAOtjI,EAAMsjI,CAAO,EACpB,QAAStjI,EAAM49B,CAAI,CAC3B,EAAS,CACD,KAAM92B,GAAQ,IAAM,CAClB8Q,GAAYmuC,GAAkB,CAC5B,KAAM/lD,EAAMm1E,CAAI,EAChB,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,CAC9B,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,aAAc,QAAS,SAAS,CAAC,EAE5C,CACF,CAAC,EAKD,SAAS2/D,GAAa5mI,EAAM,CAC1B,OAAOA,EAAK,OAAS,MACvB,CACA,MAAM6mI,GAAwB,SAASC,EAAK,CAC1CjnC,GAAainC,EAAKF,GAAc,CAAC5mI,EAAM4pE,IAAc,CACnD,MAAM/1D,EAAS+1D,EAAU,GAAG,EAAE,EACxB5kF,EAAQ6uB,EAAO,SAAS,QAAQ7T,CAAI,EACpCu/C,EAAev/C,EAAK,MAAM,MAAM,uBAAuB,EAAE,IAAKwqC,GAAU,CAC5E,MAAM2B,EAAU3B,EAAM,MAAM,wBAAwB,EACpD,GAAI,CAAC2B,EACH,OAAO1xB,GAAE,OAAQ+vB,CAAK,EAExB,KAAM,EAAGziC,CAAS,EAAIokC,EACtB,OAAO1xB,GAAE,UAAW,CAClB,QAAS,IAAI1S,CAAS,GACtB,SAAU,EAClB,CAAO,CACH,CAAC,EACD8L,EAAO,SAAS,OAAO7uB,EAAO,EAAG,GAAGu6D,CAAY,CAClD,CAAC,CACH,EACMwnF,GAAoB,IAAMF,GAKhC,SAASG,GAAWhnI,EAAM,CACxB,MAAO,CAAC,OAAQ,YAAY,EAAE,SAASA,EAAK,IAAI,CAClD,CACA,MAAMinI,GAAkB,UAAW,CACjC,OAAO,SAASnnC,EAAM,CACpBD,GAAaC,EAAMknC,GAAY,CAAChnI,EAAM4pE,IAAc,CAClD,MAAM/1D,EAAS+1D,EAAU,GAAG,EAAE,EACxB5kF,EAAQ6uB,EAAO,SAAS,QAAQ7T,CAAI,EAC1C,OAAA6T,EAAO,SAAS,OAAO7uB,EAAO,EAAG,CAC/B,GAAGgb,EACH,MAAO,EACf,CAAO,EACM,CAAC4/F,GAAM56G,EAAQ,CAAC,CACzB,CAAC,CACH,CACF,EAKA,SAASkiJ,GAAWlnI,EAAM,CACxB,MAAO,CAAC,OAAQ,OAAQ,YAAY,EAAE,SAASA,EAAK,IAAI,CAC1D,CACA,MAAMmnI,GAAiB,UAAW,CAChC,OAAO,SAASrnC,EAAM,CACpBD,GAAaC,EAAMonC,GAAY,CAAClnI,EAAM4pE,IAAc,CAClD,MAAM/1D,EAAS+1D,EAAU,GAAG,EAAE,EACxB5kF,EAAQ6uB,EAAO,SAAS,QAAQ7T,CAAI,EAC1C,OAAA6T,EAAO,SAAS,OAAO7uB,EAAO,EAAG,CAC/B,GAAGgb,EACH,MAAOA,EAAK,MAAM,QAAQ,UAAW,GAAG,EAAE,QAAQ,UAAW,GAAG,CACxE,CAAO,EACM,CAAC4/F,GAAM56G,EAAQ,CAAC,CACzB,CAAC,CACH,CACF,EACMoiJ,GAAiB,CAAC,OAAQ,QAAS,SAAU,KAAK,EAClDC,GAAkB51I,GAAI,IAAI,EAChC,eAAe61I,IAA+B,CAC5C,MAAMtnE,EAAS,MAAKunE,GAAA,IAAC,OAAO,4BAAkB,sBAC9CF,GAAgB,MAAQrnE,EAAO,OACjC,CACA,MAAM1qB,GAAY,CAChB,KAAM,aACN,WAAY,CACV,gBAAAigF,EACJ,EAEE,MAAO,CAIL,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,OACN,QAAS,KACA,GAEf,EAII,eAAgB,CACd,KAAM,OACN,QAAS,CACf,EAII,qBAAsB,CACpB,KAAM,QACN,QAAS,EACf,EAII,0BAA2B,CACzB,KAAM,QACN,QAAS,EACf,EAEI,WAAY,CACV,KAAM,MACN,QAAS,IACf,EAEI,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAEI,oBAAqB,CACnB,KAAM,QACN,QAAS,EACf,EAEI,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CACL,cACJ,EACE,MAAO,CACL,MAAO,CACL,SAAUh/E,GAAe,CAC/B,CACE,EACA,QAAS,CACP,iBAAkB,CAChB,MAAMgJ,EAAe,KAAK,KAAK,MAAM,uBAAuB,EAAE,IAAK/U,GAAU,CAC3E,MAAM2B,EAAU3B,EAAM,MAAM,wBAAwB,EACpD,GAAI,CAAC2B,EACH,OAAO,KAAK,gBAAgB3B,CAAK,EAEnC,MAAMg9F,EAAar7F,EAAQ,CAAC,EACtBs7F,EAAW,KAAK,UAAUD,CAAU,EAC1C,GAAI,OAAOC,GAAa,SAAU,CAChC,KAAM,CAAE,UAAA1/H,EAAW,MAAA9jB,CAAK,EAAKwjJ,EAC7B,OAAO35H,GAAE,OAAO/F,GAAc,SAAWL,GAAiBK,CAAS,EAAIA,EAAW,CAChF,GAAG9jB,EACH,MAAO,sBACnB,CAAW,CACH,CACA,OAAIwjJ,EACK35H,GAAE,OAAQ,CAAE,MAAO,qBAAqB,EAAI25H,CAAQ,EAEtDj9F,CACT,CAAC,EACD,OAAO18B,GAAE,MAAO,CAAE,MAAO,oBAAoB,EAAI,CAC/CA,GAAE,MAAO,GAAIyxC,EAAa,KAAI,CAAE,EAChC,KAAK,eAAiB,EAAIzxC,GAAE,MAAO,CAAE,MAAO,+BAAiC,CAC3EA,GAAEynH,GAAiB,CACjB,KAAM,KAAK,KACX,cAAe,KAAK,WACpB,YAAa,KAAK,qBAClB,iBAAkB,KAAK,yBACnC,CAAW,CACX,CAAS,EAAI,IACb,CAAO,CACH,EACA,gBAAiB,CACf,MAAMmS,EAAmB/X,KAAU,IAAIhJ,EAAW,EAAE,IAAIuK,GAAgB,CACtE,SAAU,KAAK,SACf,YAAa,KAAK,YAClB,oBAAqB,KAAK,mBAClC,CAAO,EAAE,IAAIiW,EAAc,EAAE,IAAI,KAAK,oBAAsBX,GAAY,MAAM,EAAE,IAAIpyB,EAAM,EAAE,IAAIsW,GAAuB,CAAE,OAAQ0c,EAAc,CAAE,EAAE,IAAIO,GAAe,CAC9J,SAAU,CACR,UAAUvd,EAAQpqH,EAAM,CACtB,OAAOoqH,EAAOpqH,EAAMA,EAAK,UAAW,CAAE,MAAOA,EAAK,MAAO,CAC3D,CACV,CACA,CAAO,EAAE,IAAI,KAAK,oBAAsBqnI,GAAgB,MAAQ,MAAM,EAAE,IAAIN,EAAiB,EAAE,IAAInmC,GAAqB,CAChH,OAAQ,SACR,IAAK,CAAC,qBAAqB,CACnC,CAAO,EAAE,IAAIgnC,GAAc,CACnB,SAAAljI,GACA,IAAK,KAAK,cACV,KAAM,KAAK,cACX,yBAA0B,OAC1B,OAAQ,EAChB,CAAO,EAAE,YAAY,KAAK,KAAK,QAAQ,WAAa9gB,GAAUA,EAAM,QAAQ,KAAM,MAAM,CAAC,EAAE,QAAQ,UAAW,GAAG,CAAC,EAAE,OAC9G,OAAOkqB,GAAE,MAAO,CAAE,MAAO,gDAAgD,EAAI,CAC3E45H,EACA,KAAK,eAAiB,EAAI55H,GAAE,MAAO,CAAE,MAAO,+BAAiC,CAC3EA,GAAEynH,GAAiB,CACjB,KAAM,KAAK,uBAAuB,KAAK,IAAI,EAC3C,cAAe,KAAK,WACpB,YAAa,KAAK,qBAClB,iBAAkB,KAAK,yBACnC,CAAW,CACX,CAAS,EAAI,IACb,CAAO,CACH,EAMA,gBAAgBpkF,EAAO,CAIrB,OAHI,KAAK,WACPA,EAAQkgF,GAASlgF,CAAK,GAEpB,MAAM,QAAQA,CAAK,EACdA,EAAM,IAAK3G,GAAU,CAC1B,GAAI,OAAOA,GAAU,SACnB,OAAOA,EAET,KAAM,CAAE,UAAAziC,EAAW,MAAA9jB,CAAK,EAAKumD,EAC7B,OAAO18B,GAAE/F,EAAW,CAClB,GAAG9jB,EACH,MAAO,sBACnB,CAAW,CACH,CAAC,EAEIktD,CACT,EAOA,uBAAuBA,EAAO,CAC5B,GAAI,CAAC,KAAK,aAAe,CAAC,KAAK,oBAC7B,OAAOA,EAET,MAAM02F,EAAYlY,GAAO,EACzB,OAAAkY,EAAU,SAAY/nC,GAASxmD,GAASwmD,CAAI,EACrC+nC,EAAU,IAAIlhB,EAAW,EAAE,IAAIsgB,EAAe,EAAE,YAAY91F,EAAM,QAAQ,MAAO,GAAG,CAAC,EAAE,KAChG,EACA,cAAc3mD,EAAMvG,EAAOrE,EAAK,CAC1BA,IACFqE,EAAM,IAAMrE,GAEd,MAAM2f,EAAWtb,EAAM,UAAY,GAEnC,GADA,OAAOA,EAAM,SACT,CAAC,OAAOuG,CAAI,EAAE,WAAW,GAAG,EAAG,CAC7B,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAAE,SAAS,OAAOA,CAAI,CAAC,IAC5DA,EAAO,IAAI,KAAK,IAAI,CAAC,OAAOA,CAAI,EAAE,CAAC,EAAI,EAAG,CAAC,CAAC,IAE9C,IAAIs9I,EAAa,KACjB,GAAI,KAAK,oBAAqB,CAI5B,GAHI,OAAOt9I,CAAI,IAAM,QAAU,CAAC68I,GAAgB,OAASpjJ,GAAO,OAAO,SAAS,UAAU,GACxFqjJ,GAA4B,EAE1B,OAAO98I,CAAI,IAAM,OAAS+U,GAAY,OAAOA,EAAS,IAAI,IAAM,OAAQ,CAC1E,MAAMlI,EAAK,KAAK,SAAW,eAAiBk/C,GAAe,EAC3D,OAAOzoC,GAAE,IAAK,CAAE,MAAO,uBAAuB,EAAI,CAChDA,GAAEtjB,EAAM,CAAE,GAAGvG,EAAO,GAAAoT,CAAE,EAAIkI,CAAQ,EAClCuO,GAAE02D,GAAa,CAAE,MAAO,+BAAgC,UAAWntE,CAAE,CAAE,CACrF,CAAa,CACH,CACA,GAAI,OAAO7M,CAAI,IAAM,MAAQ,MAAM,QAAQ+U,CAAQ,GAAKA,EAAS,SAAW,GAAKA,EAAS,CAAC,EAAE,OAAS,SAAWA,EAAS,CAAC,EAAE,MAAM,OAAS,WAAY,CACtJ,KAAM,CAACwoI,EAAS,CAAI,GAAGC,CAAU,EAAIzoI,EAC/B0oI,EAAkBD,EAAW,UAAWtoI,GAAU,CAAC,KAAM,KAAM,KAAM,aAAc,KAAK,EAAE,SAASA,EAAM,IAAI,CAAC,EAChHuoI,IAAoB,KACtBH,EAAaE,EAAWC,CAAe,EACvCD,EAAW,OAAOC,CAAe,GAEnC,MAAM5wI,EAAK,KAAK,SAAW,mBAAqBk/C,GAAe,EACzD6wB,EAAiB,CAAE,GAAG2gE,EAAU,KAAK,EAC3C,OAAO3gE,EAAe,QACtB,MAAM8gE,EAAiBp6H,GAAEktF,GAAuB,CAC9C,GAAG5zB,EACH,WAAY2gE,EAAU,MAAM,QAC5B,GAAA1wI,EACA,SAAU,CAAC,KAAK,YAChB,sBAAuB,IAAM,CAC3B,KAAK,MAAM,eAAgBA,CAAE,CAC/B,CACd,EAAe,CAAE,QAAS,IAAM2wI,EAAY,EAChC,OAAOl6H,GAAEtjB,EAAMvG,EAAO,CAACikJ,EAAgBJ,CAAU,CAAC,CACpD,CACF,CACA,GAAI,OAAOt9I,CAAI,IAAM,IAAK,CACxB,MAAM4oD,EAAQw+E,GAAS,KAAK,QAAS3tI,EAAM,IAAI,EAC/C,OAAImvD,GACF,OAAOnvD,EAAM,KACb,OAAOA,EAAM,OACN6pB,GAAEkmC,GAAY,CACnB,GAAG/vD,EACH,GAAImvD,CAClB,EAAe,CAAE,QAAS,IAAM7zC,EAAU,GAER,8BAA8B,KAAKtb,EAAM,IAAI,GAEnEA,EAAM,KAAOA,EAAM,KAAK,KAAI,EACrB6pB,GAAEijH,GAAwB9sI,EAAOsb,CAAQ,IAEhD,OAAOtb,EAAM,KACb,OAAOA,EAAM,OACN6pB,GAAE,OAAQ7pB,EAAOsb,CAAQ,EAEpC,CACA,OAAOuO,GAAEtjB,EAAMvG,EAAOsb,CAAQ,CAChC,CACA,MAAMb,EAAc,KAAK,UAAUlU,EAAK,MAAM,CAAC,CAAC,EAChD,OAAKkU,EAGAA,EAAY,UAGVoP,GACL,OAAOpP,EAAY,WAAc,SAAWgJ,GAAiBhJ,EAAY,SAAS,EAAIA,EAAY,UAClG,CACE,GAAGza,EACH,GAAGya,EAAY,MACf,MAAO,sBACjB,EACQ,CAAE,QAAS,IAAMa,CAAQ,CACjC,EAVeuO,GAAE,OAAQ,CAAE,GAAG7pB,CAAK,EAAI,CAACya,CAAW,CAAC,EAHrCoP,GAAE,OAAQ,CAAE,GAAG7pB,EAAO,MAAO,qBAAqB,EAAI,CAAC,IAAIuG,EAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAcvF,CACJ,EACE,QAAS,CACP,OAAO,KAAK,aAAe,KAAK,oBAAsB,KAAK,eAAc,EAAK,KAAK,gBAAe,CACpG,CACF,EACM29I,GAA6BlzF,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC9pH5F,OAAO,uCAAyC,GAChD,OAAO,+BAAiC8yF,GAuBxC,SAASA,GAA4B/wI,EAAIvH,EAAUkgI,EAAY,IAAM,CACrE,EAAG/gG,EAAO,QAAS,CACjB,GAAI,OAAO,qCAAqC53B,CAAE,EAAG,CACnDitE,GAAO,MAAM,0CAA0CjtE,CAAE,qBAAqB,EAC9E,MACF,CACA,OAAO,qCAAqCA,CAAE,EAAI,CAChD,GAAAA,EACA,SAAAvH,EACA,UAAAkgI,EACA,KAAA/gG,CACJ,CACA,CCnCA,MAAMo5G,GAAe,CACnB,QAAQ9nJ,EAAI,CAAE,SAAAsV,GAAY,CACxB,GAAIA,EAAS,aAAc,CACzB,SAAS,KAAK,YAAYtV,CAAE,EAC5B,KAAM,CAAE,OAAAq8D,EAAQ,IAAA0rF,EAAK,KAAA38B,EAAM,MAAAhvD,CAAK,EAAK9mD,EAAS,MAAM,OAAO,sBAAqB,EAC1E0yI,EAAU,OAAO,SAAW,OAAO,YACnCC,EAAU,OAAO,SAAW,OAAO,YACzCjoJ,EAAG,eAAiBsV,EAAS,kBAAkBtV,EAAIsV,EAAU,CAC3D,MAAO8mD,EAAQ,KACf,KAAM4rF,EAAU58B,EAAO,KACvB,IAAK68B,EAAUF,EAAM1rF,EAAS,IACtC,CAAO,CACH,CACF,EACA,UAAUr8D,EAAI,CAAE,SAAAsV,GAAY,CACtBA,EAAS,eACPtV,EAAG,gBAAkB,OAAOA,EAAG,gBAAmB,YACpDA,EAAG,eAAc,EAEfA,EAAG,YACLA,EAAG,WAAW,YAAYA,CAAE,EAGlC,CACF,EACMkoJ,GAAO,CACX,MAAO,CAML,QAAS,CACP,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CACL,MAAO,CACL,eAAgB,EACtB,CACE,EACA,MAAO,CAUL,QAAS,CACP,KAAK,MAAM,SAAU,KAAK,OAAQ,KAAK,aAAa,CACtD,EAOA,QAAQ5oJ,EAAK,CACX,KAAK,eAAiBA,CACxB,CACJ,EACE,QAAS,CASP,cAAc6oJ,EAAS,KAAM,CAC3B,OAAIA,GAAW,KACN,KAAK,eAAiB,CAAC,KAAK,eAE9B,KAAK,eAAiBA,CAC/B,CACJ,CACA,EACMC,GAAgB,CACpB,MAAO,CACL,WAAY,CACV,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CACL,kBAAmB,CACb,KAAK,YACP,KAAK,kBAAiB,CAE1B,EACA,KAAKl9D,EAAM,CACL,KAAK,YAAcA,GACrB,KAAK,UAAU,IAAM,KAAK,kBAAiB,CAAE,CAEjD,CACJ,EACE,QAAS,CAQP,mBAAoB,CAClB,MAAMm9D,EAAW,KAAK,MAAM,cAAc,SAAS,KAAK,gBAAgB,GAAK,GAC7E,GAAIA,EAAU,CACZ,MAAMj0C,EAAS,KAAK,oBAAmB,EACjC,CAAE,IAAA2zC,EAAK,OAAAO,EAAQ,OAAAjsF,CAAM,EAAKgsF,EAAS,sBAAqB,EAC9D,GAAIN,EAAM3zC,EAAO,IACf,OAAO,KAAK,MAAM,aAAa,UAAYi0C,EAAS,UAC/C,GAAIC,EAASl0C,EAAO,OACzB,OAAO,KAAK,MAAM,aAAa,UAAYi0C,EAAS,WAAaj0C,EAAO,OAAS/3C,EAErF,CACF,EAMA,qBAAsB,CACpB,OAAO,KAAK,MAAM,aAAe,KAAK,MAAM,aAAa,wBAA0B,CACjF,OAAQ,EACR,IAAK,EACL,OAAQ,CAChB,CACI,CACJ,CACA,EACMksF,GAAU,CACd,MAAO,CACL,MAAO,CACL,iBAAkB,EACxB,CACE,EACA,MAAO,CACL,iBAAkB,CAChB,GAAK,KAAK,2BAGV,QAAStoJ,EAAI,EAAGA,EAAI,KAAK,gBAAgB,OAAQA,IAC/C,GAAI,KAAK,WAAW,KAAK,gBAAgBA,CAAC,CAAC,EAAG,CAC5C,KAAK,iBAAmBA,EACxB,KACF,EAEJ,EACA,KAAKirF,EAAM,CACLA,GACF,KAAK,wBAAuB,CAEhC,EACA,eAAgB,CACV,KAAK,MACP,KAAK,wBAAuB,CAEhC,CACJ,EACE,QAAS,CAOP,aAAc,CACZ,QAASjrF,EAAI,KAAK,iBAAmB,EAAGA,GAAK,EAAGA,IAC9C,GAAI,KAAK,WAAW,KAAK,gBAAgBA,CAAC,CAAC,EAAG,CAC5C,KAAK,iBAAmBA,EACxB,KACF,CAEJ,EAOA,eAAgB,CACd,QAASA,EAAI,KAAK,iBAAmB,EAAGA,EAAI,KAAK,gBAAgB,OAAQA,IACvE,GAAI,KAAK,WAAW,KAAK,gBAAgBA,CAAC,CAAC,EAAG,CAC5C,KAAK,iBAAmBA,EACxB,KACF,CAEJ,EAOA,iBAAkB,CAChB,MAAMuoJ,EAAkB,KAAK,gBAAgB,KAAK,gBAAgB,EAC9DA,GAAmB,KAAK,WAAWA,CAAe,GACpD,KAAK,OAAOA,CAAe,CAE/B,EAIA,yBAA0B,CACxB,MAAMC,EAAsB,KAAK,cAAc,SAAW,EAAI,KAAK,gBAAgB,QAAQ,KAAK,cAAc,KAAK,cAAc,OAAS,CAAC,CAAC,EAAI,GAC5IA,IAAwB,KAC1B,KAAK,iBAAmBA,EAE5B,CACJ,CACA,EACA,SAASC,GAAiB9iF,EAAU,CAClC,MAAM+iF,EAAU,GAChB,cAAO,KAAK/iF,CAAQ,EAAE,KAAI,EAAG,QAASvmE,GAAQ,CAC5CspJ,EAAQtpJ,CAAG,EAAIumE,EAASvmE,CAAG,CAC7B,CAAC,EACM,KAAK,UAAUspJ,CAAO,CAC/B,CACA,IAAIC,GAAU,EACd,SAASC,IAAW,CAClB,MAAO,EAAED,EACX,CACA,MAAMl0F,GAAc,CAACC,EAAKjxD,IAAU,CAClC,MAAMsG,EAAS2qD,EAAI,WAAaA,EAChC,SAAW,CAACt1D,EAAKC,CAAG,IAAKoE,EACvBsG,EAAO3K,CAAG,EAAIC,EAEhB,OAAO0K,CACT,EACM6kF,GAAc,GACd0qB,GAAe,CACnB,MAAO,6BACP,MAAO,KACP,OAAQ,IACV,EACA,SAASE,GAAc7jD,EAAMC,EAAQ,CACnC,OAAO5sC,EAAS,EAAIuV,EAAmB,MAAO+6E,GAAc,CAAC,GAAG1jD,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,CACxFC,EAAmB,OAAQ,CAAE,EAAG,6gBAA6gB,EAAI,KAAM,EAAE,CAC7jB,EAAI,CAAC,CACL,CACA,MAAMgzF,GAA2Bp0F,GAAYm6B,GAAa,CAAC,CAAC,SAAU4qB,EAAa,CAAC,CAAC,EAC/Ex1B,GAAc,GACdwN,GAAe,CACnB,MAAO,6BACP,MAAO,KACP,OAAQ,IACV,EACA,SAASsoB,GAAcnkD,EAAMC,EAAQ,CACnC,OAAO5sC,EAAS,EAAIuV,EAAmB,MAAOizD,GAAc,CAAC,GAAG57B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,CACxFC,EAAmB,OAAQ,CAAE,EAAG,mTAAmT,EAAI,KAAM,EAAE,CACnW,EAAI,CAAC,CACL,CACA,MAAMizF,GAAgCr0F,GAAYuvB,GAAa,CAAC,CAAC,SAAU81B,EAAa,CAAC,CAAC,EACpFivC,GAAkB,CACtB,SAAAF,GACA,cAAAC,EACF,EACMh0F,GAAY,CAChB,WAAY,CAAE,GAAGi0F,EAAe,EAChC,WAAY,CAAE,aAAAlB,EAAY,EAC1B,OAAQ,CAACM,GAAeG,GAASL,EAAI,EACrC,MAAO,CAQL,WAAY,GASZ,WAAY,CACV,KAAM,OACN,QAAS,KAAO,GACtB,EASI,QAAS,CACP,KAAM,MACN,SAAU,CACR,MAAO,EACT,CACN,EAMI,MAAO,CACL,KAAM,OACN,QAAS,IACf,EAMI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAMI,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAOI,qBAAsB,CACpB,KAAM,QACN,QAAS,EACf,EAMI,WAAY,CACV,KAAM,QACN,QAAS,EACf,EAMI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAMI,YAAa,CACX,KAAM,OACN,QAAS,EACf,EAMI,WAAY,CACV,KAAM,OACN,QAAS,UACf,EAMI,oBAAqB,CACnB,KAAM,QACN,QAAS,EACf,EAOI,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAOI,MAAO,CACL,KAAM,OACN,QAAS,OACf,EAOI,kBAAmB,CACjB,KAAM,OACN,QAAS,oBACf,EAOI,iBAAkB,CAChB,KAAM,OACN,QAAS,SACf,EAOI,uBAAwB,CACtB,KAAM,OACN,QAAS,gBACf,EAOI,wBAAyB,CACvB,KAAM,SACN,QAAUe,GAAgB,YAAYA,CAAW,EACvD,EAOI,aAAc,CACZ,KAAM,OACN,QAAS,KACf,EAQI,OAAQ,CACN,KAAM,SACN,QAAUvqD,GAAWA,CAC3B,EAUI,WAAY,CACV,KAAM,SACN,QAAS,IAAM,EACrB,EAcI,eAAgB,CACd,KAAM,SACN,QAAQA,EAAQ,CACd,OAAI,OAAOA,GAAW,SACf,OAAO,OAAOA,EAAQ,KAAK,KAAK,EAI9BA,EAAO,KAAK,KAAK,EAHfp9D,GAAK,wCAAwC,KAAK,KAAK,sCAAsC,KAAK,UAAUo9D,CAAM,CAAC;AAAA,qDACjF,EAItCA,CACT,CACN,EAiBI,aAAc,CACZ,KAAM,SACN,QAAQA,EAAQ,CACd,GAAI,OAAOA,GAAW,SACpB,OAAOA,EAET,GAAI,CACF,OAAO,OAAO,OAAOA,EAAQ,IAAI,EAAIA,EAAO,GAAKgqD,GAAiBhqD,CAAM,CAC1E,MAAY,CAEV,OAAOp9D,GAAuB,CAChC,CACF,CACN,EAMI,MAAO,CACL,KAAM,SACN,SAAU,CACJ,KAAK,aAAe,CAAC,KAAK,aAC5B,KAAK,gBAAe,CAExB,CACN,EAMI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAMI,SAAU,CACR,KAAM,OACN,QAAS,IACf,EAOI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAQI,WAAY,CACV,KAAM,QACN,QAAS,EACf,EAYI,SAAU,CACR,KAAM,SACN,QAAQo9D,EAAQlP,EAAOgnB,EAAQ,CAC7B,OAAQhnB,GAAS,IAAI,kBAAiB,EAAG,QAAQgnB,EAAO,kBAAiB,CAAE,EAAI,EACjF,CACN,EAaI,OAAQ,CACN,KAAM,SACN,QAAQ5iG,EAAS4iG,EAAQ,CACvB,OAAO5iG,EAAQ,OAAQ8qF,GAAW,CAChC,IAAIlP,EAAQ,KAAK,eAAekP,CAAM,EACtC,OAAI,OAAOlP,GAAU,WACnBA,EAAQA,EAAM,SAAQ,GAEjB,KAAK,SAASkP,EAAQlP,EAAOgnB,CAAM,CAC5C,CAAC,CACH,CACN,EAMI,aAAc,CACZ,KAAM,SACN,QAAQ9X,EAAQ,CACd,OAAO,OAAO,KAAK,WAAW,CAAC,GAAM,SAAW,CAAE,CAAC,KAAK,KAAK,EAAGA,CAAM,EAAKA,CAC7E,CACN,EAOI,0BAA2B,CACzB,KAAM,QACN,QAAS,EACf,EAaI,qBAAsB,CACpB,QAAS,GACT,UAAY39F,GAAU,CAAC,WAAY,SAAS,EAAE,SAAS,OAAOA,CAAK,CACzE,EAMI,kBAAmB,CACjB,KAAM,SACN,QAAQ,CAAE,oBAAAmoJ,EAAqB,SAAAC,GAAY,CACzC,OAAOD,GAAuB,CAACC,CACjC,CACN,EAMI,OAAQ,CACN,KAAM,QACN,QAAS,EACf,EAOI,QAAS,CACP,KAAM,MACZ,EAQI,IAAK,CACH,KAAM,OACN,QAAS,MACf,EAOI,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAMI,iBAAkB,CAChB,KAAM,MACN,QAAS,IAAM,CAEb,EACR,CACA,EAUI,yBAA0B,CACxB,KAAM,OACN,QAAS,eACf,EAMI,WAAY,CACV,KAAM,SAMN,QAAU/pJ,GAAQA,CACxB,EAQI,aAAc,CACZ,KAAM,QACN,QAAS,EACf,EAYI,kBAAmB,CACjB,KAAM,SAUN,QAAQgqJ,EAAc5hI,EAAW,CAAE,MAAA40C,EAAO,IAAA2rF,EAAK,KAAA38B,GAAQ,CACrDg+B,EAAa,MAAM,IAAMrB,EACzBqB,EAAa,MAAM,KAAOh+B,EAC1Bg+B,EAAa,MAAM,MAAQhtF,CAC7B,CACN,EAQI,mBAAoB,CAClB,KAAM,SACN,QAAQ,CAAE,OAAAitF,EAAQ,KAAAn+D,EAAM,eAAAo+D,CAAc,EAAI,CACxC,OAAOD,EAAS,GAAQn+D,GAAQ,CAACo+D,CACnC,CACN,EAKI,oBAAqB,CACnB,KAAM,QACN,QAAS,EACf,EAKI,IAAK,CACH,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,IAAMT,GAAQ,CAC7B,CACA,EACE,MAAO,CACL,OACA,QACA,oBACA,SACA,0BACA,wBACA,iBACA,cACA,eACA,eACA,iBACA,mBACA,kBACA,qBACA,mBACJ,EACE,MAAO,CACL,MAAO,CACL,OAAQ,GACR,KAAM,GACN,YAAa,GACb,qBAAsB,GACtB,WAAY,GAEZ,OAAQ,GAER,gBAAiB,EACvB,CACE,EACA,SAAU,CACR,kBAAmB,CACjB,OAAO,KAAK,OAAO,SAAW,KAAK,SAAS,MAAM,OAAO,OAC3D,EAOA,kBAAmB,CACjB,OAAO,OAAO,KAAK,WAAe,KAAe,KAAK,gBACxD,EAMA,eAAgB,CACd,IAAI9nJ,EAAQ,KAAK,WAIjB,OAHI,KAAK,mBACPA,EAAQ,KAAK,MAAM,QAEGA,GAAU,MAAQA,IAAU,GAC3C,GAAG,OAAOA,CAAK,EAEjB,EACT,EAQA,YAAa,CACX,OAAO,KAAK,QAAQ,OAAO,KAAK,SAAW,KAAK,WAAa,EAAE,CACjE,EAMA,UAAW,CACT,OAAO,KAAK,OAAO,OAAS,KAAK,MAAM,gBAAgB,cAAc,KAAK,wBAAwB,EAAI,KAAK,MAAM,MACnH,EAMA,OAAQ,CACN,MAAMwoJ,EAAW,CACf,OAAQ,KAAK,OACb,QAAS,KAAK,QACd,UAAW,KAAK,UAChB,gBAAiB,KAAK,eAC9B,EACM,MAAO,CACL,OAAQ,CACN,WAAY,CACV,GAAI,KAAK,QACT,SAAU,KAAK,SACf,YAAa,KAAK,kBAClB,SAAU,KAAK,SACf,SAAU,CAAC,KAAK,WAChB,KAAM,WACN,oBAAqB,OACrB,aAAc,KAAK,kBACnB,gBAAiB,MAAM,KAAK,GAAG,YAC/B,YAAa,MAAM,KAAK,GAAG,YAC3B,gBAAiB,KAAK,aAAa,SAAQ,EAC3C,IAAK,SACL,KAAM,SACN,aAAc,KAAK,aACnB,MAAO,KAAK,OACZ,GAAG,KAAK,cAAgB,KAAK,gBAAgB,KAAK,gBAAgB,EAAI,CACpE,wBAAyB,MAAM,KAAK,GAAG,YAAY,KAAK,gBAAgB,EACtF,EAAgB,EAChB,EACU,OAAQ,CACN,iBAAkB,IAAM,KAAK,YAAc,GAC3C,eAAgB,IAAM,KAAK,YAAc,GACzC,QAAS,KAAK,gBACd,SAAU,KAAK,iBACf,KAAM,KAAK,aACX,MAAO,KAAK,cACZ,MAAQthJ,GAAM,KAAK,OAASA,EAAE,OAAO,KACjD,CACA,EACQ,QAAS,CACP,QAAS,KAAK,cACxB,EACQ,UAAW,CACT,OAAQ,KAAK,OACb,QAAS,KAAK,eACd,UAAW,KAAK,SAC1B,EACQ,cAAe,CACb,WAAY,CACV,IAAK,gBACL,KAAM,eACN,MAAO,oBACnB,CACA,EACQ,WAAYshJ,EACZ,WAAYA,EACZ,OAAQ,CAAE,GAAGA,EAAU,SAAU,KAAK,QAAQ,EAC9C,OAAQ,CAAE,GAAGA,EAAU,SAAU,KAAK,QAAQ,CACtD,CACI,EAQA,iBAAkB,CAChB,MAAO,CACL,GAAGP,GACH,GAAG,KAAK,UAChB,CACI,EAMA,cAAe,CACb,MAAO,CACL,WAAY,KAAK,aACjB,aAAc,CAAC,KAAK,SACpB,eAAgB,KAAK,SACrB,gBAAiB,KAAK,WAAa,CAAC,KAAK,OACzC,iBAAkB,KAAK,YAAc,CAAC,KAAK,OAC3C,mBAAoB,CAAC,KAAK,WAC1B,cAAe,KAAK,eACpB,eAAgB,KAAK,QAC7B,CACI,EAOA,WAAY,CACV,MAAO,CAAC,CAAC,KAAK,MAChB,EAOA,cAAe,CACb,OAAO,KAAK,mBAAmB,IAAI,CACrC,EAOA,mBAAoB,CAClB,OAAO,KAAK,cAAgB,KAAK,YAAc,KAAK,YAAc,MACpE,EASA,iBAAkB,CAChB,MAAMQ,EAAgBjlE,GAChB,KAAK,QAAU,KACVA,EAAS,MAAM,EAAG,KAAK,KAAK,EAE9BA,EAEHklE,EAAa,GAAG,OAAO,KAAK,UAAU,EAC5C,GAAI,CAAC,KAAK,YAAc,CAAC,KAAK,SAC5B,OAAOD,EAAaC,CAAU,EAEhC,MAAM71I,EAAU,KAAK,OAAO,OAAS,KAAK,OAAO61I,EAAY,KAAK,OAAQ,IAAI,EAAIA,EAClF,GAAI,KAAK,UAAY,KAAK,OAAO,OAC/B,GAAI,CACF,MAAMC,EAAgB,KAAK,aAAa,KAAK,MAAM,EAC9C,KAAK,aAAaA,CAAa,GAClC91I,EAAQ,QAAQ81I,CAAa,CAEjC,MAAQ,CACR,CAEF,OAAOF,EAAa51I,CAAO,CAC7B,EAMA,cAAe,CACb,OAAO,KAAK,cAAc,SAAW,CACvC,EAMA,iBAAkB,CAChB,MAAO,CAAC,KAAK,UAAY,KAAK,WAAa,CAAC,KAAK,MAAQ,CAAC,KAAK,YACjE,CACJ,EACE,MAAO,CAWL,QAAQ+1I,EAAYC,EAAY,CAC9B,MAAMC,EAAc,IAAM,OAAO,KAAK,sBAAyB,WAAa,KAAK,qBAC/EF,EACAC,EACA,KAAK,aACb,EAAU,KAAK,qBACL,CAAC,KAAK,UAAYC,KACpB,KAAK,eAAc,EAEjB,KAAK,YAAc,KAAK,kBAC1B,KAAK,4BAA4B,KAAK,UAAU,CAEpD,EAKA,WAAY,CACV,UAAW,GACX,QAAQvqJ,EAAK,CACP,KAAK,kBACP,KAAK,4BAA4BA,CAAG,CAExC,CACN,EAOI,UAAW,CACT,KAAK,eAAc,CACrB,EACA,KAAK8uF,EAAQ,CACX,KAAK,MAAMA,EAAS,OAAS,OAAO,CACtC,EACA,OAAOooB,EAAQ,CACTA,EAAO,SACT,KAAK,KAAO,GAEhB,CACJ,EACE,SAAU,CACR,KAAK,eAAiB,KAAK,OAC7B,EACA,QAAS,CAQP,4BAA4Bz1G,EAAO,CAC7B,MAAM,QAAQA,CAAK,EACrB,KAAK,MAAM,OAASA,EAAM,IAAKzB,GAAQ,KAAK,2BAA2BA,CAAG,CAAC,EAE3E,KAAK,MAAM,OAAS,KAAK,2BAA2ByB,CAAK,CAE7D,EAQA,OAAO29F,EAAQ,CACb,KAAK,MAAM,mBAAoBA,CAAM,EAChC,KAAK,iBAAiBA,CAAM,EAUtB,KAAK,uBAAyB,KAAK,WAAa,KAAK,UAAY,KAAK,cAAc,OAAS,IACtG,KAAK,SAASA,CAAM,GAVhB,KAAK,UAAY,CAAC,KAAK,aAAaA,CAAM,IAC5C,KAAK,MAAM,iBAAkBA,CAAM,EACnC,KAAK,QAAQA,CAAM,GAEjB,KAAK,WACPA,EAAS,KAAK,cAAc,OAAOA,CAAM,GAE3C,KAAK,YAAYA,CAAM,EACvB,KAAK,MAAM,kBAAmBA,CAAM,GAItC,KAAK,cAAcA,CAAM,CAC3B,EAOA,SAASA,EAAQ,CACf,KAAK,MAAM,qBAAsBA,CAAM,EACvC,KAAK,YAAY,KAAK,cAAc,OAAQp/F,GACnC,CAAC,KAAK,iBAAiBA,EAAKo/F,CAAM,CAC1C,CAAC,EACF,KAAK,MAAM,oBAAqBA,CAAM,CACxC,EAQA,iBAAiBA,EAAQ02C,EAAQ,CAC/B,KAAK,SAAS12C,CAAM,EACpB,MAAMorD,EAAe,KAAK,kBAAkB1U,EAAS,CAAC,EAChD2U,EAAe,KAAK,kBAAkB3U,EAAS,CAAC,EAChD4U,EAAkBF,GAAgBC,EACpCC,EACFA,EAAgB,MAAK,EAErB,KAAK,SAAS,MAAK,CAEvB,EAMA,gBAAiB,CACf,KAAK,YAAY,KAAK,SAAW,GAAK,IAAI,EAC1C,KAAK,SAAS,MAAK,CACrB,EAOA,eAAgB,CACV,KAAK,gBACP,KAAK,KAAO,CAAC,KAAK,MAEhB,KAAK,sBACP,KAAK,OAAS,IAEZ,KAAK,QAAU,KAAK,UACtB,KAAK,UAAU,IAAM,KAAK,MAAM,OAAO,OAAO,CAElD,EASA,YAAYjpJ,EAAO,CACb,OAAO,KAAK,WAAe,MAC7B,KAAK,MAAM,OAASA,GAElBA,IAAU,OACR,MAAM,QAAQA,CAAK,EACrBA,EAAQA,EAAM,IAAKzB,GAAQ,KAAK,OAAOA,CAAG,CAAC,EAE3CyB,EAAQ,KAAK,OAAOA,CAAK,GAG7B,KAAK,MAAM,oBAAqBA,CAAK,CACvC,EAOA,eAAe8vB,EAAO,CACpB,MAAMo5H,EAAoBp5H,EAAM,SAAW,KAAK,SAC5Co5H,GACFp5H,EAAM,eAAc,EAEtB,MAAMq5H,EAAiB,CACrB,GAAG,KAAK,iBAAmB,GAC3B,GAAG,KAAK,MAAM,YAAc,CAAC,KAAK,MAAM,WAAW,EAAI,EAC/D,EACM,GAAI,KAAK,WAAa,QAAUA,EAAe,OAAO,OAAO,EAAE,KAAMh5I,GAAQA,EAAI,SAAS2f,EAAM,MAAM,GAAK3f,IAAQ2f,EAAM,MAAM,EAAG,CAChIA,EAAM,eAAc,EACpB,MACF,CACI,KAAK,MAAQo5H,GACf,KAAK,KAAO,GACZ,KAAK,SAAS,KAAI,GACR,KAAK,WACf,KAAK,KAAO,GACZ,KAAK,SAAS,MAAK,EAEvB,EAOA,iBAAiBvrD,EAAQ,CACvB,OAAO,KAAK,cAAc,KAAM39F,GAAU,KAAK,iBAAiBA,EAAO29F,CAAM,CAAC,CAChF,EAOA,qBAAqBA,EAAQ,CAC3B,OAAO,KAAK,iBAAiBA,CAAM,GAAK,KAAK,oBAC/C,EAQA,uBAAuB02C,EAAQ,CAC7B,OAAI,KAAK,qBAAuB,KAAK,qBAC5BA,IAAW,KAAK,iBAElB,EACT,EAQA,iBAAiBnxI,EAAGC,EAAG,CACrB,OAAO,KAAK,aAAaD,CAAC,IAAM,KAAK,aAAaC,CAAC,CACrD,EASA,2BAA2BnD,EAAO,CAChC,MAAMu6D,EAAaojC,GAAW,KAAK,UAAU,KAAK,OAAOA,CAAM,CAAC,IAAM,KAAK,UAAU39F,CAAK,EACpF6qD,EAAU,CAAC,GAAG,KAAK,QAAS,GAAG,KAAK,UAAU,EAAE,OAAO0P,CAAS,EACtE,OAAI1P,EAAQ,SAAW,EACdA,EAAQ,CAAC,EAEXA,EAAQ,KAAMvoD,GAAU,KAAK,iBAAiBA,EAAO,KAAK,MAAM,MAAM,CAAC,GAAKtC,CACrF,EAOA,oBAAqB,CACnB,KAAK,KAAO,GACZ,KAAK,MAAM,aAAa,CAC1B,EAOA,kBAAmB,CACjB,GAAI,CAAC,KAAK,SAAS,MAAM,QAAU,KAAK,eAAiB,KAAK,cAAc,QAAU,KAAK,UAAW,CACpG,IAAIA,EAAQ,KACR,KAAK,WACPA,EAAQ,CACN,GAAG,KAAK,cAAc,MAAM,EAAG,KAAK,cAAc,OAAS,CAAC,CACxE,GAEQ,KAAK,YAAYA,CAAK,CACxB,CACF,EAQA,aAAa29F,EAAQ,CACnB,OAAO,KAAK,WAAW,KAAMyrD,GAAY,KAAK,iBAAiBA,EAASzrD,CAAM,CAAC,CACjF,EAQA,mBAAmBA,EAAQ,CACzB,OAAK,KAAK,WAAWA,CAAM,EAGpB,OAAO,KAAK,iBAAiBA,CAAM,CAAC,EAFlC,IAGX,EAQA,uBAAuBA,EAAQ,CAC7B,OAAO,OAAOA,GAAW,SAAWA,EAAS,CAAE,CAAC,KAAK,KAAK,EAAGA,CAAM,CACrE,EAQA,QAAQA,EAAQ,CACd,KAAK,WAAW,KAAKA,CAAM,CAC7B,EAOA,UAAW,CACJ,KAAK,OAAO,OAGf,KAAK,OAAS,GAFd,KAAK,KAAO,EAIhB,EAOA,cAAe,CACb,GAAI,KAAK,WAAa,CAAC,KAAK,UAC1B,KAAK,UAAY,OACZ,CACL,KAAM,CAAE,oBAAAwqD,EAAqB,SAAAC,CAAQ,EAAK,KACtC,KAAK,kBAAkB,CAAE,oBAAAD,EAAqB,SAAAC,CAAQ,CAAE,IAC1D,KAAK,OAAS,IAEhB,KAAK,mBAAkB,EACvB,MACF,CACI,KAAK,OAAO,SAAW,GAAK,KAAK,QAAQ,SAAW,GACtD,KAAK,mBAAkB,CAE3B,EASA,eAAgB,CACd,KAAK,MAAM,cAAc,CAC3B,EAUA,aAAc,CACZ,KAAK,UAAY,EACnB,EAOA,WAAY,CACV,KAAK,UAAY,EACnB,EAQA,YAAYzqD,EAAQ02C,EAAQ,CAC1B,KAAK,qBAAuB,GACvB,KAAK,WAAW12C,CAAM,IAG3B,KAAK,iBAAmB02C,EAC1B,EAOA,gBAAgB,EAAG,CACjB,MAAMgV,EAAoB7uH,GAAO,CAE/B,GADAA,EAAG,eAAc,EACb,CAAC,KAAK,KAAM,CACd,KAAK,KAAO,GACZ,MACF,CACA,MAAO,CAAC,KAAK,aAAe,KAAK,gBAAe,CAClD,EACMwmE,EAAW,CAEf,EAAG,IAAM,KAAK,iBAAgB,EAE9B,EAAG,IAAM,KAAK,MAAK,EAEnB,GAAI,IAAM,KAAK,SAAQ,EAEvB,GAAKxmE,GAAO,CAGV,GAFAA,EAAG,eAAc,EACjB,KAAK,qBAAuB,GACxB,CAAC,KAAK,KAAM,CACd,KAAK,KAAO,GACZ,MACF,CACA,OAAO,KAAK,YAAW,CACzB,EAEA,GAAKA,GAAO,CAGV,GAFAA,EAAG,eAAc,EACjB,KAAK,qBAAuB,GACxB,CAAC,KAAK,KAAM,CACd,KAAK,KAAO,GACZ,MACF,CACA,OAAO,KAAK,cAAa,CAC3B,CACR,EACM,KAAK,iBAAiB,QAAS8uH,GAAYtoD,EAASsoD,CAAO,EAAID,CAAgB,EAC/E,MAAM5gH,EAAW,KAAK,WAAWu4D,EAAU,IAAI,EAC/C,GAAI,OAAOv4D,EAAS,EAAE,OAAO,GAAM,WACjC,OAAOA,EAAS,EAAE,OAAO,EAAE,CAAC,CAEhC,EAMA,iBAAiB,EAAG,CACd,CAAC,KAAK,MAAQ,EAAE,UAAY,KAC9B,EAAE,eAAc,EAChB,KAAK,KAAO,GAEhB,CACJ,CACA,EACMorB,GAAa,CAAC,KAAM,KAAK,EACzBC,GAAa,CACjB,IAAK,SACL,MAAO,qBACT,EACMC,GAAa,CAAC,WAAY,QAAS,aAAc,cAAe,WAAW,EAC3EmB,GAAa,CACjB,IAAK,UACL,MAAO,aACT,EACMC,GAAa,CAAC,WAAY,QAAS,YAAY,EAC/CuzB,GAAa,CAAE,MAAO,aAAa,EACnCC,GAAa,CAAC,KAAM,aAAc,sBAAsB,EACxD4gE,GAAa,CAAC,KAAM,gBAAiB,cAAe,SAAS,EAC7DC,GAAa,CACjB,IAAK,EACL,MAAO,gBACT,EACMC,GAAc,CAAC,KAAM,YAAY,EACvC,SAAShmE,GAAY5uB,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CAClE,MAAM8lE,EAA4BhjI,GAAiB,gBAAgB,EACnE,OAAOwB,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,GAAI,YAAYo5B,EAAO,GAAG,GAC1B,IAAKA,EAAO,IACZ,MAAOr0D,GAAe,CAAC,WAAYohF,EAAS,YAAY,CAAC,CAC7D,EAAK,CACDh8D,GAAWitC,EAAK,OAAQ,SAAUnyD,GAAe27B,GAAmBulD,EAAS,MAAM,MAAM,CAAC,CAAC,EAC3F7uB,EAAmB,MAAOjB,GAAY,CACpCiB,EAAmB,MAAO,CACxB,IAAK,kBACL,MAAO,uBACP,YAAaD,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIlqD,IAASg5E,EAAS,gBAAkBA,EAAS,eAAe,GAAGh5E,CAAI,EACtH,EAAS,EACAsd,EAAU,EAAI,EAAGuV,EAAmBra,GAAU,KAAM6D,GAAW28D,EAAS,cAAe,CAAC+Z,EAAQ02C,IACxFzsH,GAAWitC,EAAK,OAAQ,4BAA6B,CAC1D,OAAQ+uB,EAAS,uBAAuB+Z,CAAM,EAC9C,SAAU/Z,EAAS,SACnB,SAAU/sB,EAAO,SACjB,SAAUA,EAAO,QAC7B,EAAa,IAAM,EACN3uC,EAAS,EAAIuV,EAAmB,OAAQ,CACvC,IAAKo5B,EAAO,aAAa8mC,CAAM,EAC/B,MAAO,cACrB,EAAe,CACD/1E,GAAWitC,EAAK,OAAQ,kBAAmBn2B,GAAW,CAAE,QAAS,EAAI,EAAIklD,EAAS,uBAAuB+Z,CAAM,CAAC,EAAG,IAAM,CACvHh/D,GAAgBp6B,GAAgBsyD,EAAO,eAAe8mC,CAAM,CAAC,EAAG,CAAC,CACjF,CAAe,EACD9mC,EAAO,UAAY3uC,IAAauV,EAAmB,SAAU,CAC3D,IAAK,EACL,QAAS,GACT,IAAMx+B,GAAO0kF,EAAM,gBAAgB0wD,CAAM,EAAIp1I,EAC7C,SAAU43D,EAAO,SACjB,KAAM,SACN,MAAO,eACP,MAAOA,EAAO,wBAAwBA,EAAO,eAAe8mC,CAAM,CAAC,EACnE,aAAc9mC,EAAO,wBAAwBA,EAAO,eAAe8mC,CAAM,CAAC,EAC1E,YAAax0D,GAAe2tB,GAAW8sB,EAAS,SAAS+Z,CAAM,EAAG,CAAC,MAAM,CAAC,EAC1E,UAAWp0D,GAAUutB,GAAW8sB,EAAS,iBAAiB+Z,EAAQ02C,CAAM,EAAG,CAAC,OAAO,CAAC,CACpG,EAAiB,EACAnsH,EAAS,EAAIC,GAAY3B,GAAwBo9D,EAAS,gBAAgB,QAAQ,CAAC,EACpG,EAAiB,GAAI7vB,EAAU,GAAK5zC,GAAmB,GAAI,EAAI,CAC/D,CAAa,EACb,CAAW,CACF,EAAG,GAAG,GACPyH,GAAWitC,EAAK,OAAQ,SAAUnyD,GAAe27B,GAAmBulD,EAAS,MAAM,MAAM,CAAC,EAAG,IAAM,CACjG7uB,EAAmB,QAASr2B,GAAW,CAAE,MAAO,cAAgBklD,EAAS,MAAM,OAAO,WAAYj7D,GAAWi7D,EAAS,MAAM,OAAO,OAAQ,EAAI,CAAC,EAAG,KAAM,EAAE,CACrK,CAAS,CACT,EAAS,GAAG,EACN7uB,EAAmB,MAAOG,GAAY,CACpCn9C,GAAeg9C,EAAmB,SAAU,CAC1C,IAAK,cACL,SAAU8B,EAAO,SACjB,KAAM,SACN,MAAO,YACP,MAAOA,EAAO,uBACd,aAAcA,EAAO,uBACrB,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIlqD,IAASg5E,EAAS,gBAAkBA,EAAS,eAAe,GAAGh5E,CAAI,EACpH,EAAW,EACAsd,EAAS,EAAIC,GAAY3B,GAAwBo9D,EAAS,gBAAgB,QAAQ,CAAC,EAC9F,EAAW,EAAGzuB,EAAU,EAAG,CACjB,CAACzvB,GAAOk+C,EAAS,eAAe,CAC1C,CAAS,EACA/sB,EAAO,OAYG12C,GAAmB,GAAI,EAAI,GAZpB+H,EAAS,EAAIuV,EAAmB,SAAU,CAC1D,IAAK,EACL,IAAK,sBACL,MAAO,4BACP,KAAM,SACN,SAAU,KACV,cAAe,OACf,YAAaq3B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIlqD,IAASg5E,EAAS,gBAAkBA,EAAS,eAAe,GAAGh5E,CAAI,EACxH,EAAW,CACDgd,GAAWitC,EAAK,OAAQ,iBAAkBnyD,GAAe27B,GAAmBulD,EAAS,MAAM,aAAa,CAAC,EAAG,IAAM,EAC/G17D,EAAS,EAAIC,GAAY3B,GAAwBo9D,EAAS,gBAAgB,aAAa,EAAGlhF,GAAe27B,GAAmBulD,EAAS,MAAM,cAAc,UAAU,CAAC,EAAG,KAAM,EAAE,EAC5L,CAAW,CACX,EAAW,GAAG,GACNh8D,GAAWitC,EAAK,OAAQ,UAAWnyD,GAAe27B,GAAmBulD,EAAS,MAAM,OAAO,CAAC,EAAG,IAAM,CACnG7rE,GAAeg9C,EAAmB,MAAO2zB,GAAY,eAAgB,GAAG,EAAG,CACzE,CAAChjD,GAAOmvB,EAAK,cAAc,CACvC,CAAW,CACX,CAAS,CACT,EAAS,GAAG,CACZ,EAAO,GAAG,EACNzsC,GAAY0Z,GAAY,CAAE,KAAM+0B,EAAO,UAAU,EAAI,CACnD,QAASv/C,GAAQ,IAAM,CACrBssE,EAAS,aAAe7rE,IAAgBmQ,EAAS,EAAIuV,EAAmB,KAAM,CAC5E,GAAI,MAAMo5B,EAAO,GAAG,YACpB,IAAK,eACL,IAAK,MAAMA,EAAO,GAAG,YACrB,MAAO,oBACP,KAAM,UACN,aAAcA,EAAO,iBACrB,uBAAwBA,EAAO,SAAW,OAAS,KACnD,SAAU,KACV,YAAa/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI3rB,GAAc,IAAIv+B,IAASg5E,EAAS,aAAeA,EAAS,YAAY,GAAGh5E,CAAI,EAAG,CAAC,SAAS,CAAC,GACpI,UAAWkqD,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIlqD,IAASg5E,EAAS,WAAaA,EAAS,UAAU,GAAGh5E,CAAI,EAC5G,EAAW,CACDgd,GAAWitC,EAAK,OAAQ,cAAenyD,GAAe27B,GAAmBulD,EAAS,MAAM,UAAU,CAAC,CAAC,GACnG17D,EAAU,EAAI,EAAGuV,EAAmBra,GAAU,KAAM6D,GAAW28D,EAAS,gBAAiB,CAAC+Z,EAAQ02C,KAC1FnsH,EAAS,EAAIuV,EAAmB,KAAM,CAC3C,GAAI,MAAMo5B,EAAO,GAAG,YAAYw9E,CAAM,GACtC,IAAKx9E,EAAO,aAAa8mC,CAAM,EAC/B,KAAM,SACN,MAAOn7F,GAAe,CAAC,sBAAuB,CAC5C,gCAAiCohF,EAAS,qBAAqB+Z,CAAM,GAAK02C,IAAWx/E,EAAK,iBAC1F,gCAAiC+uB,EAAS,iBAAiB+Z,CAAM,EACjE,iCAAkC02C,IAAWx/E,EAAK,iBAClD,gCAAiC+uB,EAAS,uBAAuBywD,CAAM,EACvE,gCAAiC,CAACx9E,EAAO,WAAW8mC,CAAM,CAC1E,CAAe,CAAC,EACF,gBAAiB/Z,EAAS,mBAAmB+Z,CAAM,EACnD,YAAc7mC,GAAW8sB,EAAS,YAAY+Z,EAAQ02C,CAAM,EAC5D,QAASlrG,GAAe2tB,GAAWD,EAAO,WAAW8mC,CAAM,EAAI/Z,EAAS,OAAO+Z,CAAM,EAAI,KAAM,CAAC,UAAW,MAAM,CAAC,CAChI,EAAe,CACD/1E,GAAWitC,EAAK,OAAQ,SAAUn2B,GAAW,CAAE,QAAS,EAAI,EAAIklD,EAAS,uBAAuB+Z,CAAM,CAAC,EAAG,IAAM,CAC9Gh/D,GAAgBp6B,GAAgBsyD,EAAO,eAAe8mC,CAAM,CAAC,EAAG,CAAC,CACjF,CAAe,CACf,EAAe,GAAI4rD,EAAU,EAClB,EAAG,GAAG,GACP3lE,EAAS,gBAAgB,SAAW,GAAK17D,EAAS,EAAIuV,EAAmB,KAAM+rH,GAAY,CACzF5hI,GAAWitC,EAAK,OAAQ,aAAcnyD,GAAe27B,GAAmBulD,EAAS,MAAM,SAAS,CAAC,EAAG,IAAM,CACxG9uB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIn2B,GAAgB,gCAAiC,EAAE,EAC3F,CAAa,CACb,CAAW,GAAKxe,GAAmB,GAAI,EAAI,EACjCyH,GAAWitC,EAAK,OAAQ,cAAenyD,GAAe27B,GAAmBulD,EAAS,MAAM,UAAU,CAAC,CAAC,CAC9G,EAAW,GAAI+E,EAAU,GAAI,CACnB,CAAC+gE,CAAyB,CACpC,CAAS,GAAKxhI,EAAS,EAAIuV,EAAmB,KAAM,CAC1C,IAAK,EACL,GAAI,MAAMo5B,EAAO,GAAG,YACpB,KAAM,UACN,aAAcA,EAAO,iBACrB,MAAO,CAAE,QAAW,OAAQ,WAAc,QAAQ,CAC5D,EAAW,KAAM,EAAG4yF,EAAW,EAC/B,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,MAAM,CAAC,EACd7hI,GAAWitC,EAAK,OAAQ,SAAUnyD,GAAe27B,GAAmBulD,EAAS,MAAM,MAAM,CAAC,CAAC,CAC/F,EAAK,GAAI/vB,EAAU,CACnB,CACA,MAAM81F,GAAyBh2F,GAAYK,GAAW,CAAC,CAAC,SAAUyvB,EAAW,CAAC,CAAC,EC1pDzE5vB,GAAa,CAAE,MAAO,2BAA2B,EACjDC,GAAa,CAAC,KAAM,mBAAoB,WAAY,cAAe,OAAQ,OAAO,EAClFC,GAAa,CAAC,KAAK,EACnBmB,GAAa,CAAE,MAAO,8CAA8C,EACpEC,GAAa,CACjB,IAAK,EACL,MAAO,+CACT,EACMuzB,GAAa,CAAC,IAAI,EAClB10B,GAA4B3wC,GAAgB,CAE9C,aAAc,GAEhB,OAAQ,eACR,MAAuB6G,GAAY,CACjC,MAAO,CAAE,QAAS,EAAE,EACpB,WAAY,CAAE,QAAS,EAAE,EACzB,GAAI,CAAE,QAAS,IAAM+qC,IAAiB,EACtC,MAAO,CAAE,QAAS,MAAM,EACxB,aAAc,CAAE,KAAM,OAAO,EAC7B,KAAM,CAAE,QAAS,MAAM,EACvB,YAAa,CAAE,QAAS,MAAM,EAC9B,mBAAoB,CAAE,KAAM,OAAO,EACnC,oBAAqB,CAAE,QAAS,MAAM,EACtC,QAAS,CAAE,KAAM,OAAO,EACxB,MAAO,CAAE,KAAM,OAAO,EACtB,WAAY,CAAE,QAAS,EAAE,EACzB,SAAU,CAAE,KAAM,OAAO,EACzB,KAAM,CAAE,KAAM,OAAO,CACzB,EAAK,CACD,WAAc,CAAE,SAAU,EAAI,EAC9B,eAAkB,EACtB,CAAG,EACD,MAAuB/qC,GAAY,CAAC,qBAAqB,EAAG,CAAC,mBAAmB,CAAC,EACjF,MAAM+pC,EAAS,CAAE,OAAQy7B,EAAU,KAAMx7B,GAAU,CACjD,MAAM01F,EAAa36H,GAASglC,EAAS,YAAY,EAC3CtxD,EAAQsxD,EACRpkC,EAAOqkC,EACbw7B,EAAS,CACP,MAAAm6D,EACA,OAAA3uI,CACN,CAAK,EACD,MAAM2V,EAAQ/G,GAAQ,EAChBggI,EAAetmI,GAAe,OAAO,EACrCumI,EAAkBpiJ,GAAS,IAAMhF,EAAM,oBAAsBA,EAAM,OAAO,EAC1EqnJ,EAAsBriJ,GAAS,IAAM,CACzC,GAAIhF,EAAM,YACR,OAAOA,EAAM,YAEf,GAAIA,EAAM,MACR,OAAO4wD,GAAW5wD,EAAM,MAAQ,EAGpC,CAAC,EACKsnJ,EAAetiJ,GAAS,IACNhF,EAAM,OAASA,EAAM,YAK5C,EACKunJ,EAAkBviJ,GAAS,IAAM,CACrC,MAAMwiJ,EAAmB,GACzB,OAAIxnJ,EAAM,YACRwnJ,EAAiB,KAAK,GAAGxnJ,EAAM,EAAE,cAAc,EAE7CkuB,EAAM,kBAAkB,GAC1Bs5H,EAAiB,KAAK,OAAOt5H,EAAM,kBAAkB,CAAC,CAAC,EAElDs5H,EAAiB,KAAK,GAAG,GAAK,MACvC,CAAC,EACD,SAASN,EAAMh3I,EAAS,CACtBi3I,EAAa,MAAM,MAAMj3I,CAAO,CAClC,CACA,SAASqI,GAAS,CAChB4uI,EAAa,MAAM,OAAM,CAC3B,CACA,SAASM,EAAYt6H,EAAO,CAC1B,MAAM7mB,EAAS6mB,EAAM,OACrB85H,EAAW,MAAQjnJ,EAAM,OAAS,UAAY,OAAOinJ,EAAW,OAAU,SAAW,WAAW3gJ,EAAO,KAAK,EAAIA,EAAO,KACzH,CACA,MAAO,CAAC4rD,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,MAAO,CAC5C,MAAOj7B,GAAe,CAAC,cAAe,CAAC,CACrC,wBAAyByxD,EAAQ,SACjC,qBAAsBA,EAAQ,MAC9B,6BAA8BA,EAAQ,cAAgB,CAACg2F,EAAa,MACpE,4BAA6B,CAAC,CAACp1F,EAAK,OAAO,KAC3C,6BAA8Bk1F,EAAgB,MAC9C,oBAAqB91F,EAAQ,KAC7B,uBAAwBA,EAAQ,QAChC,sBAAuBzjD,EAAM+iD,EAAQ,CAC/C,EAAWsB,EAAK,OAAO,KAAK,CAAC,CAAC,CAC9B,EAAS,CACDE,EAAmB,MAAOlB,GAAY,CACpCkB,EAAmB,QAASr2B,GAAWm2B,EAAK,OAAQ,CAClD,GAAIZ,EAAQ,GACZ,IAAK,QACL,mBAAoBi2F,EAAgB,MACpC,YAAa,SACb,MAAO,CAAC,qBAAsBj2F,EAAQ,UAAU,EAChD,SAAUA,EAAQ,SAClB,YAAa+1F,EAAoB,MACjC,KAAM/1F,EAAQ,KACd,MAAO21F,EAAW,MAAM,SAAQ,EAChC,QAASQ,CACrB,CAAW,EAAG,KAAM,GAAIt2F,EAAU,EACxB,CAACG,EAAQ,cAAgBg2F,EAAa,OAAS/hI,EAAS,EAAIuV,EAAmB,QAAS,CACtF,IAAK,EACL,MAAO,qBACP,IAAKw2B,EAAQ,EACzB,EAAa1vD,GAAgB0vD,EAAQ,KAAK,EAAG,EAAGF,EAAU,GAAK5zC,GAAmB,GAAI,EAAI,EAChFpI,GAAeg9C,EAAmB,MAAOG,GAAY,CACnDttC,GAAWitC,EAAK,OAAQ,OAAQ,GAAI,OAAQ,EAAI,CAC5D,EAAa,GAAG,EAAG,CACP,CAACnvB,GAAO,CAAC,CAACmvB,EAAK,OAAO,IAAI,CACtC,CAAW,EACDZ,EAAQ,oBAAsB/rC,IAAaC,GAAY6sC,GAAU,CAC/D,IAAK,EACL,MAAO,+BACP,aAAcf,EAAQ,oBACtB,SAAUA,EAAQ,SAClB,QAAS,yBACT,QAASa,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAWjnC,EAAK,sBAAuBinC,CAAM,EAC7F,EAAa,CACD,KAAMx/C,GAAQ,IAAM,CAClBsQ,GAAWitC,EAAK,OAAQ,uBAAwB,GAAI,OAAQ,EAAI,CAC9E,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,aAAc,UAAU,CAAC,GAAKZ,EAAQ,SAAWA,EAAQ,OAAS/rC,EAAS,EAAIuV,EAAmB,MAAO03B,GAAY,CAC1HlB,EAAQ,SAAW/rC,IAAaC,GAAYouC,GAAkB,CAC5D,IAAK,EACL,KAAM/lD,EAAMklD,EAAQ,CAClC,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,IAAMxtC,EAAS,EAAIC,GAAYouC,GAAkB,CACnE,IAAK,EACL,KAAM/lD,EAAM+kD,EAAqB,CAC/C,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,EAChC,CAAW,GAAKp1C,GAAmB,GAAI,EAAI,CAC3C,CAAS,EACD8zC,EAAQ,YAAc/rC,IAAauV,EAAmB,IAAK,CACzD,IAAK,EACL,GAAI,GAAGw2B,EAAQ,EAAE,eACjB,MAAO,kCACjB,EAAW,CACDA,EAAQ,SAAW/rC,IAAaC,GAAYouC,GAAkB,CAC5D,IAAK,EACL,MAAO,yCACP,KAAM/lD,EAAMklD,EAAQ,EACpB,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKzB,EAAQ,OAAS/rC,EAAS,EAAIC,GAAYouC,GAAkB,CACnF,IAAK,EACL,MAAO,yCACP,KAAM/lD,EAAM+kD,EAAqB,EACjC,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKp1C,GAAmB,GAAI,EAAI,EACpDwe,GAAgB,IAAMp6B,GAAgB0vD,EAAQ,UAAU,EAAG,CAAC,CACtE,EAAW,EAAGy0B,EAAU,GAAKvoE,GAAmB,GAAI,EAAI,CACxD,EAAS,CAAC,EAER,CACF,CAAC,EACKkqI,GAA+B12F,GAAYK,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECpK9F7nC,GAAS8yC,GAAKa,EAAG,EACjB,MAAM9L,GAA4B3wC,GAAgB,CAChD,OAAQ,cACR,MAAuB6G,GAAY,CACjC,MAAO,GACP,WAAY,GACZ,GAAI,GACJ,MAAO,GACP,aAAc,CAAE,KAAM,OAAO,EAC7B,YAAa,GACb,mBAAoB,CAAE,KAAM,OAAO,EACnC,oBAAqB,CAAE,QAAS,MAAM,EACtC,QAAS,CAAE,KAAM,OAAO,EACxB,MAAO,CAAE,KAAM,OAAO,EACtB,WAAY,GACZ,SAAU,CAAE,KAAM,OAAO,EACzB,KAAM,CAAE,KAAM,OAAO,EACrB,KAAM,GACN,mBAAoB,CAAE,QAAS,OAAO,CAC1C,EAAK,CACD,WAAc,CAAE,QAAS,EAAE,EAC3B,eAAkB,EACtB,CAAG,EACD,MAAO,CAAC,mBAAmB,EAC3B,MAAM+pC,EAAS,CAAE,OAAQy7B,CAAQ,EAAI,CACnC,MAAMk6D,EAAa36H,GAASglC,EAAS,YAAY,EAC3CtxD,EAAQsxD,EACdy7B,EAAS,CACP,MAAAm6D,EACA,OAAA3uI,CACN,CAAK,EACD,MAAMovI,EAAqB9mI,GAAe,YAAY,EAChD+mI,EAA8B,CAClC,SAAU1oH,GAAE,cAAc,EAC1B,MAAOA,GAAE,YAAY,EACrB,KAAMA,GAAE,cAAc,CAC5B,EACU2oH,EAAwB,IAAI,IAAI,OAAO,KAAKH,GAAa,KAAK,CAAC,EAC/DvkE,EAAiBn+E,GAAS,IAAM,CACpC,MAAM8iJ,EAAc,OAAO,YAAY,OAAO,QAAQ9nJ,CAAK,EAAE,OAAO,CAAC,CAACrE,CAAG,IAAMksJ,EAAsB,IAAIlsJ,CAAG,CAAC,CAAC,EAC9G,OAAAmsJ,EAAY,sBAAwBF,EAA4B5nJ,EAAM,kBAAkB,EACjF8nJ,CACT,CAAC,EACD,SAASZ,EAAMh3I,EAAS,CACtBy3I,EAAmB,MAAM,MAAMz3I,CAAO,CACxC,CACA,SAASqI,GAAS,CAChBovI,EAAmB,MAAM,OAAM,CACjC,CACA,MAAO,CAACz1F,EAAMC,KACL5sC,EAAS,EAAIC,GAAY3X,EAAM65I,EAAY,EAAG3rH,GAAWonD,EAAe,MAAO,CACpF,IAAK,aACL,WAAY8jE,EAAW,MACvB,sBAAuB90F,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKgC,GAAW8yF,EAAW,MAAQ9yF,EACxF,CAAO,EAAGtvC,GAAY,CAAE,EAAG,CAAC,EAAI,CACtBqtC,EAAK,OAAO,KAAO,CACnB,KAAM,OACN,GAAIv9C,GAAQ,IAAM,CAChBsQ,GAAWitC,EAAK,OAAQ,MAAM,CAC1C,CAAW,EACD,IAAK,GACf,EAAY,OACJZ,EAAQ,OAAS,SAAW,CAC1B,KAAM,uBACN,GAAI38C,GAAQ,IAAM,CAChB28C,EAAQ,qBAAuB,YAAc/rC,EAAS,EAAIC,GAAY3X,EAAM+lD,EAAgB,EAAG,CAC7F,IAAK,EACL,YAAa,GACb,KAAM/lD,EAAMilD,EAAa,CACvC,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,IAAMvtC,EAAS,EAAIC,GAAY3X,EAAM+lD,EAAgB,EAAG,CAC1E,IAAK,EACL,KAAMtC,EAAQ,qBAAuB,OAASzjD,EAAM2lD,EAAO,EAAI3lD,EAAMslD,EAAQ,CAC3F,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,EAChC,CAAW,EACD,IAAK,GACf,EAAY,MACZ,CAAO,EAAG,KAAM,CAAC,YAAY,CAAC,EAE5B,CACF,CAAC,ECrED3pC,GAAS6yC,EAAG,EAWH,CAEL,GAAG0rF,GAAU,MACb,GAAGA,GAAU,OAAO,OAAO,CAACC,EAAU/7H,KAAW,CAAE,GAAG+7H,EAAU,GAAG/7H,EAAM,KAAK,GAAK,EAAE,EAIrF,uBAEWiT,GAAE,gBAAgB,EAc7B,iBAEWA,GAAE,SAAS,CAoTxB,ECtLF1V,GAAS2yC,EAAE,EAIFj9B,GAAE,UAAU,EAETwX,GAAU,OAAQ,oBAAoB,EAElD,OAAO,oCAAsC+xC,GAAU,OAAQ,0BAA2B,EAAE,EAC5F,OAAO,8CAAgDA,GAAU,OAAQ,gCAAiC,EAAE,EA8C5Gj/D,GAASuzC,GAAKE,EAAG,EAsIjBzzC,GAASkzC,EAAG,EA8LZlzC,GAASozC,GAAKG,GAAKC,EAAG,EAsetBxzC,GAAS4yC,GAAKG,EAAG,EC9/BjB,MAAKlL,GAAU,CACb,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,4HAA4H,iDAXxI4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,yCACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,6QCUpC,MAAMl0D,EAAQsxD,EAOR22F,EAAejjJ,GAAS,IAAM,GAAGhF,EAAM,KAAK,KAAK,GAAGA,EAAM,KAAK,IAAI,GAAGA,EAAM,KAAK,QAAQ,EAAE,EAK3FkoJ,EAAeljJ,GAAS,KAAOhF,EAAM,KAAK,MAAQ,IAAI,SAAW,EACpE,KAEA;AAAA,GACGA,EAAM,KAAK,MAAQ,IAEpB,IAAKwjJ,GAAa,KAAK,UAAUA,EAAU,OAAW,CAAC,EAAE,MAAM;AAAA,CAAI,EAAE,IAAK17G,GAAS,KAAKA,CAAI,EAAE,EAAE,KAAK;AAAA,CAAI,CAAC,EAC1G,KAAK;AAAA,CAAK,EACT;AAAA,EACH,oBAtCFksB,EAQK,WAPJI,EAKM,MALNlD,GAKM,CAJLkD,EAAgD,OAAhDjD,GAAgDuiD,GAAnBpiD,EAAA,KAAK,IAAI,KAC1BA,EAAA,KAAK,MAAjB+C,IAAAL,EAES,OAFT5C,GAESsiD,GADRJ,MAAC,gCAAqChiD,EAAA,KAAK,KAAI,mBAGjD8C,EAA8J,MAA9J7B,GAA8J,CAAjI6B,EAA2D,QAArD,MAAM,uBAAuB,YAAAs/C,GAAQu0C,EAAa,KAAD,cAAI7zF,EAAgE,QAA1D,MAAM,4BAA4B,YAAAs/C,GAAQw0C,EAAa,KAAD,gJCGtJ,MAAMloJ,EAAQsxD,gBAVb+C,EAAA,EAAAL,EAEK,KAFL9C,GAEK,EADJmD,EAAA,IAAAL,EAAsEujD,WAAvCv3G,EAAM,MAAK,CAAxB42F,EAAMrO,SAAxB4uB,GAAsEgxC,GAAA,CAAzB,IAAK5/D,EAAM,KAAAqO,CAAA,sUCkB1D,MAAM52F,EAAQsxD,EAYR82F,EAAgBpjJ,GAAS,IAAMhF,EAAM,UAAU,UAAU,MAAM,IAAI,EAAE,OAAS,GAAG,EAEjFqoJ,EAAmBrjJ,GAAS,IAAMhF,EAAM,UAAU,SAAWA,EAAM,UAAU,UAAY,KAAOA,EAAM,UAAU,QAAUA,EAAM,UAAU,aAAa,EAKvJsoJ,EAAqBtjJ,GAAS,IAC/BhF,EAAM,WACFk/B,GAAE,YAAa,wBAAyB,CAAE,UAAWkpH,EAAc,MAAO,EAE3EA,EAAc,KACrB,8CA3CA,OAAA/zF,EAAA,EAAAL,EASO,OATP9C,GASO,CARNkD,EAKM,MALNjD,GAKM,CAJLiD,EAEO,OAFPhD,GAEOsiD,GADH40C,EAAA,KAAkB,KAEtBl0F,EAA8D,OAA9D7B,GAA8DmhD,GAA1B20C,EAAA,KAAgB,OAEnCroJ,EAAM,gBAAxBm3G,GAA8FoxC,GAAA,OAAzD,MAAOvoJ,EAAM,UAAU,MAAO,MAAM,iDACrDA,EAAM,YAAcA,EAAM,UAAU,cAAxDm3G,GAA6HqxC,EAAA,OAA1D,WAAY,GAAO,UAAWxoJ,EAAM,UAAU,6FCAnH,eAAsByoJ,GAAexsH,EAAc,CAClD,GAAI,CACH,aAAM,OAAO,UAAU,UAAU,UAAUA,CAAI,EACxC,EACR,MAAY,CACX,OAAO,OACNiD,GAAE,YAAa,oDAAoD,EACnEjD,CAAA,CAEF,CACA,MAAO,EACR,CCTO,SAASysH,GAAiB52G,EAAe,CAC/C,MAAMkhE,EAAgB/B,GAAiBn/D,CAAK,EAEtC62G,EAAcC,GACA,KAAK,eAAe18F,GAAA,EAAsB,CAC5D,UAAW,SACX,UAAW,SACX,SAAU8mD,EAAc,iBAAmB,MAAQ,MAAQ,OAC3D,EACiB,OAAO,IAAI,KAAK41C,CAAI,CAAC,EAkBxC,MAAO,CACN,WAAAD,EACA,eAbuBpiG,GAEtB,IAAIA,EAAM,GAAG,KAAKgpD,GAAoBhpD,EAAM,KAAK,CAAC,KAAKA,EAAM,OAAO;AAAA,GACjEA,EAAM,OAAS,IAAKA,EAAM,MAAM,IAAIA,EAAM,GAAG;AAAA,EAAO,IACrDrnB,GAAE,YAAa;AAAA,EAA0C,CAC1D,QAASqnB,EAAM,YAAc,IAC7B,KAAMA,EAAM,MAAQ,IACpB,KAAMoiG,EAAWpiG,EAAM,IAAI,EAC3B,CAKF,CAEF,wPC2BA,MAAMvmD,EAAQsxD,EAMRpkC,EAAOqkC,EAKP,CAAE,WAAAo3F,EAAY,eAAAE,CAAA,EAAmBH,GAAA,EAKjCI,EAAsBt7I,GAAI,CAAC,CAACxN,EAAM,aAAa,SAAS,EAK9D2W,GAAY,IAAM,CACjBmyI,EAAoB,MAAQ,CAAC,CAAC9oJ,EAAM,aAAa,SAClD,CAAC,EAKD,MAAMe,EAAQiE,GAAS,IAAMhF,EAAM,WAAW,UAAWumD,GAAUA,IAAUvmD,EAAM,YAAY,CAAC,EAK1Fi8B,EAAOj3B,GAAS,IAAM,YAAc,KAAK,UAAUhF,EAAM,aAAc,KAAM,CAAC,EAAI,OAAO,EAKzF+oJ,EAAc/jJ,GAAS,IAAMuqG,GAAoBvvG,EAAM,aAAa,KAAK,CAAC,EAK1EgpJ,EAAahkJ,GAAS,IAAM2jJ,EAAW3oJ,EAAM,aAAa,IAAI,CAAC,EAK/DipJ,EAAgBjkJ,GAAS,IAAM,CACpC,oBACA,sBAAsBwqG,GAAcxvG,EAAM,aAAa,KAAK,CAAC,GAC7D,EAKD,eAAekpJ,GAAU,CACpB,MAAMT,GAAe,KAAK,UAAUzoJ,EAAM,YAAY,CAAC,GAC1D+wF,GAAY7xD,GAAE,YAAa,+BAA+B,CAAC,CAE7D,CAKA,eAAeiqH,GAAgB,CAC1B,MAAMV,GAAeI,EAAe7oJ,EAAM,YAAY,CAAC,GAC1D+wF,GAAY7xD,GAAE,YAAa,+BAA+B,CAAC,CAE7D,mBAzICi4E,GAkDU7D,EAAA/rB,EAAA,GAjDR,KAAMj2B,EAAA,KACP,KAAK,QACJ,YAAavwD,EAAA,MAAK,EAClB,QAASA,EAAA,MAAQuwD,EAAA,WAAW,OAAM,EAClC,OAAIa,EAAA,KAAAA,EAAA,GAAAgC,GAAEjnC,EAAI,sBAAwBokC,EAAA,WAAWvwD,EAAA,MAAK,KAClD,WAAQoxD,EAAA,KAAAA,EAAA,GAAAgC,GAAEjnC,EAAI,sBAAwBokC,EAAA,WAAWvwD,EAAA,MAAK,KACtD,+BAAamsB,EAAI,qBACP,WACV,IAuCM,CAvCNknC,EAuCM,MAvCNlD,GAuCM,CAtCLkD,EASK,MATA,SAAO60F,EAAA,KAAa,IACxB70F,EAAsC,aAA/Bk/C,EAAAp0E,EAAA,EAAC,yBACRk1B,EAA0B,aAAnB20F,EAAA,KAAW,KAClB30F,EAAoC,aAA7Bk/C,EAAAp0E,EAAA,EAAC,uBACRk1B,EAEK,UAAAs/C,GADDpiD,EAAA,cAAc,KAAOgiD,EAAAp0E,EAAA,EAAC,qCAE1Bk1B,EAAqC,aAA9Bk/C,EAAAp0E,EAAA,EAAC,wBACRk1B,EAAyB,aAAlB40F,EAAA,KAAU,SAElB50F,EAmBM,MAnBNjD,GAmBM,CAlBL51B,GAKW+3E,EAAAjhD,EAAA,GALA,aAAYihD,EAAAp0E,EAAA,EAAC,8BAAiC,QAAQ,WAAY,QAAOgqH,CAAA,GACxE,QACV,IAAmB,CAAnB3tH,GAAmB6tH,EAAA,eACT,IACX,CADW51C,GAAA,OACRF,EAAAp0E,EAAA,EAAC,2DAEL3D,GAKW+3E,EAAAjhD,EAAA,GALA,aAAYihD,EAAAp0E,EAAA,EAAC,oCAAuC,QAAQ,WAAY,QAAOiqH,CAAA,GAC9E,QACV,IAAmB,CAAnB5tH,GAAmB6tH,EAAA,eACT,IACX,CADW51C,GAAA,OACRF,EAAAp0E,EAAA,EAAC,iEAGEoyB,EAAA,aAAa,eADpB6lD,GAKW7D,EAAAjhD,EAAA,SAHV,MAAM,mBACL,QAAKF,EAAA,KAAAA,EAAA,GAAAgC,GAAE20F,EAAA,MAAmB,CAAIA,EAAA,oBAC/B,IAA+G,OAA5GA,EAAA,MAAsBx1C,EAAAp0E,EAAA,EAAC,sCAA0Co0E,EAAAp0E,EAAA,EAAC,+DAGvDoyB,EAAA,aAAa,eAA7B0C,EAGWujD,GAAA,SAFVh8E,GAAqH8tH,GAAA,CAAtG,UAAW/3F,EAAA,aAAa,UAAW,MAAM,yBAA0B,WAAYw3F,EAAA,sDAC9F10F,EAAI,oCAELA,EAGS,SAHThD,GAGS,CAFRgD,EAA8D,qBAA/Ck/C,EAAAp0E,EAAA,EAAC,iCAChB3D,GAAsE+3E,EAAA4wC,EAAA,GAA1D,MAAM,wBAAyB,KAAAjoH,EAAA,MAAK,wIChChDo1B,GAAU,CACb,KAAM,cACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,mQAAmQ,iDAX/Q4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,oCACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,qGCkBpC,MAAM++C,EAAWlB,GAAA,EAKXu3C,EAAc97I,GAAA,EAKd+7I,EAAevkJ,GAAS,IAAMiuG,EAAS,KAAK,EAOlD,SAASu2C,EAAcnsJ,EAAwB,CAC9C41G,EAAS,WAAW,OAAO51G,CAAK,CAAC,CAClC,CAKA,OAAAknF,GAAU,IAAK,IAAM,CACpB+kE,EAAY,OAAO,QACnBA,EAAY,OAAO,QACpB,EAAG,CAAE,KAAM,GAAM,QAAS,GAAM,cApD/BnyC,GAcc7D,EAAAm2C,EAAA,WAbT,cAAJ,IAAIH,EACJ,MAAM,oBACL,WAAYC,EAAA,MACb,gBACC,aAAYj2C,EAAAp0E,EAAA,EAAC,kCACb,YAAao0E,EAAAp0E,EAAA,EAAC,kCACd,qBAAsBqqH,EAAA,MACvB,mBAAmB,QAClB,sBAAmBC,EACnB,qCAAqBA,EAAa,OACxB,QACV,IAA0B,CAA1BjuH,GAA0BmuH,GAAA,CAAZ,KAAM,GAAE,2HCEpBr4F,GAAU,CACb,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,iFAAiF,iDAX7F4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,iCACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,kECO/B7C,GAAU,CACb,KAAM,oBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,sEAAsE,iDAXlF4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,2CACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,kECO/B7C,GAAU,CACb,KAAM,qBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,oEAAoE,iDAXhF4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,4CACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,uRCgDpC,MAAMl0D,EAAQsxD,EAKRpkC,EAAOqkC,EAKPo4F,EAAW3kJ,GAAS,IAAMhF,EAAM,QAAU,MAAS,EAKnD4pJ,EAAW5kJ,GAAS,IACrBhF,EAAM,SAAW,YACb6pJ,GACG7pJ,EAAM,SAAW,aACpB8pJ,GAEAC,EAER,EAKD,SAASC,GAAiB,CACzB,OAAQhqJ,EAAM,QACb,IAAK,YAAa,CACjBktB,EAAK,gBAAiB,YAAY,EAClC,KACD,CACA,IAAK,aAAc,CAClBA,EAAK,gBAAiB,EAAE,EACxB,KACD,CACA,IAAK,GAAI,CACRA,EAAK,gBAAiB,WAAW,EACjC,KACD,EAEF,mBAlGC8mC,EAoBK,MApBA,YAAW21F,EAAA,OAAQ,CACvBv1F,EAkBM,MAlBNjD,GAkBM,CAhBEG,EAAA,cADP6lD,GAWW7D,EAAAjhD,EAAA,SATT,QAASryD,EAAM,OAAM,qCACrB,aAAYsxD,EAAA,KACZ,eAAY,EAAItxD,EAAM,OACtB,KAAM,GACN,WAAYgqJ,EAAc,YAChB,QACV,IAAuC,EAAvC31F,EAAA,EAAA8iD,GAAuC8yC,GAAvBL,EAAA,KAAQ,GAAG,KAAM,GAAE,gBACzB,IACX,CADWp2C,GAAA,OACRliD,EAAA,IAAI,6DAER0C,EAEO,cAFO,MAAO1C,EAAA,KAAM,MAAM,6BAC7BA,EAAA,IAAI,IAAAF,EAAA,GAGRgnD,GAAQlmD,EAAA,wFCxBLg4F,GAAoB,CACxB,cAAe,CACb,KAAK,KAAO,KAAK,QAAO,CAC1B,EACA,MAAO,CACL,MAAO,CAGL,KAAM,KAAK,QAAO,CACxB,CACE,EACA,SAAU,CACR,YAAa,CACX,OAAO,KAAK,MAAQ,KAAK,KAAK,KAAI,EAAG,OAAS,EAChD,CACJ,EACE,QAAS,CACP,SAAU,CACR,OAAO,KAAK,OAAO,UAAO,EAAK,CAAC,EAAE,UAAU,OAAI,GAAQ,EAC1D,CACJ,CACA,EClBMC,GAAkB,CACtB,OAAQ,CAACD,EAAiB,EAC1B,MAAO,CAIL,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAII,MAAO,CACL,KAAM,OACN,QAAS,EACf,EAII,gBAAiB,CACf,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,OACN,QAAS,IACf,CACA,EACE,OAAQ,CACN,UAAW,CACT,KAAM5oE,EACZ,CACA,EACE,MAAO,CACL,OACJ,EACE,SAAU,CACJ,eAAgB,KAAK,MAG3B,EACA,SAAU,CAMR,WAAY,CACV,GAAI,CACF,MAAO,CAAC,CAAC,IAAI,IAAI,KAAK,KAAM,KAAK,KAAK,WAAW,GAAG,EAAI,OAAO,SAAS,OAAS,MAAM,CACzF,MAAQ,CACN,MAAO,EACT,CACF,CACJ,EACE,QAAS,CACP,QAAQn0D,EAAO,CACb,KAAK,MAAM,QAASA,CAAK,EACrB,KAAK,iBACP,KAAK,UAAU,EAAK,CAExB,CACJ,CACA,ECtEMkkC,GAAY,CAChB,KAAM,iBACN,WAAY,CACV,iBAAAuC,EACJ,EACE,OAAQ,CAACu2F,EAAe,EACxB,OAAQ,CACN,iBAAkB,CAChB,KAAM9oE,GACN,QAAS,EACf,CACA,EACE,MAAO,CAIL,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAKI,OAAQ,CACN,KAAM,QACN,QAAS,EACf,EAMI,KAAM,CACJ,KAAM,OACN,QAAS,SACT,UAAY+oE,GAAa,CAAC,SAAU,WAAY,QAAS,QAAS,QAAQ,EAAE,SAASA,CAAQ,CACnG,EAYI,WAAY,CACV,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,IACf,EAKI,MAAO,CACL,KAAM,OACN,QAAS,IACf,EAII,YAAa,CACX,KAAM,OACN,QAAS,EACf,CACA,EACE,MAAO,CAAC,mBAAmB,EAC3B,OAAQ,CACN,MAAO,CACL,SAAAr3F,GACA,gBAAAG,EACN,CACE,EACA,SAAU,CAMR,aAAc,CACZ,MAAO,CAAC,KAAK,QACf,EAIA,WAAY,CACV,OAAI,KAAK,OAAS,SAAW,OAAO,KAAK,YAAe,UAC/C,KAAK,aAAe,KAAK,MAE3B,KAAK,UACd,EAIA,YAAa,CACX,OAAI,KAAK,OAAS,UAAY,KAAK,OAAS,QACnC,KAAK,KAEP,QACT,EAIA,kBAAmB,CACjB,MAAM3N,EAAa,GACnB,OAAI,KAAK,kBACPA,EAAW,KAAO,WACd,KAAK,OAAS,SAChBA,EAAW,KAAO,gBAClBA,EAAW,cAAc,EAAI,KAAK,UAAY,OAAS,UAC9C,KAAK,OAAS,YAAc,KAAK,aAAe,UAAY,KAAK,aAAe,QACzFA,EAAW,KAAO,mBAClBA,EAAW,cAAc,EAAI,KAAK,aAAe,KAAO,QAAU,KAAK,WAAa,OAAS,UAEtF,KAAK,aAAe,MAAQ,KAAK,aAAe,WACzDA,EAAW,cAAc,EAAI,KAAK,WAAa,OAAS,SAEnDA,CACT,CACJ,EACE,QAAS,CAMP,YAAYp4B,EAAO,CACjB,KAAK,QAAQA,CAAK,GACd,KAAK,aAAe,MAAQ,KAAK,OAAS,YACxC,KAAK,OAAS,QACZ,OAAO,KAAK,YAAe,UACxB,KAAK,WACR,KAAK,MAAM,oBAAqB,KAAK,KAAK,EAG5C,KAAK,MAAM,oBAAqB,CAAC,KAAK,SAAS,EAGjD,KAAK,MAAM,oBAAqB,CAAC,KAAK,SAAS,EAGrD,CACJ,CACA,EACM+jC,GAAa,CAAC,MAAM,EACpBC,GAAa,CAAC,aAAc,WAAY,QAAS,MAAM,EACvDC,GAAa,CAAE,MAAO,iCAAiC,EACvDmB,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACMC,GAAa,CAAC,aAAa,EAC3BuzB,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACMC,GAAa,CAAC,aAAa,EAC3B4gE,GAAa,CACjB,IAAK,EACL,MAAO,kDACT,EACA,SAAS9lE,GAAY5uB,EAAMC,EAAQ+B,EAAQ6sB,EAAQC,EAAOC,EAAU,CAClE,MAAMopE,EAA8B5mI,GAAiB,kBAAkB,EACvE,OAAO8B,EAAS,EAAIuV,EAAmB,KAAM,CAC3C,MAAOj7B,GAAe,CAAC,SAAU,CAAE,mBAAoBq0D,EAAO,QAAQ,CAAE,CAAC,EACzE,KAAM+sB,EAAS,kBAAoB,cACvC,EAAK,CACD7uB,EAAmB,SAAUr2B,GAAW,CACtC,aAAcm2B,EAAK,UACnB,MAAO,CAAC,2BAA4B,CAClC,wBAAyB+uB,EAAS,UAClC,UAAWA,EAAS,WAC5B,CAAO,EACD,SAAU/sB,EAAO,SACjB,MAAOhC,EAAK,MACZ,KAAM+uB,EAAS,UACrB,EAAOA,EAAS,iBAAkB,CAC5B,QAAS9uB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIlqD,IAASg5E,EAAS,aAAeA,EAAS,YAAY,GAAGh5E,CAAI,EAC1G,CAAK,EAAG,CACFgd,GAAWitC,EAAK,OAAQ,OAAQ,GAAI,IAAM,CACxCE,EAAmB,OAAQ,CACzB,MAAOvyD,GAAe,CAAC,CAACqyD,EAAK,UAAY,2BAA6BA,EAAK,IAAI,EAAG,qBAAqB,CAAC,EACxG,MAAOjzD,GAAe,CAAE,gBAAiBizD,EAAK,UAAY,OAAOA,EAAK,IAAI,IAAM,IAAI,CAAE,EACtF,cAAe,MACzB,EAAW,KAAM,CAAC,CAClB,EAAS,EAAI,EACPE,EAAmB,OAAQhB,GAAY,CACrCc,EAAK,MAAQ3sC,EAAS,EAAIuV,EAAmB,SAAUy3B,GAAY3wD,GAAgBswD,EAAK,IAAI,EAAG,CAAC,GAAK10C,GAAmB,GAAI,EAAI,EAChI00C,EAAK,YAAc3sC,IAAauV,EAAmB,OAAQ,CACzD,IAAK,EACL,MAAO,0BACP,YAAal5B,GAAgBswD,EAAK,IAAI,CAChD,EAAW,KAAM,EAAGM,EAAU,IAAMjtC,EAAS,EAAIuV,EAAmB,OAAQirD,GAAYnkF,GAAgBswD,EAAK,IAAI,EAAG,CAAC,GAC7GgC,EAAO,aAAe3uC,IAAauV,EAAmB,OAAQ,CAC5D,IAAK,EACL,MAAO,6BACP,YAAal5B,GAAgBsyD,EAAO,WAAW,CACzD,EAAW,KAAM,EAAG8xB,EAAU,GAAKxoE,GAAmB,GAAI,EAAI,CAC9D,CAAO,EACD02C,EAAO,QAAU3uC,IAAaC,GAAY6kI,EAA6B,CACrE,IAAK,EACL,MAAO,2BACP,YAAa,GACb,KAAMtpE,EAAO,eACrB,EAAS,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKE,EAAS,WAAa17D,EAAS,EAAIC,GAAY6kI,EAA6B,CACnG,IAAK,EACL,KAAMtpE,EAAO,SACb,MAAO,6BACf,EAAS,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKE,EAAS,YAAc,IAAS17D,EAAS,EAAIuV,EAAmB,OAAQ8rH,EAAU,GAAKppI,GAAmB,GAAI,EAAI,EAC3IA,GAAmB,GAAI,EAAI,CACjC,EAAO,GAAI2zC,EAAU,CACrB,EAAK,GAAID,EAAU,CACnB,CACA,MAAMo5F,GAAiCt5F,GAAYK,GAAW,CAAC,CAAC,SAAUyvB,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC7NnH5vB,GAAa,CAAC,iBAAkB,QAAS,aAAa,EACtDG,GAA4B3wC,GAAgB,CAChD,OAAQ,aACR,MAAO,CACL,UAAW,GACX,OAAQ,CAAE,QAAS,KAAO,CAAE,UAAW,SAAU,UAAW,OAAO,EAAG,EACtE,aAAc,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,MAAM,EACxD,cAAe,CAAE,KAAM,OAAO,CAClC,EACE,MAAM4wC,EAAS,CACb,MAAMtxD,EAAQsxD,EACRi5F,EAAcvlJ,GAAS,KAAO,CAAE,OAAQhF,EAAM,MAAM,EAAG,EACvDwqJ,EAAsBxlJ,GAAS,KAAO,CAC1C,cAAehF,EAAM,cACrB,aAAcA,EAAM,cAAgB,OACpC,OAAQA,EAAM,eAAiB,EACrC,EAAM,EACIkjF,EAAQc,GAAc/0E,GAAM,IAAMjP,EAAM,SAAS,EAAGuqJ,CAAW,EAC/D3mE,EAAeH,GAAsBx0E,GAAM,IAAMjP,EAAM,SAAS,EAAGwqJ,CAAmB,EACtFC,EAAgBzlJ,GAAS,IAAMhF,EAAM,aAAe4jF,EAAa,MAAQV,EAAM,KAAK,EAC1F,MAAO,CAAChxB,EAAMC,KACL5sC,EAAS,EAAIuV,EAAmB,OAAQ,CAC7C,MAAO,cACP,IAAK,OACL,iBAAkBw2B,EAAQ,UAC1B,MAAOzjD,EAAMq1E,CAAK,EAClB,YAAathF,GAAgB6oJ,EAAc,KAAK,CACxD,EAAS,KAAM,EAAGv5F,EAAU,EAE1B,CACF,CAAC,ECZIG,GAAU,CACb,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,4DAA4D,iDAXxE4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,yCACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,kECO/B7C,GAAU,CACb,KAAM,gBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,8DAA8D,iDAX1E4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,uCACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,kECO/B7C,GAAU,CACb,KAAM,eACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,GAAE,6EAA6E,iDAXzF4C,EAeO,OAfPC,GAAc/B,EAAA,OAAM,CACb,cAAagC,EAAA,MAAK,YAClB,aAAYA,EAAA,MACb,MAAM,sCACN,KAAK,MACJ,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAA,MAAK,QAAUiC,CAAM,WACjCH,EAQM,OARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPhD,GAEO,CADQ8C,EAAA,OAAbG,EAAA,EAAAL,EAAuC,cAAhBE,EAAA,KAAK,uRC+EpC,MAAMl0D,EAAQsxD,EAURpkC,EAAOqkC,EAIPyhD,EAAgB/B,GAAA,EAChBy5C,EAAY1lJ,GAAS,IAAMguG,EAAc,iBAAmB,KAAK,EACjE23C,EAAiB3lJ,GAAS,IAAMguG,EAAc,iBAAmB,UAAU,EAC3EvB,EAAiBzsG,GAAS,KAAO,CACtC,UAAW,SACX,UAAW,SACX,SAAUguG,EAAc,iBAAmB,MAAQ,MAAQ,QAC1D,EAEI,CAAE,eAAA61C,CAAA,EAAmBH,GAAA,EAErB36F,EAAY/oD,GAAS,IAAM,KAAK,MAAMhF,EAAM,IAAI,IAAI,CAAC,EAKrD4qJ,EAAap9I,GAAI,EAAK,EAKtBq9I,EAAiB7lJ,GAAS,IACxB,CAAChF,EAAM,IAAI,WAAcA,EAAM,IAAI,UAAYA,EAAM,IAAI,UAAU,SAAW4qJ,EAAW,KAChG,EAKK7B,EAAc/jJ,GAAS,IAAMuqG,GAAoBvvG,EAAM,IAAI,KAAK,CAAC,EAKjEipJ,EAAgBjkJ,GAAS,IAAM,CACpC,gBACA,kBAAkBwqG,GAAcxvG,EAAM,IAAI,KAAK,CAAC,GAChD,EAKK8qJ,EAAkBt9I,GAAA,EAKxB,eAAe07I,GAAU,CACpB,MAAMT,GAAe,KAAK,UAAUzoJ,EAAM,GAAG,CAAC,GACjD+wF,GAAY7xD,GAAE,YAAa,+BAA+B,CAAC,CAE7D,CAKA,eAAeiqH,GAAgB,CAC1B,MAAMV,GAAeI,EAAe7oJ,EAAM,GAAG,CAAC,GACjD+wF,GAAY7xD,GAAE,YAAa,+BAA+B,CAAC,CAE7D,CAMA,SAAS6rH,GAAgB,CACpBH,EAAW,MACd33I,GAAS,IAAM,CACd,MAAM0lD,EAASmyF,EAAgB,OAAO,cAAgB,EAClDA,EAAgB,QACnBA,EAAgB,MAAM,MAAM,OAAS,GAAGnyF,CAAM,KAEhD,CAAC,EACSmyF,EAAgB,QAAU,SACpCA,EAAgB,MAAM,MAAM,OAAS,GAEvC,CAGA,OAAA5nI,GAAU,IAAM6nI,CAAa,EAC7B/6I,GAAM46I,EAAY,IAAMG,CAAa,cApLpC/2F,EA+DK,cA/DG,kBAAJ,IAAI82F,EAAmB,mBAAmBF,EAAA,MAAU,IACvDx2F,EAEK,MAFA,SAAO60F,EAAA,KAAa,IACxB70F,EAA8B,eAArB20F,EAAA,KAAW,SAErB30F,EAEK,MAFA,MAAO9C,EAAA,IAAI,MACf8C,EAA0B,YAAAs/C,GAAjBpiD,EAAA,IAAI,GAAG,YAEjB8C,EAwBK,MAxBD,MAAM,cAAe,QAAKjC,EAAA,KAAAA,EAAA,GAAAgC,GAAEy2F,EAAA,MAAU,CAAIA,EAAA,SAC7Cx2F,EAsBM,OAtBD,MAAK42F,GAAA,CAAC,yBAAwB,oCAA+CJ,EAAA,MAAU,KAC3Fx2F,EAKM,MALNjD,GAKM,CAJeG,EAAA,IAAI,eAAxB6lD,GAAgEkyC,GAAA,OAA5B,UAAW/3F,EAAA,IAAI,4CACxCu5F,EAAA,WAAX72F,EAEM,aAFqB,MAAM,4BAA6B,MAAO1C,EAAA,IAAI,SACrEoiD,GAAApiD,EAAA,IAAI,OAAO,IAAAF,EAAA,eAGhBgD,EAcM,MAdN7B,GAcM,CAbLh3B,GAYW+3E,EAAAjhD,EAAA,GAXV,QAAQ,yBACP,aAAoBu4F,EAAA,MAAqBt3C,EAAAp0E,EAAA,EAAC,4BAAwCo0E,EAAAp0E,EAAA,EAAC,0BAKnF,QAAKizB,EAAA,KAAAA,EAAA,GAAA84F,GAAA92F,GAAOy2F,EAAA,MAAU,CAAIA,EAAA,MAAU,aAC1B,QACV,IAA8C,CAAzBA,EAAA,WAArBzzC,GAA8C+zC,GAAA,OAAZ,KAAM,WACxC/zC,GAAqCg0C,GAAA,OAAZ,KAAM,uCAMpC/2F,EAQK,WAPQs2F,EAAA,WAAZ12F,EAA4C,OAAAxB,GAAAkhD,GAAlBpiD,EAAA,IAAI,IAAI,WAClC6lD,GAK4B7D,EAAA83C,EAAA,GAH1B,IAAK93C,EAAAN,CAAA,EAAc,eACnB,UAAWjlD,EAAA,MACX,aAAc48F,EAAA,OAAc,OAC5B,OAAQl5C,EAAA,wDAEXr9C,EAqBK,WApBJ74B,GAmBY+3E,EAAA/vB,EAAA,GAnBD,UAAU,cAAY,YAChC,IAKiB,CALjBhoD,GAKiB+3E,EAAAg3C,EAAA,GALD,mBAAiB,QAAKn4F,EAAA,KAAAA,EAAA,GAAAgC,GAAEjnC,EAAI,cAAgBokC,EAAA,GAAG,KACnD,QACV,IAAgB,CAAhB/1B,GAAgB8vH,EAAA,eACN,IACX,CADW73C,GAAA,OACRF,EAAAp0E,EAAA,EAAC,wCAEL3D,GAKiB+3E,EAAAg3C,EAAA,GALD,mBAAiB,QAAOpB,CAAA,GAC5B,QACV,IAAmB,CAAnB3tH,GAAmB6tH,EAAA,eACT,IACX,CADW51C,GAAA,OACRF,EAAAp0E,EAAA,EAAC,0CAEL3D,GAKiB+3E,EAAAg3C,EAAA,GALD,mBAAiB,QAAOnB,CAAA,GAC5B,QACV,IAAmB,CAAnB5tH,GAAmB6tH,EAAA,eACT,IACX,CADW51C,GAAA,OACRF,EAAAp0E,EAAA,EAAC,sWCqBHosH,GAAc,oDANpB,MAAMtrJ,EAAQsxD,EAQR0hD,EAAgB/B,GAAA,EAChBgC,EAAWlB,GAAA,EAEXw5C,EAAgB/9I,GAAqB,EAAE,EACvCg+I,EAAch+I,GAAqB,EAAE,EACrCi+I,EAAej+I,GAAqB,YAAY,EAKhDk+I,EAAe1mJ,GAAS,IACtBhF,EAAM,KAAK,OAAQ41I,GAAS5iC,EAAc,YAAyB,SAAS4iC,EAAI,KAAK,CAAC,CAC7F,EAKK+V,EAAcn+I,GAAI,EAAK,EAKvBo+I,EAAap+I,GAAexN,EAAM,KAAK,CAAC,CAAC,EAO/C,SAAS6rJ,EAAkBjW,EAAgB,CAC1CgW,EAAW,MAAQhW,EACnB+V,EAAY,MAAQ,EACrB,CAKA,MAAMG,EAAYt+I,GAAA,EACZu0I,EAAYv0I,GAAA,EAKlB,eAAe8kG,GAAW,CACzB,MAAMy5C,EAAa94C,EAAS,QAAQ,OACpC,MAAMA,EAAS,WAEfhgG,GAAS,IAAM,CACd,GAAIw4I,EAAa,QAAU,YAAa,CACvC,MAAMO,EAA4B/4C,EAAS,QAAQ,OAAS84C,EAAa,EACnEE,EAAqBlK,EAAU,OAAO,cAAc,kBAAkBiK,CAAyB,GAAG,EACpGC,GACHA,EAAmB,eAAe,CAAE,MAAO,QAAS,CAEtD,CACD,CAAC,CACF,CAOA,MAAMC,EAAalnJ,GAAS,IAAM,CACjC,MAAMmnJ,EAAS,CAAC,GAAGT,EAAa,KAAK,EAC/BU,EAA2B,CAAC7rJ,EAAcC,IAAiBD,EAAE,MAAQC,EAAE,MACvE6rJ,EAAyB,CAAC9rJ,EAAcC,IAAiBD,EAAE,IAAI,cAAcC,EAAE,GAAG,EAClF8rJ,EAA0B,CAAC/rJ,EAAcC,IAAiBD,EAAE,KAAK,cAAcC,EAAE,KAAM,IAAI,EAE3FoqF,EAAQ,CAACjtF,EAAqB4I,EAAchG,EAAcC,KAAiB+F,IAAS,YAAc5I,EAAG4C,EAAGC,EAAC,EAAK+F,IAAS,aAAe5I,EAAG6C,GAAGD,CAAC,EAAI,EAEvJ,OAAA4rJ,EAAO,KAAK,CAAC5rJ,EAAGC,IAAMoqF,EAAMwhE,EAASb,EAAc,MAAOhrJ,EAAGC,CAAC,GAAKoqF,EAAMyhE,EAAOb,EAAY,MAAOjrJ,EAAGC,CAAC,GAAKoqF,EAAM0hE,EAAQb,EAAa,MAAOlrJ,EAAGC,CAAC,CAAC,EAC5I2rJ,CACR,CAAC,EAKKI,EAAiB/+I,GAA2B,IAAI,EAEhDg/I,EAAuBh/I,GAAI,CAAC,EAC5BqwH,EAAa74H,GAAS,IAAM,KAAK,IAAI,EAAGwnJ,EAAqB,MAAQlB,EAAW,CAAC,EAEjFmB,EAAkBj/I,GAAI,CAAC,EACvBk/I,EAAkBl/I,GAAI,EAAE,EACxBm/I,EAAiBn/I,GAAI,EAAE,EACvBo/I,EAAkB5nJ,GAAS,IAAM,KAAK,MAAMynJ,EAAgB,MAAQC,EAAgB,OAASC,EAAe,KAAK,EAAIrB,GAAc,CAAC,EAEpIuB,EAAgB7nJ,GAAS,IAAMknJ,EAAW,MAAM,MAAMruB,EAAW,MAAOA,EAAW,MAAQ+uB,EAAgB,KAAK,CAAC,EAEjHE,EAAa9nJ,GAAS,IAAM,CACjC,MAAM+nJ,EAAiBlvB,EAAW,MAAQ+uB,EAAgB,MAAQV,EAAW,MAAM,OAC7ElgG,EAAYkgG,EAAW,MAAM,OAASruB,EAAW,MAAQ+uB,EAAgB,MACzEI,EAAmB,KAAK,IAAId,EAAW,MAAM,OAASruB,EAAW,MAAO7xE,CAAS,EAEvF,MAAO,CACN,WAAY,GAAG6xE,EAAW,MAAQ8uB,EAAe,KAAK,KACtD,cAAeI,EAAiB,EAAI,GAAGC,EAAmBL,EAAe,KAAK,KAEhF,CAAC,EAED7vI,GAAU,IAAM,CACfyvI,EAAe,MAAQ,IAAI,eAAej4F,GAAS,IAAM,CACxDm4F,EAAgB,MAAQX,EAAU,OAAO,cAAgB,EACzDY,EAAgB,MAAQZ,EAAU,OAAO,cAAc,yBAAyB,GAAG,cAAgB,GACnGa,EAAe,MAAQb,EAAU,OAAO,cAAc,kCAAkC,GAAG,cAAgB,GAC3GzrE,GAAO,MAAM,0CAA2C,CAAE,SAAUwsE,EAAc,MAAM,OAAQ,MAAOnB,EAAa,MAAM,OAAQ,EAClIuB,EAAA,CACD,EAAG,GAAG,CAAC,EAEPV,EAAe,MAAM,QAAQT,EAAU,KAAM,EAC7CA,EAAU,MAAO,iBAAiB,SAAUmB,CAAQ,CACrD,CAAC,EAEDlwI,GAAgB,IAAM,CACjBwvI,EAAe,OAClBA,EAAe,MAAM,YAEvB,CAAC,EAKD,SAASU,GAAW,CACnBT,EAAqB,MAAQ,KAAK,IAAI,EAAG,KAAK,MAAMV,EAAU,MAAO,UAAYa,EAAe,KAAK,CAAC,CACvG,eA/MCt4F,EAAA,EAAAL,EAwDM,MAxDN9C,GAwDM,CAtDE06F,EAAA,WADPz0C,GAI4B+1C,GAAA,OAFnB,KAAMvB,EAAA,qCAAAA,EAAW,MAAAx3F,GACjB,aAAcy3F,EAAA,6CAAAA,EAAU,MAAAz3F,GAC/B,WAAY+3F,EAAA,+DACd93F,EAiDQ,iBAjDG,YAAJ,IAAI03F,EAAY,MAAM,qBAC5B13F,EAgBQ,QAhBRjD,GAgBQ,CAfPiD,EAcK,WAbJ74B,GAEmC4xH,GAAA,CAD1B,OAAQ5B,EAAA,uCAAAA,EAAa,MAAAp3F,GAC5B,KAAMm/C,EAAAp0E,EAAA,EAAC,gDACT3D,GAEyC4xH,GAAA,CADhC,OAAQ3B,EAAA,uCAAAA,EAAW,MAAAr3F,GAC1B,KAAMm/C,EAAAp0E,EAAA,EAAC,sDACT3D,GAEiB4xH,GAAA,CAFA,KAAM75C,EAAAp0E,EAAA,EAAC,uBAA2B,SAAU,gBAC5D,IAAa,CAAb3D,GAAa6xH,EAAA,qBAEd7xH,GAEkC4xH,GAAA,CADzB,OAAQ1B,EAAA,uCAAAA,EAAY,MAAAt3F,GAC3B,KAAMm/C,EAAAp0E,EAAA,EAAC,+CACTk1B,EAAuF,WAAnFA,EAA8E,OAA9EhD,GAA8EsiD,GAA7CJ,EAAAp0E,EAAA,EAAC,2CAGxCk1B,EAkBQ,iBAlBG,YAAJ,IAAI2tF,EAAa,SAAO+K,EAAA,KAAU,EAAE,MAAM,oBACtCrB,EAAA,QAAY,aAAtBp3F,IAAAL,EASK,KATLzB,GASK,CARJ6B,EAOK,WANwBk/C,EAAAL,CAAA,EAAS,yBAArCkE,GAEuBk2C,GAAA,OAFoC,eAAc/6C,CAAA,cACxE,IAAiD,OAA9CgB,EAAAp0E,EAAA,EAAC,uDAELm1B,EAAA,EAAAL,EAEO,aADHs/C,EAAAp0E,EAAA,EAAC,yEAKP80B,EAKoCujD,GAAA,KAAAC,GAJrBq1C,EAAA,MAAPjX,QADRz+B,GAKoCm2C,GAAA,CAHlC,IAAK1X,EAAI,GACT,IAAAA,EACD,MAAM,iBACL,cAAaiW,CAAA,8BAEhBz3F,EAWQ,QAXR2xB,GAWQ,CAVG0lE,EAAA,QAAY,aAAtBp3F,IAAAL,EASK,KATLgyB,GASK,CARJ5xB,EAOK,WANwBk/C,EAAAL,CAAA,EAAS,yBAArCkE,GAEuBk2C,GAAA,OAFoC,eAAc/6C,CAAA,cACxE,IAAiD,OAA9CgB,EAAAp0E,EAAA,EAAC,uDAELm1B,EAAA,EAAAL,EAEO,aADHs/C,EAAAp0E,EAAA,EAAC,oRCWX,MAAMquH,EAAmB//I,GAAI,EAAK,EAG5BwlG,EAAgB/B,GAAA,EAGhBu8C,EAAez7C,GAAA,EAEfhwG,EAAUiD,GAAS,IAAMwoJ,EAAa,OAAO,EAKnD,SAASC,GAAkB,CAC1Bz6C,EAAc,UAAY,OAE1Bw6C,EAAa,WAAa,GAC1BA,EAAa,UACd,CAOA,SAASE,EAAcvgI,EAAuB,CAG7C,GAFAA,EAAM,iBAEFA,EAAM,cAAe,CACxB,MAAMwgI,EAAQxgI,EAAM,cAAc,QAAQ,MAAM,EAChDqgI,EAAa,SAASG,CAAK,CAC5B,CACD,CAEA7wI,GAAU,IAAM,OAAO,iBAAiB,QAAS4wI,CAAa,CAAC,EAC/D9qI,GAAY,IAAM,OAAO,oBAAoB,QAAS8qI,CAAa,CAAC,EAKpE/2I,GAAY,IAAM,CACbq8F,EAAc,SAAWA,EAAc,UAC1Cw6C,EAAa,eAEbA,EAAa,aAEf,CAAC,EAED1wI,GAAU,IAAM,CACf0wI,EAAa,UACd,CAAC,EAED5qI,GAAY,IAAM,CACjB4qI,EAAa,aACd,CAAC,EAGD,MAAMI,EAAmB1uH,GACxB,YACA,wHACA,CACC,QAAS,wBACT,OAAQ,2BAET,EACA,CACC,SAAU,GACV,OAAQ,GACT,gBAjIAm1B,EAAA,EAAAL,EA0CM,MA1CN9C,GA0CM,CAzCLkD,EAaM,MAbNjD,GAaM,CAZLiD,EAA2C,aAApCk/C,EAAAp0E,EAAA,EAAC,8BAER3D,GASW+3E,EAAAjhD,EAAA,GART,aAAYihD,EAAAp0E,EAAA,EAAC,wCACd,MAAM,kBACN,QAAQ,WACP,uBAAOquH,EAAA,MAAgB,MACb,QACV,IAAsB,CAAtBhyH,GAAsBsyH,GAAA,CAAZ,KAAM,GAAE,eACR,IACX,CADWr6C,GAAA,OACRF,EAAAp0E,EAAA,EAAC,kEAIYo0E,EAAAN,CAAA,EAAc,eAAhCmE,GAOa7D,EAAAv/C,EAAA,SAP8B,KAAK,OAAO,MAAM,yBAC5D,IAKM,CALNK,EAKM,MALNhD,GAKM,CAJLgD,EAA4G,SAAAs/C,GAAtGJ,EAAAp0E,EAAA,EAAC,2DAAgEo0E,EAAAN,CAAA,EAAc,cAAa,MAClGz3E,GAEW+3E,EAAAjhD,EAAA,GAFD,QAAQ,YAAa,QAAOo7F,CAAA,cACrC,IAAuC,OAApCn6C,EAAAp0E,EAAA,EAAC,sDAIiBo0E,EAAAN,CAAA,EAAc,uBAAtCmE,GAEa7D,EAAAv/C,EAAA,SAFkC,KAAK,OAAO,MAAM,yBAChE,IAAoD,CAApDK,EAAoD,YAA9Ck/C,EAAAp0E,EAAA,EAAC,kDAGQo0E,EAAAN,CAAA,EAAc,aAA9BmE,GAAyD22C,GAAA,OAAjB,KAAM/rJ,EAAA,8BAC9Co1G,GAUiB7D,EAAA5gD,EAAA,SAVO,KAAM4gD,EAAAp0E,EAAA,EAAC,6BACnB,QACV,IAA6B,CAA7B3D,GAA6BwyH,GAAA,CAAZ,KAAM,GAAE,IAEf,eACV,IAA0F,CAAvFv6C,GAAAE,GAAAJ,EAAAp0E,EAAA,qFAAuF,IAC1F,eAAAk1B,EAAI,oBAEJA,EAAkC,QAA5B,UAAQk/C,EAAAs6C,CAAA,GAAgB,OAAAr7F,EAAA,sBAIhCh3B,GAAqDyyH,GAAA,CAA1B,KAAMT,EAAA,qCAAAA,EAAgB,MAAAp5F,EAAA,qECtC7CriB,GAAQI,GAAA,EAEdhL,GAAU+mH,EAAG,EACX,IAAIn8G,EAAK,EACT,MAAM,iBAAiB","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","toNumber","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","match","tmp","normalizeClass","name","normalizeProps","props","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","seen","equal","looseEqual","looseCompareCollections","candidates","matched","index","looseCompareObjects","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseCompareNested","compare","seenA","seenB","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","normalizeCssVarValue","activeEffectScope","EffectScope","detached","l","scopes","effects","currentEffectScope","current","fromParent","last","effectScope","getCurrentScope","onScopeDispose","failSilently","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","getDepFromReactive","object","depMap","reactiveReadArray","array","raw","isShallow","isReadonly","isReactive","toReadonly","toReactive","shallowReadArray","toRaw","toWrapped","arrayInstrumentations","iterator","args","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","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","shallowReadonly","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","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","nestedRef","GetterRefImpl","_getter","toRef","defaultValue","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","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","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","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","prevStackSize","blockStack","closeBlock","withDirectives","vnode","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","provide","currentInstance","provides","parentProvides","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","hasInjectionContext","ssrContextKey","useSSRContext","watchEffect","doWatch","watchSyncEffect","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","watchStopHandle","isPre","queuePostRenderEffect","isFirstRun","watch$1","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","pendingMounts","TeleportEndKey","isTeleport","isTeleportDisabled","isTeleportDeferred","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","parentNode","disabled","dynamicChildren","mount","container2","anchor2","mountToTarget","disabled2","targetAnchor","prepareAnchor","updateCssVars","queuePendingMount","mountJob","mountContainer","placeholder","mainAnchor","pendingMount","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","unmount","hostRemove","doRemove","shapeFlag","children","targetStart","shouldRemove","child","hydrateTeleport","parentAnchor","move","moveType","isReorder","node","nextSibling","hydrateChildren","hydrateAnchor","target2","targetNode","hydrateDisabledTeleport","node2","vnode2","Teleport","isDisabled","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","slots","getTransitionRawChildren","findNonCommentChild","createCommentVNode","rawProps","mode","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","Comment","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","hooks2","isKeepAlive","cloneVNode","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","markAsyncBoundary","useTemplateRef","refs","isTemplateRefKey","desc","pendingSetRefMap","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","pendingSetRef","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","component","resolveDirective","warnMissing","Component","selfName","getComponentName","resolve","registry","renderList","renderItem","cached","sourceIsArray","sourceIsReactiveArray","isReadonlySource","keys","createSlots","dynamicSlots","slot","j","renderSlot","fallback","noSlotted","branchKey","slotProps","hasProps","openBlock","createBlock","createVNode","rendered","validSlotContent","ensureValidVNode","slotKey","vnodes","isVNode","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","PublicInstanceProxyHandlers","data","accessCache","appContext","shouldCacheAccess","publicGetter","cssModule","globalProperties","cssModules","descriptor","useSlots","getContext","useAttrs","calledFunctionName","createSetupContext","normalizePropsOrEmits","mergeModels","applyOptions","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","lastApp","useModel","camelizedName","hyphenatedName","getModelModifiers","localValue","prevSetValue","prevEmittedValue","propValue","emittedValue","hasVModel","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","root","filterModelListeners","shouldUpdateComponent","nextVNode","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","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","customElement","patchElement","vnodeHook","transition","dirs","resolveChildrenNamespace","setScopeId","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","isSuspense","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","update","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","leave","delayLeave","afterLeave","remove2","performLeave","wasLeaving","cacheIndex","memo","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","shouldInvalidateMemo","removeFragment","performRemove","bum","um","invalidateMount","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","anchorVnode","currentBlock","disableTracking","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","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","warn","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","selector","content","before","template","wrapper","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","TransitionPropsValidators","decorate$1","t","Transition","resolveTransitionProps","h2","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","vShow","setDisplay","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","optionsModifierEventRE","cachedNow","getNow","initialValue","originalStop","handlers","isNativeOn","patchProp","shouldSetAsProp","shouldSetAsPropForVueCE","camelize$1","useCssModule","modules","systemModifiers","modifierGuards","withModifiers","cacheKey","guard","keyNames","withKeys","eventKey","k","rendererOptions","renderer","ensureRenderer","createApp","containerOrSelector","normalizeContainer","resolveRootNamespace","buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","num","encodeChunk","uint8","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","createBuffer","length","buf","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","fromObject","assertSize","size","alloc","fill","encoding","checked","string","actual","fromArrayLike","arrayView","copy","byteOffset","numberIsNaN","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","max","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","out","hexSliceLookupTable","bytes","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","first","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","checkIEEE754","writeFloat","littleEndian","writeDouble","errors","E","sym","getMessage","Base","range","input","msg","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","BufferBigIntNotDefined","activePinia","setActivePinia","pinia","piniaSymbol","o","MutationType","createPinia","_p","toBeInstalled","noop","addSubscription","subscriptions","onCleanup","removeSubscription","triggerSubscriptions","fallbackRunWithContext","ACTION_MARKER","ACTION_NAME","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","assign","createOptionsStore","hot","actions","getters","initialState","store","localState","computedGetters","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","action","wrappedAction","afterCallbackSet","onErrorCallbackSet","after","onError","partialStore","stopWatcher","setupStore","actionValue","extender","defineStore","setupOptions","isSetupStore","useStore","hasContext","generateOcsUrl","url","params","allOptions","ensureBaseUrlInNonDomEnvironment","getBaseUrl","_generateUrlPath","_build","generateUrl","baseOrRootURL","getRootUrl","imagePath","file","generateFilePath","ensureDomEnvironment","isCore","isPHP","getAppRootUrl","webroot","_arrayLikeToArray","_arrayWithHoles","_iterableToArrayLimit","f","_nonIterableRest","_slicedToArray","_unsupportedIterableToArray","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","construct","func","_len","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySlice","arraySplice","arrayIsArray","setCreate","unconstruct","setAdd","setHas","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","numberToString","booleanToString","bigintToString","symbolToString","objectHasOwnProperty","regExpTest","typeErrorCreate","_len3","_key3","_len4","_key4","addToSet","transformCaseFunc","element","lcElement","cleanArray","clone","newObject","_ref2","_ref3","property","stringifyValue","valueAsRecord","valueToString","lookupGetter","stringified","fallbackValue","lookupAccessor","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","LITERAL_TEXT_ELEMENTS","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","_resolveSetOption","cfg","_resolveObjectOption","makeFallback","createDOMPurify","window","DOMPurify","document","originalDocument","currentScript","HTMLTemplateElement","Node","Element","NodeFilter","DOMParser","ElementPrototype","cloneNode","removeAttributeNode","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","_readNodeType","_readNodeName","getNamespaceURI","_readNamespaceURI","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","IN_PLACE_VISITED","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","elementNamespace","_forceRemove","_stripAttributeNode","attribute","_neutralizeRoot","_neutralizeSubtree","childNodes","attributes","_removeAttribute","attr","_stripDisallowedAttributes","_walkTree","visit","intoShadow","stack","shadowRoot","_isDocumentFragment","_collectLiveNodes","nodes","_neutralizeEscapedElements","reachable","_neutralizeDiscarded","rootRemoved","entry","MAX_UNVISITED_ROUNDS","_sanitizeUnvisitedNodes","visited","original","getOriginal","beforeNode","round","live","containers","pending","_sanitizeUnvisitedIn","inShadow","_createNodeIterator","_executeHooks","_sanitizeElements","_sanitizeAttributes","_sanitizeShadowDOM2","_markVisited","_isPatchLinkageAttribute","lcName","lcTag","_neutralizePatchLinkage","nodeType","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","body","_stripTemplateExpressions","_scrubTemplateExpressions2","_node$querySelectorAl","_scrubOwnCharacterData","templates","tmpl","walker","currentNode","_isClobbered","realTagName","_isNode","_isUnsafeNode","_matchesNameCheck","check","_sanitizeDisallowedNode","_isBasicCustomElement","childCount","hoisted","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_handleHookDetachedNode","removed","_isValidAttribute","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","namespaceURI","_setAttributeValue","_isUnsafeAttributeValue","hookEvent","attrValue","initValue","recreatedNamedProp","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","isElement","rootName","sr","importedNode","returnNode","inPlace","inPlaceNodes","outerVisited","nn","walkRoot","nodeIterator","serializedHTML","entryPoint","hookFunction","purify_default","matchHtmlRegExp","escapeHtml_1","escapeHtml","escape","lastIndex","getLocale","getCanonicalLocale","getLanguage","isRTL","language","languageCode","getAppTranslations","appId","number","translate","placeholdersOrNumber","optionsOrNumber","identity","optSanitize","optEscape","escapeHTML","isValidReplacement","text2","vars2","number2","replacement","translation","translatePlural","textSingular","textPlural","identifier","bundle","plural","getPlural","formatRelativeTime","timestamp","opts","date","formatter","seconds","minutes","hours","days","weeks","months","format","routerKey","routeLocationKey","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","useLink","router","currentRoute","route","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","preferSingleVNode","RouterLink","elClass","getLinkClass","outer","inner","innerValue","outerValue","record","propClass","globalClass","defaultClass","majorVersion","major","isLegacy","isLegacy34","NC_FORM_BOX_CONTEXT_KEY","useNcFormBox","_export_sfc","sfc","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","__props","__emit","formBoxItemClass","hasVueRouterContext","hasPressedState","variantWithPressed","isTertiaryVariant","flexAlignment","isReverseAligned","getNcPopoverTriggerAttrs","ncPopoverTriggerAttrs","onClick","_ctx","_cache","createElementVNode","NcButton","createElementId","_hoisted_4","_hoisted_5","nameId","NcEmptyContent","mdiAlert","mdiAlertCircleOutline","mdiAlertDecagram","mdiArrowRight","mdiCheck","mdiCheckboxMarkedCircle","mdiChevronLeft","mdiChevronRight","mdiClose","mdiContentCopy","mdiInformation","mdiPause","mdiPlay","mdiUndo","iconSize","cleanSvg","svgDocument","NcIconSvgWrapper","shouldShowAlert","iconPath","NcNoteCard","_createElementBlock","_mergeProps","$props","$event","_createElementVNode","_openBlock","debounce","function_","wait","storedContext","storedArguments","timeoutId","callContext","callArguments","later","debounced","arguments_","callNow","tryOnScopeDispose","isClient","notNullish","toString","toArray","getLifeCycleTarget","tryOnMounted","sync","useIntervalFn","interval","immediateCallback","timer","clean","pause","resume","intervalValue","watchImmediate","defaultWindow","unrefElement","elRef","_$el","plain","useEventListener","listener","firstParamTargets","test","_firstParamTargets$va","_firstParamTargets$va2","raw_targets","raw_events","raw_listeners","raw_options","_","optionsClone","useMounted","useSupported","createKeyPredicate","keyFilter","onKeyStroke","eventName","passive","dedupe","predicate","useResizeObserver","observerOptions","observer","isSupported","stopWatch","_targets","els","_el","stop","useElementSize","initialSize","box","_unrefElement","width","height","stop1","boxSize","$elem","rect","formatBoxSize","inlineSize","blockSize","ele","cs","padX","padY","bdX","bdY","stop2","useIntersectionObserver","rootMargin","threshold","targets","useSwipe","onSwipe","onSwipeEnd","onSwipeStart","coordsStart","coordsEnd","diffX","diffY","abs","isThresholdExceeded","isSwiping","direction","getTouchEventCoords","updateCoordsStart","updateCoordsEnd","listenerOptions","onTouchEnd","stops","GettextWrapper","pluralFunction","dict","msgid","msgidPlural","msgstr","placeholders","singular","count","GettextBuilder","getGettextBuilder","gettext","chunks","chunk","translations","decompressed","t2","t4","t7","t8","t13","t18","t19","t20","t23","t26","t27","t33","t34","t35","t38","t43","t45","t48","t50","t53","colors","colors2","NcLoadingIcon","isLoading","handleClick","candidateSelectors","candidateSelector","NoElement","getRootNode","_element$getRootNode","_isInert","lookUp","_node$getAttribute","inertAtt","inert","isContentEditable","_node$getAttribute2","attValue","getCandidates","includeContainer","filter","_getCandidatesIteratively","elements","elementsToCheck","assigned","nestedCandidates","validCandidate","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","getCheckedRadio","form","isTabbableRadio","radioScope","queryRadios","radioSet","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","visible","_getComputedStyle","visibility","isDirectSummary","nodeUnderDetails","originalNode","parentElement","rootNode","isDisabledFromFieldset","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","sortable","tabbable","focusable","isTabbable","focusableCandidateSelector","isFocusable","_arrayWithoutHoles","_createForOfIteratorHelper","F","_defineProperty","_toPropertyKey","_iterableToArray","_nonIterableSpread","ownKeys","_objectSpread2","_toConsumableArray","_toPrimitive","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","delay","valueOrHandler","getActualTarget","internalTrapStack","createFocusTrap","userOptions","config","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","_getActiveElement","activeElement","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","forward","nodeIdx","group","_tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","addListeners","promise","collectAdjacentElements","containerAncestors","adjacentElements","_iterator","_step","insideShadowRoot","siblings","_iterator2","_step2","removeListeners","checkDomRemoval","mutations","focusedNode","isFocusedNodeRemoved","mutation","removedNodes","initialFocusNode","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","preexistingTrap","revertState","_preexistingTrap$_set","finishActivation","afterListeners","listenersPromise","_preexistingTrap$_set2","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","delayReturnFocus","returnFocus","completeDeactivation","finishDeactivation","pauseOptions","unpauseOptions","containerElements","elementsAsArray","paused","onPause","onPostPause","onUnpause","onPostUnpause","finishUnpause","isEnabled","_el$getAttribute","getTrapStack","createTrapStackController","pausedStack","useTrapStackControl","shouldPause","trapStackController","sides","alignments","placements","side","oppositeSideMap","clamp","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","expandPaddingObject","padding","_padding$top","_padding$right","_padding$bottom","_padding$left","getPaddingObject","rectToClientRect","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","detectOverflow","_await$platform$isEle","platform","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","MAX_RESET_COUNT","computePosition","middleware","platformWithDetectOverflow","statefulPlacement","resetCount","middlewareData","currentMiddleware","nextX","nextY","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","center","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","currentIndex","currentPlacement","overflow","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","_overflowsData$filter2","currentSideAxis","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","clampCoord","coord","limitedCoords","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","shiftData","noShift","availableHeight","availableWidth","nextDimensions","w","L","R","T","C","W","D","S","A","H","O","P","B","Ze","re","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","ue","fe","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","N","I","V","Ee","ve","Se","Ht","kt","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","safeRe","safeSrc","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","createToken","isGlobal","safe","looseOption","emptyOpts","parseOptions_1","numeric","compareIdentifiers","anum","bnum","identifiers","require$$2","parseOptions","require$$3","require$$4","SemVer","other","release","identifierBase","prerelease","semver","major_1","loose","parse_1","throwErrors","er","parse","valid_1","ProxyBus","bus2","valid","SimpleBus","bus","getBus","subscribe","unsubscribe","ScopedStorage","wrapped","persistent","StorageBuilder","persist","clear","getBuilder","_subscribeToTokenUpdates","getRequestToken","setRequestToken","fetchRequestToken","response","onRequestTokenUpdate","_internal","currentUser","getAttribute","getCurrentUser","LogLevel","LogLevel2","ConsoleLogger","message","level","buildConsoleLogger","LoggerBuilder","user","onLoaded","getLoggerBuilder","logger","isRtl","_sfc_main$1","ncPopover","style0","theme","Dropdown","triggerElements","options2","_sfc_render","$setup","$data","$options","_component_NcPopoverTriggerProvider","_component_Dropdown","NcPopover","NC_ACTIONS_IS_SEMANTIC_MENU","NC_ACTIONS_CLOSE_MENU","IconDotsHorizontal","isSlotPopulated","focusableSelector","focusList","focusIndex","newFocusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstCheckedIndex","button","findActions","actions2","validInlineActions","inlineActions","menuActions","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","icon","buttonText","title","propsToForward","renderActionsPopover","triggerIcon","triggerRandomId","NcActions","FEW_SECONDS_AGO","useFormatRelativeTime","relativeTime2","ignoreSeconds","relativeTime","updateRelativeTime","timestamp2","diff","useFormatTime","isMac","disableKeyboardShortcuts","derivedKeysRegex","nonAsciiPrintableRegex","shouldIgnoreEvent","eventHandler","useHotKey","keysOrFilter","validateKeyEvent","isKeyInLowerCase","isEventKeyInLowerCase","stopKeyDown","stopKeyUp","checkIfDarkTheme","backgroundInvertIfDark","isFullscreen","checkIfIsFullscreen","MOBILE_BREAKPOINT","MOBILE_SMALL_BREAKPOINT","isLessThanBreakpoint","breakpoint","isMobile","isSmallMobile","useIsMobile","getSameNodeParent","getSameNodeAncestors","ancestors","useScopeIdAttrs","scopeIds","instance2","_hoisted_6","_hoisted_7","numHeaderActions","cssSlideshowDelay","showModal","runSlideshow","scopeIdAttrs","modalId","maskElement","focusTrap","clearFocusTrap","isPlaying","stopSlideshow","startSlideshow","nextSlide","animationKey","stopSwipe","handleSwipe","close","previousSlide","hasHeader","restartSlideshow","handleClickModalWrapper","useFocusTrap","NcModal","open","wrapperElement","dialogWidth","isNavigationCollapsed","hasNavigation","navigationId","navigationAriaLabelAttr","navigationAriaLabelledbyAttr","dialogRootElement","dialogTagName","dialogListeners","handleButtonClose","handleClosing","handleClosed","modalProps","idx","NcDialog","loadState","elem","parsedValue","wasCalled","realAppName","appName","APP_NAME","realAppVersion","appVersion","APP_VERSION","useAppName","useLocalizedAppName","apps","realAppName2","APP_SETTINGS_REGISTRATION_KEY","APP_SETTINGS_LEGACY_DESIGN_KEY","useAppSettingsDialog","legacy","localizedAppName","appSettingsDialogVersion","appSettingsDialogVersion__legacy","NcAppSettingsDialogVersion","registerSection","unregisterSection","settingsScrollerElement","selectedSection","linkClicked","registeredSections","hasNavigationIcons","unfocusNavigationItem","sectionsOrderMap","handleSettingsNavigationClick","handleCloseModal","isOpen","handleScroll","order","otherId","otherName","orderA","orderB","isCollapsed","section","_sfc_main$2","NcAppSettingsDialog","htmlId","newId","newName","newOrder","oldId","NcAppSettingsSection","appSettingsSectionShortcuts","NcAppSettingsShortcutsSection","labels","label","kbd","NcKbd","NO_LABEL_WARNING","symbols","symbol","hotkey","hotkey__label","hotkey__keys","NcHotkey","labelId","hotkeyList","hotkeyList__heading","NcHotkeyList","getCapabilities","gtBuilder","ANNOUNCEMENT_LIFETIME_MS","__expose","_assertiveClearTimer","politeRef","assertiveRef","containerRef","navOpen","handleNavigationToggle","announce","li","getContainerEl","navEl","toastContainer","toastContainer_navOpen","style0$1","cssModules$1","ToastContainer","_hoisted_1$1","_hoisted_2$1","nodeRef","_timer","typeClass","isStringMessage","ToastType","isUndo","dismiss","handleUndoClick","toast","toast_clickable","toast_error","toast_info","toast_warning","toast_success","toast_undo","toast_loading","toastMessage","toastLoader","toastClose","toastUndoButton","ToastNotification","ToastType2","TOAST_ARIA_LIVE_OFF","TOAST_ARIA_LIVE_POLITE","TOAST_ARIA_LIVE_ASSERTIVE","ToastAriaLive","ToastAriaLive2","TOAST_DEFAULT_TIMEOUT","TOAST_PERMANENT_TIMEOUT","isValidToastTimeout","getToastTimeout","_CONTAINER_KEY","_getOrCreateContainer","el2","api","_mountToast","internal","vm","getVisibleText","getAnnouncementText","isHTML","showMessage","ariaLive","typeTemplates","announcement","showError","showSuccess","bind","toStringTag","hasOwnInPrototypeChain","thing","getSafeProp","kindOf","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","isNumber","prototype","isEmptyObject","isFile","isReactNativeBlob","isReactNative","formData","isBlob","isFileList","isStream","FormDataCtor","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","allOwnKeys","findKey","_global","isContextDefined","merge","objs","caseless","skipUndefined","assignValue","targetKey","propertyIsEnumerable","stripBOM","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","position","isTypedArray","TypedArray","forEachEntry","pair","matchAll","regExp","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","isSpecCompliantForm","toJSONObject","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","callbacks","asap","isIterable","isSafeIterable","utils$1","ignoreDuplicateOf","utils","parseHeaders","rawHeaders","line","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","arg1","arg2","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","parser","matcher","deleted","deleteHeader","asStrings","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","REDACTED","hasOwnOrPrototypeToJSON","redactConfig","redactKeys","lowerKeys","AxiosError","request","customProps","axiosError","serializedConfig","httpAdapter","DEFAULT_FORM_DATA_MAX_DEPTH","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","option","metaTokens","visitor","defaultVisitor","indexes","_Blob","maxDepth","useBlob","convertValue","throwIfMaxDepthExceeded","stringifyWithDepthLimit","currentValue","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","defaults","contentType","hasJSONContentType","isObjectPayload","formSerializer","env","_FormData","transitional","forcedJSONParsing","responseType","JSONRequested","strictJSONParsing","status","transformData","isCancel","settle","reject","validateStatus","parseProtocol","speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","lastArgs","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","rawLoaded","total","loaded","progressBytes","rate","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","eq","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","hex","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","controller","aborted","onabort","reason","signal","streamChunk","chunkSize","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","isHexDigit","charCode","isPercentEncodedByte","estimateDataURLDecodedBytes","comma","meta","effectiveLen","pad","tailIsPct3D","VERSION","DEFAULT_CHUNK_SIZE","decodeURIComponentSafe","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","adapter","getAdapter","adapters","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","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","spread","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","axios","promises","all","Cancel","formToJSON","getCancelableClient","client","RETRY_KEY","onCsrfTokenError","responseURL","RETRY_DELAY_KEY","onMaintenanceModeError","retryDelay","onNotLoggedInError","cancelableClient","getLog","pollLog","setAppSetting","getAppSettings","LOGGING_LEVEL_NAMES","LOGGING_LEVEL","POLLING_INTERVAL","parseException","logException","isNestedJsonException","tryParseJSON","isOldStyleException","traceLines","parseTraceLine","logMessage","json","traceData","fileAndLine","filePaths","lineNumber","splitter","nestingLevel","jsonStart","bounds","parseLogFile","parseLogString","parseRawLogEntry","startPos","endPos","escapedMessage","useSettingsStore","_loadedSettings","enabled","localFile","liveLog","shownLevels","logLevel","_dateTimeFormat","dateTimeFormat","localFileName","setSetting","setting","getSettings","settings","useLogStore","_settings","allEntries","query","hasRemainingEntries","_polling","_loading","loadMore","older","loadFile","loadText","stopPolling","startPolling","doPolling","searchLogs","search","oldQuery","settingsStore","logStore","keyboardShortcutText","downloadURL","fileinput","onFileSelected","_unref","IconDownload","_createTextVNode","IconUpload","_toDisplayString","color","cx","iconToggleSwitch","NcIconToggleSwitch","INSIDE_RADIO_GROUP_KEY","useInsideRadioGroup","_sfc_main$6","_hoisted_1$6","_hoisted_2$5","_hoisted_3$5","_hoisted_4$4","_sfc_render$6","CheckboxBlankOutline","_sfc_main$5","_hoisted_1$5","_hoisted_2$4","_hoisted_3$4","_hoisted_4$3","_sfc_render$5","CheckboxMarked","_sfc_main$4","_hoisted_1$4","_hoisted_2$3","_hoisted_3$3","_hoisted_4$2","_sfc_render$4","MinusBox","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$1","_sfc_render$3","RadioboxBlank","_hoisted_1$2","_hoisted_3$1","_sfc_render$2","RadioboxMarked","TYPE_CHECKBOX","TYPE_RADIO","TYPE_SWITCH","TYPE_BUTTON","_sfc_render$1","_component_NcLoadingIcon","_component_NcIconToggleSwitch","NcCheckboxContent","radioGroup","internalType","internalModelValue","__injectCSSVars__","__setup__","_component_NcCheckboxContent","NcCheckboxRadioSwitch","fieldsetLegend","isLocalLogfile","setDateTimeFormat","_createBlock","setShowLevels","newShownLevels","numericLevels","_Fragment","_renderList","levelName","levelId","setLogLevel","numericLevel","onUpdateOpen","SettingsLogLevels","SettingsSetLogLevel","SettingsDatetimeFormat","SettingsLiveView","SettingsActions","observable","_renderSlot","emptyOptions","includeImageAlt","includeHtml","one","VOID","PRIMITIVE","ARRAY","OBJECT","DATE","REGEXP","MAP","SET","ERROR","BIGINT","deserializer","as","unpair","flags","deserialize","serialized","EMPTY","typeOf","asString","shouldSkip","TYPE","serializer","strict","serialize","lossy","structuredClone$1","any","convertElement","tagNameFactory","anyFactory","castFactory","tests","checks","parameters","testFunction","looksLikeAnElement","ABSOLUTE_URL_REGEX","WINDOWS_PATH_REGEX","isAbsoluteUrl","stringify","convert","ok","propsFactory","typeFactory","checkAsRecord","nodeAsRecord","looksLikeANode","empty","CONTINUE","EXIT","SKIP","visitParents","tree","reverse","step","parents","subresult","grandparents","toResult","nodeAsParent","testOrVisitor","visitorOrReverse","maybeReverse","overload","defaultProtocols","defaultRel","rehypeExternalLinks","protocols","contentRaw","createIfNeeded","relRaw","rel","properties","structuredClone","nameRe","nameReJsx","whitespace","Schema","normal","space","definitions","definition","normalize","Info","powers","boolean","increment","booleanish","overloadedBoolean","spaceSeparated","commaSeparated","commaOrSpaceSeparated","types","DefinedInfo","mask","mark","normals","info","aria","caseSensitiveTransform","caseInsensitiveTransform","xlink","xmlns","hastToReact","cap","dash","find","Type","rest","camelcase","dashes","kebab","$0","htmlBase","svgBase","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","lineno","column","updatePosition","lines","Position","comments","rules","comment","declaration","declarations","decls","decl","cjs","__importDefault","this","mod","StyleToObject","inline_style_parser_1","styleObject","hasIterator","utilities","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","skipCamelCase","character","trimHyphen","prefix","camelCase","style_to_object_1","utilities_1","StyleToJS","pointEnd","point","pointStart","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","legacyCause","emptyMap","tableElements","tableCellElement","docs","toJsxRuntime","filePath","developmentCreate","productionCreate","mdxExpression","mdxJsxElement","mdxEsm","parentSchema","findComponentFromName","createElementProps","createChildren","addNode","addChildren","expression","assert","crashEstree","createJsxElementProps","jsx","jsxs","jsxDEV","isStaticChildren","alignValue","createProperty","objectExpression","countsByName","commas","spaces","parseStyle","transformStylesToCssCasing","styleToJs","cause","allowExpression","isIdentifierName","place","domCasing","cssCasing","transformStyleToCssCasing","toDash","rehypeReact","compiler","escapeStringRegexp","findAndReplace","ignored","pairs","toPairs","pairIndex","grandparent","replace","change","matchObject","tupleOrList","tuple","toExpression","toFunction","newlineToBreak","remarkBreaks","decodeNamedCharacterReference","characterReference","splice","items","chunkStart","push","combineExtensions","extensions","syntaxExtension","extension","left","right","constructs","decodeNumericCharacterReference","normalizeIdentifier","unicodePunctuationInternal","regexCheck","asciiAlpha","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","normalizeUri","skip","factorySpace","initializeContent","contentStart","afterContentStartConstruct","paragraphInitial","previous","lineStart","initializeDocument","containerConstruct","tokenizeContainer","continued","childFlow","childToken","lineStartOffset","documentContinue","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","flowStart","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flowContinue","writeToChild","endOfFile","nok","classifyCharacter","resolveAll","events","attention","resolveAllAttention","tokenizeAttention","openingSequence","closingSequence","use","nextEvents","movePoint","attentionMarkers","inside","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","blockQuote","tokenizeBlockQuoteContinuation","exit","tokenizeBlockQuoteStart","contStart","contBefore","characterEscape","tokenizeCharacterEscape","tokenizeCharacterReference","nonLazyContinuation","tokenizeNonLazyContinuation","codeFenced","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","sequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","startBefore","beforeSequenceClose","sequenceClose","sequenceCloseAfter","codeIndented","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","codeText","resolveCodeText","tokenizeCodeText","tailExitIndex","headEnterIndex","enter","between","SpliceBuffer","initial","deleteCount","chunkedPush","subtokenize","eventsArray","jumps","lineIndex","otherIndex","otherEvent","subevents","more","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","slice","resolveContent","tokenizeContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","factoryDestination","literalType","literalMarkerType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","tokenizeHardBreakEscape","headingAtx","resolveHeadingAtx","tokenizeHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","htmlFlow","resolveToHtmlFlow","tokenizeHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","continuation","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","tokenizeHtmlText","returnState","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","resolveAllLabelEnd","resolveToLabelEnd","tokenizeLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","newEvents","media","labelStart","defined","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","lineEnding","tokenizeLineEnding","thematicBreak","tokenizeThematicBreak","sequence","tokenizeListContinuation","tokenizeListEnd","tokenizeListStart","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","setextUnderline","resolveToSetextUnderline","tokenizeSetextUnderline","heading","paragraph","flow","initializeFlow","atBlankEnding","afterConstruct","resolver","createResolver","initializeFactory","field","resolveAllLineSuffixes","initializeText","notText","extraResolver","resolveAllText","bufferIndex","tabs","contentInitial","flowInitial","insideSpan","resolveText","disable","createTokenizer","initialize","columnStart","resolveAllConstructs","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","consume","defineSkip","sliceSerialize","sliceStream","write","main","addResult","expandTabs","serializeChunks","sliceChunks","_bufferIndex","_index","accountForPotentialSkip","chunkIndex","go","fields","onreturn","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","startIndex","startBufferIndex","endIndex","endBufferIndex","view","atTab","defaultConstructs","creator","postprocess","preprocess","atCarriageReturn","preprocessor","endPosition","characterEscapeOrReference","decodeString","decode","$1","$2","fromMarkdown","opener","onenterdata","codeFlow","emphasis","hardBreak","image","listItem","onenterlistitemvalue","onenterlistordered","onenterreference","strong","closer","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","onexitdata","onexitcharacterreferencemarker","onexitcharacterreferencevalue","onexitcharacterreference","onexitcodefenced","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","onexitsetextheadinglinesequence","onexitsetextheadingtext","configure","compile","listStack","prepareList","defaultOnError","containerBalance","listSpread","firstBlankLineIndex","tailIndex","tailEvent","and","onExitError","ancestor","referenceType","combined","remarkParse","blockquote","strikethrough","footnoteReference","clobberPrefix","safeId","counter","reuseCounter","sup","revert","subtype","contents","imageReference","inlineCode","linkReference","results","listLoose","listItemLoose","rows","firstRow","tableContent","tableRow","align","cellIndex","cells","cell","tableCell","tab","trimLines","trimLine","ignore","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","footer","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","tailTail","createState","definitionById","footnoteById","footnoteCounts","defaultHandlers","applyData","handle","defaultUnknownHandler","trimMarkdownSpaceStart","hName","hChildren","hProperties","toHast","foot","remarkRehype","destination","hastTree","squeezeParagraphs","remarkUnlinkProtocols","bail","toStr","defineProperty","gOPD","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","copyIsArray","trough","pipeline","middlewareIndex","middelware","fnExpectsCallback","exception","then","minpath","basename","dirname","extname","join","assertPath","seenNonSlash","firstNonSlashEnd","extnameIndex","unmatchedSlash","startPart","startDot","preDotState","joined","absolute","normalizeString","allowAboveRoot","lastSegmentLength","lastSlash","lastSlashIndex","minproc","cwd","isUrl","fileUrlOrPath","urlToPath","getPathFromURLPosix","pathname","third","VFile","isUint8Array","assertNonEmpty","assertPart","stem","part","CallableInstance","Processor","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","parseTree","realDone","compileTree","compileResult","looksLikeAValue","complete","assertDone","assertNode","transformers","outputTree","resultingTree","attachers","addPlugin","addList","addPreset","add","plugins","entryIndex","primary","currentPrimary","isPlainObj","unified","frozen","asyncName","looksLikeAVFile","getSharingToken","onDestroy","registerWidget","propsWithDefaults","renderWidget","richObjectType","richObject","accessible","interactive","destroyWidget","isWidgetRegistered","hasInteractiveView","hasFullWidth","isResizable","externalLink","externalLink_decorated","NcRichTextExternalLink","URL_PATTERN","URL_PATTERN_AUTOLINK","remarkAutolink","useMarkdown","useExtendedMarkdown","parseUrl","parsedNodes","href","textAfter","textBefore","lastChar","joinedText","getRoute","removePrefix","removePrefixes","isNonHttpLink","relativeUrl","relativeRouterBase","potentialRouterPath","IDLE_TIMEOUT","RESIZE_KEYBOARD_STEP","widgetId","isVisible","customWidget","customWidgetContent","widgetRoot","customWidgetHeight","showInteractive","idleTimeout","isResizing","resizedHeight","resizeStartY","resizeStartHeight","resizeMinHeight","resizeMaxHeight","isInteractive","referenceHasFullWidth","isWidgetResizable","hasCustomWidget","customWidgetStyle","ariaValueNow","referenceHasInteractiveView","noAccess","numberOfLines","descriptionStyle","lineClamp","compactLink","referenceWidgetLinkComponent","referenceWidgetLinkProps","destroyReferenceWidget","renderReferenceWidget","stopResize","enableInteractive","widget","initResizeLimits","widgetEl","computedStyle","parsedMin","parsedMax","startResize","onResize","onResizeKeydown","delta","deltaY","NcReferenceWidget","DELAY","useCopy","isCopied","altText","isPublic","_component_NcReferenceWidget","NcReferenceList","ccount","code2","propertiesFactory","index2","list2","replace2","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","transformGfmAutolinkLiterals","enterLiteralAutolink","enterLiteralAutolinkValue","exitLiteralAutolink","exitLiteralAutolinkEmail","exitLiteralAutolinkHttp","exitLiteralAutolinkWww","gfmAutolinkLiteralToMarkdown","findUrl","findEmail","domain2","path2","isCorrectDomain","splitUrl","atext","trailExec","trail2","closingParenIndex","openingParens","closingParens","email","footnoteReferencePeek","enterFootnoteCallString","enterFootnoteCall","enterFootnoteDefinitionLabelString","enterFootnoteDefinition","exitFootnoteCallString","exitFootnoteCall","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","tracker","exit2","subexit","gfmFootnoteFromMarkdown","gfmFootnoteToMarkdown","firstLineBlank","footnoteDefinition","mapAll","mapExceptFirst","blank","constructsWithoutStrikethrough","handleDelete","peekDelete","gfmStrikethroughFromMarkdown","enterStrikethrough","exitStrikethrough","gfmStrikethroughToMarkdown","defaultStringLength","markdownTable","stringLength","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row2","sizes2","columnIndex2","columnIndex","toAlignment","row","sizes","map$1","patternInScope","listInScope","none","_1","longestStreak","substring","expected","formatCodeAsIndented","checkFence","code$1","exit3","value2","checkQuote","quote","checkEmphasis","encodeCharacterReference","encodeInfo","outside","outsideKind","insideKind","emphasisPeek","betweenHead","betweenTail","formatHeadingAsSetext","literalWithBreak","rank","subexit2","htmlPeek","imagePeek","imageReferencePeek","alt","inlineCodePeek","formatLinkAsAutolink","linkPeek","linkReferencePeek","checkBullet","checkBulletOther","bullet","bulletOther","checkBulletOrdered","checkRule","bulletCurrent","useDifferentMarker","firstListItem","checkListItemIndent","listItemIndent","map2","phrasing","checkStrong","strongPeek","text$1","checkRuleRepetition","repetition","gfmTableFromMarkdown","enterTable","enterCell","enterRow","exitCodeText","exitTable","gfmTableToMarkdown","alignDelimiters","around","inlineCodeWithTable","handleTable","handleTableCell","handleTableRow","serializeData","handleTableAsData","handleTableRowAsData","matrix","gfmTaskListItemFromMarkdown","exitCheck","exitParagraphWithTaskListItem","gfmTaskListItemToMarkdown","listItemWithTaskListItem","firstParaghraph","sibling","checkable","checkbox","gfmFromMarkdown","gfmToMarkdown","wwwPrefix","tokenizeWwwPrefix","tokenizeDomain","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","gfmAutolinkLiteral","ok2","dot","gfmAtext","previousUnbalanced","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","constructs2","indent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","gfmStrikethrough","single","tokenizeStrikethrough","resolveAllStrikethrough","previous2","EditMap","addImplementation","vecs","editMap","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","currentTable","currentBody","currentCell","flushTableEnd","flushCell","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","isTextNode$1","transformPlaceholders","ast","remarkPlaceholder","isCodeNode","remarkStripCode","isTextNode","remarkUnescape","LINK_PROTOCOLS","rehypeHighlight","importRehypeHighlightLibrary","__vitePreload","argumentId","argument","renderedMarkdown","remark2rehype","rehype2react","processor","nestedNode","inputNode","labelParts","nestedNodeIndex","inputComponent","NcRichText","registerCustomPickerElement","appendToBody","top","scrollX","scrollY","ajax","toggle","pointerScroll","optionEl","bottom","pointer","typeAheadOption","indexOfLastSelected","sortAndStringify","ordered","idCount","uniqueId","Deselect","OpenIndicator","childComponents","optionLabel","clearSearchOnSelect","multiple","dropdownList","noDrop","mutableLoading","listSlot","limitOptions","optionList","createdOption","newOptions","oldOptions","shouldReset","nextDeselect","prevDeselect","deselectToFocus","targetIsNotSearch","ignoredButtons","_option","preventAndSelect","keyCode","_hoisted_8","_hoisted_9","_hoisted_10","_directive_append_to_body","Select","modelValue","focus","inputElement","hasTrailingIcon","internalPlaceholder","isValidLabel","ariaDescribedby","ariaDescribedby2","handleInput","NcInputField","inputFieldInstance","defaultTrailingButtonLabels","NcInputFieldPropNames","sharedProps","VueSelect","allProps","functionText","argumentText","TraceLine","exceptionName","exceptionMessage","exceptionTitleText","StackTrace","_component_LogException","copyToCipboard","useLogFormatting","formatTime","time","formatLogEntry","isExceptionExpanded","levelString","timeString","cssLevelClass","copyRaw","copyFormatted","IconContentCopy","LogException","searchField","currentQuery","onSearchInput","NcTextField","IconMagnify","ariaSort","sortIcon","IconSortAscending","IconSortDescending","IconSort","changeSortMode","_resolveDynamicComponent","ActionGlobalMixin","ActionTextMixin","behavior","_component_NcIconSvgWrapper","NcActionButton","timeOptions","relativeTimeOptions","formattedTime","isRawDate","isRelativeDate","isExpanded","showLogMessage","tableRowElement","resizeTabeRow","_normalizeClass","_withModifiers","IconChevronUp","IconChevronDown","NcDateTime","IconViewList","bufferItems","sortedByLevel","sortedByApp","sortedByTime","filteredRows","isModalOpen","currentRow","showDetailsForRow","tableRoot","sizeBefore","positionOfPreviousElement","previousTopElement","sortedRows","sorted","byLevel","byApp","byTime","resizeObserver","firstVisibleRowIndex","tableRootHeight","tableHeadHeight","tableRowHeight","itemsInViewport","renderedItems","tbodyStyle","isOverScrolled","hiddenAfterItems","onScroll","LogDetailsModal","LogTableHeader","LogSearch","IntersectionObserver","LogTableRow","areSettingsShown","loggingStore","onShowServerLog","onHandlePaste","paste","noLogDescription","IconCog","LogTable","IconFormatList","AppSettingsDialog","App"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,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,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,151,152,153,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,321,323,324,325,327,328,329,330,331,332,333],"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/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/pinia/dist/pinia.mjs","../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/@nextcloud/l10n/dist/index.mjs","../node_modules/vue-router/dist/useApi-CUWMwLLw.js","../node_modules/vue-router/dist/devtools-CxgSYwGp.js","../node_modules/vue-router/dist/vue-router.js","../node_modules/@nextcloud/vue/dist/chunks/legacy.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcFormBox.mjs","../node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcButton.mjs","../node_modules/@nextcloud/vue/dist/chunks/createElementId.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmptyContent.mjs","../node_modules/@nextcloud/vue/dist/chunks/mdi.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcNoteCard.mjs","../node_modules/vue-material-design-icons/CogOutline.vue","../node_modules/vue-material-design-icons/FormatListBulletedSquare.vue","../node_modules/debounce/index.js","../node_modules/@vueuse/shared/dist/index.js","../node_modules/@vueuse/core/dist/index.js","../node_modules/@nextcloud/l10n/dist/gettext.mjs","../node_modules/@nextcloud/vue/dist/chunks/_l10n.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcLoadingIcon.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/focusTrap.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/debug.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/constants.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/re.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/parse-options.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/identifiers.js","../node_modules/@nextcloud/event-bus/node_modules/semver/classes/semver.js","../node_modules/@nextcloud/event-bus/node_modules/semver/functions/major.js","../node_modules/@nextcloud/event-bus/node_modules/semver/functions/parse.js","../node_modules/@nextcloud/event-bus/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/@nextcloud/logger/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger.mjs","../node_modules/@nextcloud/vue/dist/chunks/rtl.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcPopover.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcActions.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions.mjs","../node_modules/@nextcloud/vue/dist/composables/useFormatDateTime/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/platform.mjs","../node_modules/@nextcloud/vue/dist/composables/useHotKey/index.mjs","../node_modules/@nextcloud/vue/dist/functions/isDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsFullscreen/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcModal.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialog.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang.mjs","../node_modules/@nextcloud/initial-state/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/appName.mjs","../node_modules/@nextcloud/vue/dist/chunks/useAppSettingsDialog.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsDialog.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsSection.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsShortcutsSection.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcKbd.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHotkey.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHotkeyList.mjs","../node_modules/@nextcloud/capabilities/dist/index.mjs","../node_modules/@mdi/js/mdi.js","../node_modules/@nextcloud/dialogs/dist/chunks/index.mjs","../node_modules/vue-material-design-icons/TrayArrowDown.vue","../node_modules/vue-material-design-icons/TrayArrowUp.vue","../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/api.ts","../src/constants.ts","../src/utils/exception.ts","../src/utils/logger.ts","../src/utils/splitter.ts","../src/utils/logfile.ts","../src/store/settings.ts","../src/store/logging.ts","../src/components/settings/SettingsActions.vue","../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcRadioGroup.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCheckboxRadioSwitch.mjs","../src/components/settings/SettingsDatetimeFormat.vue","../src/components/settings/SettingsLiveView.vue","../src/utils/debounce.ts","../src/components/settings/SettingsLogLevels.vue","../src/components/settings/SettingsSetLogLevel.vue","../src/components/settings/AppSettingsDialog.vue","../src/components/IntersectionObserver.vue","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/hast-util-is-element/lib/index.js","../node_modules/is-absolute-url/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/rehype-external-links/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/index.js","../node_modules/inline-style-parser/cjs/index.js","../node_modules/style-to-object/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-js/cjs/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/rehype-react/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-newline-to-break/lib/index.js","../node_modules/remark-breaks/lib/index.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/mdast-squeeze-paragraphs/lib/index.js","../node_modules/remark-unlink-protocols/lib/index.js","../node_modules/bail/index.js","../node_modules/extend/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/@nextcloud/sharing/dist/public.js","../node_modules/@nextcloud/vue/dist/chunks/widgets.mjs","../node_modules/unist-builder/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/autolink.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcReferenceWidget.mjs","../node_modules/@nextcloud/vue/dist/chunks/useCopy.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRichText.mjs","../node_modules/@nextcloud/vue/dist/chunks/customPickerElements.mjs","../node_modules/@nextcloud/vue-select/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputField.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelect.mjs","../node_modules/@nextcloud/vue/dist/chunks/referencePickerModal.mjs","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/components/exception/TraceLine.vue","../src/components/exception/StackTrace.vue","../src/components/exception/LogException.vue","../src/utils/clipboard.ts","../src/utils/format.ts","../src/components/LogDetailsModal.vue","../node_modules/vue-material-design-icons/Magnify.vue","../src/components/LogSearch.vue","../node_modules/vue-material-design-icons/Sort.vue","../node_modules/vue-material-design-icons/SortAscending.vue","../node_modules/vue-material-design-icons/SortDescending.vue","../src/components/table/LogTableHeader.vue","../node_modules/@nextcloud/vue/dist/chunks/actionGlobal.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang.mjs","../node_modules/vue-material-design-icons/ChevronDown.vue","../node_modules/vue-material-design-icons/ChevronUp.vue","../node_modules/vue-material-design-icons/ViewList.vue","../src/components/table/LogTableRow.vue","../src/components/table/LogTable.vue","../src/App.vue","../src/index.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.43\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, (match) => match.startsWith(\"/*\") ? \"\" : match).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,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\\u000d\\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, seen) {\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], seen);\n }\n return equal;\n}\nfunction looseCompareCollections(a, b, seen) {\n if (a.size !== b.size) return false;\n const candidates = Array.from(b);\n const matched = new Uint8Array(candidates.length);\n for (const item of a) {\n let index = -1;\n for (let i = 0; i < candidates.length; i++) {\n if (!matched[i] && looseEqual(item, candidates[i], seen)) {\n index = i;\n break;\n }\n }\n if (index < 0) return false;\n matched[index] = 1;\n }\n return true;\n}\nfunction looseCompareObjects(a, b, seen) {\n let aValidType = isMap(a);\n let bValidType = isMap(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;\n }\n aValidType = isSet(a);\n bValidType = isSet(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareCollections(a, b, seen) : 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], seen)) {\n return false;\n }\n }\n return String(a) === String(b);\n}\nfunction looseCompareNested(a, b, seen, compare) {\n if (!seen) {\n seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];\n }\n const [seenA, seenB] = seen;\n if (seenA.has(a) || seenB.has(b)) {\n return seenA.get(a) === b && seenB.get(b) === a;\n }\n seenA.set(a, b);\n seenB.set(b, a);\n const equal = compare(a, b, seen);\n seenA.delete(a);\n seenB.delete(b);\n return equal;\n}\nfunction looseEqual(a, b, seen) {\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 ? looseCompareNested(a, b, seen, looseCompareArrays) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n return looseCompareNested(a, b, seen, looseCompareObjects);\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.43\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 const scopes = this.scopes.slice();\n for (i = 0, l = scopes.length; i < l; i++) {\n 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 const scopes = this.scopes.slice();\n for (i = 0, l = scopes.length; i < l; i++) {\n scopes[i].resume();\n }\n }\n const effects = this.effects.slice();\n for (i = 0, l = effects.length; i < l; i++) {\n 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 const scopes = this.scopes.slice();\n for (i = 0, l = scopes.length; i < l; i++) {\n 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 if (isShallow(array)) return raw;\n if (!isReadonly(array)) return raw.map(toReactive);\n return isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);\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) && result) {\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 const res = _cb(...args);\n watchHandle();\n return res;\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 (immediateFirstRun || 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.43\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 for (let i = 0; i < cb.length; i++) {\n pendingPostFlushCbs.push(cb[i]);\n }\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 for (let i = 0; i < deduped.length; i++) {\n activePostFlushCbs.push(deduped[i]);\n }\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 const prevStackSize = blockStack.length;\n let res;\n try {\n res = fn(...args);\n } finally {\n for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();\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 = resolveTarget(n2.props, querySelector);\n if (nextTarget) {\n n2.target = 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 disabled = isTeleportDisabled(props);\n const shouldRemove = doRemove || !disabled;\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 && (disabled || target) && 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 const subTree = vnode.component.subTree;\n setTransitionHooks(\n isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,\n hooks\n );\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.component.asyncDep) && !vnode.component.subTree) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Static);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\n node.nodeType === 8 ? Comment : \"div\"\n );\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 {\n type,\n dynamicProps,\n props,\n patchFlag,\n shapeFlag,\n dirs,\n transition\n } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n const hasDynamicProps = !!dynamicProps;\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || hasDynamicProps || 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 || hasDynamicProps || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n const namespace = el.namespaceURI.includes(\"svg\") ? \"svg\" : el.namespaceURI.includes(\"MathML\") ? \"mathml\" : void 0;\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) || dynamicProps && dynamicProps.includes(key)) {\n if (isUnchangedResourceProp(el, key, props[key])) {\n continue;\n }\n patchProp(el, key, null, props[key], namespace, 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 (!isNodeMismatchAllowed(node, vnode)) {\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}\nconst resourceProps = /* @__PURE__ */ new Set([\"src\", \"srcset\", \"href\", \"poster\"]);\nfunction isUnchangedResourceProp(el, key, clientValue) {\n if (!resourceProps.has(key)) {\n return false;\n }\n return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);\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 (key === \"hidden\") {\n actual = normalizeHiddenValue(el.getAttribute(key));\n expected = normalizeHiddenValue(clientValue);\n } else 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 normalizeHiddenValue(value) {\n if (!isRenderableAttrValue(value)) {\n return false;\n }\n if (isString(value)) {\n return value.toLowerCase() === \"until-found\" ? \"until-found\" : \"\";\n }\n return includeBooleanAttr(value) ? \"\" : 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 return isMismatchAllowedByAttr(\n el && el.getAttribute(allowMismatchAttr),\n allowedType\n );\n}\nfunction isMismatchAllowedByAttr(allowedAttr, allowedType) {\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}\nfunction isNodeMismatchAllowed(node, vnode) {\n return isMismatchAllowed(node.parentElement, 1 /* CHILDREN */) || isMismatchAllowedByNode(node) || isMismatchAllowedByVNode(vnode);\n}\nfunction isMismatchAllowedByNode(node) {\n return node.nodeType === 1 && isMismatchAllowedByAttr(\n node.getAttribute(allowMismatchAttr),\n 1 /* CHILDREN */\n );\n}\nfunction isMismatchAllowedByVNode({ props }) {\n const allowedAttr = props && props[allowMismatchAttr];\n return typeof allowedAttr === \"string\" && isMismatchAllowedByAttr(allowedAttr, 1 /* CHILDREN */);\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 const wasConnected = el.isConnected;\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 if (!el.parentNode || wasConnected && !el.isConnected) return;\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 let timeoutTimer;\n let delayTimer;\n onUnmounted(() => {\n if (timeoutTimer != null) clearTimeout(timeoutTimer);\n if (delayTimer != null) clearTimeout(delayTimer);\n });\n if (delay) {\n delayTimer = setTimeout(() => {\n if (instance.isUnmounted) return;\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n timeoutTimer = setTimeout(() => {\n if (instance.isUnmounted) return;\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 if (instance.isUnmounted) return;\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n if (instance.isUnmounted) {\n pendingRequest = null;\n return;\n }\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 const vnode = getInnerChild(instance.subTree);\n if (vnode.component) {\n cache.set(pendingCacheKey, vnode);\n }\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, branchKey) {\n if (props == null) props = {};\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;\n const hasProps = Object.keys(slotProps).length > 0;\n if (name !== \"default\") slotProps.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", slotProps, 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 const prevStackSize = blockStack.length;\n openBlock();\n let rendered;\n try {\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || branchKey || // 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 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 } catch (err) {\n for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();\n throw err;\n } finally {\n if (slot && slot._c) {\n slot._d = true;\n }\n }\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\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 resolveDevRootEl = (vnode) => {\n let found = false;\n while (true) {\n if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {\n const root = filterSingleRoot(vnode.children);\n if (!root) {\n return;\n }\n vnode = root;\n found = true;\n continue;\n }\n const component = vnode.component;\n if (component && component.subTree) {\n vnode = component.subTree;\n continue;\n }\n const suspense = vnode.suspense;\n if (suspense && suspense.activeBranch) {\n vnode = suspense.activeBranch;\n continue;\n }\n return found ? vnode.el : void 0;\n }\n};\nconst getDevRootFragmentEl = (i) => {\n const el = i.subTree && resolveDevRootEl(i.subTree);\n return el === void 0 ? i.vnode.el : el;\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) => !!(process.env.NODE_ENV !== \"production\") ? getDevRootFragmentEl(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","export default function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\tif (typeof options === 'boolean') {\n\t\tthrow new TypeError('The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.');\n\t}\n\n\tconst {immediate} = options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction run() {\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\t\treturn result;\n\t}\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tresult = run();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (\n\t\t\tstoredContext\n\t\t\t&& this !== storedContext\n\t\t\t&& Object.getPrototypeOf(this) === Object.getPrototypeOf(storedContext)\n\t\t) {\n\t\t\tthrow new Error('Debounced method called with different contexts of the same prototype.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tresult = run();\n\t\t\treturn result;\n\t\t}\n\n\t\treturn undefined;\n\t};\n\n\tObject.defineProperty(debounced, 'isPending', {\n\t\tget() {\n\t\t\treturn timeoutId !== undefined;\n\t\t},\n\t});\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tdebounced.trigger();\n\t};\n\n\tdebounced.trigger = () => {\n\t\tresult = run();\n\n\t\tdebounced.clear();\n\t};\n\n\treturn debounced;\n}\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","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\nexport * from \"@vueuse/shared\";\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true, name = \"ReusableTemplate\" } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({\n\t\tname: `${name}.define`,\n\t\tsetup(_, { slots }) {\n\t\t\treturn () => {\n\t\t\t\trender.value = slots.default;\n\t\t\t};\n\t\t}\n\t});\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tname: `${name}.reuse`,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index = instances.value.indexOf(props);\n\t\t\tif (index !== -1) instances.value.splice(index, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\treturn watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tconst cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));\n\t\tonCleanup(() => {\n\t\t\tcleanups.forEach((fn) => fn());\n\t\t});\n\t}, { flush: \"post\" });\n}\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target) => {\n\t\t\tif (typeof target === \"string\") return Array.from(window.document.querySelectorAll(target)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target) {\n\t\tconst vm = toValue(target);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target, event) {\n\t\tconst vm = toValue(target);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tlet activeEl = window.document.activeElement;\n\t\t\t\twhile (activeEl === null || activeEl === void 0 ? void 0 : activeEl.shadowRoot) activeEl = activeEl.shadowRoot.activeElement;\n\t\t\t\tif ((activeEl === null || activeEl === void 0 ? void 0 : activeEl.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"MutationObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window = defaultWindow, document = window === null || window === void 0 ? void 0 : window.document, flush = \"sync\" } = options;\n\tif (!window || !document) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed, ev);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document = defaultDocument, isTypedCharValid: isTypedCharValidFn = isTypedCharValid, isFocusedElementEditable: isFocusedElementEditableFn = isFocusedElementEditable } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditableFn() && isTypedCharValidFn(event)) callback(event);\n\t};\n\tif (document) useEventListener(document, \"keydown\", keydown, { passive: true });\n}\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window === null || window === void 0 ? void 0 : window.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document === null || document === void 0 ? void 0 : document.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document });\n\ttrigger();\n\treturn activeElement;\n}\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = null, window = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\tconst limit = toValue(fpsLimit);\n\t\treturn limit ? 1e3 / limit : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp) {\n\t\tif (!isActive.value || !window) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp;\n\t\tconst delta = timestamp - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window) {\n\t\t\twindow.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window) window.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay > 0) await promiseTimeout(delay);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t\treturn data;\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst events = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"bluetooth\" in navigator);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator === null || navigator === void 0 ? void 0 : navigator.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: shallowReadonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tconst queryStrings = toValue(query).split(\",\");\n\t\t\tmatches.value = queryStrings.some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window) return false;\n\t\treturn window.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue(a)) && match(\"max\", getValue(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"BroadcastChannel\" in window);\n\tconst isClosed = shallowRef(false);\n\tconst channel = shallowRef();\n\tconst data = shallowRef();\n\tconst error = shallowRef(null);\n\tconst post = (data) => {\n\t\tif (channel.value) channel.value.postMessage(data);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state, length } = (window === null || window === void 0 ? void 0 : window.history) || {};\n\t\tconst { origin } = (window === null || window === void 0 ? void 0 : window.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window === null || window === void 0 || (_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tfor (const [key, ref] of objectEntries(refs)) watch(ref, (value) => {\n\t\tif (!(window === null || window === void 0 ? void 0 : window.location) || window.location[key] === value) return;\n\t\twindow.location[key] = value;\n\t});\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (newSourceValue, cachedValue) => newSourceValue === cachedValue, options) {\n\tconst { deepRefs = true, ...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"permissions\" in navigator);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst copyPending = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tlet lastLegacyId = 0;\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value) {\n\t\tconst resolvedValue = value !== null && value !== void 0 ? value : toValue(source);\n\t\tif (isSupported.value && resolvedValue != null) {\n\t\t\tcopyPending.value = true;\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tconst clipboardItem = createClipboardItem(resolvedValue);\n\t\t\t\tawait navigator.clipboard.write([clipboardItem]);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) if (typeof resolvedValue === \"string\") {\n\t\t\t\ttext.value = resolvedValue;\n\t\t\t\tlegacyCopy(resolvedValue);\n\t\t\t} else {\n\t\t\t\tconst currentId = ++lastLegacyId;\n\t\t\t\tconst resolvedText = await resolvedValue();\n\t\t\t\tif (resolvedText != null && currentId === lastLegacyId) {\n\t\t\t\t\ttext.value = resolvedText;\n\t\t\t\t\tlegacyCopy(resolvedText);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t\tcopyPending.value = false;\n\t\t}\n\t}\n\tfunction createClipboardItem(value) {\n\t\tif (typeof value === \"string\") {\n\t\t\ttext.value = value;\n\t\t\treturn new ClipboardItem({ \"text/plain\": value });\n\t\t} else return new ClipboardItem({ \"text/plain\": value().then((resolvedText = \"\") => {\n\t\t\ttext.value = resolvedText;\n\t\t\treturn new Blob([resolvedText], { type: \"text/plain\" });\n\t\t}) });\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tta.setAttribute(\"readonly\", \"\");\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tcopyPending: shallowReadonly(copyPending),\n\t\tisSupported,\n\t\ttext: shallowReadonly(text),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy\n\t};\n}\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst content = shallowRef([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* #__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = watchPausable(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector, attribute, value) => {\n\t\tconst el = typeof selector === \"string\" ? window === null || window === void 0 ? void 0 : window.document.querySelector(selector) : unrefElement(selector);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n//#endregion\n//#region useCountdown/index.ts\nfunction getDefaultScheduler$8(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = 1e3, immediate = false } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn (cb) => useIntervalFn(cb, 1e3, { immediate: false });\n}\n/**\n* Reactive countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options = {}) {\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst { scheduler = getDefaultScheduler$8(options), onTick, onComplete } = options;\n\tconst controls = scheduler(() => {\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\tonTick === null || onTick === void 0 || onTick();\n\t\tif (remaining.value <= 0) {\n\t\t\tcontrols.pause();\n\t\t\tonComplete === null || onComplete === void 0 || onComplete();\n\t\t}\n\t});\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tcontrols.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!controls.isActive.value) {\n\t\t\tif (remaining.value > 0) controls.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tcontrols.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: controls.pause,\n\t\tresume,\n\t\tisActive: controls.isActive\n\t};\n}\n//#endregion\n//#region useCssSupports/index.ts\nfunction useCssSupports(...args) {\n\tlet options = {};\n\tif (typeof toValue(args.at(-1)) === \"object\") options = args.pop();\n\tconst [prop, value] = args;\n\tconst { window = defaultWindow, ssrValue = false } = options;\n\tconst isMounted = useMounted();\n\treturn { isSupported: computed(() => {\n\t\tif (!isClient || !isMounted.value) return ssrValue;\n\t\treturn args.length === 2 ? window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop), toValue(value)) : window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop));\n\t}) };\n}\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window === null || window === void 0 || (_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tconst value = (_window$getComputedSt = window.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();\n\t\t\tvariable.value = value || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index < 0) index = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode === \"dark\", defaultHandler, mode);\n\t\t\telse defaultHandler(mode);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window) {\n\t\t\tconst onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n\t\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\t\tacceleration.value = {\n\t\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t\t};\n\t\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t\t};\n\t\t\t\trotationRate.value = {\n\t\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t\t};\n\t\t\t\tinterval.value = event.interval;\n\t\t\t});\n\t\t\tuseEventListener(window, \"devicemotion\", onDeviceMotion, { passive: true });\n\t\t}\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"DeviceOrientationEvent\" in window);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window && isSupported.value) useEventListener(window, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window) stop = watchImmediate(query, () => pixelRatio.value = window.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: shallowReadonly(pixelRatio),\n\t\tstop\n\t};\n}\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated } = options;\n\tconst devices = shallowRef([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator.mediaDevices.enumerateDevices();\n\t\tonUpdated === null || onUpdated === void 0 || onUpdated(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator === null || navigator === void 0 || (_navigator$mediaDevic = navigator.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tif (!document) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document.visibilityState);\n\tuseEventListener(document, \"visibilitychange\", () => {\n\t\tvisibility.value = document.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n//#endregion\n//#region useDraggable/index.ts\nconst defaultScrollConfig = {\n\tspeed: 2,\n\tmargin: 30,\n\tdirection: \"both\"\n};\nfunction clampContainerScroll(container) {\n\tif (container.scrollLeft > container.scrollWidth - container.clientWidth) container.scrollLeft = Math.max(0, container.scrollWidth - container.clientWidth);\n\tif (container.scrollTop > container.scrollHeight - container.clientHeight) container.scrollTop = Math.max(0, container.scrollHeight - container.clientHeight);\n}\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue, _toValue2, _toValue3, _scrollConfig$directi;\n\tconst { pointerTypes, preventDefault, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0], restrictInView, autoScroll = false } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst scrollConfig = toValue(autoScroll);\n\tconst scrollSettings = typeof scrollConfig === \"object\" ? {\n\t\tspeed: (_toValue2 = toValue(scrollConfig.speed)) !== null && _toValue2 !== void 0 ? _toValue2 : defaultScrollConfig.speed,\n\t\tmargin: (_toValue3 = toValue(scrollConfig.margin)) !== null && _toValue3 !== void 0 ? _toValue3 : defaultScrollConfig.margin,\n\t\tdirection: (_scrollConfig$directi = scrollConfig.direction) !== null && _scrollConfig$directi !== void 0 ? _scrollConfig$directi : defaultScrollConfig.direction\n\t} : defaultScrollConfig;\n\tconst getScrollAxisValues = (value) => typeof value === \"number\" ? [value, value] : [value.x, value.y];\n\tconst handleAutoScroll = (container, targetRect, position) => {\n\t\tconst { clientWidth, clientHeight, scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;\n\t\tconst [marginX, marginY] = getScrollAxisValues(scrollSettings.margin);\n\t\tconst [speedX, speedY] = getScrollAxisValues(scrollSettings.speed);\n\t\tlet deltaX = 0;\n\t\tlet deltaY = 0;\n\t\tif (scrollSettings.direction === \"x\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.x < marginX && scrollLeft > 0) deltaX = -speedX;\n\t\t\telse if (position.x + targetRect.width > clientWidth - marginX && scrollLeft < scrollWidth - clientWidth) deltaX = speedX;\n\t\t}\n\t\tif (scrollSettings.direction === \"y\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.y < marginY && scrollTop > 0) deltaY = -speedY;\n\t\t\telse if (position.y + targetRect.height > clientHeight - marginY && scrollTop < scrollHeight - clientHeight) deltaY = speedY;\n\t\t}\n\t\tif (deltaX || deltaY) container.scrollBy({\n\t\t\tleft: deltaX,\n\t\t\ttop: deltaY,\n\t\t\tbehavior: \"auto\"\n\t\t});\n\t};\n\tlet autoScrollInterval = null;\n\tconst startAutoScroll = () => {\n\t\tconst container = toValue(containerElement);\n\t\tif (container && !autoScrollInterval) autoScrollInterval = setInterval(() => {\n\t\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\t\tconst { x, y } = position.value;\n\t\t\tconst relativePosition = {\n\t\t\t\tx: x - container.scrollLeft,\n\t\t\t\ty: y - container.scrollTop\n\t\t\t};\n\t\t\tif (relativePosition.x >= 0 && relativePosition.y >= 0) {\n\t\t\t\thandleAutoScroll(container, targetRect, relativePosition);\n\t\t\t\trelativePosition.x += container.scrollLeft;\n\t\t\t\trelativePosition.y += container.scrollTop;\n\t\t\t\tposition.value = relativePosition;\n\t\t\t}\n\t\t}, 1e3 / 60);\n\t};\n\tconst stopAutoScroll = () => {\n\t\tif (autoScrollInterval) {\n\t\t\tclearInterval(autoScrollInterval);\n\t\t\tautoScrollInterval = null;\n\t\t}\n\t};\n\tconst isPointerNearEdge = (pointer, container, margin, targetRect) => {\n\t\tconst [marginX, marginY] = typeof margin === \"number\" ? [margin, margin] : [margin.x, margin.y];\n\t\tconst { clientWidth, clientHeight } = container;\n\t\treturn pointer.x < marginX || pointer.x + targetRect.width > clientWidth - marginX || pointer.y < marginY || pointer.y + targetRect.height > clientHeight - marginY;\n\t};\n\tconst checkAutoScroll = () => {\n\t\tif (toValue(options.disabled) || !pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (!container) return;\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst { x, y } = position.value;\n\t\tconst relativePosition = {\n\t\t\tx: x - container.scrollLeft,\n\t\t\ty: y - container.scrollTop\n\t\t};\n\t\tif (isPointerNearEdge(relativePosition, container, scrollSettings.margin, targetRect)) startAutoScroll();\n\t\telse stopAutoScroll();\n\t};\n\tif (toValue(autoScroll)) watch(position, checkAutoScroll);\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + (autoScroll ? 0 : container.scrollLeft) : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + (autoScroll ? 0 : container.scrollTop) : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (container instanceof HTMLElement) clampContainerScroll(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tif (toValue(autoScroll) && container) {\n\t\t\tif (autoScrollInterval === null) handleAutoScroll(container, targetRect, {\n\t\t\t\tx,\n\t\t\t\ty\n\t\t\t});\n\t\t\tx += container.scrollLeft;\n\t\t\ty += container.scrollTop;\n\t\t}\n\t\tif (container && (restrictInView || autoScroll)) {\n\t\t\tif (axis !== \"y\") {\n\t\t\t\tconst relativeX = x - container.scrollLeft;\n\t\t\t\tif (relativeX < 0) x = container.scrollLeft;\n\t\t\t\telse if (relativeX > container.clientWidth - targetRect.width) x = container.clientWidth - targetRect.width + container.scrollLeft;\n\t\t\t}\n\t\t\tif (axis !== \"x\") {\n\t\t\t\tconst relativeY = y - container.scrollTop;\n\t\t\t\tif (relativeY < 0) y = container.scrollTop;\n\t\t\t\telse if (relativeY > container.clientHeight - targetRect.height) y = container.clientHeight - targetRect.height + container.scrollTop;\n\t\t\t}\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tif (autoScroll) stopAutoScroll();\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, [\"pointerup\", \"pointercancel\"], end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `\n left: ${position.value.x}px;\n top: ${position.value.y}px;\n ${autoScroll ? \"text-wrap: nowrap;\" : \"\"}\n `)\n\t};\n}\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tif (_options.checkValidity) return _options.checkValidity(items);\n\t\t\tconst types = Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type);\n\t\t\tconst dataTypesValid = checkDataTypes(types);\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"ResizeObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n//#endregion\n//#region useElementByPoint/index.ts\nfunction getDefaultScheduler$7(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (cb) => useRafFn(cb, { immediate }) : (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document = defaultDocument, multiple, scheduler = getDefaultScheduler$7(options) } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document && \"elementsFromPoint\" in document;\n\t\treturn document && \"elementFromPoint\" in document;\n\t});\n\tconst element = shallowRef(null);\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...scheduler(() => {\n\t\t\tvar _document$elementsFro, _document$elementFrom;\n\t\t\telement.value = toValue(multiple) ? (_document$elementsFro = document === null || document === void 0 ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document === null || document === void 0 ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t\t})\n\t};\n}\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n//#endregion\n//#region useElementOverflow/index.ts\n/**\n* react a dom's overflow state\n* @see https://vueuse.org/useElementOverflow\n* @param target\n* @param option\n*/\nfunction useElementOverflow(target, option = {}) {\n\tconst { observeMutation = false, onUpdated, window = defaultWindow } = option;\n\tconst isXOverflowed = shallowRef(false);\n\tconst isYOverflowed = shallowRef(false);\n\tfunction update(htmlEl) {\n\t\tisXOverflowed.value = htmlEl.scrollWidth > htmlEl.offsetWidth;\n\t\tisYOverflowed.value = htmlEl.scrollHeight > htmlEl.offsetHeight;\n\t}\n\tconst onResizeUpdated = onUpdated;\n\tconst targetEl = computed(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (!el || el instanceof SVGElement) return void 0;\n\t\treturn el;\n\t});\n\tconst targets = () => {\n\t\tconst el = targetEl.value;\n\t\tif (!el || el instanceof SVGElement) return [];\n\t\treturn [el, ...Array.from(el.children).filter((i) => i instanceof HTMLElement)];\n\t};\n\tuseResizeObserver(targets, (entries, observer) => {\n\t\tconst el = targetEl.value;\n\t\tif (el) update(el);\n\t\tonResizeUpdated === null || onResizeUpdated === void 0 || onResizeUpdated(entries, observer);\n\t}, { window });\n\tif (observeMutation) {\n\t\tconst onMutationUpdated = onUpdated;\n\t\tuseMutationObserver(targets, (entries, observer) => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el) update(el);\n\t\t\tonMutationUpdated === null || onMutationUpdated === void 0 || onMutationUpdated(entries, observer);\n\t\t}, {\n\t\t\twindow,\n\t\t\t...typeof observeMutation === \"object\" ? observeMutation : {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tcharacterData: true\n\t\t\t}\n\t\t});\n\t}\n\treturn {\n\t\tisXOverflowed: shallowReadonly(isXOverflowed),\n\t\tisYOverflowed: shallowReadonly(isYOverflowed),\n\t\tstop,\n\t\tupdate: () => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el && window) update(el);\n\t\t}\n\t};\n}\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele && \"offsetWidth\" in ele) if (box === \"content-box\" && window) {\n\t\t\tconst cs = window.getComputedStyle(ele);\n\t\t\tconst padX = Number.parseFloat(cs.paddingLeft) + Number.parseFloat(cs.paddingRight);\n\t\t\tconst padY = Number.parseFloat(cs.paddingTop) + Number.parseFloat(cs.paddingBottom);\n\t\t\tconst bdX = Number.parseFloat(cs.borderLeftWidth) + Number.parseFloat(cs.borderRightWidth);\n\t\t\tconst bdY = Number.parseFloat(cs.borderTopWidth) + Number.parseFloat(cs.borderBottomWidth);\n\t\t\twidth.value = ele.offsetWidth - padX - bdX;\n\t\t\theight.value = ele.offsetHeight - padY - bdY;\n\t\t} else {\n\t\t\twidth.value = ele.offsetWidth;\n\t\t\theight.value = ele.offsetHeight;\n\t\t}\n\t\telse if (ele) {\n\t\t\twidth.value = initialSize.width;\n\t\t\theight.value = initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects changes to a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin, threshold = 0, window = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"IntersectionObserver\" in window);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\ttoValue(rootMargin),\n\t\tisActive.value\n\t], ([targets, root, rootMargin]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementVisibility/index.ts\nfunction useElementVisibility(element, options = {}) {\n\tconst { window = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false, initialValue = false } = options;\n\tconst isVisible = shallowRef(initialValue);\n\tconst observerController = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = isVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\tisVisible.value = isIntersecting;\n\t\tif (once) watchOnce(isVisible, () => {\n\t\t\tobserverController.stop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow,\n\t\tthreshold,\n\t\trootMargin\n\t});\n\treturn options.controls ? {\n\t\t...observerController,\n\t\tisVisible\n\t} : isVisible;\n}\n//#endregion\n//#region useEventBus/internal.ts\nconst events = /* @__PURE__ */ new Map();\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tfunction on(listener) {\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\ttryOnScopeDispose(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document === null || document === void 0 ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document === null || document === void 0 ? void 0 : document.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument === null || document === void 0 || document.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tif (currentExecuteCounter === executeCounter) {\n\t\t\t\terror.value = errorData;\n\t\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\t}\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch]) => refetch && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: shallowReadonly(isFinished),\n\t\tisFetching: shallowReadonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch]) => refetch && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document ? document.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tconst result = event.target;\n\t\t\t\tfiles.value = result.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options.multiple);\n\t\tel.accept = toValue(options.accept);\n\t\tel.webkitdirectory = toValue(options.directory);\n\t\tif (hasOwn(options, \"capture\")) el.capture = toValue(options.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document === null || document === void 0 ? void 0 : document.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document && m in document);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document === null || document === void 0 ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document && document[fullscreenEnabled.value] != null) return document[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[fullscreenEnabled.value]) != null) return Boolean(target[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document === null || document === void 0 ? void 0 : document[exitMethod.value]) != null) await document[exitMethod.value]();\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[exitMethod.value]) != null) await target[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target = targetRef.value;\n\t\tif (requestMethod.value && (target === null || target === void 0 ? void 0 : target[requestMethod.value]) != null) {\n\t\t\tawait target[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getGamepads\" in navigator);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) {\n\t\t\tif (!gamepad) continue;\n\t\t\tconst index = gamepads.value.findIndex((x) => x.index === gamepad.index);\n\t\t\tif (index > -1) gamepads.value[index] = stateFromGamepad(gamepad);\n\t\t}\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"geolocation\" in navigator);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = shallowRef({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator) navigator.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events = defaultEvents$1, window = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window) {\n\t\tconst document = window.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events) useEventListener(window, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document, \"visibilitychange\", () => {\n\t\t\tif (document.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x) {\n\t\t\tscrollTo(x, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y) {\n\t\t\tscrollTo(void 0, y);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = window.getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window.document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window) return;\n\t\tconst eventTarget = (_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target;\n\t\tsetArrivedState(eventTarget);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = shallowRef();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tconst canLoad = computed(() => {\n\t\tif (!observedElement.value) return false;\n\t\treturn canLoadMore(observedElement.value);\n\t});\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoad.value || promise.value) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\tpromise.value = null;\n\t\t\tnextTick(() => checkAndLoad());\n\t\t});\n\t}\n\ttryOnUnmounted(watch(() => [\n\t\tstate.arrivedState[direction],\n\t\tisElementVisible.value,\n\t\tcanLoad.value\n\t], checkAndLoad, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t}));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events = defaultEvents, document = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document) events.forEach((listenerEvent) => {\n\t\tuseEventListener(document, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window === null || window === void 0 ? void 0 : window.localStorage, options);\n}\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n//#endregion\n//#region useMagicKeys/index.ts\n/**\n* Reactive keys pressed state, with magical keys combination support.\n*\n* @see https://vueuse.org/useMagicKeys\n*/\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = /* @__PURE__ */ new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (!key) return;\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key of values) {\n\t\t\tusedKeys.add(key);\n\t\t\tsetRefs(key, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key) => {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = shallowRef([]);\n\tconst tracks = shallowRef([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = Boolean(document && \"pictureInPictureEnabled\" in document);\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src, type, media }) => {\n\t\t\tconst source = document.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n//#endregion\n//#region useMemory/index.ts\nfunction getDefaultScheduler$6(options) {\n\tif (\"interval\" in options || \"immediate\" in options || \"immediateCallback\" in options) {\n\t\tconst { interval = 1e3, immediate, immediateCallback } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, {\n\t\t\timmediate,\n\t\t\timmediateCallback\n\t\t});\n\t}\n\treturn useIntervalFn;\n}\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = shallowRef();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { scheduler = getDefaultScheduler$6 } = options;\n\t\tscheduler(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window = defaultWindow, target = window, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window) {\n\t\t\t_prevScrollX = window.scrollX;\n\t\t\t_prevScrollY = window.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window === null || window === void 0 ? void 0 : window.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tfor (const rect of el.getClientRects()) {\n\t\t\tconst { left, top, width, height } = rect;\n\t\t\telementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n\t\t\telementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n\t\t\telementHeight.value = height;\n\t\t\telementWidth.value = width;\n\t\t\tconst elX = x.value - elementPositionX.value;\n\t\t\tconst elY = y.value - elementPositionY.value;\n\t\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\t\tif (handleOutside || !isOutside.value) {\n\t\t\t\telementX.value = elX;\n\t\t\t\telementY.value = elY;\n\t\t\t}\n\t\t\tif (!isOutside.value) break;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"language\" in navigator);\n\tconst language = shallowRef(navigator === null || navigator === void 0 ? void 0 : navigator.language);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tif (navigator) language.value = navigator.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"connection\" in navigator);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator) return;\n\t\tisOnline.value = navigator.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window) {\n\t\tuseEventListener(window, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: shallowReadonly(isOnline),\n\t\tsaveData: shallowReadonly(saveData),\n\t\tofflineAt: shallowReadonly(offlineAt),\n\t\tonlineAt: shallowReadonly(onlineAt),\n\t\tdownlink: shallowReadonly(downlink),\n\t\tdownlinkMax: shallowReadonly(downlinkMax),\n\t\teffectiveType: shallowReadonly(effectiveType),\n\t\trtt: shallowReadonly(rtt),\n\t\ttype: shallowReadonly(type)\n\t};\n}\n//#endregion\n//#region useNow/index.ts\nfunction getDefaultScheduler$5(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (fn) => useRafFn(fn, { immediate }) : (fn) => useIntervalFn(fn, interval, options);\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, scheduler = getDefaultScheduler$5(options) } = options;\n\tconst now = shallowRef(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = scheduler(update);\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn shallowReadonly(url);\n}\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value) {\n\t\t\t_value.value = clamp(value, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window) return;\n\t\tevent = event || window.event;\n\t\tconst from = event.relatedTarget || event.toElement;\n\t\tisLeft.value = !from;\n\t};\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n\tconst screenOrientation = isSupported.value ? window.screen.orientation : {};\n\tconst orientation = shallowRef(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else {\n\t\t\t\tconst value = -(y.value - height.value / 2) / height.value;\n\t\t\t\treturn mouseRollAdjust(value);\n\t\t\t}\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else {\n\t\t\t\tconst value = (x.value - width.value / 2) / width.value;\n\t\t\t\treturn mouseTiltAdjust(value);\n\t\t\t}\n\t\t}),\n\t\tsource\n\t};\n}\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window = defaultWindow, immediate = true, ...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"PerformanceObserver\" in window);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n};\nconst keys = /* #__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document && \"pointerLockElement\" in document);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, [\"pointerup\", \"pointercancel\"], (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: shallowReadonly(isSwiping),\n\t\tdirection: shallowReadonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tif (!window) return shallowRef([\"en\"]);\n\tconst navigator = window.navigator;\n\tconst value = shallowRef(navigator.languages);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tvalue.value = navigator.languages;\n\t}, { passive: true });\n\treturn value;\n}\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the ","\n\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: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from '@nextcloud/axios'\nimport type { IAppSettings, INextcloud22LogEntry } from './interfaces'\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\ninterface ApiGetLog {\n\toffset?: number\n\tcount?: number\n\tquery?: string\n}\n\ninterface ApiPollLog {\n\tlastReqId: string\n}\n\ninterface ApiLogResult {\n\t/** New entries */\n\tdata: readonly INextcloud22LogEntry[]\n\t/** True if more entries are available */\n\tremain: boolean\n}\n\ntype ApiPollLogResult = readonly INextcloud22LogEntry[]\n\ntype IAppSettingsKey = keyof IAppSettings\n\ninterface ApiSetAppSetting {\n\tsettingsKey: I\n\tsettingsValue: IAppSettings[I]\n}\n\ntype ApiGetAppSettings = never\n\n/**\n * Fetch log entries from server\n *\n * @param data Parameters for request\n * @param config Axios config for setting data\n * @return Array of fetched log entries\n * @throws {AxiosError} with HTTP status 424 if log type is not set to `file`\n */\nexport const getLog = (data: ApiGetLog, config: AxiosRequestConfig = {}) => axios.get>(generateUrl('apps/logreader/api/log'), { ...config, params: data }) as Promise>\n\n/**\n * Fetch log entries from server\n *\n * @param data Parameters for request\n * @param config Axios config for setting data\n * @return Array of fetched log entries\n * @throws {AxiosError} with HTTP status 424 if log type is not set to `file`\n */\nexport const pollLog = (data: ApiPollLog, config: AxiosRequestConfig = {}) => axios.get>(generateUrl('apps/logreader/api/poll'), { ...config, params: data }) as Promise>\n\n/**\n * Change an app setting value\n *\n * @param data Parameters for request\n * @param config Axios config for setting data\n * @return\n */\nexport const setAppSetting = (data: ApiSetAppSetting, config: AxiosRequestConfig> = {}) => axios.put>>(generateUrl('apps/logreader/api/settings'), data, config)\n\n/**\n * Get current app settings\n *\n * @param data Request parameters\n * @param config Optional Axios request config\n * @return The current app config\n */\nexport const getAppSettings = (data?: ApiGetAppSettings, config: AxiosRequestConfig = {}) => axios.get>(generateUrl('apps/logreader/api/settings'), { ...config, params: data })\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/**\n * Mapping from numeric log level (0 - 4) to localized names\n */\nexport const LOGGING_LEVEL_NAMES = [\n\tt('logreader', 'Debug'),\n\tt('logreader', 'Info'),\n\tt('logreader', 'Warning'),\n\tt('logreader', 'Error'),\n\tt('logreader', 'Fatal'),\n]\n\n/**\n * Mapping from numeric log level to string\n */\nexport const LOGGING_LEVEL = [\n\t'debug',\n\t'info',\n\t'warning',\n\t'error',\n\t'fatal',\n] as const\n\n/**\n * Interval for polling in ms\n */\nexport const POLLING_INTERVAL = 10000\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IException, ITraceLine } from '../interfaces/ILogEntry'\n\n/*\nExample:\n```\n{\n\t...\n\t\"message\":\"Error while running background job (class: OCA\\\\Files_Versions\\\\BackgroundJob\\\\ExpireVersions, arguments: )\",\n\t\"exception\":{\n\t\t\"Exception\":\"OCP\\\\Files\\\\NotFoundException\",\n\t\t\"Message\":\"...\",\n\t\t\"Code\":0,\n\t\t\"Trace\":[{\n\t\t\t\"file\":\"/var/www/nextcloud/lib/private/Files/Node/Folder.php\",\n\t\t\t\"line\":138,\n\t\t\t\"function\":\"get\",\n\t\t\t\"class\":\"OC\\\\Files\\\\Node\\\\Root\",\n\t\t\t\"type\":\"->\"\n\t\t}]\n\t\t\"File\":\"/var/www/nextcloud/lib/private/Files/Node/Root.php\",\n\t\t\"Line\":209,\n\t\t\"CustomMessage\":\"Error while running background job (class: OCA\\\\Files_Versions\\\\BackgroundJob\\\\ExpireVersions, arguments: )\"\n\t}\n}\n```\n*/\n\n/**\n * Parse the `exception` property of a Nextcloud log entry\n *\n * @param logException The JSON parsed `exception` property\n */\nexport function parseException(logException: IException | string): IException | undefined {\n\tif (typeof logException === 'object') {\n\t\treturn logException\n\t}\n\n\t// Handle nested json exceptions\n\tif (isNestedJsonException(logException)) {\n\t\treturn tryParseJSON(logException)\n\t}\n\n\t// Handle old exceptions (up to nextcloud)\n\tif (isOldStyleException(logException)) {\n\t\tconst data = tryParseJSON(logException.slice(10))\n\t\tconst traceLines = data.Trace?.split('\\n')\n\t\tdata.Trace = traceLines?.map(parseTraceLine)\n\t\treturn data\n\t}\n\n\treturn undefined\n}\n\n/**\n * Nested JSON exceptions are exceptions where the exception property is another exception as a JSON string\n *\n * @param logMessage message to check\n */\nfunction isNestedJsonException(logMessage: unknown) {\n\treturn typeof logMessage === 'string' && logMessage[0] === '{'\n}\n\n/**\n * Check if exception is an old Nextcloud 14 exception\n *\n * @param logMessage message to check\n */\nfunction isOldStyleException(logMessage: unknown) {\n\treturn typeof logMessage === 'string' && logMessage.slice(0, 12) === 'Exception: {'\n}\n\n/**\n * Try to parse JSON, sanitized possible unescaped parts.\n *\n * @param json The json string\n * @throws {Error} when json could not be parsed\n */\nfunction tryParseJSON(json: string) {\n\ttry {\n\t\treturn JSON.parse(json)\n\t} catch (e) {\n\t\t// fix unescaped newlines\n\t\tjson = json.replace(/\\n/g, '\\\\n')\n\t\t// fix unescaped namespace delimiters\n\t\tjson = json.replace(/([^\\\\])\\\\([A-Z{])/g, '$1\\\\\\\\$2')\n\t\treturn JSON.parse(json)\n\t}\n}\n\n/**\n * Parse trace lines of old Nextcloud 14 exceptions\n *\n * @param line The trace line to parse\n */\nfunction parseTraceLine(line: string) {\n\tlet parts = line.split(' ')\n\tconst number = parts.shift()\n\tconst traceData = parts.join(' ')\n\tparts = traceData.split(':')\n\n\tif (parts.length > 1) {\n\t\tlet file: ITraceLine['file']\n\t\tlet line: ITraceLine['line']\n\t\tconst fileAndLine = parts.shift() as string\n\t\tconst call = parts.join(' ')\n\t\tif (fileAndLine[0] === '[') {\n\t\t\tfile = fileAndLine\n\t\t} else {\n\t\t\tconst filePaths = fileAndLine.split('(', 2)\n\t\t\tfile = filePaths[0]\n\t\t\tconst lineNumber = filePaths[1]?.slice(0, filePaths[1].length - 1)\n\t\t\tline = lineNumber ? parseInt(lineNumber) : undefined\n\t\t}\n\t\treturn {\n\t\t\tfunction: call,\n\t\t\tnumber,\n\t\t\tfile,\n\t\t\tline,\n\t\t}\n\t} else {\n\t\treturn {\n\t\t\tfunction: traceData,\n\t\t\tnumber,\n\t\t\tfile: false,\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder().setApp(appName).build()\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\n/**\n * Copied from Densaugeo/JSON-String-Splitter\n *\n * Split concatenated JSON strings\n * Accepts a string consisting of one or more valid JSON substrings and splits it. Any remaining string after the end of the last complete JSON substring is returned in the 'remainder' field.\n * Passing in invalid JSON can result in garbage output\n *\n * @param string The string to look for JSON in\n *\n * @example\n * const pieces = splitter('{\"foo\":\"bar\"}{\"more\":\"json\"}{\"partial\":\"json\"')\n *\n * console.log(pieces.jsons[0]); // '{\"foo\":\"bar\"}'\n * console.log(pieces.jsons[1]); // '{\"more\":\"json\"}'\n * console.log(pieces.remainder); // '{\"partial\":\"json\"'\n */\nexport function splitter(string: string): { jsons: string[], remainder: string } {\n\tconst START = 0, JSON = 1, STRING = 2, ESCAPE = 3\n\n\tlet state = START\n\tlet nestingLevel = 0\n\tlet jsonStart = null\n\tconst bounds = []\n\n\tfor (let i = 0; i < string.length; ++i) {\n\t\tswitch (state) {\n\t\t\tcase START: {\n\t\t\t\tswitch (string[i]) {\n\t\t\t\t\tcase '{': {\n\t\t\t\t\t\t++nestingLevel\n\t\t\t\t\t\tstate = JSON\n\t\t\t\t\t\tjsonStart = i\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase JSON: {\n\t\t\t\tswitch (string[i]) {\n\t\t\t\t\tcase '{': {\n\t\t\t\t\t\t++nestingLevel\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase '}': {\n\t\t\t\t\t\t--nestingLevel\n\t\t\t\t\t\tif (nestingLevel === 0) {\n\t\t\t\t\t\t\tstate = START\n\t\t\t\t\t\t\tbounds.push({ start: jsonStart, end: i + 1 })\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase '\"': {\n\t\t\t\t\t\tstate = STRING\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase STRING: {\n\t\t\t\tswitch (string[i]) {\n\t\t\t\t\tcase '\"': {\n\t\t\t\t\t\tstate = JSON\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase '\\\\': {\n\t\t\t\t\t\tstate = ESCAPE\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase ESCAPE: {\n\t\t\t\tstate = STRING\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tconst result = {\n\t\tjsons: [],\n\t\tremainder: string.substring(bounds[bounds.length - 1].end),\n\t}\n\n\tbounds.forEach(function(v) {\n\t\tresult.jsons.push(string.substring(v.start, v.end))\n\t})\n\n\treturn result\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { ILogEntry, IRawLogEntry } from '../interfaces'\n\nimport { parseException } from './exception'\nimport { logger } from './logger'\nimport { splitter } from './splitter'\n\n/**\n * Parse a given log file\n *\n * @param file The log file\n */\nexport async function parseLogFile(file: File): Promise {\n\treturn parseLogString(await file.text())\n}\n\n/**\n * Parse a given log file as string\n *\n * @param raw The raw log file content\n */\nexport async function parseLogString(raw: string): Promise {\n\tlet entries: IRawLogEntry[]\n\ttry {\n\t\tconst lines = raw.split('\\n')\n\t\tentries = lines.map(tryParseJSON)\n\t} catch (e) {\n\t\tlogger.debug('falling back to json splitter')\n\n\t\t// the input might have had its data reformatted, breaking the original newline separated json\n\t\tconst lines = splitter(raw).jsons\n\t\tentries = lines.map(tryParseJSON)\n\t}\n\treturn entries.map(parseRawLogEntry)\n}\n\n/**\n * Parse a raw (unknown type of) log entry into a modern log entry\n *\n * @param entry The raw log entry\n */\nexport function parseRawLogEntry(entry: IRawLogEntry): ILogEntry {\n\treturn {\n\t\t...entry,\n\t\texception: parseException((entry as ILogEntry).exception || entry.message),\n\t} as ILogEntry\n}\n\n/**\n * Try to parse a single log entry\n *\n * @param json raw log entry\n */\nfunction tryParseJSON(json: string): IRawLogEntry {\n\ttry {\n\t\treturn JSON.parse(json)\n\t} catch (e) {\n\t\tlogger.debug('Could not simply parse log entry', { error: e, json })\n\n\t\t// Handle quoted log entries\n\t\tif (json.startsWith('\"') && json.endsWith('\"')) {\n\t\t\tlet inner = json.substring(1, json.length - 1)\n\n\t\t\t// csv escaped quotes\n\t\t\tif (inner.match(/^\\{\\s*\"\"/)) {\n\t\t\t\tinner = inner.replace(/\"\"/g, '\"')\n\t\t\t}\n\t\t\treturn JSON.parse(inner)\n\t\t}\n\n\t\t// fix unescaped message json\n\t\tconst startPos = json.indexOf('\"message\":\"') + 11\n\t\tconst endPos = json.lastIndexOf('\",\"level\":')\n\t\tconst start = json.substring(0, startPos)\n\t\tconst end = json.substring(endPos)\n\t\tconst message = json.slice(startPos, endPos)\n\n\t\tconst escapedMessage = message.replace(/([^\\\\]|^)[\"]/g, '$1\\\\\"')\n\t\tjson = start + escapedMessage + end\n\n\t\treturn JSON.parse(json)\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IAppSettings } from '../interfaces'\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\nimport { getAppSettings, setAppSetting } from '../api'\n\ninterface SettingsState extends IAppSettings {\n\t/**\n\t * Local logging file if loaded\n\t */\n\tlocalFile?: File\n}\n\n/**\n * Store for handling app settings\n */\nexport const useSettingsStore = defineStore('logreader-settings', () => {\n\t/**\n\t * Saved setting loaded from server\n\t */\n\tconst _loadedSettings = loadState('logreader', 'settings', { enabled: false, liveLog: false, dateTimeFormat: 'raw', shownLevels: [], logLevel: 2 })\n\n\t/**\n\t * Is file logging enabled on server\n\t */\n\tconst enabled = ref(_loadedSettings.enabled)\n\n\t/**\n\t * Wether we should load log entries from server\n\t * This checks if file logging is enabled and if a local file is currently shown\n\t */\n\tconst isEnabled = computed(() => enabled.value && localFile.value === undefined)\n\n\t/**\n\t * Is live log aka polling enabled\n\t */\n\tconst liveLog = ref(_loadedSettings.liveLog)\n\n\t/**\n\t * Array of logging levels enabled to show\n\t */\n\tconst shownLevels = ref(_loadedSettings.shownLevels)\n\n\t/**\n\t * The current log level set on the server\n\t */\n\tconst logLevel = ref(_loadedSettings.logLevel)\n\n\t/**\n\t * The datetime format to used for displaying times\n\t * This is the internal property used for the computed getter\n\t */\n\tconst _dateTimeFormat = ref(_loadedSettings.dateTimeFormat)\n\n\t/**\n\t * The datetime format to use for showing times to the user\n\t * Will always be 'raw' for local files\n\t */\n\tconst dateTimeFormat = computed({\n\t\t// In case of a local file we do not know the datetime format of the logfile so we can only display the raw format\n\t\tget: () => localFile.value !== undefined ? 'raw' : _dateTimeFormat.value,\n\t\tset: (v) => {\n\t\t\t_dateTimeFormat.value = v\n\t\t},\n\t})\n\n\t/**\n\t * The uploaded log file to display\n\t */\n\tconst localFile = ref()\n\t/**\n\t * Filename of the uploaded local log file\n\t */\n\tconst localFileName = computed(() => localFile.value?.name || '')\n\n\t/**\n\t * Set app config setting through store\n\t *\n\t * @param setting The setting to change\n\t * @param value New value of setting\n\t */\n\tasync function setSetting(this: SettingsState, setting: T, value: IAppSettings[T]) {\n\t\tawait setAppSetting({ settingsKey: setting, settingsValue: value });\n\n\t\t// set setting in state\n\t\t(this as SettingsState)[setting] = value\n\t}\n\n\t/**\n\t * Get app config settings from server and update the current state\n\t */\n\tasync function getSettings(this: SettingsState) {\n\t\tconst settings = await getAppSettings();\n\n\t\t// Update current state with loaded settings\n\t\t(Object.keys(settings.data) as Array).forEach((key) => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(this[key] as any) = settings.data[key]\n\t\t})\n\n\t\treturn settings.data\n\t}\n\n\treturn { shownLevels, logLevel, dateTimeFormat, enabled, isEnabled, liveLog, localFile, localFileName, setSetting, getSettings }\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosError } from '@nextcloud/axios'\nimport type { ILogEntry } from '../interfaces'\n\nimport { showError } from '@nextcloud/dialogs'\nimport { translate as t } from '@nextcloud/l10n'\nimport { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\nimport { getLog, pollLog } from '../api'\nimport { POLLING_INTERVAL } from '../constants'\nimport { parseLogFile, parseLogString, parseRawLogEntry } from '../utils/logfile'\nimport { logger } from '../utils/logger'\nimport { useSettingsStore } from './settings'\n\n/**\n * Store for handling log entries\n */\nexport const useLogStore = defineStore('logreader-logs', () => {\n\tconst _settings = useSettingsStore()\n\n\t/**\n\t * List of all log entries\n\t */\n\tconst allEntries = ref([])\n\n\t/**\n\t * The current query to filter logs\n\t */\n\tconst query = ref('')\n\n\t/**\n\t * List of filtered log entries (search query)\n\t */\n\tconst entries = computed(() => {\n\t\tif (query.value) {\n\t\t\tconst text = query.value.toLowerCase()\n\t\t\treturn allEntries.value.filter((entry) => JSON.stringify(entry).toLowerCase().includes(text))\n\t\t}\n\t\treturn allEntries.value\n\t})\n\n\t/**\n\t * Whether there are more remaining (older) log entries on the server\n\t */\n\tconst hasRemainingEntries = ref(true)\n\n\t/**\n\t * Whether polling service is currently running\n\t */\n\tconst _polling = ref(false)\n\n\t/**\n\t * Whether we are currently loading, used to prevent multiple loading requests at the same time\n\t */\n\tconst _loading = ref(false)\n\n\t/**\n\t * Load more entries from server\n\t *\n\t * @param older Load older entries (default: true)\n\t */\n\tasync function loadMore(older = true) {\n\t\t// Nothing to do if server logging is disabled\n\t\tif (!_settings.isEnabled) {\n\t\t\treturn\n\t\t}\n\n\t\t// Only load any entries if there is no previous unfinished request\n\t\tif (!(_loading.value = !_loading.value)) {\n\t\t\treturn\n\t\t}\n\n\t\ttry {\n\t\t\tif (older || !allEntries.value.length) {\n\t\t\t\tconst { data } = await getLog({ offset: allEntries.value.length, query: query.value })\n\t\t\t\tallEntries.value.push(...data.data.map(parseRawLogEntry))\n\t\t\t\thasRemainingEntries.value = data.remain\n\t\t\t} else {\n\t\t\t\tconst { data } = await pollLog({ lastReqId: allEntries.value[0]!.reqId })\n\t\t\t\tallEntries.value.splice(0, 0, ...data.map(parseRawLogEntry))\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tlogger.debug(e as Error)\n\t\t\tshowError(t('logreader', 'Could not load log entries'))\n\t\t} finally {\n\t\t\t// Handle any error to prevent a dead lock of the _loading property\n\t\t\t_loading.value = false\n\t\t}\n\t}\n\n\t/**\n\t * Load entries from log file\n\t */\n\tasync function loadFile() {\n\t\tif (!_settings.localFile) {\n\t\t\tlogger.debug('Can not read file, no file was uploaded')\n\t\t\treturn\n\t\t}\n\n\t\tallEntries.value = await parseLogFile(_settings.localFile)\n\t\thasRemainingEntries.value = false\n\t}\n\n\t/**\n\t * Load entries from string\n\t *\n\t * @param text clipboard text content\n\t */\n\tasync function loadText(text: string) {\n\t\t// Skip if aborted\n\t\tif (text === '') {\n\t\t\treturn\n\t\t}\n\n\t\ttry {\n\t\t\tallEntries.value = await parseLogString(text)\n\t\t\t// TRANSLATORS The clipboard used to paste stuff\n\t\t\t_settings.localFile = new File([], t('logreader', 'Clipboard'))\n\t\t\t// From clipboard so no more entries\n\t\t\thasRemainingEntries.value = false\n\t\t} catch (e) {\n\t\t\t// TRANSLATORS Error when the pasted content from the clipboard could not be parsed\n\t\t\tshowError(t('logreader', 'Could not parse clipboard content'))\n\t\t\tlogger.error(e as Error)\n\t\t}\n\t}\n\n\t/**\n\t * Stop polling entries\n\t */\n\tfunction stopPolling() {\n\t\t_polling.value = false\n\t}\n\n\t/**\n\t * Start polling new entries from server\n\t */\n\tfunction startPolling() {\n\t\tif (_polling.value) {\n\t\t\t// Already polling, nothing to do\n\t\t\treturn\n\t\t}\n\n\t\tconst doPolling = async () => {\n\t\t\ttry {\n\t\t\t\t// Only poll if not using a local file and store already has some known entries\n\t\t\t\tif (_settings.isEnabled && query.value === '' && allEntries.value.length) {\n\t\t\t\t\tconst { data } = await pollLog({ lastReqId: allEntries.value[0]!.reqId })\n\t\t\t\t\tallEntries.value.splice(0, 0, ...data.map(parseRawLogEntry))\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tlogger.warn('Unexpected error while polling for new log entries', { error: e })\n\t\t\t\tconst error = e as AxiosError\n\t\t\t\tif ((error.status || 0) >= 500) {\n\t\t\t\t\tshowError(t('logreader', 'Could not fetch new log entries (server unavailable)'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('logreader', 'Could not fetch new entries'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_polling.value) {\n\t\t\t\t\twindow.setTimeout(doPolling, POLLING_INTERVAL)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t_polling.value = true\n\t\twindow.setTimeout(doPolling, POLLING_INTERVAL)\n\t}\n\n\t/**\n\t * Search the logs for a string\n\t *\n\t * First it sets the query string so the filtered entries are updated,\n\t * then it searched on the server for other logs\n\t *\n\t * @param search The query string\n\t */\n\tasync function searchLogs(search = '') {\n\t\tconst oldQuery = query.value\n\t\tquery.value = search\n\n\t\t// if query changed and server logging is enabled, request new entries\n\t\tif (search !== oldQuery && _settings.isEnabled) {\n\t\t\t_loading.value = true\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await getLog({ offset: 0, query: search })\n\t\t\t\tallEntries.value = [...data.data.map(parseRawLogEntry)]\n\t\t\t\thasRemainingEntries.value = data.remain\n\t\t\t} finally {\n\t\t\t\t_loading.value = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { allEntries, entries, hasRemainingEntries, query, loadMore, loadText, loadFile, startPolling, stopPolling, searchLogs }\n})\n","\n\n\n\n\n\n\n","import '../assets/NcIconToggleSwitch.css';\nimport { defineComponent, useCssVars, computed, openBlock, createBlock, normalizeClass } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.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_hhj0H\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_zYnoU\",\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.mjs.map\n","import { inject } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INSIDE_RADIO_GROUP_KEY = /* @__PURE__ */ Symbol.for(\"insideRadioGroup\");\nfunction useInsideRadioGroup() {\n return inject(INSIDE_RADIO_GROUP_KEY, void 0);\n}\nexport {\n INSIDE_RADIO_GROUP_KEY as I,\n useInsideRadioGroup as u\n};\n//# sourceMappingURL=useNcRadioGroup.mjs.map\n","import '../assets/NcCheckboxRadioSwitch.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, normalizeClass, renderSlot, createBlock, resolveDynamicComponent, toHandlers, withCtx, createVNode, createSlots, createTextVNode, onMounted, computed, useCssVars } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon.mjs\";\nimport { r as register, L as n, a as t } from \"./_l10n.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { u as useInsideRadioGroup } from \"./useNcRadioGroup.mjs\";\nconst _sfc_main$6 = {\n name: \"CheckboxBlankOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$6 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$5 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"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\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon checkbox-blank-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst CheckboxBlankOutline = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"CheckboxMarkedIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$4 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$4 = { d: \"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\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon checkbox-marked-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$4, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst CheckboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"MinusBoxIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M17,13H7V11H17M19,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\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon minus-box-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$4);\n}\nconst MinusBox = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$3 = {\n name: \"RadioboxBlankIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"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\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon radiobox-blank-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst RadioboxBlank = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"RadioboxMarkedIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"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\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon radiobox-marked-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst RadioboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst TYPE_CHECKBOX = \"checkbox\";\nconst TYPE_RADIO = \"radio\";\nconst TYPE_SWITCH = \"switch\";\nconst TYPE_BUTTON = \"button\";\nconst _sfc_main$1 = {\n name: \"NcCheckboxContent\",\n components: {\n NcLoadingIcon,\n NcIconToggleSwitch\n },\n props: {\n /**\n * Class for the icon element\n */\n iconClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Class for the text element\n */\n textClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * True if the entry is checked\n */\n isChecked: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Icon size\n */\n iconSize: {\n type: Number,\n default: 24\n },\n /**\n * Label id attribute\n */\n labelId: {\n type: String,\n required: true\n },\n /**\n * Description id attribute\n */\n descriptionId: {\n type: String,\n required: true\n }\n },\n computed: {\n isButtonType() {\n return this.type === TYPE_BUTTON;\n },\n isSwitchType() {\n return this.type === TYPE_SWITCH;\n },\n /**\n * Returns the proper Material icon depending on the select case\n *\n * @return {object}\n */\n checkboxRadioIconElement() {\n if (this.type === TYPE_RADIO) {\n if (this.isChecked) {\n return RadioboxMarked;\n }\n return RadioboxBlank;\n }\n if (this.indeterminate) {\n return MinusBox;\n }\n if (this.isChecked) {\n return CheckboxMarked;\n }\n return CheckboxBlankOutline;\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"checkbox-content__wrapper\"\n};\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"id\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcIconToggleSwitch = resolveComponent(\"NcIconToggleSwitch\");\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"checkbox-content\", {\n [\"checkbox-content-\" + $props.type]: true,\n \"checkbox-content--button-variant\": $props.buttonVariant,\n \"checkbox-content--has-text\": !!_ctx.$slots.default\n }])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"checkbox-content__icon\", {\n \"checkbox-content__icon--checked\": $props.isChecked,\n \"checkbox-content__icon--has-description\": !$options.isButtonType && _ctx.$slots.description,\n [$props.iconClass]: true\n }]),\n \"aria-hidden\": true,\n inert: \"\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {\n checked: $props.isChecked,\n loading: $props.loading\n }, () => [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $options.isSwitchType ? (openBlock(), createBlock(_component_NcIconToggleSwitch, {\n key: 1,\n checked: $props.isChecked,\n size: $props.iconSize,\n inline: \"\"\n }, null, 8, [\"checked\", \"size\"])) : !$props.buttonVariant ? (openBlock(), createBlock(resolveDynamicComponent($options.checkboxRadioIconElement), {\n key: 2,\n size: $props.iconSize\n }, null, 8, [\"size\"])) : createCommentVNode(\"\", true)\n ], true)\n ], 2),\n _ctx.$slots.default || _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", _hoisted_1$1, [\n _ctx.$slots.default ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: $props.labelId,\n class: normalizeClass([\"checkbox-content__text\", $props.textClass])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n !$options.isButtonType && _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n id: $props.descriptionId,\n class: \"checkbox-content__description\"\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcCheckboxContent = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-5ca1e30f\"]]);\nregister();\nconst _sfc_main = {\n name: \"NcCheckboxRadioSwitch\",\n components: {\n NcCheckboxContent\n },\n // We need to pass attributes to the input element\n inheritAttrs: false,\n props: {\n /**\n * Unique id attribute of the input\n */\n id: {\n type: String,\n default: () => \"checkbox-radio-switch-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Unique id attribute of the wrapper element\n */\n wrapperId: {\n type: String,\n default: null\n },\n /**\n * Input name. Required for radio, optional for checkbox, and ignored\n * for button.\n */\n name: {\n type: String,\n default: null\n },\n /**\n * Required if no text is set.\n * The aria-label is forwarded to the input or button.\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n *\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * Are the elements are all direct siblings?\n * If so they will be grouped horizontally or vertically\n *\n * @type {'no'|'horizontal'|'vertical'}\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariantGrouped: {\n type: String,\n default: \"no\",\n validator: (v) => [\"no\", \"vertical\", \"horizontal\"].includes(v)\n },\n /**\n * Checked state. To be used with `v-model:value`\n */\n modelValue: {\n type: [Boolean, Array, String],\n default: false\n },\n /**\n * Value to be synced on check\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Disabled state\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Required state\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Wrapping element tag\n *\n * When `type` is set to `button` this will be ignored\n *\n * Defaults to `span`\n */\n wrapperElement: {\n type: String,\n default: null\n },\n /**\n * The class(es) to pass to the wrapper / root element of the component\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * The style to pass to the wrapper / root element of the component\n */\n style: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Description\n *\n * This is unsupported when using button has type.\n */\n description: {\n type: String,\n default: null\n }\n },\n emits: [\"update:modelValue\"],\n setup(props, { emit }) {\n const radioGroup = useInsideRadioGroup();\n onMounted(() => radioGroup?.value.register(false));\n const internalType = computed(() => radioGroup?.value ? TYPE_RADIO : props.type);\n const internalModelValue = computed({\n get() {\n if (radioGroup?.value) {\n return radioGroup.value.modelValue;\n }\n return props.modelValue;\n },\n set(value) {\n if (radioGroup?.value) {\n radioGroup.value.onUpdate(value);\n } else {\n emit(\"update:modelValue\", value);\n }\n }\n });\n return {\n internalType,\n internalModelValue,\n labelId: createElementId(),\n descriptionId: createElementId()\n };\n },\n computed: {\n isButtonType() {\n return this.internalType === TYPE_BUTTON;\n },\n computedWrapperElement() {\n if (this.isButtonType) {\n return \"button\";\n }\n if (this.wrapperElement !== null) {\n return this.wrapperElement;\n }\n return \"span\";\n },\n listeners() {\n if (this.isButtonType) {\n return {\n click: this.onToggle\n };\n }\n return {\n change: this.onToggle\n };\n },\n iconSize() {\n return this.internalType === TYPE_SWITCH ? 36 : 20;\n },\n cssIconSize() {\n return this.iconSize + \"px\";\n },\n cssIconHeight() {\n return this.internalType === TYPE_SWITCH ? \"16px\" : this.cssIconSize;\n },\n /**\n * Return the input type.\n * Switch is not an official type\n *\n * @return {string}\n */\n inputType() {\n const nativeTypes = [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_BUTTON\n ];\n if (nativeTypes.includes(this.internalType)) {\n return this.internalType;\n }\n return TYPE_CHECKBOX;\n },\n /**\n * ARIA role for the input. A switch renders as a native checkbox, so it\n * needs an explicit `switch` role to be announced correctly.\n *\n * @return {string|undefined}\n */\n inputRole() {\n return this.internalType === TYPE_SWITCH ? \"switch\" : void 0;\n },\n /**\n * Check if that entry is checked\n * If value is defined, we use that as the checked value\n * If not, we expect true/false in this.checked\n *\n * @return {boolean}\n */\n isChecked() {\n if (this.value !== null) {\n if (Array.isArray(this.internalModelValue)) {\n return [...this.internalModelValue].indexOf(this.value) > -1;\n }\n return this.internalModelValue === this.value;\n }\n return this.internalModelValue === true;\n },\n hasIndeterminate() {\n return [\n TYPE_CHECKBOX,\n TYPE_RADIO\n ].includes(this.inputType);\n }\n },\n mounted() {\n if (this.name && this.internalType === TYPE_CHECKBOX) {\n if (!Array.isArray(this.internalModelValue)) {\n throw new Error(\"When using groups of checkboxes, the updated value will be an array.\");\n }\n }\n if (this.name && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches are not made to be used for data sets. Please use checkboxes instead.\");\n }\n if (typeof this.internalModelValue !== \"boolean\" && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches can only be used with boolean as modelValue prop.\");\n }\n },\n methods: {\n t,\n n,\n onToggle(event) {\n if (this.disabled || event.target.tagName.toLowerCase() === \"a\") {\n return;\n }\n if (this.internalType === TYPE_RADIO) {\n this.internalModelValue = this.value;\n return;\n }\n if (this.internalType === TYPE_SWITCH) {\n this.internalModelValue = !this.isChecked;\n return;\n }\n if (typeof this.internalModelValue === \"boolean\") {\n this.internalModelValue = !this.internalModelValue;\n return;\n }\n if (this.isChecked) {\n this.internalModelValue = this.internalModelValue.filter((v) => v !== this.value);\n } else {\n this.internalModelValue = [...this.internalModelValue, this.value];\n }\n }\n }\n};\nconst __injectCSSVars__ = () => {\n useCssVars((_ctx) => ({\n \"f99d0228\": _ctx.cssIconSize,\n \"v69c82152\": _ctx.cssIconHeight\n }));\n};\nconst __setup__ = _sfc_main.setup;\n_sfc_main.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\nconst _hoisted_1 = [\"id\", \"aria-labelledby\", \"aria-describedby\", \"aria-label\", \"disabled\", \"type\", \"role\", \"value\", \"checked\", \".indeterminate\", \"required\", \"name\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCheckboxContent = resolveComponent(\"NcCheckboxContent\");\n return openBlock(), createBlock(resolveDynamicComponent($options.computedWrapperElement), mergeProps({\n id: $props.wrapperId ?? ($options.isButtonType ? $props.id : null),\n \"aria-label\": $options.isButtonType && $props.ariaLabel ? $props.ariaLabel : void 0,\n class: [\"checkbox-radio-switch\", [\n _ctx.$props.class,\n {\n [\"checkbox-radio-switch-\" + $setup.internalType]: $setup.internalType,\n \"checkbox-radio-switch--checked\": $options.isChecked,\n \"checkbox-radio-switch--disabled\": $props.disabled,\n \"checkbox-radio-switch--indeterminate\": $options.hasIndeterminate ? $props.indeterminate : false,\n \"checkbox-radio-switch--button-variant\": $props.buttonVariant,\n \"checkbox-radio-switch--button-variant-v-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"vertical\",\n \"checkbox-radio-switch--button-variant-h-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"horizontal\",\n \"button-vue\": $options.isButtonType\n }\n ]],\n style: $props.style,\n type: $options.isButtonType ? \"button\" : null\n }, $options.isButtonType ? _ctx.$attrs : {}, toHandlers($options.isButtonType ? $options.listeners : {})), {\n default: withCtx(() => [\n !$options.isButtonType ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n id: $props.id,\n \"aria-labelledby\": !$options.isButtonType && !$props.ariaLabel ? $setup.labelId : null,\n \"aria-describedby\": !$options.isButtonType && ($props.description || _ctx.$slots.description) ? $setup.descriptionId : null,\n \"aria-label\": $props.ariaLabel || void 0,\n class: \"checkbox-radio-switch__input\",\n disabled: $props.disabled,\n type: $options.inputType,\n role: $options.inputRole,\n value: $props.value,\n checked: $options.isChecked,\n \".indeterminate\": $options.hasIndeterminate ? $props.indeterminate : null,\n required: $props.required,\n name: $props.name\n }, _ctx.$attrs, toHandlers($options.listeners, true)), null, 48, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcCheckboxContent, {\n id: !$options.isButtonType ? `${$props.id}-label` : void 0,\n class: \"checkbox-radio-switch__content\",\n iconClass: \"checkbox-radio-switch__icon\",\n textClass: \"checkbox-radio-switch__text\",\n type: $setup.internalType,\n indeterminate: $options.hasIndeterminate ? $props.indeterminate : false,\n buttonVariant: $props.buttonVariant,\n isChecked: $options.isChecked,\n loading: $props.loading,\n labelId: $setup.labelId,\n descriptionId: $setup.descriptionId,\n iconSize: $options.iconSize,\n onClick: $options.onToggle\n }, createSlots({\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots.description || $props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString($props.description), 1)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !!_ctx.$slots.default ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"id\", \"type\", \"indeterminate\", \"buttonVariant\", \"isChecked\", \"loading\", \"labelId\", \"descriptionId\", \"iconSize\", \"onClick\"])\n ]),\n _: 3\n }, 16, [\"id\", \"aria-label\", \"class\", \"style\", \"type\"]);\n}\nconst NcCheckboxRadioSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-81045d2a\"]]);\nexport {\n NcCheckboxRadioSwitch as N\n};\n//# sourceMappingURL=NcCheckboxRadioSwitch.mjs.map\n","\n\n\n\n\n\n\n","\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Debounce a function call for specified amount of time\n *\n * @param func The function to debounce\n * @param timeout Amount of time (ms) to wait\n */\nexport function debounce(func: Function, timeout = 300) {\n\tlet timer: number\n\treturn (...args: unknown[]) => {\n\t\tclearTimeout(timer)\n\t\ttimer = window.setTimeout(() => {\n\t\t\tfunc.apply(this, args)\n\t\t}, timeout)\n\t}\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 * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type)\n return as([type, [...value]], value);\n \n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is an element.\n * @param {unknown} this\n * Context object (`this`) to call `test` with\n * @param {unknown} [element]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | null | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n *\n * @typedef {Array | TestFunction | string | null | undefined} Test\n * Check for an arbitrary element.\n *\n * * when `string`, checks that the element has that tag name\n * * when `function`, see `TestFunction`\n * * when `Array`, checks if one of the subtests pass\n *\n * @callback TestFunction\n * Check if an element passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Element} element\n * An element.\n * @param {number | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean | undefined | void}\n * Whether this element passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `element` is an `Element` and whether it passes the given test.\n *\n * @param element\n * Thing to check, typically `element`.\n * @param test\n * Check for a specific element.\n * @param index\n * Position of `element` in its parent.\n * @param parent\n * Parent of `element`.\n * @param context\n * Context object (`this`) to call `test` with.\n * @returns\n * Whether `element` is an `Element` and passes a test.\n * @throws\n * When an incorrect `test`, `index`, or `parent` is given; there is no error\n * thrown when `element` is not a node or not an element.\n */\nexport const isElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((element?: null | undefined) => false) &\n * ((element: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((element: unknown, test?: Test, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [element]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parents | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (element, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== null &&\n index !== undefined &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite `index`')\n }\n\n if (\n parent !== null &&\n parent !== undefined &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected valid `parent`')\n }\n\n if (\n (index === null || index === undefined) !==\n (parent === null || parent === undefined)\n ) {\n throw new Error('Expected both `index` and `parent`')\n }\n\n return looksLikeAnElement(element)\n ? check.call(context, element, index, parent)\n : false\n }\n )\n\n/**\n * Generate a check from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * an `element`, `index`, and `parent`.\n *\n * @param test\n * A test for a specific element.\n * @returns\n * A check.\n */\nexport const convertElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((test?: null | undefined) => (element?: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n // Assume array.\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as `test`')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction tagNameFactory(check) {\n return castFactory(tagName)\n\n /**\n * @param {Element} element\n * @returns {boolean}\n */\n function tagName(element) {\n return element.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeAnElement(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} element\n * @returns {element is Element}\n */\nfunction element(element) {\n return Boolean(\n element &&\n typeof element === 'object' &&\n 'type' in element &&\n element.type === 'element' &&\n 'tagName' in element &&\n typeof element.tagName === 'string'\n )\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Element}\n */\nfunction looksLikeAnElement(value) {\n return (\n value !== null &&\n typeof value === 'object' &&\n 'type' in value &&\n 'tagName' in value\n )\n}\n","// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\n// Windows paths like `c:\\`\nconst WINDOWS_PATH_REGEX = /^[a-zA-Z]:\\\\/;\n\nexport default function isAbsoluteUrl(url) {\n\tif (typeof url !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof url}\\``);\n\t}\n\n\tif (WINDOWS_PATH_REGEX.test(url)) {\n\t\treturn false;\n\t}\n\n\treturn ABSOLUTE_URL_REGEX.test(url);\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray\n * ? MatchesOne\n * : Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n * @import {VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-is-element').Test} Test\n */\n\n/**\n * @callback CreateContent\n * Create a target for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array | ElementContent | null | undefined}\n * Content to add.\n *\n * @callback CreateProperties\n * Create properties for an element.\n * @param {Element} element\n * Element to check.\n * @returns {Properties | null | undefined}\n * Properties to add.\n *\n * @callback CreateRel\n * Create a `rel` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array | string | null | undefined}\n * `rel` to use.\n *\n * @callback CreateTarget\n * Create a `target` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Target | null | undefined}\n * `target` to use.\n *\n * @typedef Options\n * Configuration.\n * @property {Array | CreateContent | ElementContent | null | undefined} [content]\n * Content to insert at the end of external links (optional); will be\n * inserted in a `` element; useful for improving accessibility by\n * giving users advanced warning when opening a new window.\n * @property {CreateProperties | Properties | null | undefined} [contentProperties]\n * Properties to add to the `span` wrapping `content` (optional).\n * @property {CreateProperties | Properties | null | undefined} [properties]\n * Properties to add to the link itself (optional).\n * @property {Array | null | undefined} [protocols=['http', 'https']]\n * Protocols to check, such as `mailto` or `tel` (default: `['http',\n * 'https']`).\n * @property {Array | CreateRel | string | null | undefined} [rel=['nofollow']]\n * Link types to hint about the referenced documents (default:\n * `['nofollow']`); pass an empty array (`[]`) to not set `rel`s on links;\n * when using a `target`, add `noopener` and `noreferrer` to avoid\n * exploitation of the `window.opener` API.\n * @property {CreateTarget | Target | null | undefined} [target]\n * How to display referenced documents; the default (nothing) is to not set\n * `target`s on links.\n * @property {Test | null | undefined} [test]\n * Extra test to define which external link elements are modified (optional);\n * any test that can be given to `hast-util-is-element` is supported.\n *\n * @typedef {'_blank' | '_parent' | '_self' | '_top'} Target\n * Target.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {convertElement} from 'hast-util-is-element'\nimport isAbsoluteUrl from 'is-absolute-url'\nimport {parse} from 'space-separated-tokens'\nimport {visit} from 'unist-util-visit'\n\nconst defaultProtocols = ['http', 'https']\nconst defaultRel = ['nofollow']\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Automatically add `rel` (and `target`?) to external links.\n *\n * ###### Notes\n *\n * You should [likely not configure `target`][css-tricks].\n *\n * You should at least set `rel` to `['nofollow']`.\n * When using a `target`, add `noopener` and `noreferrer` to avoid exploitation\n * of the `window.opener` API.\n *\n * When using a `target`, you should set `content` to adhere to accessibility\n * guidelines by giving users advanced warning when opening a new window.\n *\n * [css-tricks]: https://css-tricks.com/use-target_blank/\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeExternalLinks(options) {\n const settings = options || emptyOptions\n const protocols = settings.protocols || defaultProtocols\n const is = convertElement(settings.test)\n\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n visit(tree, 'element', function (node, index, parent) {\n if (\n node.tagName === 'a' &&\n typeof node.properties.href === 'string' &&\n is(node, index, parent)\n ) {\n const url = node.properties.href\n\n if (\n isAbsoluteUrl(url)\n ? protocols.includes(url.slice(0, url.indexOf(':')))\n : url.startsWith('//')\n ) {\n const contentRaw = createIfNeeded(settings.content, node)\n const content =\n contentRaw && !Array.isArray(contentRaw) ? [contentRaw] : contentRaw\n const relRaw = createIfNeeded(settings.rel, node) || defaultRel\n const rel = typeof relRaw === 'string' ? parse(relRaw) : relRaw\n const target = createIfNeeded(settings.target, node)\n\n const properties = createIfNeeded(settings.properties, node)\n\n if (properties) {\n Object.assign(node.properties, structuredClone(properties))\n }\n\n if (rel.length > 0) {\n node.properties.rel = [...rel]\n }\n\n if (target) {\n node.properties.target = target\n }\n\n if (content) {\n const properties =\n createIfNeeded(settings.contentProperties, node) || {}\n\n node.children.push({\n type: 'element',\n tagName: 'span',\n properties: structuredClone(properties),\n children: structuredClone(content)\n })\n }\n }\n }\n })\n }\n}\n\n/**\n * Call a function to get a return value or use the value.\n *\n * @template T\n * Type of value.\n * @param {T} value\n * Value.\n * @param {Element} element\n * Element.\n * @returns {T extends Function ? ReturnType : T}\n * Result.\n */\nfunction createIfNeeded(value, element) {\n return typeof value === 'function' ? value(element) : value\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See .\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record} */\n const property = {}\n /** @type {Record} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record} */\n const properties = {}\n /** @type {Record} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js python ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Extract} node\n *   Reference node (image, link).\n * @returns {Array}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return [{type: 'text', value: '![' + node.alt + suffix}]\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: .\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === null || spread === undefined\n    ? node.children.length > 1\n    : spread\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  // @ts-expect-error: root is different, but hard to type.\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  return undefined\n}\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n *   Generate content for the backreference dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n *   Content for the backreference when linking back from definitions to their\n *   reference.\n *\n * @callback FootnoteBackLabelTemplate\n *   Generate a back label dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n *   Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n  /** @type {Array} */\n  const result = [{type: 'text', value: '↩'}]\n\n  if (rereferenceIndex > 1) {\n    result.push({\n      type: 'element',\n      tagName: 'sup',\n      properties: {},\n      children: [{type: 'text', value: String(rereferenceIndex)}]\n    })\n  }\n\n  return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n  return (\n    'Back to reference ' +\n    (referenceIndex + 1) +\n    (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n  )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const footnoteBackContent =\n    state.options.footnoteBackContent || defaultFootnoteBackContent\n  const footnoteBackLabel =\n    state.options.footnoteBackLabel || defaultFootnoteBackLabel\n  const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n  const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n  const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  /** @type {Array} */\n  const listItems = []\n  let referenceIndex = -1\n\n  while (++referenceIndex < state.footnoteOrder.length) {\n    const definition = state.footnoteById.get(\n      state.footnoteOrder[referenceIndex]\n    )\n\n    if (!definition) {\n      continue\n    }\n\n    const content = state.all(definition)\n    const id = String(definition.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let rereferenceIndex = 0\n    /** @type {Array} */\n    const backReferences = []\n    const counts = state.footnoteCounts.get(id)\n\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (counts !== undefined && ++rereferenceIndex <= counts) {\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      let children =\n        typeof footnoteBackContent === 'string'\n          ? footnoteBackContent\n          : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n      if (typeof children === 'string') {\n        children = {type: 'text', value: children}\n      }\n\n      backReferences.push({\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            clobberPrefix +\n            'fnref-' +\n            safeId +\n            (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n          dataFootnoteBackref: '',\n          ariaLabel:\n            typeof footnoteBackLabel === 'string'\n              ? footnoteBackLabel\n              : footnoteBackLabel(referenceIndex, rereferenceIndex),\n          className: ['data-footnote-backref']\n        },\n        children: Array.isArray(children) ? children : [children]\n      })\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(definition, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: footnoteLabelTagName,\n        properties: {\n          ...structuredClone(footnoteLabelProperties),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @import {\n *   ElementContent as HastElementContent,\n *   Element as HastElement,\n *   Nodes as HastNodes,\n *   Properties as HastProperties,\n *   RootContent as HastRootContent,\n *   Text as HastText\n * } from 'hast'\n * @import {\n *   Definition as MdastDefinition,\n *   FootnoteDefinition as MdastFootnoteDefinition,\n *   Nodes as MdastNodes,\n *   Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n *   FootnoteBackContentTemplate,\n *   FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n */\n\nimport {visit} from 'unist-util-visit'\n\n/**\n * Remove empty paragraphs in `tree`.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @returns {undefined}\n * Nothing.\n */\nexport function squeezeParagraphs(tree) {\n visit(tree, function (node, index, parent) {\n if (\n index !== undefined &&\n parent &&\n node.type === 'paragraph' &&\n node.children.every(function (child) {\n return child.type === 'text' && /^\\s*$/.test(child.value)\n })\n ) {\n parent.children.splice(index, 1)\n return index\n }\n })\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n */\n\nimport {squeezeParagraphs} from 'mdast-squeeze-paragraphs'\nimport {visit} from 'unist-util-visit'\n\n/**\n * Only keep links with the given protocols.\n *\n * @param {object} options Options\n * @param {string[]} options.except - Protocols to exclude. Defauls to `['http', 'https']`.\n * @returns\n * Transform.\n */\nexport default function remarkUnlinkProtocols(\n options = {except: ['http', 'https']}\n) {\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n /** @type {Map} */\n const definitions = new Map()\n\n // Find definitions to look up linkReferences.\n visit(tree, 'definition', function (node, index, parent) {\n definitions.set(node.identifier, node.url)\n if (parent && typeof index === 'number') {\n const url = node.url\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1)\n return index\n }\n }\n })\n\n visit(tree, function (node, index, parent) {\n if (\n parent &&\n typeof index === 'number' &&\n (node.type === 'link' || node.type === 'linkReference')\n ) {\n const url =\n node.type === 'link' ? node.url : definitions.get(node.identifier)\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1, ...node.children)\n return index\n }\n }\n })\n\n squeezeParagraphs(tree)\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n/**\n * @module public\n */\nimport { loadState } from '@nextcloud/initial-state';\n/**\n * Check if the current page is on a public share\n */\nexport function isPublicShare() {\n // check both the new initial state version and fallback to legacy input\n return (loadState('files_sharing', 'isPublic', null)\n ?? document.querySelector('input#isPublic[type=\"hidden\"][name=\"isPublic\"][value=\"1\"]') !== null);\n}\n/**\n * Get the sharing token for the current public share\n */\nexport function getSharingToken() {\n return (loadState('files_sharing', 'sharingToken', null)\n ?? document.querySelector('input#sharingToken[type=\"hidden\"]')?.value\n ?? null);\n}\n","import { l as logger } from \"./logger.mjs\";\nwindow._vue_richtext_widgets ??= {};\nwindow._registerWidget ??= (id, callback, onDestroy, props) => {\n registerWidget(id, callback, onDestroy, props);\n};\nfunction registerWidget(id, callback, onDestroy = () => {\n}, props) {\n const propsWithDefaults = {\n hasInteractiveView: true,\n fullWidth: false,\n isResizable: false,\n ...props\n };\n if (window._vue_richtext_widgets[id]) {\n logger.error(`[ReferencePicker]: Widget for id ${id} already registered`);\n return;\n }\n window._vue_richtext_widgets[id] = {\n id,\n callback,\n onDestroy,\n ...propsWithDefaults\n };\n}\nfunction renderWidget(el, options) {\n const { richObjectType, richObject, accessible, interactive } = options;\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n logger.error(\"Widget for rich object type \" + richObjectType + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });\n}\nfunction destroyWidget(richObjectType, el) {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n return;\n }\n window._vue_richtext_widgets[richObjectType].onDestroy(el);\n}\nfunction isWidgetRegistered(id) {\n return !!window._vue_richtext_widgets[id];\n}\nfunction hasInteractiveView(id) {\n return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n}\nfunction hasFullWidth(id) {\n return !!window._vue_richtext_widgets[id]?.fullWidth;\n}\nfunction isResizable(id) {\n return !!window._vue_richtext_widgets[id]?.isResizable;\n}\nexport {\n renderWidget as a,\n hasFullWidth as b,\n isResizable as c,\n destroyWidget as d,\n hasInteractiveView as h,\n isWidgetRegistered as i,\n registerWidget as r\n};\n//# sourceMappingURL=widgets.mjs.map\n","/**\n * @typedef {import('unist').Node} Node\n */\n\n/**\n * @typedef {Array | string} ChildrenOrValue\n * List to use as `children` or value to use as `value`.\n *\n * @typedef {Record} Props\n * Other fields to add to the node.\n */\n\n/**\n * Build a node.\n *\n * @template {string} T\n * @template {Props} P\n * @template {Array} C\n *\n * @overload\n * @param {T} type\n * @returns {{type: T}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @returns {{type: T} & P}\n *\n * @overload\n * @param {T} type\n * @param {string} value\n * @returns {{type: T, value: string}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {string} value\n * @returns {{type: T, value: string} & P}\n *\n * @overload\n * @param {T} type\n * @param {C} children\n * @returns {{type: T, children: C}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {C} children\n * @returns {{type: T, children: C} & P}\n *\n * @param {string} type\n * Node type.\n * @param {ChildrenOrValue | Props | null | undefined} [props]\n * Fields assigned to node (default: `undefined`).\n * @param {ChildrenOrValue | null | undefined} [value]\n * Children of node or value of `node` (cast to string).\n * @returns {Node}\n * Built node.\n */\nexport function u(type, props, value) {\n /** @type {Node} */\n const node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n // @ts-expect-error: create a parent.\n node.children = value\n } else if (value !== undefined && value !== null) {\n // @ts-expect-error: create a literal.\n node.value = String(value)\n }\n\n return node\n}\n","import '../assets/autolink.css';\nimport { getBaseUrl, getRootUrl } from \"@nextcloud/router\";\nimport { u } from \"unist-builder\";\nimport { visitParents, SKIP } from \"unist-util-visit-parents\";\nimport { defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { l as logger } from \"./logger.mjs\";\nconst _hoisted_1 = [\"href\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextExternalLink\",\n props: {\n href: {},\n decorateExternal: { type: Boolean, default: false }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"a\", {\n href: __props.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: normalizeClass([_ctx.$style.externalLink, {\n [_ctx.$style.externalLink_decorated]: __props.decorateExternal\n }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.href), 1)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst externalLink = \"_externalLink_pbE0W\";\nconst externalLink_decorated = \"_externalLink_decorated_AvzkD\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_Fq-2a\",\n externalLink,\n externalLink_decorated\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcRichTextExternalLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\nconst URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig;\nfunction remarkAutolink({ autolink, useMarkdown, useExtendedMarkdown }) {\n return function(tree) {\n if (useExtendedMarkdown || !useMarkdown || !autolink) {\n return;\n }\n visitParents(tree, (node) => node.type === \"text\", (node, ancestors) => {\n if (ancestors.some((ancestor) => ancestor.type === \"link\" || ancestor.type === \"linkReference\")) {\n return;\n }\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node) ?? 0;\n const parsed = parseUrl(node.value);\n const parsedNodes = typeof parsed === \"string\" ? [u(\"text\", parsed)] : parsed.map((n) => {\n if (typeof n === \"string\") {\n return u(\"text\", n);\n }\n return u(\"link\", {\n url: n.props.href\n }, [u(\"text\", n.props.href)]);\n }).filter((x) => x).flat();\n parent.children.splice(index, 1, ...parsedNodes);\n return [SKIP, index + parsedNodes.length];\n });\n };\n}\nfunction parseUrl(text) {\n let match = URL_PATTERN_AUTOLINK.exec(text);\n const list = [];\n let start = 0;\n while (match !== null) {\n let href = match[2];\n let textAfter;\n let textBefore = text.substring(start, match.index + match[1].length);\n if (href[0] === \" \") {\n textBefore += href[0];\n href = href.substring(1).trim();\n }\n const lastChar = href[href.length - 1];\n if (lastChar === \".\" || lastChar === \",\" || lastChar === \";\" || match[0][0] === \"(\" && lastChar === \")\") {\n href = href.substring(0, href.length - 1);\n textAfter = lastChar;\n }\n list.push(textBefore);\n list.push({ component: NcRichTextExternalLink, props: { href: href.trim(), decorateExternal: true } });\n if (textAfter) {\n list.push(textAfter);\n }\n start = match.index + match[0].length;\n match = URL_PATTERN_AUTOLINK.exec(text);\n }\n list.push(text.substring(start));\n const joinedText = list.map((item) => typeof item === \"string\" ? item : item.props.href).join(\"\");\n if (text === joinedText) {\n return list;\n }\n logger.error(\"[NcRichText] Failed to reassemble the chunked text: \" + text);\n return text;\n}\nfunction getRoute(router, url) {\n const removePrefix = (str, prefix) => str.startsWith(prefix) ? str.slice(prefix.length) : str;\n const removePrefixes = (str, ...prefixes) => prefixes.reduce((acc, prefix) => removePrefix(acc, prefix), str);\n if (!router) {\n return null;\n }\n const isAbsoluteURL = /^https?:\\/\\//.test(url);\n const isNonHttpLink = /^[a-z][a-z0-9+.-]*:.+/.test(url);\n if (!isAbsoluteURL && isNonHttpLink) {\n return null;\n }\n if (isAbsoluteURL && !url.startsWith(getBaseUrl())) {\n return null;\n }\n if (!isAbsoluteURL && !url.startsWith(\"/\")) {\n return null;\n }\n const relativeUrl = isAbsoluteURL ? removePrefixes(url, getBaseUrl(), \"/index.php\") : url;\n const relativeRouterBase = removePrefixes(router.options.history.base, getRootUrl(), \"/index.php\");\n const potentialRouterPath = removePrefixes(relativeUrl, relativeRouterBase) || \"/\";\n const route = router.resolve(potentialRouterPath);\n if (!route.matched.length) {\n return null;\n }\n return route.fullPath;\n}\nexport {\n NcRichTextExternalLink as N,\n URL_PATTERN as U,\n getRoute as g,\n parseUrl as p,\n remarkAutolink as r\n};\n//# sourceMappingURL=autolink.mjs.map\n","import '../assets/NcReferenceWidget.css';\nimport { defineComponent, inject, ref, useTemplateRef, nextTick, computed, watch, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, withKeys, withModifiers, unref, createCommentVNode, createBlock, resolveDynamicComponent, mergeProps, withCtx, toDisplayString, createTextVNode } from \"vue\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport { routerKey, RouterLink } from \"vue-router\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { r as register, m as t26, a as t } from \"./_l10n.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { b as hasFullWidth, c as isResizable, i as isWidgetRegistered, h as hasInteractiveView, a as renderWidget, d as destroyWidget } from \"./widgets.mjs\";\nimport { g as getRoute } from \"./autolink.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nregister(t26);\nconst _hoisted_1 = [\"aria-label\", \"aria-valuenow\", \"aria-valuemin\", \"aria-valuemax\"];\nconst _hoisted_2 = [\"src\"];\nconst _hoisted_3 = { class: \"widget-default--details\" };\nconst _hoisted_4 = { class: \"widget-default--name\" };\nconst _hoisted_5 = { class: \"widget-default--link\" };\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst RESIZE_KEYBOARD_STEP = 10;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcReferenceWidget\",\n props: {\n reference: {},\n interactive: { type: Boolean, default: true },\n interactiveOptIn: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = __props;\n const router = inject(routerKey, null);\n const widgetId = `nc-reference-widget-${createElementId()}`;\n const isVisible = ref(false);\n const customWidget = useTemplateRef(\"customWidget\");\n const customWidgetContent = useTemplateRef(\"customWidgetContent\");\n const widgetRoot = useTemplateRef(\"widgetRoot\");\n const { width } = useElementSize(widgetRoot);\n const { height: customWidgetHeight } = useElementSize(customWidget);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n const showInteractive = ref(false);\n const rendered = ref(false);\n let idleTimeout = null;\n const isResizing = ref(false);\n const resizedHeight = ref(null);\n const resizeStartY = ref(0);\n const resizeStartHeight = ref(0);\n const resizeMinHeight = ref(100);\n const resizeMaxHeight = ref(window.innerHeight - 120);\n const isInteractive = computed(() => {\n return !props.interactiveOptIn && props.interactive || showInteractive.value;\n });\n const referenceHasFullWidth = computed(() => {\n return hasFullWidth(props.reference.richObjectType);\n });\n const isWidgetResizable = computed(() => {\n return isResizable(props.reference.richObjectType);\n });\n const hasCustomWidget = computed(() => {\n return isWidgetRegistered(props.reference.richObjectType);\n });\n const customWidgetStyle = computed(() => {\n if (!resizedHeight.value) {\n return null;\n }\n return { height: `${resizedHeight.value}px !important` };\n });\n const ariaValueNow = computed(() => {\n return Math.round(resizedHeight.value ?? customWidgetHeight.value);\n });\n const referenceHasInteractiveView = computed(() => {\n return hasCustomWidget.value && hasInteractiveView(props.reference.richObjectType);\n });\n const noAccess = computed(() => {\n return !props.reference.accessible;\n });\n const numberOfLines = computed(() => {\n const lineCountOffsets = [250, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => width.value < max);\n });\n const descriptionStyle = computed(() => {\n if (numberOfLines.value === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = numberOfLines.value;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n });\n const compactLink = computed(() => {\n const link = props.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n });\n const route = computed(() => {\n return getRoute(router, props.reference.openGraphObject.link);\n });\n const referenceWidgetLinkComponent = computed(() => {\n return route.value ? RouterLink : \"a\";\n });\n const referenceWidgetLinkProps = computed(() => {\n return route.value ? { to: route.value } : { href: props.reference.openGraphObject.link, target: \"_blank\" };\n });\n watch(isVisible, (val) => {\n if (!val) {\n idleTimeout = setTimeout(() => {\n if (!isVisible.value) {\n destroyReferenceWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n if (!rendered.value) {\n renderReferenceWidget();\n }\n }, { immediate: true });\n onBeforeUnmount(() => {\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n stopResize();\n destroyReferenceWidget();\n });\n function enableInteractive() {\n showInteractive.value = true;\n renderReferenceWidget();\n }\n function renderReferenceWidget() {\n if (!customWidgetContent.value) {\n return;\n }\n if (props.reference.richObjectType === \"open-graph\") {\n return;\n }\n customWidgetContent.value.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style.width = \"100%\";\n customWidgetContent.value.appendChild(widget);\n nextTick(() => {\n renderWidget(widget, {\n ...props.reference,\n interactive: isInteractive.value\n });\n rendered.value = true;\n });\n }\n function destroyReferenceWidget() {\n if (rendered.value && widgetRoot.value) {\n destroyWidget(props.reference.richObjectType, widgetRoot.value);\n rendered.value = false;\n }\n }\n function initResizeLimits() {\n const widgetEl = customWidgetContent.value?.firstElementChild;\n if (widgetEl) {\n const computedStyle = window.getComputedStyle(widgetEl);\n const parsedMin = parseFloat(computedStyle.minHeight);\n const parsedMax = parseFloat(computedStyle.maxHeight);\n resizeMinHeight.value = parsedMin > 0 ? parsedMin : 100;\n resizeMaxHeight.value = Number.isFinite(parsedMax) && parsedMax > 0 ? parsedMax : window.innerHeight - 120;\n } else {\n resizeMinHeight.value = 100;\n resizeMaxHeight.value = window.innerHeight - 120;\n }\n }\n function startResize(event) {\n if (!isWidgetResizable.value || !customWidget.value) {\n return;\n }\n initResizeLimits();\n isResizing.value = true;\n resizeStartY.value = event.clientY;\n resizeStartHeight.value = customWidget.value.getBoundingClientRect().height;\n window.addEventListener(\"pointermove\", onResize);\n window.addEventListener(\"pointerup\", stopResize);\n }\n function onResizeKeydown(delta) {\n if (!isWidgetResizable.value || !customWidget.value) {\n return;\n }\n initResizeLimits();\n const currentHeight = resizedHeight.value ?? resizeStartHeight.value;\n const next = currentHeight + delta;\n resizedHeight.value = Math.min(resizeMaxHeight.value, Math.max(resizeMinHeight.value, next));\n }\n function onResize(event) {\n if (!isResizing.value || !customWidget.value) {\n return;\n }\n const deltaY = event.clientY - resizeStartY.value;\n resizedHeight.value = Math.min(resizeMaxHeight.value, Math.max(resizeMinHeight.value, resizeStartHeight.value + deltaY));\n }\n function stopResize() {\n if (!isResizing.value) {\n return;\n }\n isResizing.value = false;\n window.removeEventListener(\"pointermove\", onResize);\n window.removeEventListener(\"pointerup\", stopResize);\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"widgetRoot\",\n ref: widgetRoot,\n class: normalizeClass({ \"toggle-interactive\": referenceHasInteractiveView.value && !isInteractive.value })\n }, [\n __props.reference && hasCustomWidget.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: widgetId,\n ref_key: \"customWidget\",\n ref: customWidget,\n class: normalizeClass([\"widget-custom\", { \"full-width\": referenceHasFullWidth.value }]),\n style: normalizeStyle(customWidgetStyle.value)\n }, [\n createElementVNode(\"div\", {\n ref_key: \"customWidgetContent\",\n ref: customWidgetContent,\n class: \"widget-custom__content\"\n }, null, 512),\n isWidgetResizable.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"widget-custom__resize-handle\",\n role: \"slider\",\n tabindex: \"0\",\n \"aria-orientation\": \"vertical\",\n \"aria-label\": unref(t)(\"Widget height\"),\n \"aria-valuenow\": ariaValueNow.value,\n \"aria-valuemin\": resizeMinHeight.value,\n \"aria-valuemax\": resizeMaxHeight.value,\n \"aria-controls\": widgetId,\n onPointerdown: withModifiers(startResize, [\"stop\", \"prevent\"]),\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers(($event) => onResizeKeydown(-RESIZE_KEYBOARD_STEP), [\"stop\", \"prevent\"]), [\"up\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers(($event) => onResizeKeydown(RESIZE_KEYBOARD_STEP), [\"stop\", \"prevent\"]), [\"down\"]))\n ]\n }, null, 40, _hoisted_1)) : createCommentVNode(\"\", true)\n ], 6)) : !noAccess.value && __props.reference && __props.reference.openGraphObject && !hasCustomWidget.value ? (openBlock(), createBlock(resolveDynamicComponent(referenceWidgetLinkComponent.value), mergeProps({ key: 1 }, referenceWidgetLinkProps.value, {\n rel: \"noopener noreferrer\",\n class: \"widget-default\"\n }), {\n default: withCtx(() => [\n __props.reference.openGraphObject.thumb ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"widget-default--image\",\n src: __props.reference.openGraphObject.thumb\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"p\", _hoisted_4, toDisplayString(__props.reference.openGraphObject.name), 1),\n createElementVNode(\"p\", {\n class: \"widget-default--description\",\n style: normalizeStyle(descriptionStyle.value)\n }, toDisplayString(__props.reference.openGraphObject.description), 5),\n createElementVNode(\"p\", _hoisted_5, toDisplayString(compactLink.value), 1)\n ])\n ]),\n _: 1\n }, 16)) : createCommentVNode(\"\", true),\n __props.interactiveOptIn && referenceHasInteractiveView.value && !isInteractive.value ? (openBlock(), createBlock(NcButton, {\n key: 2,\n class: \"toggle-interactive--button\",\n onClick: enableInteractive\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Enable interactive view\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-f8edbaf7\"]]);\nexport {\n NcReferenceWidget as N\n};\n//# sourceMappingURL=NcReferenceWidget.mjs.map\n","import { d as mdiCheck, e as mdiContentCopy } from \"./mdi.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, e as t23, a as t } from \"./_l10n.mjs\";\nregister(t23);\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.mjs.map\n","import '../assets/NcRichText.css';\nimport { toString } from \"mdast-util-to-string\";\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport rehype2react from \"rehype-react\";\nimport breaks from \"remark-breaks\";\nimport remarkParse from \"remark-parse\";\nimport remark2rehype from \"remark-rehype\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport { unified } from \"unified\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createBlock, createCommentVNode, defineComponent, unref, withCtx, createVNode, h, ref } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch.mjs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { N as NcReferenceWidget } from \"./NcReferenceWidget.mjs\";\nimport { l as logger } from \"./logger.mjs\";\nimport { U as URL_PATTERN, g as getRoute, N as NcRichTextExternalLink, p as parseUrl, r as remarkAutolink } from \"./autolink.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { u as useCopy } from \"./useCopy.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { u } from \"unist-builder\";\nimport { visitParents, EXIT, SKIP } from \"unist-util-visit-parents\";\nconst _sfc_main$2 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n props: {\n /**\n * The text to extract references from\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * The data of the references to display.\n */\n referenceData: {\n type: Array,\n default: null\n },\n /**\n * The maximum number of references to display\n */\n limit: {\n type: Number,\n default: 1\n },\n /**\n * Show the fallback reference if no references are found\n */\n displayFallback: {\n type: Boolean,\n default: false\n },\n /**\n * Whether to render the widgets in interactive mode (if available)\n */\n interactive: {\n type: Boolean,\n default: true\n },\n /**\n * Whether to show user an option to enable to interactive mode for widgets (if available)\n */\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"loaded\"],\n data() {\n return {\n references: null,\n loading: false\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.filter(Boolean).slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n created() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n logger.error(\"[NcReferenceList] Failed to extract references\", { error });\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n return $options.isVisible ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"widgets--list\", { \"icon-loading\": $data.loading }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedReferences, (reference) => {\n return openBlock(), createBlock(_component_NcReferenceWidget, {\n key: reference.openGraphObject?.id,\n reference,\n interactive: $props.interactive,\n interactiveOptIn: $props.interactiveOptIn\n }, null, 8, [\"reference\", \"interactive\", \"interactiveOptIn\"]);\n }), 128))\n ], 2)) : createCommentVNode(\"\", true);\n}\nconst NcReferenceList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-8db718e3\"]]);\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n (function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : (\n // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(\n /** @type {Props} */\n test\n )\n );\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n })\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propertiesFactory(check) {\n const checkAsRecord = (\n /** @type {Record} */\n check\n );\n return castFactory(all);\n function all(node) {\n const nodeAsRecord = (\n /** @type {Record} */\n /** @type {unknown} */\n node\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node) {\n return node && node.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node, parents);\n }\n }\n function handler(node, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node.value);\n }\n if (change) {\n if (start < node.value.length) {\n nodes.push({ type: \"text\", value: node.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"link\");\n node.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"footnoteReference\");\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node.label = label;\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"footnoteDefinition\");\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node.label = label;\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node), { after: \"]\", before: value })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n };\n}\nfunction gfmFootnoteToMarkdown(options) {\n let firstLineBlank = false;\n if (options && options.firstLineBlank) {\n firstLineBlank = true;\n }\n return {\n handlers: { footnoteDefinition, footnoteReference },\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"label\", \"phrasing\", \"reference\"] }]\n };\n function footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node), { before: value, after: \"]\" })\n );\n subexit();\n value += tracker.move(\"]:\");\n if (node.children && node.children.length > 0) {\n tracker.shift(4);\n value += tracker.move(\n (firstLineBlank ? \"\\n\" : \" \") + state.indentLines(\n state.containerFlow(node, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n );\n }\n exit2();\n return value;\n }\n}\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank);\n}\nfunction mapAll(line, index, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction markdownTable(table, options) {\n const settings = options || {};\n const align = (settings.align || []).concat();\n const stringLength = settings.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = settings.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (settings.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === \"\") && (settings.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (settings.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (settings.alignDelimiters !== false) {\n line.push(after);\n }\n if (settings.padding !== false) {\n line.push(\" \");\n }\n if (settings.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n settings.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false && node.value && // If there’s no info…\n !node.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node, _, state, info) {\n const marker = checkFence(state);\n const raw = node.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nfunction encodeCharacterReference(code2) {\n return \"&#x\" + code2.toString(16).toUpperCase() + \";\";\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside);\n const insideKind = classifyCharacter(inside);\n if (outsideKind === void 0) {\n return insideKind === void 0 ? (\n // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === \"_\" ? { inside: true, outside: true } : { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (letter, whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: encode outer (letter)\n { inside: false, outside: true }\n );\n }\n if (outsideKind === 1) {\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n }\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode inner (whitespace).\n { inside: true, outside: false }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker);\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nfunction visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n let reverse;\n let test;\n let visitor;\n if (typeof testOrVisitor === \"function\" && typeof visitorOrReverse !== \"function\") {\n test = void 0;\n visitor = testOrVisitor;\n reverse = visitorOrReverse;\n } else {\n test = testOrVisitor;\n visitor = visitorOrReverse;\n reverse = maybeReverse;\n }\n visitParents(tree, test, overload, reverse);\n function overload(node, parents) {\n const parent = parents[parents.length - 1];\n const index = parent ? parent.children.indexOf(node) : void 0;\n return visitor(node, index, parent);\n }\n}\nfunction formatHeadingAsSetext(node, state) {\n let literalWithBreak = false;\n visit(node, function(node2) {\n if (\"value\" in node2 && /\\r?\\n|\\r/.test(node2.value) || node2.type === \"break\") {\n literalWithBreak = true;\n return EXIT;\n }\n });\n return Boolean(\n (!node.depth || node.depth < 3) && toString(node) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node) {\n return node.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node, _, state, info) {\n const type = node.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node, _, state) {\n let value = node.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node, state) {\n const raw = toString(node);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node.url && // And there’s a no title…\n !node.title && // And the content of `node` is a single text node…\n node.children && node.children.length === 1 && node.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node.url || \"mailto:\" + raw === node.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node, _, state, info) {\n const type = node.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node.children.length) {\n const item = node.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node, _, state, info) {\n const hasPhrasing = node.children.some(function(d) {\n return phrasing(d);\n });\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return container.call(state, node, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker + marker);\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker + marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node, _, state, info) {\n return state.safe(node.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"inlineCode\");\n node.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align);\n }\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node, parent, state) {\n let value = handle.inlineCode(node, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node = this.stack[this.stack.length - 2];\n ok$1(node.type === \"listItem\");\n node.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"paragraph\");\n const head = node.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node.children.shift();\n } else if (node.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0];\n const checkable = typeof node.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index]);\n }\n return all;\n}\nfunction syntaxExtension(all, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : void 0;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: \"wwwAutolink\",\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: \"protocolAutolink\",\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: \"emailAutolink\",\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharacterReferenceStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharacterReferenceStart(code2) {\n return asciiAlpha(code2) ? trailCharacterReferenceInside(code2) : nok(code2);\n }\n function trailCharacterReferenceInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharacterReferenceInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n name: \"gfmFootnoteDefinition\",\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: \"gfmFootnoteCall\",\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: \"gfmPotentialFootnoteCall\",\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(effects, whitespaceAfter, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", 4 + 1);\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: \"strikethrough\",\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [[\"enter\", strikethrough, context], [\"enter\", events[open][1], context], [\"exit\", events[open][1], context], [\"enter\", text2, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n splice(nextEvents, nextEvents.length, 0, [[\"exit\", text2, context], [\"enter\", events[index][1], context], [\"exit\", events[index][1], context], [\"exit\", strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\");\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n name: \"table\",\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n name: \"tasklistCheck\",\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok2, nok)(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextCopyButton\",\n props: {\n contentId: {}\n },\n setup(__props) {\n const { copy, icon, altText } = useCopy(() => document.getElementById(__props.contentId).textContent);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcButton, {\n variant: \"tertiary\",\n size: \"small\",\n \"aria-label\": unref(altText),\n title: unref(altText),\n onClick: unref(copy)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]);\n };\n }\n});\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode$1(node) {\n return node.type === \"text\";\n}\nconst transformPlaceholders = function(ast) {\n visitParents(ast, isTextNode$1, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n const placeholders = node.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`,\n children: []\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n });\n};\nconst remarkPlaceholder = () => transformPlaceholders;\n/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isCodeNode(node) {\n return [\"code\", \"inlineCode\"].includes(node.type);\n}\nconst remarkStripCode = function() {\n return function(tree) {\n visitParents(tree, isCodeNode, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n parent.children.splice(index, 1, {\n ...node,\n value: \"\"\n });\n return [SKIP, index + 1];\n });\n };\n};\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode(node) {\n return [\"text\", \"code\", \"inlineCode\"].includes(node.type);\n}\nconst remarkUnescape = function() {\n return function(tree) {\n visitParents(tree, isTextNode, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n parent.children.splice(index, 1, {\n ...node,\n value: node.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP, index + 1];\n });\n };\n};\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The main text\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * Arguments for the richobjects\n */\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n /**\n * Limit the number of reference widgets to render\n */\n referenceLimit: {\n type: Number,\n default: 0\n },\n /**\n * Whether to render the widgets in interactive mode (if available)\n */\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n /**\n * Whether to show user an option to enable to interactive mode for widgets (if available)\n */\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n /**\n * Automatically convert link-like text to markdown links\n */\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"interactTodo\"\n ],\n data() {\n return {\n parentId: createElementId()\n };\n },\n methods: {\n renderPlaintext() {\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return this.prepareTextNode(entry);\n }\n const argumentId = matches[1];\n const argument = this.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(typeof component === \"string\" ? resolveComponent(component) : component, {\n ...props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n renderMarkdown() {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node) {\n return toHast(node, node.component, { value: node.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n Fragment,\n jsx: this.createElement,\n jsxs: this.createElement,\n elementAttributeNameCase: \"html\",\n prefix: false\n }).processSync(this.text.replace(/<[^>]+>/g, (match) => match.replace(/\")).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.prepareReferenceSource(this.text),\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n /**\n * Render plain text nodes\n *\n * @param {string} text - Content of the node\n */\n prepareTextNode(text2) {\n if (this.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n return h(component, {\n ...props,\n class: \"rich-text--component\"\n });\n });\n }\n return text2;\n },\n /**\n * Strip content of inline code and code blocks for reference widgets\n * (e.g. ignore fenced links from being added as reference)\n *\n * @param {string} text - Content of the node\n */\n prepareReferenceSource(text2) {\n if (!this.useMarkdown && !this.useExtendedMarkdown) {\n return text2;\n }\n const processor = unified();\n processor.compiler = (tree) => toString(tree);\n return processor.use(remarkParse).use(remarkStripCode).processSync(text2.replace(/\\s/g, \" \")).value;\n },\n createElement(type, props, key) {\n if (key) {\n props.key = key;\n }\n const children = props.children ?? [];\n delete props.children;\n if (!String(type).startsWith(\"#\")) {\n if ([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(String(type))) {\n type = `h${Math.min(+String(type)[1] + 3, 6)}`;\n }\n let nestedNode = null;\n if (this.useExtendedMarkdown) {\n if (String(type) === \"code\" && !rehypeHighlight.value && props?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n if (String(type) === \"pre\" && children && String(children.type) === \"code\") {\n const id = this.parentId + \"-code-block-\" + createElementId();\n return h(\"p\", { class: \"rich-text__code-block\" }, [\n h(type, { ...props, id }, children),\n h(_sfc_main$1, { class: \"rich-text__code-block-button\", contentId: id })\n ]);\n }\n if (String(type) === \"li\" && Array.isArray(children) && children.length !== 0 && children[0].type === \"input\" && children[0].props.type === \"checkbox\") {\n const [inputNode, , ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.type));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + createElementId();\n const propsToForward = { ...inputNode.props };\n delete propsToForward.checked;\n const inputComponent = h(NcCheckboxRadioSwitch, {\n ...propsToForward,\n modelValue: inputNode.props.checked,\n id,\n disabled: !this.interactive,\n \"onUpdate:modelValue\": () => {\n this.$emit(\"interactTodo\", id);\n }\n }, { default: () => labelParts });\n return h(type, props, [inputComponent, nestedNode]);\n }\n }\n if (String(type) === \"a\") {\n const route = getRoute(this.$router, props.href);\n if (route) {\n delete props.href;\n delete props.target;\n return h(RouterLink, {\n ...props,\n to: route\n }, { default: () => children });\n }\n const isAllowedScheme = /^(https?:\\/\\/|tel:|mailto:)/.test(props.href);\n if (isAllowedScheme) {\n props.href = props.href.trim();\n return h(NcRichTextExternalLink, props, children);\n } else {\n delete props.href;\n delete props.target;\n return h(\"span\", props, children);\n }\n }\n return h(type, props, children);\n }\n const placeholder = this.arguments[type.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...props, class: \"rich-text--fallback\" }, [`{${type.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", { ...props }, [placeholder]);\n }\n return h(\n typeof placeholder.component === \"string\" ? resolveComponent(placeholder.component) : placeholder.component,\n {\n ...props,\n ...placeholder.props,\n class: \"rich-text--component\"\n },\n { default: () => children }\n );\n }\n },\n render() {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown() : this.renderPlaintext();\n }\n};\nconst NcRichText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-80e57a29\"]]);\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText.mjs.map\n","import { l as logger } from \"./logger.mjs\";\nwindow._vue_richtext_custom_picker_elements ??= {};\nwindow._registerCustomPickerElement ??= registerCustomPickerElement;\nclass NcCustomPickerRenderResult {\n element;\n object;\n /**\n * @param element - The HTML element\n * @param object - The object\n */\n constructor(element, object) {\n this.element = element;\n this.object = object;\n }\n}\nfunction isCustomPickerElementRegistered(id) {\n return !!window._vue_richtext_custom_picker_elements[id];\n}\nfunction getCustomPickerElementSize(id) {\n const size = window._vue_richtext_custom_picker_elements[id]?.size;\n if (size && [\"small\", \"normal\", \"large\", \"full\"].includes(size)) {\n return size;\n }\n return null;\n}\nfunction registerCustomPickerElement(id, callback, onDestroy = () => {\n}, size = \"large\") {\n if (window._vue_richtext_custom_picker_elements[id]) {\n logger.error(`Custom reference picker element for id ${id} already registered`);\n return;\n }\n window._vue_richtext_custom_picker_elements[id] = {\n id,\n callback,\n onDestroy,\n size\n };\n}\nfunction renderCustomPickerElement(el, options) {\n const { providerId, accessible } = options;\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n logger.error(`Custom reference picker element for reference provider ID ${providerId} not registered`);\n return;\n }\n return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });\n}\nfunction destroyCustomPickerElement(providerId, el, renderResult) {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n return;\n }\n window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);\n}\nexport {\n NcCustomPickerRenderResult as N,\n renderCustomPickerElement as a,\n destroyCustomPickerElement as d,\n getCustomPickerElementSize as g,\n isCustomPickerElementRegistered as i,\n registerCustomPickerElement as r\n};\n//# sourceMappingURL=customPickerElements.mjs.map\n","import './assets/index-DuYzGG0a.css';\nimport { openBlock, createElementBlock, createElementVNode, resolveDirective, normalizeClass, renderSlot, normalizeProps, guardReactiveProps, Fragment, renderList, mergeProps, createTextVNode, toDisplayString, withKeys, withModifiers, createBlock, resolveDynamicComponent, createCommentVNode, toHandlers, withDirectives, vShow, createVNode, Transition, withCtx, warn } from \"vue\";\nconst appendToBody = {\n mounted(el, { instance }) {\n if (instance.appendToBody) {\n document.body.appendChild(el);\n const { height, top, left, width } = instance.$refs.toggle.getBoundingClientRect();\n const scrollX = window.scrollX || window.pageXOffset;\n const scrollY = window.scrollY || window.pageYOffset;\n el.unbindPosition = instance.calculatePosition(el, instance, {\n width: width + \"px\",\n left: scrollX + left + \"px\",\n top: scrollY + top + height + \"px\"\n });\n }\n },\n unmounted(el, { instance }) {\n if (instance.appendToBody) {\n if (el.unbindPosition && typeof el.unbindPosition === \"function\") {\n el.unbindPosition();\n }\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n }\n};\nconst ajax = {\n props: {\n /**\n * Toggles the adding of a 'loading' class to the main\n * .v-select wrapper. Useful to control UI state when\n * results are being processed through AJAX.\n */\n loading: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n mutableLoading: false\n };\n },\n watch: {\n /**\n * Anytime the search string changes, emit the\n * 'search' event. The event is passed with two\n * parameters: the search string, and a function\n * that accepts a boolean parameter to toggle the\n * loading state.\n *\n * @fires 'search'\n */\n search() {\n this.$emit(\"search\", this.search, this.toggleLoading);\n },\n /**\n * Sync the loading prop with the internal\n * mutable loading value.\n *\n * @param val Incoming loading state.\n */\n loading(val) {\n this.mutableLoading = val;\n }\n },\n methods: {\n /**\n * Toggle this.loading. Optionally pass a boolean\n * value. If no value is provided, this.loading\n * will be set to the opposite of it's current value.\n *\n * @param toggle Boolean\n * @return {*}\n */\n toggleLoading(toggle = null) {\n if (toggle === null || toggle === void 0) {\n return this.mutableLoading = !this.mutableLoading;\n }\n return this.mutableLoading = toggle;\n }\n }\n};\nconst pointerScroll = {\n props: {\n autoscroll: {\n type: Boolean,\n default: true\n }\n },\n watch: {\n typeAheadPointer() {\n if (this.autoscroll) {\n this.maybeAdjustScroll();\n }\n },\n open(open) {\n if (this.autoscroll && open) {\n this.$nextTick(() => this.maybeAdjustScroll());\n }\n }\n },\n methods: {\n /**\n * Adjust the scroll position of the dropdown list\n * if the current pointer is outside of the\n * overflow bounds.\n *\n * @return {*}\n */\n maybeAdjustScroll() {\n const optionEl = this.$refs.dropdownMenu?.children[this.typeAheadPointer] || false;\n if (optionEl) {\n const bounds = this.getDropdownViewport();\n const { top, bottom, height } = optionEl.getBoundingClientRect();\n if (top < bounds.top) {\n return this.$refs.dropdownMenu.scrollTop = optionEl.offsetTop;\n } else if (bottom > bounds.bottom) {\n return this.$refs.dropdownMenu.scrollTop = optionEl.offsetTop - (bounds.height - height);\n }\n }\n },\n /**\n * The currently viewable portion of the dropdownMenu.\n *\n * @return {{top: (string|*|number), bottom: *}}\n */\n getDropdownViewport() {\n return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.getBoundingClientRect() : {\n height: 0,\n top: 0,\n bottom: 0\n };\n }\n }\n};\nconst pointer = {\n data() {\n return {\n typeAheadPointer: -1\n };\n },\n watch: {\n filteredOptions() {\n if (!this.resetFocusOnOptionsChange) {\n return;\n }\n for (let i = 0; i < this.filteredOptions.length; i++) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n open(open) {\n if (open) {\n this.typeAheadToLastSelected();\n }\n },\n selectedValue() {\n if (this.open) {\n this.typeAheadToLastSelected();\n }\n }\n },\n methods: {\n /**\n * Move the typeAheadPointer visually up the list by\n * setting it to the previous selectable option.\n *\n * @return {void}\n */\n typeAheadUp() {\n for (let i = this.typeAheadPointer - 1; i >= 0; i--) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n /**\n * Move the typeAheadPointer visually down the list by\n * setting it to the next selectable option.\n *\n * @return {void}\n */\n typeAheadDown() {\n for (let i = this.typeAheadPointer + 1; i < this.filteredOptions.length; i++) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n /**\n * Select the option at the current typeAheadPointer position.\n * Optionally clear the search input on selection.\n *\n * @return {void}\n */\n typeAheadSelect() {\n const typeAheadOption = this.filteredOptions[this.typeAheadPointer];\n if (typeAheadOption && this.selectable(typeAheadOption)) {\n this.select(typeAheadOption);\n }\n },\n /**\n * Moves the pointer to the last selected option.\n */\n typeAheadToLastSelected() {\n const indexOfLastSelected = this.selectedValue.length !== 0 ? this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length - 1]) : -1;\n if (indexOfLastSelected !== -1) {\n this.typeAheadPointer = indexOfLastSelected;\n }\n }\n }\n};\nfunction sortAndStringify(sortable) {\n const ordered = {};\n Object.keys(sortable).sort().forEach((key) => {\n ordered[key] = sortable[key];\n });\n return JSON.stringify(ordered);\n}\nlet idCount = 0;\nfunction uniqueId() {\n return ++idCount;\n}\nconst _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};\nconst _sfc_main$2 = {};\nconst _hoisted_1$2 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\"\n};\nfunction _sfc_render$2(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$2, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"path\", { d: \"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\" }, null, -1)\n ])]);\n}\nconst Deselect = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$1 = {};\nconst _hoisted_1$1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"14\",\n height: \"10\"\n};\nfunction _sfc_render$1(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$1, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"path\", { d: \"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\" }, null, -1)\n ])]);\n}\nconst OpenIndicator = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nconst childComponents = {\n Deselect,\n OpenIndicator\n};\nconst _sfc_main = {\n components: { ...childComponents },\n directives: { appendToBody },\n mixins: [pointerScroll, pointer, ajax],\n props: {\n /**\n * Contains the currently selected value. Very similar to a\n * `value` attribute on an . You can listen for changes\n * with the 'input' event.\n *\n * @type {object | string | Array | null}\n */\n modelValue: {},\n /**\n * An object with any custom components that you'd like to overwrite\n * the default implementation of in your app. The keys in this object\n * will be merged with the defaults.\n *\n * @see https://vue-select.org/guide/components.html\n * @type {Function}\n */\n components: {\n type: Object,\n default: () => ({})\n },\n /**\n * An array of strings or objects to be used as dropdown choices.\n * If you are using an array of objects, vue-select will look for\n * a `label` key (ex. [{label: 'This is Foo', value: 'foo'}]). A\n * custom label key can be set with the `label` prop.\n *\n * @type {Array}\n */\n options: {\n type: Array,\n default() {\n return [];\n }\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n *\n * @type {number}\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the entire component.\n *\n * @type {boolean}\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Can the user clear the selected property.\n *\n * @type {boolean}\n */\n clearable: {\n type: Boolean,\n default: true\n },\n /**\n * Can the user deselect an option by clicking it from\n * within the dropdown.\n *\n * @type {boolean}\n */\n deselectFromDropdown: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable filtering the options.\n *\n * @type {boolean}\n */\n searchable: {\n type: Boolean,\n default: true\n },\n /**\n * Equivalent to the `multiple` attribute on a ``.\n *\n * @type {string}\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Sets a Vue transition property on the `.vs__dropdown-menu`.\n *\n * @type {string}\n */\n transition: {\n type: String,\n default: \"vs__fade\"\n },\n /**\n * Enables/disables clearing the search text when an option is selected.\n *\n * @type {boolean}\n */\n clearSearchOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Close a dropdown when an option is chosen. Set to false to keep the dropdown\n * open (useful when combined with multi-select, for example)\n *\n * @type {boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Tells vue-select what key to use when generating option\n * labels when each `option` is an object.\n *\n * @type {string}\n */\n label: {\n type: String,\n default: \"label\"\n },\n /**\n * Allows to customize the `aria-label` set on the comobobox for searching options.\n *\n * @type {string}\n * @default 'Search for options'\n */\n ariaLabelCombobox: {\n type: String,\n default: \"Search for options\"\n },\n /**\n * Allows to customize the `aria-label` set on the listbox element.\n *\n * @type {string}\n * @default 'Options'\n */\n ariaLabelListbox: {\n type: String,\n default: \"Options\"\n },\n /**\n * Allows to customize the `aria-label` set on the clear-selected button\n *\n * @type {string}\n * @default 'Clear selected'\n */\n ariaLabelClearSelected: {\n type: String,\n default: \"Clear selected\"\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => `Deselect ${optionLabel}`\n },\n /**\n * Value of the 'autocomplete' field of the input\n * element.\n *\n * @type {string}\n */\n autocomplete: {\n type: String,\n default: \"off\"\n },\n /**\n * When working with objects, the reduce\n * prop allows you to transform a given\n * object to only the information you\n * want passed to a v-model binding\n * or \\@input event.\n */\n reduce: {\n type: Function,\n default: (option) => option\n },\n /**\n * Decides whether an option is selectable or not. Not selectable options\n * are displayed but disabled and cannot be selected.\n *\n * @type {Function}\n * @since 3.3.0\n * @param {object | string} option\n * @return {boolean}\n */\n selectable: {\n type: Function,\n default: () => true\n },\n /**\n * Callback to generate the label text. If {option}\n * is an object, returns option[this.label] by default.\n *\n * Label text is used for filtering comparison and\n * displaying. If you only need to adjust the\n * display, you should use the `option` and\n * `selected-option` slots.\n *\n * @type {Function}\n * @param {object | string} option\n * @return {string}\n */\n getOptionLabel: {\n type: Function,\n default(option) {\n if (typeof option === \"object\") {\n if (!Object.hasOwn(option, this.label)) {\n return warn(`[vue-select warn]: Label key \"option.${this.label}\" does not exist in options object ${JSON.stringify(option)}.\nhttps://vue-select.org/api/props.html#getoptionlabel`);\n }\n return option[this.label];\n }\n return option;\n }\n },\n /**\n * Generate a unique identifier for each option. If `option`\n * is an object and `option.hasOwnProperty('id')` exists,\n * `option.id` is used by default, otherwise the option\n * will be serialized to JSON.\n *\n * If you are supplying a lot of options, you should\n * provide your own keys, as JSON.stringify can be\n * slow with lots of objects.\n *\n * The result of this function *must* be unique.\n *\n * @type {Function}\n * @param {object | string} option\n * @return {string}\n */\n getOptionKey: {\n type: Function,\n default(option) {\n if (typeof option !== \"object\") {\n return option;\n }\n try {\n return Object.hasOwn(option, \"id\") ? option.id : sortAndStringify(option);\n } catch (e) {\n const warning = \"[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\\nhttps://vue-select.org/api/props.html#getoptionkey\";\n return warn(warning, option, e);\n }\n }\n },\n /**\n * Select the current value if selectOnTab is enabled\n *\n * @deprecated since 3.3\n */\n onTab: {\n type: Function,\n default() {\n if (this.selectOnTab && !this.isComposing) {\n this.typeAheadSelect();\n }\n }\n },\n /**\n * Enable/disable creating options from searchEl.\n *\n * @type {boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * Set the tabindex for the input field.\n *\n * @type {number}\n */\n tabindex: {\n type: Number,\n default: null\n },\n /**\n * When true, newly created tags will be added to\n * the options list.\n *\n * @type {boolean}\n */\n pushTags: {\n type: Boolean,\n default: false\n },\n /**\n * When true, existing options will be filtered\n * by the search text. Should not be used in conjunction\n * with taggable.\n *\n * @type {boolean}\n */\n filterable: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * @type {Function}\n * @param {object | string} option\n * @param {string} label\n * @param {string} search\n * @return {boolean}\n */\n filterBy: {\n type: Function,\n default(option, label, search) {\n return (label || \"\").toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n }\n },\n /**\n * Callback to filter results when search text\n * is provided. Default implementation loops\n * each option, and returns the result of\n * this.filterBy.\n *\n * @type {Function}\n * @param {Array} list of options\n * @param {string} search text\n * @param {object} vSelect instance\n * @return {boolean}\n */\n filter: {\n type: Function,\n default(options, search) {\n return options.filter((option) => {\n let label = this.getOptionLabel(option);\n if (typeof label === \"number\") {\n label = label.toString();\n }\n return this.filterBy(option, label, search);\n });\n }\n },\n /**\n * User defined function for adding Options\n *\n * @type {Function}\n */\n createOption: {\n type: Function,\n default(option) {\n return typeof this.optionList[0] === \"object\" ? { [this.label]: option } : option;\n }\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change.\n *\n * @type {boolean}\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * When false, updating the options will not reset the selected value. Accepts\n * a `boolean` or `function` that returns a `boolean`. If defined as a function,\n * it will receive the params listed below.\n *\n * @since 3.4 - Type changed to {boolean | Function}\n *\n * @type {boolean | Function}\n * @param {Array} newOptions\n * @param {Array} oldOptions\n * @param {Array} selectedValue\n */\n resetOnOptionsChange: {\n default: false,\n validator: (value) => [\"function\", \"boolean\"].includes(typeof value)\n },\n /**\n * If search text should clear on blur\n *\n * @return {boolean} True when single and clearSearchOnSelect\n */\n clearSearchOnBlur: {\n type: Function,\n default({ clearSearchOnSelect, multiple }) {\n return clearSearchOnSelect && !multiple;\n }\n },\n /**\n * Disable the dropdown entirely.\n *\n * @type {boolean}\n */\n noDrop: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the id of the input element.\n *\n * @type {string}\n * @default {null}\n */\n inputId: {\n type: String\n },\n /**\n * Sets RTL support. Accepts 'ltr', 'rtl', 'auto'.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir\n * @type {string}\n * @default 'auto'\n */\n dir: {\n type: String,\n default: \"auto\"\n },\n /**\n * When true, hitting the 'tab' key will select the current select value\n *\n * @type {boolean}\n * @deprecated since 3.3 - use selectOnKeyCodes instead\n */\n selectOnTab: {\n type: Boolean,\n default: false\n },\n /**\n * Keycodes that will select the current option.\n *\n * @type Array\n */\n selectOnKeyCodes: {\n type: Array,\n default: () => [\n // enter\n 13\n ]\n },\n /**\n * Query Selector used to find the search input\n * when the 'search' scoped slot is used.\n *\n * Must be a valid CSS selector string.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n * @type {string}\n */\n searchInputQuerySelector: {\n type: String,\n default: \"[type=search]\"\n },\n /**\n * Used to modify the default keydown events map\n * for the search input. Can be used to implement\n * custom behaviour for key presses.\n */\n mapKeydown: {\n type: Function,\n /**\n * @param {object} map Existing keydown handlers map.\n * @param {VueSelect} vm Component instance.\n * @return {object}\n */\n default: (map) => map\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically. Use it if you have\n * overflow or z-index issues.\n *\n * @type {boolean}\n */\n appendToBody: {\n type: Boolean,\n default: false\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @since v3.7.0\n * @see http://vue-select.org/guide/positioning.html\n */\n calculatePosition: {\n type: Function,\n /**\n * @param {HTMLUListElement} dropdownList Dropdown list element.\n * @param {Vue} component Component instance.\n * @param {object} width Computed dropdown coordinates.\n * @param {string} width.width Computed width value.\n * @param {string} width.top Computed top position.\n * @param {string} width.left Computed left position.\n * @return {Function | void}\n */\n default(dropdownList, component, { width, top, left }) {\n dropdownList.style.top = top;\n dropdownList.style.left = left;\n dropdownList.style.width = width;\n }\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @since v3.12.0\n * @return {boolean}\n */\n dropdownShouldOpen: {\n type: Function,\n default({ noDrop, open, mutableLoading }) {\n return noDrop ? false : open && !mutableLoading;\n }\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus.\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: false\n },\n /**\n * A unique identifier used to generate IDs in HTML.\n * Must be unique for every instance of the component.\n */\n uid: {\n type: [String, Number],\n default: () => uniqueId()\n }\n },\n emits: [\n \"open\",\n \"close\",\n \"update:modelValue\",\n \"search\",\n \"search:compositionstart\",\n \"search:compositionend\",\n \"search:keydown\",\n \"search:blur\",\n \"search:focus\",\n \"search:input\",\n \"option:created\",\n \"option:selecting\",\n \"option:selected\",\n \"option:deselecting\",\n \"option:deselected\"\n ],\n data() {\n return {\n search: \"\",\n open: false,\n isComposing: false,\n isKeyboardNavigation: false,\n pushedTags: [],\n // eslint-disable-next-line vue/no-reserved-keys\n _value: [],\n // Internal value managed by Vue Select if no `modelValue` prop is passed\n deselectButtons: []\n };\n },\n computed: {\n isReducingValues() {\n return this.$props.reduce !== this.$options.props.reduce.default;\n },\n /**\n * Determine if the component needs to\n * track the state of values internally.\n *\n * @return {boolean}\n */\n isTrackingValues() {\n return typeof this.modelValue === \"undefined\" || this.isReducingValues;\n },\n /**\n * The options that are currently selected.\n *\n * @return {Array}\n */\n selectedValue() {\n let value = this.modelValue;\n if (this.isTrackingValues) {\n value = this.$data._value;\n }\n if (value !== void 0 && value !== null && value !== \"\") {\n return [].concat(value);\n }\n return [];\n },\n /**\n * The options available to be chosen\n * from the dropdown, including any\n * tags that have been pushed.\n *\n * @return {Array}\n */\n optionList() {\n return this.options.concat(this.pushTags ? this.pushedTags : []);\n },\n /**\n * Find the search input DOM element.\n *\n * @return {HTMLInputElement}\n */\n searchEl() {\n return this.$slots.search ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector) : this.$refs.search;\n },\n /**\n * The object to be bound to the $slots.search slot.\n *\n * @return {object}\n */\n scope() {\n const listSlot = {\n search: this.search,\n loading: this.loading,\n searching: this.searching,\n filteredOptions: this.filteredOptions\n };\n return {\n search: {\n attributes: {\n id: this.inputId,\n disabled: this.disabled,\n placeholder: this.searchPlaceholder,\n tabindex: this.tabindex,\n readonly: !this.searchable,\n role: \"combobox\",\n \"aria-autocomplete\": \"list\",\n \"aria-label\": this.ariaLabelCombobox,\n \"aria-controls\": `vs-${this.uid}__listbox`,\n \"aria-owns\": `vs-${this.uid}__listbox`,\n \"aria-expanded\": this.dropdownOpen.toString(),\n ref: \"search\",\n type: \"search\",\n autocomplete: this.autocomplete,\n value: this.search,\n ...this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {\n \"aria-activedescendant\": `vs-${this.uid}__option-${this.typeAheadPointer}`\n } : {}\n },\n events: {\n compositionstart: () => this.isComposing = true,\n compositionend: () => this.isComposing = false,\n keydown: this.onSearchKeyDown,\n keypress: this.onSearchKeyPress,\n blur: this.onSearchBlur,\n focus: this.onSearchFocus,\n input: (e) => this.search = e.target.value\n }\n },\n spinner: {\n loading: this.mutableLoading\n },\n noOptions: {\n search: this.search,\n loading: this.mutableLoading,\n searching: this.searching\n },\n openIndicator: {\n attributes: {\n ref: \"openIndicator\",\n role: \"presentation\",\n class: \"vs__open-indicator\"\n }\n },\n listHeader: listSlot,\n listFooter: listSlot,\n header: { ...listSlot, deselect: this.deselect },\n footer: { ...listSlot, deselect: this.deselect }\n };\n },\n /**\n * Returns an object containing the child components\n * that will be used throughout the component. The\n * `component` prop can be used to overwrite the defaults.\n *\n * @return {object}\n */\n childComponents() {\n return {\n ...childComponents,\n ...this.components\n };\n },\n /**\n * Holds the current state of the component.\n *\n * @return {object}\n */\n stateClasses() {\n return {\n \"vs--open\": this.dropdownOpen,\n \"vs--single\": !this.multiple,\n \"vs--multiple\": this.multiple,\n \"vs--searching\": this.searching && !this.noDrop,\n \"vs--searchable\": this.searchable && !this.noDrop,\n \"vs--unsearchable\": !this.searchable,\n \"vs--loading\": this.mutableLoading,\n \"vs--disabled\": this.disabled\n };\n },\n /**\n * Return the current state of the\n * search input\n *\n * @return {boolean} True if non empty value\n */\n searching() {\n return !!this.search;\n },\n /**\n * Return the current state of the\n * dropdown menu.\n *\n * @return {boolean} True if open\n */\n dropdownOpen() {\n return this.dropdownShouldOpen(this);\n },\n /**\n * Return the placeholder string if it's set\n * & there is no value selected.\n *\n * @return {string} Placeholder text\n */\n searchPlaceholder() {\n return this.isValueEmpty && this.placeholder ? this.placeholder : void 0;\n },\n /**\n * The currently displayed options, filtered\n * by the search elements value. If tagging\n * true, the search text will be prepended\n * if it doesn't already exist.\n *\n * @return {Array}\n */\n filteredOptions() {\n const limitOptions = (options2) => {\n if (this.limit !== null) {\n return options2.slice(0, this.limit);\n }\n return options2;\n };\n const optionList = [].concat(this.optionList);\n if (!this.filterable && !this.taggable) {\n return limitOptions(optionList);\n }\n const options = this.search.length ? this.filter(optionList, this.search, this) : optionList;\n if (this.taggable && this.search.length) {\n try {\n const createdOption = this.createOption(this.search);\n if (!this.optionExists(createdOption)) {\n options.unshift(createdOption);\n }\n } catch {\n }\n }\n return limitOptions(options);\n },\n /**\n * Check if there aren't any options selected.\n *\n * @return {boolean}\n */\n isValueEmpty() {\n return this.selectedValue.length === 0;\n },\n /**\n * Determines if the clear button should be displayed.\n *\n * @return {boolean}\n */\n showClearButton() {\n return !this.multiple && this.clearable && !this.open && !this.isValueEmpty;\n }\n },\n watch: {\n /**\n * Maybe reset the value\n * when options change.\n * Make sure selected option\n * is correct.\n *\n * @param {Array} newOptions Updated options list.\n * @param {Array} oldOptions Previous options list.\n * @return {boolean} [description]\n */\n options(newOptions, oldOptions) {\n const shouldReset = () => typeof this.resetOnOptionsChange === \"function\" ? this.resetOnOptionsChange(\n newOptions,\n oldOptions,\n this.selectedValue\n ) : this.resetOnOptionsChange;\n if (!this.taggable && shouldReset()) {\n this.clearSelection();\n }\n if (this.modelValue && this.isTrackingValues) {\n this.setInternalValueFromOptions(this.modelValue);\n }\n },\n /**\n * Make sure to update internal\n * value if prop changes outside\n */\n modelValue: {\n immediate: true,\n handler(val) {\n if (this.isTrackingValues) {\n this.setInternalValueFromOptions(val);\n }\n }\n },\n /**\n * Always reset the value when\n * the multiple prop changes.\n *\n * @return {void}\n */\n multiple() {\n this.clearSelection();\n },\n open(isOpen) {\n this.$emit(isOpen ? \"open\" : \"close\");\n },\n search(search) {\n if (search.length) {\n this.open = true;\n }\n }\n },\n created() {\n this.mutableLoading = this.loading;\n },\n methods: {\n /**\n * Make sure tracked value is\n * one option if possible.\n *\n * @param {object | string} value Reduced value to resolve.\n * @return {void}\n */\n setInternalValueFromOptions(value) {\n if (Array.isArray(value)) {\n this.$data._value = value.map((val) => this.findOptionFromReducedValue(val));\n } else {\n this.$data._value = this.findOptionFromReducedValue(value);\n }\n },\n /**\n * Select or deselect a given option.\n * Allow deselect if clearable or if not the only selected option.\n *\n * @param {object | string} option Option to select or deselect.\n * @return {void}\n */\n select(option) {\n this.$emit(\"option:selecting\", option);\n if (!this.isOptionSelected(option)) {\n if (this.taggable && !this.optionExists(option)) {\n this.$emit(\"option:created\", option);\n this.pushTag(option);\n }\n if (this.multiple) {\n option = this.selectedValue.concat(option);\n }\n this.updateValue(option);\n this.$emit(\"option:selected\", option);\n } else if (this.deselectFromDropdown && (this.clearable || this.multiple && this.selectedValue.length > 1)) {\n this.deselect(option);\n }\n this.onAfterSelect(option);\n },\n /**\n * De-select a given option.\n *\n * @param {object | string} option Option to remove.\n * @return {void}\n */\n deselect(option) {\n this.$emit(\"option:deselecting\", option);\n this.updateValue(this.selectedValue.filter((val) => {\n return !this.optionComparator(val, option);\n }));\n this.$emit(\"option:deselected\", option);\n },\n /**\n * De-select a given option on keyboard input.\n *\n * @param {object | string} option Option to remove.\n * @param {number} index Index of the deselect button.\n * @return {void}\n */\n keyboardDeselect(option, index2) {\n this.deselect(option);\n const nextDeselect = this.deselectButtons?.[index2 + 1];\n const prevDeselect = this.deselectButtons?.[index2 - 1];\n const deselectToFocus = nextDeselect ?? prevDeselect;\n if (deselectToFocus) {\n deselectToFocus.focus();\n } else {\n this.searchEl.focus();\n }\n },\n /**\n * Clears the currently selected value(s)\n *\n * @return {void}\n */\n clearSelection() {\n this.updateValue(this.multiple ? [] : null);\n this.searchEl.focus();\n },\n /**\n * Called from this.select after each selection.\n *\n * @param {object | string} option Option that was handled.\n * @return {void}\n */\n onAfterSelect() {\n if (this.closeOnSelect) {\n this.open = !this.open;\n }\n if (this.clearSearchOnSelect) {\n this.search = \"\";\n }\n if (this.noDrop && this.multiple) {\n this.$nextTick(() => this.$refs.search.focus());\n }\n },\n /**\n * Accepts a selected value, updates local\n * state when required, and triggers the\n * input event.\n *\n * @fires input\n * @param {object | string} value Selected value payload.\n */\n updateValue(value) {\n if (typeof this.modelValue === \"undefined\") {\n this.$data._value = value;\n }\n if (value !== null) {\n if (Array.isArray(value)) {\n value = value.map((val) => this.reduce(val));\n } else {\n value = this.reduce(value);\n }\n }\n this.$emit(\"update:modelValue\", value);\n },\n /**\n * Toggle the visibility of the dropdown menu.\n *\n * @param {Event} event Toggle trigger event.\n * @return {void}\n */\n toggleDropdown(event) {\n const targetIsNotSearch = event.target !== this.searchEl;\n if (targetIsNotSearch) {\n event.preventDefault();\n }\n const ignoredButtons = [\n ...this.deselectButtons || [],\n ...this.$refs.clearButton ? [this.$refs.clearButton] : []\n ];\n if (this.searchEl === void 0 || ignoredButtons.filter(Boolean).some((ref) => ref.contains(event.target) || ref === event.target)) {\n event.preventDefault();\n return;\n }\n if (this.open && targetIsNotSearch) {\n this.open = false;\n this.searchEl.blur();\n } else if (!this.disabled) {\n this.open = true;\n this.searchEl.focus();\n }\n },\n /**\n * Check if the given option is currently selected.\n *\n * @param {object | string} option Option to evaluate.\n * @return {boolean} True when selected | False otherwise\n */\n isOptionSelected(option) {\n return this.selectedValue.some((value) => this.optionComparator(value, option));\n },\n /**\n * Can the current option be removed via the dropdown?\n *\n * @param {object | string} option Option to evaluate.\n * @return {boolean}\n */\n isOptionDeselectable(option) {\n return this.isOptionSelected(option) && this.deselectFromDropdown;\n },\n /**\n * Check if the option at the given index should display a\n * keyboard focus border.\n *\n * @param {number} index Option index.\n * @return {boolean}\n */\n hasKeyboardFocusBorder(index2) {\n if (this.keyboardFocusBorder && this.isKeyboardNavigation) {\n return index2 === this.typeAheadPointer;\n }\n return false;\n },\n /**\n * Determine if two option objects are matching.\n *\n * @param {object} a First option.\n * @param {object} b Second option.\n * @return {boolean}\n */\n optionComparator(a, b) {\n return this.getOptionKey(a) === this.getOptionKey(b);\n },\n /**\n * Finds an option from the options\n * where a reduced value matches\n * the passed in value.\n *\n * @param {object} value Reduced value to match.\n * @return {*}\n */\n findOptionFromReducedValue(value) {\n const predicate = (option) => JSON.stringify(this.reduce(option)) === JSON.stringify(value);\n const matches = [...this.options, ...this.pushedTags].filter(predicate);\n if (matches.length === 1) {\n return matches[0];\n }\n return matches.find((match) => this.optionComparator(match, this.$data._value)) || value;\n },\n /**\n * 'Private' function to close the search options\n *\n * @fires {search:blur}\n * @return {void}\n */\n closeSearchOptions() {\n this.open = false;\n this.$emit(\"search:blur\");\n },\n /**\n * Delete the value on Delete keypress when there is no\n * text in the search input, & there's tags to delete\n *\n * @return {this.value}\n */\n maybeDeleteValue() {\n if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {\n let value = null;\n if (this.multiple) {\n value = [\n ...this.selectedValue.slice(0, this.selectedValue.length - 1)\n ];\n }\n this.updateValue(value);\n }\n },\n /**\n * Determine if an option exists\n * within this.optionList array.\n *\n * @param {Object || String} option Option to find.\n * @return {boolean}\n */\n optionExists(option) {\n return this.optionList.some((_option) => this.optionComparator(_option, option));\n },\n /**\n * Determine the `aria-selected` value\n * of an option\n *\n * @param {object | string} option Option to evaluate.\n * @return {null|string}\n */\n optionAriaSelected(option) {\n if (!this.selectable(option)) {\n return null;\n }\n return String(this.isOptionSelected(option));\n },\n /**\n * Ensures that options are always\n * passed as objects to scoped slots.\n *\n * @param {object | string} option Option to normalize.\n * @return {object}\n */\n normalizeOptionForSlot(option) {\n return typeof option === \"object\" ? option : { [this.label]: option };\n },\n /**\n * If push-tags is true, push the\n * given option to `this.pushedTags`.\n *\n * @param {Object || String} option Option to append.\n * @return {void}\n */\n pushTag(option) {\n this.pushedTags.push(option);\n },\n /**\n * If there is any text in the search input, remove it.\n * Otherwise, blur the search input to close the dropdown.\n *\n * @return {void}\n */\n onEscape() {\n if (!this.search.length) {\n this.open = false;\n } else {\n this.search = \"\";\n }\n },\n /**\n * Close the dropdown on blur.\n *\n * @fires {search:blur}\n * @return {void}\n */\n onSearchBlur() {\n if (this.mousedown && !this.searching) {\n this.mousedown = false;\n } else {\n const { clearSearchOnSelect, multiple } = this;\n if (this.clearSearchOnBlur({ clearSearchOnSelect, multiple })) {\n this.search = \"\";\n }\n this.closeSearchOptions();\n return;\n }\n if (this.search.length === 0 && this.options.length === 0) {\n this.closeSearchOptions();\n }\n },\n /**\n * Do NOT open the dropdown here: auto-opening on focus violates\n * WCAG 3.2.1 (On Focus). Keyboard users open via\n * Space/Enter/ArrowDown/ArrowUp; mouse users click.\n *\n * @fires {search:focus}\n * @return {void}\n */\n onSearchFocus() {\n this.$emit(\"search:focus\");\n },\n /**\n * Event-Handler to help workaround IE11 (probably fixes 10 as well)\n * firing a `blur` event when clicking\n * the dropdown's scrollbar, causing it\n * to collapse abruptly.\n *\n * @see https://github.com/sagalbot/vue-select/issues/106\n * @return {void}\n */\n onMousedown() {\n this.mousedown = true;\n },\n /**\n * Event-Handler to help workaround IE11 (probably fixes 10 as well)\n *\n * @see https://github.com/sagalbot/vue-select/issues/106\n * @return {void}\n */\n onMouseUp() {\n this.mousedown = false;\n },\n /**\n * Event-Handler for option mousemove\n *\n * @param {object | string} option Hovered option.\n * @param {number} index Hovered option index.\n * @return {void}\n */\n onMouseMove(option, index2) {\n this.isKeyboardNavigation = false;\n if (!this.selectable(option)) {\n return;\n }\n this.typeAheadPointer = index2;\n },\n /**\n * Search KeyBoardEvent handler.\n *\n * @param {KeyboardEvent} e Keyboard event.\n * @return {Function}\n */\n onSearchKeyDown(e) {\n const preventAndSelect = (e2) => {\n e2.preventDefault();\n if (!this.open) {\n this.open = true;\n return;\n }\n return !this.isComposing && this.typeAheadSelect();\n };\n const defaults = {\n // backspace\n 8: () => this.maybeDeleteValue(),\n // tab\n 9: () => this.onTab(),\n // esc\n 27: () => this.onEscape(),\n // up.prevent\n 38: (e2) => {\n e2.preventDefault();\n this.isKeyboardNavigation = true;\n if (!this.open) {\n this.open = true;\n return;\n }\n return this.typeAheadUp();\n },\n // down.prevent\n 40: (e2) => {\n e2.preventDefault();\n this.isKeyboardNavigation = true;\n if (!this.open) {\n this.open = true;\n return;\n }\n return this.typeAheadDown();\n }\n };\n this.selectOnKeyCodes.forEach((keyCode) => defaults[keyCode] = preventAndSelect);\n const handlers = this.mapKeydown(defaults, this);\n if (typeof handlers[e.keyCode] === \"function\") {\n return handlers[e.keyCode](e);\n }\n },\n /**\n * TODO: Probably want to add a mapKeyPress method just like we have for keydown.\n *\n * @param {KeyboardEvent} e Keyboard event.\n */\n onSearchKeyPress(e) {\n if (!this.open && e.keyCode === 32) {\n e.preventDefault();\n this.open = true;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"dir\"];\nconst _hoisted_2 = {\n ref: \"toggle\",\n class: \"vs__dropdown-toggle\"\n};\nconst _hoisted_3 = [\"disabled\", \"title\", \"aria-label\", \"onMousedown\", \"onKeydown\"];\nconst _hoisted_4 = {\n ref: \"actions\",\n class: \"vs__actions\"\n};\nconst _hoisted_5 = [\"disabled\", \"title\", \"aria-label\"];\nconst _hoisted_6 = { class: \"vs__spinner\" };\nconst _hoisted_7 = [\"id\", \"aria-label\", \"aria-multiselectable\"];\nconst _hoisted_8 = [\"id\", \"aria-selected\", \"onMousemove\", \"onClick\"];\nconst _hoisted_9 = {\n key: 0,\n class: \"vs__no-options\"\n};\nconst _hoisted_10 = [\"id\", \"aria-label\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _directive_append_to_body = resolveDirective(\"append-to-body\");\n return openBlock(), createElementBlock(\"div\", {\n id: `v-select-${$props.uid}`,\n dir: $props.dir,\n class: normalizeClass([\"v-select\", $options.stateClasses])\n }, [\n renderSlot(_ctx.$slots, \"header\", normalizeProps(guardReactiveProps($options.scope.header))),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", {\n ref: \"selectedOptions\",\n class: \"vs__selected-options\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => $options.toggleDropdown && $options.toggleDropdown(...args))\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.selectedValue, (option, index2) => {\n return renderSlot(_ctx.$slots, \"selected-option-container\", {\n option: $options.normalizeOptionForSlot(option),\n deselect: $options.deselect,\n multiple: $props.multiple,\n disabled: $props.disabled\n }, () => [\n (openBlock(), createElementBlock(\"span\", {\n key: $props.getOptionKey(option),\n class: \"vs__selected\"\n }, [\n renderSlot(_ctx.$slots, \"selected-option\", mergeProps({ ref_for: true }, $options.normalizeOptionForSlot(option)), () => [\n createTextVNode(toDisplayString($props.getOptionLabel(option)), 1)\n ]),\n $props.multiple ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n ref_for: true,\n ref: (el) => $data.deselectButtons[index2] = el,\n disabled: $props.disabled,\n type: \"button\",\n class: \"vs__deselect\",\n title: $props.ariaLabelDeselectOption($props.getOptionLabel(option)),\n \"aria-label\": $props.ariaLabelDeselectOption($props.getOptionLabel(option)),\n onMousedown: withModifiers(($event) => $options.deselect(option), [\"stop\"]),\n onKeydown: withKeys(($event) => $options.keyboardDeselect(option, index2), [\"enter\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.Deselect)))\n ], 40, _hoisted_3)) : createCommentVNode(\"\", true)\n ]))\n ]);\n }), 256)),\n renderSlot(_ctx.$slots, \"search\", normalizeProps(guardReactiveProps($options.scope.search)), () => [\n createElementVNode(\"input\", mergeProps({ class: \"vs__search\" }, $options.scope.search.attributes, toHandlers($options.scope.search.events, true)), null, 16)\n ])\n ], 544),\n createElementVNode(\"div\", _hoisted_4, [\n withDirectives(createElementVNode(\"button\", {\n ref: \"clearButton\",\n disabled: $props.disabled,\n type: \"button\",\n class: \"vs__clear\",\n title: $props.ariaLabelClearSelected,\n \"aria-label\": $props.ariaLabelClearSelected,\n onClick: _cache[1] || (_cache[1] = (...args) => $options.clearSelection && $options.clearSelection(...args))\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.Deselect)))\n ], 8, _hoisted_5), [\n [vShow, $options.showClearButton]\n ]),\n !$props.noDrop ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n ref: \"openIndicatorButton\",\n class: \"vs__open-indicator-button\",\n type: \"button\",\n tabindex: \"-1\",\n \"aria-hidden\": \"true\",\n onMousedown: _cache[2] || (_cache[2] = (...args) => $options.toggleDropdown && $options.toggleDropdown(...args))\n }, [\n renderSlot(_ctx.$slots, \"open-indicator\", normalizeProps(guardReactiveProps($options.scope.openIndicator)), () => [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.OpenIndicator), normalizeProps(guardReactiveProps($options.scope.openIndicator.attributes)), null, 16))\n ])\n ], 544)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"spinner\", normalizeProps(guardReactiveProps($options.scope.spinner)), () => [\n withDirectives(createElementVNode(\"div\", _hoisted_6, \" Loading... \", 512), [\n [vShow, _ctx.mutableLoading]\n ])\n ])\n ], 512)\n ], 512),\n createVNode(Transition, { name: $props.transition }, {\n default: withCtx(() => [\n $options.dropdownOpen ? withDirectives((openBlock(), createElementBlock(\"ul\", {\n id: `vs-${$props.uid}__listbox`,\n ref: \"dropdownMenu\",\n key: `vs-${$props.uid}__listbox`,\n class: \"vs__dropdown-menu\",\n role: \"listbox\",\n \"aria-label\": $props.ariaLabelListbox,\n \"aria-multiselectable\": $props.multiple ? \"true\" : null,\n tabindex: \"-1\",\n onMousedown: _cache[3] || (_cache[3] = withModifiers((...args) => $options.onMousedown && $options.onMousedown(...args), [\"prevent\"])),\n onMouseup: _cache[4] || (_cache[4] = (...args) => $options.onMouseUp && $options.onMouseUp(...args))\n }, [\n renderSlot(_ctx.$slots, \"list-header\", normalizeProps(guardReactiveProps($options.scope.listHeader))),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.filteredOptions, (option, index2) => {\n return openBlock(), createElementBlock(\"li\", {\n id: `vs-${$props.uid}__option-${index2}`,\n key: $props.getOptionKey(option),\n role: \"option\",\n class: normalizeClass([\"vs__dropdown-option\", {\n \"vs__dropdown-option--deselect\": $options.isOptionDeselectable(option) && index2 === _ctx.typeAheadPointer,\n \"vs__dropdown-option--selected\": $options.isOptionSelected(option),\n \"vs__dropdown-option--highlight\": index2 === _ctx.typeAheadPointer,\n \"vs__dropdown-option--kb-focus\": $options.hasKeyboardFocusBorder(index2),\n \"vs__dropdown-option--disabled\": !$props.selectable(option)\n }]),\n \"aria-selected\": $options.optionAriaSelected(option),\n onMousemove: ($event) => $options.onMouseMove(option, index2),\n onClick: withModifiers(($event) => $props.selectable(option) ? $options.select(option) : null, [\"prevent\", \"stop\"])\n }, [\n renderSlot(_ctx.$slots, \"option\", mergeProps({ ref_for: true }, $options.normalizeOptionForSlot(option)), () => [\n createTextVNode(toDisplayString($props.getOptionLabel(option)), 1)\n ])\n ], 42, _hoisted_8);\n }), 128)),\n $options.filteredOptions.length === 0 ? (openBlock(), createElementBlock(\"li\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"no-options\", normalizeProps(guardReactiveProps($options.scope.noOptions)), () => [\n _cache[5] || (_cache[5] = createTextVNode(\" Sorry, no matching options. \", -1))\n ])\n ])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"list-footer\", normalizeProps(guardReactiveProps($options.scope.listFooter)))\n ], 40, _hoisted_7)), [\n [_directive_append_to_body]\n ]) : (openBlock(), createElementBlock(\"ul\", {\n key: 1,\n id: `vs-${$props.uid}__listbox`,\n role: \"listbox\",\n \"aria-label\": $props.ariaLabelListbox,\n style: { \"display\": \"none\", \"visibility\": \"hidden\" }\n }, null, 8, _hoisted_10))\n ]),\n _: 3\n }, 8, [\"name\"]),\n renderSlot(_ctx.$slots, \"footer\", normalizeProps(guardReactiveProps($options.scope.footer)))\n ], 10, _hoisted_1);\n}\nconst Select = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nconst index = { ajax, pointer, pointerScroll };\nexport {\n Select as VueSelect,\n index as mixins\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcInputField.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, warn, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, withDirectives, renderSlot, vShow, createBlock, withCtx, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": __props.disabled,\n \"input-field--error\": __props.error,\n \"input-field--label-outside\": __props.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": __props.pill,\n \"input-field--success\": __props.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", __props.inputClass],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n type: __props.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n __props.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": __props.trailingButtonLabel,\n disabled: __props.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : __props.success || __props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-feb04bef\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField.mjs.map\n","import { defineComponent, useModel, useTemplateRef, computed, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, mergeModels } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi.mjs\";\nimport { r as register, b as t53, c as t19, a as t } from \"./_l10n.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcInputField } from \"./NcInputField.mjs\";\nregister(t19, t53);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n type: {},\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n __props.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n __props.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: __props.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang.mjs.map\n","import '../assets/NcSelect.css';\nimport { autoUpdate, computePosition, flip, offset, shift, limitShift } from \"@floating-ui/dom\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi.mjs\";\nimport { VueSelect } from \"@nextcloud/vue-select\";\nimport { resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createVNode, normalizeClass, createElementVNode, createElementBlock, renderList, warn, h } from \"vue\";\nimport { C as ChevronDown } from \"./ChevronDown.mjs\";\nimport { I as IconClose } from \"./Close.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTextField.vue_vue_type_script_setup_true_lang.mjs\";\nimport { r as register, g as t18, a as t } from \"./_l10n.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nregister(t18);\nconst _sfc_main = {\n name: \"NcSelect\",\n components: {\n ChevronDown,\n NcEllipsisedOption,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcTextField: _sfc_main$1,\n VueSelect\n },\n props: {\n // Add VueSelect props to $props\n ...VueSelect.props,\n ...VueSelect.mixins.reduce((allProps, mixin) => ({ ...allProps, ...mixin.props }), {}),\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the search input\n *\n * A descriptive `inputLabel` is preferred as this is not visible.\n */\n ariaLabelCombobox: {\n type: String,\n default: null\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically.\n *\n * @see https://vue-select.org/api/props.html#appendtobody\n */\n appendToBody: {\n type: Boolean,\n default: true\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @see https://vue-select.org/api/props.html#calculateposition\n */\n calculatePosition: {\n type: Function,\n default: null\n },\n /**\n * Keep the dropdown open after selecting an option.\n *\n * @default false\n * @since 8.25.0\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Replace default vue-select components\n *\n * @see https://vue-select.org/api/props.html#components\n */\n components: {\n type: Object,\n default: () => ({\n Deselect: {\n render: () => h(IconClose, {\n size: 20,\n fillColor: \"var(--vs-controls-color)\",\n style: [\n { cursor: \"pointer\" }\n ]\n })\n }\n })\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the component\n *\n * @see https://vue-select.org/api/props.html#disabled\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @see https://vue-select.org/api/props.html#dropdownshouldopen\n */\n dropdownShouldOpen: {\n type: Function,\n default: ({ noDrop, open }) => {\n return noDrop ? false : open;\n }\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * Defaults to the internal vue-select function documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#filterby\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Class for the `input`\n *\n * Necessary for use in NcActionInput\n */\n inputClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visible label for the input element\n */\n inputLabel: {\n type: String,\n default: null\n },\n /**\n * Additional helper text shown beneath the select.\n */\n helperText: {\n type: String,\n default: \"\"\n },\n /**\n * Toggle the error state, styling the helper text as an error.\n */\n error: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the success state, styling the helper text as a success.\n */\n success: {\n type: Boolean,\n default: false\n },\n /**\n * Pass true if you are using an external label\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: true\n },\n /**\n * Key of the displayed label for object options\n *\n * Defaults to the internal vue-select string documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#label\n */\n label: {\n type: String,\n default: null\n },\n /**\n * Show the loading icon\n *\n * @see https://vue-select.org/api/props.html#loading\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Allow selection of multiple options\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Disable automatic wrapping when selected options overflow the width\n */\n noWrap: {\n type: Boolean,\n default: false\n },\n /**\n * Array of options\n *\n * @type {Array>}\n *\n * @see https://vue-select.org/api/props.html#options\n */\n options: {\n type: Array,\n default: () => []\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Customized component's response to keydown events while the search input has focus\n *\n * @see https://vue-select.org/guide/keydown.html#mapkeydown\n */\n mapKeydown: {\n type: Function,\n /**\n * Patched Vue-Select keydown events handlers map to stop Escape propagation in open select\n *\n * @param {Record void>} map - Mapped keyCode to handlers { : }\n * @param {import('vue').ComponentPublicInstance} vm - VueSelect instance\n * @return {Record void>} patched keydown event handlers\n */\n default(map, vm) {\n return {\n ...map,\n /**\n * Patched Escape handler to stop propagation from open select\n *\n * @param {KeyboardEvent} event - default keydown event handler\n */\n 27: (event) => {\n if (vm.open) {\n event.stopPropagation();\n }\n map[27](event);\n }\n };\n }\n },\n /**\n * A unique identifier used to generate IDs and DOM attributes. Must be unique for every instance of the component.\n *\n * @see https://vue-select.org/api/props.html#uid\n */\n uid: {\n type: String,\n default: () => createElementId()\n },\n /**\n * When `appendToBody` is true, this sets the placement of the dropdown\n *\n * @type {'bottom' | 'top'}\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * Currently selected value\n *\n * The `v-model` directive may be used for two-way data binding\n *\n * @type {string | number | Record | Array}\n *\n * @see https://vue-select.org/api/props.html#value\n */\n modelValue: {\n type: [String, Number, Object, Array],\n default: null\n },\n /**\n * Enable if a value is required for native form validation\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \",\n \"update:modelValue\"\n ],\n setup() {\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n return {\n avatarSize,\n isLegacy,\n mdiAlertCircleOutline,\n mdiCheck\n };\n },\n data() {\n return {\n search: \"\"\n };\n },\n computed: {\n inputRequired() {\n if (!this.required) {\n return null;\n }\n return this.modelValue === null || Array.isArray(this.modelValue) && this.modelValue.length === 0;\n },\n localCalculatePosition() {\n if (this.calculatePosition !== null) {\n return this.calculatePosition;\n }\n return (dropdownMenu, component, { width }) => {\n dropdownMenu.style.width = width;\n const addClass = {\n name: \"addClass\",\n fn() {\n dropdownMenu.classList.add(\"vs__dropdown-menu--floating\", \"nc-select__dropdown\");\n return {};\n }\n };\n const togglePlacementClass = {\n name: \"togglePlacementClass\",\n fn({ placement }) {\n component.$el.classList.toggle(\n \"select--drop-up\",\n placement === \"top\"\n );\n dropdownMenu.classList.toggle(\n \"vs__dropdown-menu--floating-placement-top\",\n placement === \"top\"\n );\n return {};\n }\n };\n const updatePosition = () => {\n computePosition(component.$refs.toggle, dropdownMenu, {\n placement: this.placement,\n middleware: [\n // Flip first so the placement-dependent middleware below see the final placement\n flip(),\n addClass,\n togglePlacementClass,\n // On top placement, leave a gap for the floating label overhang\n // (about half the floated label line-height) instead of connecting seamlessly\n offset(({ placement }) => placement.startsWith(\"top\") ? 10 : -1),\n shift({ limiter: limitShift() })\n ]\n }).then(({ x, y }) => {\n Object.assign(dropdownMenu.style, {\n left: `${x}px`,\n top: `${y}px`,\n width: `${component.$refs.toggle.getBoundingClientRect().width}px`\n });\n });\n };\n const cleanup = autoUpdate(\n component.$refs.toggle,\n dropdownMenu,\n updatePosition\n );\n return cleanup;\n };\n },\n localFilterBy() {\n return this.filterBy ?? VueSelect.props.filterBy.default;\n },\n localLabel() {\n return this.label ?? VueSelect.props.label.default;\n },\n propsToForward() {\n const vueSelectKeys = [\n ...Object.keys(VueSelect.props),\n ...VueSelect.mixins.flatMap((mixin) => Object.keys(mixin.props ?? {}))\n ];\n const initialPropsToForward = Object.fromEntries(Object.entries(this.$props).filter(([key, _value]) => vueSelectKeys.includes(key)));\n const propsToForward = {\n ...initialPropsToForward,\n // Custom overrides of vue-select props\n calculatePosition: this.localCalculatePosition,\n closeOnSelect: !this.keepOpen,\n filterBy: this.localFilterBy,\n label: this.localLabel\n };\n return propsToForward;\n }\n },\n mounted() {\n if (!this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox) {\n warn(\"[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`.\");\n }\n if (this.inputLabel && this.ariaLabelCombobox) {\n warn(\"[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.\");\n }\n },\n methods: {\n t,\n /**\n * Consumer-provided slots forwarded to vue-select, excluding `footer`\n * which we render ourselves to host the helper text.\n *\n * `$slots` is not reactive, so this is a method (re-evaluated on every\n * render) rather than a computed, to keep the forwarded slot list fresh.\n *\n * @return {string[]}\n */\n forwardedSlots() {\n return Object.keys(this.$slots).filter((name) => name !== \"footer\");\n }\n }\n};\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_VueSelect = resolveComponent(\"VueSelect\");\n return openBlock(), createBlock(_component_VueSelect, mergeProps({\n class: [\"select nc-select\", {\n \"select--legacy\": $setup.isLegacy,\n \"select--no-wrap\": $props.noWrap\n }]\n }, $options.propsToForward, {\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"update:modelValue\", $event))\n }), createSlots({\n search: withCtx(({ attributes, events }) => [\n createVNode(_component_NcTextField, {\n id: attributes.id,\n class: normalizeClass([\"vs__search\", [$props.inputClass]]),\n type: attributes.type,\n modelValue: attributes.value,\n placeholder: $props.multiple || $props.modelValue ? \"\" : $props.placeholder || \"\",\n label: !$props.labelOutside && !$props.multiple && $props.inputLabel ? $props.inputLabel : \"\",\n labelOutside: $props.labelOutside || $props.multiple,\n disabled: $props.disabled,\n required: $options.inputRequired,\n role: attributes.role,\n tabindex: attributes.tabindex,\n readonly: attributes.readonly,\n autocomplete: attributes.autocomplete,\n \"aria-label\": attributes[\"aria-label\"],\n \"aria-describedby\": [attributes[\"aria-describedby\"], $props.helperText ? `${$props.inputId}-helper-text` : null].filter(Boolean).join(\" \") || void 0,\n \"aria-autocomplete\": attributes[\"aria-autocomplete\"],\n \"aria-controls\": attributes[\"aria-controls\"],\n \"aria-owns\": attributes[\"aria-owns\"],\n \"aria-expanded\": attributes[\"aria-expanded\"],\n \"aria-activedescendant\": attributes[\"aria-activedescendant\"],\n onKeydown: events.keydown,\n onKeypress: events.keypress,\n onFocus: events.focus,\n onBlur: events.blur,\n onCompositionstart: events.compositionstart,\n onCompositionend: events.compositionend,\n \"onUpdate:modelValue\": ($event) => events.input({ target: { value: $event } })\n }, null, 8, [\"id\", \"class\", \"type\", \"modelValue\", \"placeholder\", \"label\", \"labelOutside\", \"disabled\", \"required\", \"role\", \"tabindex\", \"readonly\", \"autocomplete\", \"aria-label\", \"aria-describedby\", \"aria-autocomplete\", \"aria-controls\", \"aria-owns\", \"aria-expanded\", \"aria-activedescendant\", \"onKeydown\", \"onKeypress\", \"onFocus\", \"onBlur\", \"onCompositionstart\", \"onCompositionend\", \"onUpdate:modelValue\"])\n ]),\n \"open-indicator\": withCtx(({ attributes }) => [\n createVNode(_component_ChevronDown, mergeProps(attributes, {\n fillColor: \"var(--vs-controls-color)\",\n style: {\n cursor: !$props.disabled ? \"pointer\" : null\n },\n size: 20\n }), null, 16, [\"style\"])\n ]),\n option: withCtx((option) => [\n renderSlot(_ctx.$slots, \"option\", normalizeProps(guardReactiveProps(option)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(option[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n renderSlot(_ctx.$slots, \"selected-option\", normalizeProps(guardReactiveProps(selectedOption)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(selectedOption[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n spinner: withCtx((spinner) => [\n spinner.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"No results\")), 1)\n ]),\n _: 2\n }, [\n $props.multiple && !$props.labelOutside && $props.inputLabel ? {\n name: \"header\",\n fn: withCtx(() => [\n createElementVNode(\"label\", {\n for: $props.inputId,\n class: \"select__label\"\n }, toDisplayString($props.inputLabel), 9, _hoisted_1)\n ]),\n key: \"0\"\n } : void 0,\n $props.helperText || _ctx.$slots.footer ? {\n name: \"footer\",\n fn: withCtx((data) => [\n $props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${$props.inputId}-helper-text`,\n class: normalizeClass([\"select__helper-text\", {\n \"select__helper-text--error\": $props.error,\n \"select__helper-text--success\": $props.success\n }])\n }, [\n $props.success ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"select__helper-text-icon\",\n path: $setup.mdiCheck,\n inline: \"\"\n }, null, 8, [\"path\"])) : $props.error ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n class: \"select__helper-text-icon\",\n path: $setup.mdiAlertCircleOutline,\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString($props.helperText), 1)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", normalizeProps(guardReactiveProps(data)))\n ]),\n key: \"1\"\n } : void 0,\n renderList($options.forwardedSlots(), (name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"class\"]);\n}\nconst NcSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelect as N\n};\n//# sourceMappingURL=NcSelect.mjs.map\n","import '../assets/referencePickerModal.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createVNode, withCtx, withKeys, createBlock, normalizeClass, createTextVNode, withModifiers, normalizeStyle, createApp } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { I as IconClose } from \"./Close.mjs\";\nimport { a as renderCustomPickerElement, d as destroyCustomPickerElement, i as isCustomPickerElementRegistered, g as getCustomPickerElementSize } from \"./customPickerElements.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, Y as t8, a as t, Z as t48, _ as t43, $ as t27, s as t45, a0 as t34, A as t20, a1 as t13 } from \"./_l10n.mjs\";\nimport { l as logger } from \"./logger.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent.mjs\";\nimport { _ as _sfc_main$9 } from \"./NcHighlight.vue_vue_type_script_lang.mjs\";\nimport { N as NcSelect } from \"./NcSelect.mjs\";\nimport debounce from \"debounce\";\nimport { N as NcReferenceWidget } from \"./NcReferenceWidget.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon.mjs\";\nimport { _ as _sfc_main$a } from \"./NcTextField.vue_vue_type_script_setup_true_lang.mjs\";\nimport { I as IconDotsHorizontal } from \"./NcActions.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcModal } from \"./NcModal.mjs\";\nconst _sfc_main$8 = {\n name: \"ArrowLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$8 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$8);\n}\nconst ArrowLeftIcon = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$7 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeUnmount() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"pick\", this.onPick);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"pick\", (e) => {\n this.onPick(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onPick(value) {\n this.$emit(\"pick\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nconst _hoisted_1$7 = { ref: \"domElement\" };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$7, null, 512);\n}\nconst NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$7], [\"__scopeId\", \"data-v-df9d8f84\"]]);\nconst _sfc_main$6 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$6 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$5 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$4 = { d: \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon link-variant-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$4, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst LinkVariantIcon = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nregister(t8);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n order: 0,\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers ??= loadState(\"core\", \"reference-provider-list\", []);\nwindow._vue_richtext_reference_provider_timestamps ??= loadState(\"core\", \"reference-provider-timestamps\", {});\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n logger.debug(`[smart picker] ${p.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`);\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nasync function touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n await axios.put(url, { timestamp });\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n}\nregister(t43, t48);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch {\n return false;\n }\n}\nconst _sfc_main$5 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight: _sfc_main$9,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"selectProvider\",\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n this.$emit(\"pick\", { link: p.title });\n } else {\n this.$emit(\"selectProvider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query) {\n this.query = query;\n }\n }\n};\nconst _hoisted_1$5 = { class: \"provider-list\" };\nconst _hoisted_2$4 = {\n key: 0,\n class: \"provider\"\n};\nconst _hoisted_3$3 = {\n key: 1,\n class: \"provider\"\n};\nconst _hoisted_4$2 = [\"src\", \"alt\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$5, [\n createVNode(_component_NcSelect, {\n ref: \"provider-select\",\n modelValue: $data.selectedProvider,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedProvider = $event),\n $options.onProviderSelected\n ],\n class: \"provider-list--select\",\n inputId: \"provider-select-input\",\n label: \"title\",\n placeholder: $data.multiselectPlaceholder,\n options: $options.options,\n appendToBody: false,\n clearSearchOnSelect: true,\n clearSearchOnBlur: () => false,\n filterable: false,\n onSearch: $options.onSearch\n }, {\n option: withCtx((option) => [\n option.isLink ? (openBlock(), createElementBlock(\"div\", _hoisted_2$4, [\n createVNode(_component_LinkVariantIcon, {\n class: \"link-icon\",\n size: 20\n }),\n createElementVNode(\"span\", null, toDisplayString(option.title), 1)\n ])) : (openBlock(), createElementBlock(\"div\", _hoisted_3$3, [\n createElementVNode(\"img\", {\n class: \"provider-icon\",\n src: option.icon_url,\n alt: $data.providerIconAlt\n }, null, 8, _hoisted_4$2),\n createVNode(_component_NcHighlight, {\n class: \"option-text\",\n search: $data.query,\n text: option.title\n }, null, 8, [\"search\", \"text\"])\n ]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"onSearch\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcEmptyContent, { class: \"provider-list--empty-content\" }, {\n icon: withCtx(() => [\n createVNode(_component_LinkVariantIcon)\n ]),\n _: 1\n })\n ]);\n}\nconst NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5], [\"__scopeId\", \"data-v-c9740c42\"]]);\nregister(t27);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField: _sfc_main$a\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n },\n debouncedUpdateReference() {\n return debounce(this.updateReference, 500);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n this.$emit(\"pick\", { link: value });\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n this.debouncedUpdateReference();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n logger.error(\"[NcRawLinkInput] Failed to update reference\", { error });\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nconst _hoisted_1$4 = { class: \"raw-link\" };\nconst _hoisted_2$3 = { class: \"input-wrapper\" };\nconst _hoisted_3$2 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n createElementVNode(\"div\", _hoisted_2$3, [\n createVNode(_component_NcTextField, {\n ref: \"url-input\",\n modelValue: $data.inputValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.inputValue = $event),\n $options.onInput\n ],\n showTrailingButton: $data.inputValue !== \"\",\n label: $data.inputPlaceholder,\n onTrailingButtonClick: $options.onClear,\n onKeyup: withKeys($options.onSubmit, [\"enter\"])\n }, {\n default: withCtx(() => [\n $data.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, {\n key: 0,\n size: 16\n })) : (openBlock(), createBlock(_component_LinkVariantIcon, {\n key: 1,\n size: 16\n }))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"showTrailingButton\", \"label\", \"onTrailingButtonClick\", \"onUpdate:modelValue\", \"onKeyup\"])\n ]),\n $data.reference !== null ? (openBlock(), createBlock(_component_NcReferenceWidget, {\n key: 0,\n class: \"reference-widget\",\n reference: $data.reference\n }, null, 8, [\"reference\"])) : (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 1,\n class: \"raw-link--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_3$2)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n }))\n ]);\n}\nconst NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-fb24b594\"]]);\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: _sfc_main$9\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nconst _hoisted_1$3 = { class: \"result\" };\nconst _hoisted_2$2 = [\"src\"];\nconst _hoisted_3$1 = { class: \"result--content\" };\nconst _hoisted_4$1 = { class: \"result--content--name\" };\nconst _hoisted_5$1 = { class: \"result--content--subline\" };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$3, [\n $props.entry.icon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([{ [$props.entry.icon]: true, rounded: $props.entry.rounded }, \"result--icon-class\"])\n }, null, 2)) : (openBlock(), createElementBlock(\"img\", {\n key: 1,\n class: normalizeClass([\"result--image\", { rounded: $props.entry.rounded }]),\n src: $props.entry.thumbnailUrl\n }, null, 10, _hoisted_2$2)),\n createElementVNode(\"div\", _hoisted_3$1, [\n createElementVNode(\"span\", _hoisted_4$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.title\n }, null, 8, [\"search\", \"text\"])\n ]),\n createElementVNode(\"span\", _hoisted_5$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.subline\n }, null, 8, [\"search\", \"text\"])\n ])\n ])\n ]);\n}\nconst NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-059edcfb\"]]);\nregister(t34, t43, t45);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: IconDotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n /**\n * Whether to show the empty content when there are no search results\n */\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n /**\n * Placeholder of the search\n */\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n },\n debouncedUpdateSearch() {\n return debounce(this.updateSearch, 500);\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeUnmount() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query) {\n this.searchQuery = query;\n this.debouncedUpdateSearch();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n const reference = { link: item.resourceUrl };\n if (item.title) {\n reference.title = item.title;\n }\n this.$emit(\"pick\", reference);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nconst _hoisted_1$2 = {\n key: 0,\n class: \"custom-option\"\n};\nconst _hoisted_2$1 = { class: \"option-text\" };\nconst _hoisted_3 = {\n key: 2,\n class: \"custom-option group-name\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"option-text\" };\nconst _hoisted_6 = {\n key: 3,\n class: \"custom-option\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"option-simple-icon icon-loading-small\"\n};\nconst _hoisted_8 = { class: \"option-text\" };\nconst _hoisted_9 = [\"alt\", \"src\"];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcSearchResult = resolveComponent(\"NcSearchResult\");\n const _component_DotsHorizontalIcon = resolveComponent(\"DotsHorizontalIcon\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"smart-picker-search\", { \"with-empty-content\": $props.showEmptyContent }])\n }, [\n createVNode(_component_NcSelect, {\n ref: \"search-select\",\n modelValue: $data.selectedResult,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedResult = $event),\n $options.onSelectResultSelected\n ],\n class: \"smart-picker-search--select\",\n inputId: \"search-select-input\",\n label: \"name\",\n placeholder: $options.mySearchPlaceholder,\n options: $options.options,\n appendToBody: false,\n closeOnSelect: false,\n clearSearchOnSelect: false,\n clearSearchOnBlur: () => false,\n resetFocusOnOptionsChange: false,\n filterable: false,\n autoscroll: true,\n resetOnOptionsChange: false,\n loading: $data.searching,\n onSearch: $options.onSearchInput\n }, {\n option: withCtx((option) => [\n option.isRawLink ? (openBlock(), createElementBlock(\"div\", _hoisted_1$2, [\n createVNode(_component_LinkVariantIcon, {\n class: \"option-simple-icon\",\n size: 20\n }),\n createElementVNode(\"span\", _hoisted_2$1, toDisplayString($options.t(\"Raw link {options}\", { options: option.resourceUrl })), 1)\n ])) : option.resourceUrl ? (openBlock(), createBlock(_component_NcSearchResult, {\n key: 1,\n class: \"search-result\",\n entry: option,\n query: $data.searchQuery\n }, null, 8, [\"entry\", \"query\"])) : option.isCustomGroupTitle ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon group-name-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, [\n createElementVNode(\"strong\", null, toDisplayString(option.name), 1)\n ])\n ])) : option.isMore ? (openBlock(), createElementBlock(\"span\", _hoisted_6, [\n option.isLoading ? (openBlock(), createElementBlock(\"span\", _hoisted_7)) : (openBlock(), createBlock(_component_DotsHorizontalIcon, {\n key: 1,\n class: \"option-simple-icon\",\n size: 20\n })),\n createElementVNode(\"span\", _hoisted_8, toDisplayString($options.t('Load more \"{options}\"', { options: option.name })), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($data.noOptionsText), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"loading\", \"onSearch\", \"onUpdate:modelValue\"]),\n $props.showEmptyContent ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n class: \"smart-picker-search--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n alt: $data.providerIconAlt,\n src: $props.provider.icon_url\n }, null, 8, _hoisted_9)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-d965b4c7\"]]);\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancelRawLink\",\n \"cancelSearch\",\n \"providerSelected\",\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"providerSelected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancelSearch\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancelRawLink\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n pickLink(reference) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"pick\", reference);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"providerSelected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 3,\n class: \"custom-element-wrapper\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcProviderList = resolveComponent(\"NcProviderList\");\n const _component_NcRawLinkInput = resolveComponent(\"NcRawLinkInput\");\n const _component_NcSearch = resolveComponent(\"NcSearch\");\n const _component_NcCustomPickerElement = resolveComponent(\"NcCustomPickerElement\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"reference-picker\",\n style: normalizeStyle($options.pickerWrapperStyle),\n tabindex: \"-1\",\n onKeydown: _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.onEscapePressed && $options.onEscapePressed(...args), [\"stop\", \"prevent\"]), [\"esc\"]))\n }, [\n $options.mode === $data.MODES.providerList ? (openBlock(), createBlock(_component_NcProviderList, {\n key: 0,\n ref: \"provider-list\",\n onSelectProvider: $options.onProviderSelected,\n onSubmit: $options.submitLink,\n onPick: $options.pickLink,\n onCancel: $options.cancelProviderSelection\n }, null, 8, [\"onSelectProvider\", \"onSubmit\", \"onPick\", \"onCancel\"])) : $options.mode === $data.MODES.standardLinkInput ? (openBlock(), createBlock(_component_NcRawLinkInput, {\n key: 1,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onPick: $options.pickLink,\n onCancel: $options.cancelRawLinkInput\n }, null, 8, [\"provider\", \"onSubmit\", \"onPick\", \"onCancel\"])) : $options.mode === $data.MODES.searchInput ? (openBlock(), createBlock(_component_NcSearch, {\n key: 2,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onPick: $options.pickLink,\n onCancel: $options.cancelSearch\n }, null, 8, [\"provider\", \"onSubmit\", \"onPick\", \"onCancel\"])) : $options.mode === $data.MODES.customElement ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(_component_NcCustomPickerElement, {\n provider: $data.selectedProvider,\n class: \"custom-element\",\n onSubmit: $options.submitLink,\n onPick: $options.pickLink,\n onCancel: $options.cancelCustomElement\n }, null, 8, [\"provider\", \"onSubmit\", \"onPick\", \"onCancel\"])\n ])) : createCommentVNode(\"\", true)\n ], 36);\n}\nconst NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-40667c6c\"]]);\nregister(t13, t20);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon,\n CloseIcon: IconClose\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onPick(value) {\n this.show = false;\n this.$emit(\"pick\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nconst _hoisted_1 = {\n ref: \"modal_content\",\n class: \"reference-picker-modal--content\"\n};\nconst _hoisted_2 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ArrowLeftIcon = resolveComponent(\"ArrowLeftIcon\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_CloseIcon = resolveComponent(\"CloseIcon\");\n const _component_NcReferencePicker = resolveComponent(\"NcReferencePicker\");\n const _component_NcModal = resolveComponent(\"NcModal\");\n return $data.show ? (openBlock(), createBlock(_component_NcModal, {\n key: 0,\n size: $options.modalSize,\n class: \"reference-picker-modal\",\n onClose: $options.onCancel\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n $options.showBackButton ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.backButtonTitle,\n title: $data.backButtonTitle,\n class: \"back-button\",\n onClick: $options.onBackClicked\n }, {\n icon: withCtx(() => [\n createVNode(_component_ArrowLeftIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"])) : createCommentVNode(\"\", true),\n createVNode(_component_NcButton, {\n class: \"close-button\",\n \"aria-label\": $data.closeButtonLabel,\n title: $data.closeButtonTitle,\n variant: \"tertiary\",\n onClick: $options.onCancel\n }, {\n icon: withCtx(() => [\n createVNode(_component_CloseIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.showModalName ? (openBlock(), createElementBlock(\"h2\", _hoisted_2, toDisplayString($options.modalName), 1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcReferencePicker, {\n ref: \"referencePicker\",\n initialProvider: $props.initialProvider,\n focusOnCreate: $props.focusOnCreate,\n onProviderSelected: $options.onProviderSelect,\n onSubmit: $options.onSubmit,\n onPick: $options.onPick,\n onCancel: $options.onCancel\n }, null, 8, [\"initialProvider\", \"focusOnCreate\", \"onProviderSelected\", \"onSubmit\", \"onPick\", \"onCancel\"])\n ], 512)\n ]),\n _: 1\n }, 8, [\"size\", \"onClose\"])) : createCommentVNode(\"\", true);\n}\nconst NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-58d45f81\"]]);\nasync function getLinkWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onSubmit(link) {\n view.unmount();\n resolve(link);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nasync function getReferenceWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onPick(reference) {\n view.unmount();\n resolve(reference);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nexport {\n NcReferencePicker as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n getReferenceWithPicker as d,\n sortProviders as e,\n NcReferencePickerModal as f,\n getLinkWithPicker as g,\n NcSearch as h,\n searchProvider as s\n};\n//# sourceMappingURL=referencePickerModal.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 * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/**\n * Copy text to clipboard if it fails (e.g. not secure context (https, localhost...))\n * a prompt will be opened for the user to copy the text manually\n *\n * @param text The text to copy\n * @return true if automatic copy suceeded, false if prompt was used\n */\nexport async function copyToCipboard(text: string) {\n\ttry {\n\t\tawait window.navigator.clipboard.writeText(text)\n\t\treturn true\n\t} catch (e) {\n\t\twindow.prompt(\n\t\t\tt('logreader', 'Could not copy to clipboard, please copy manually:'),\n\t\t\ttext,\n\t\t)\n\t}\n\treturn false\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Pinia } from 'pinia'\nimport type { ILogEntry } from '../interfaces'\n\nimport { getCanonicalLocale, translate as t } from '@nextcloud/l10n'\nimport { LOGGING_LEVEL_NAMES } from '../constants'\nimport { useSettingsStore } from '../store/settings'\n\n/**\n *\n * @param pinia Pinia instance\n */\nexport function useLogFormatting(pinia?: Pinia) {\n\tconst settingsStore = useSettingsStore(pinia)\n\n\tconst formatTime = (time: string) => {\n\t\tconst dateFormat = Intl.DateTimeFormat(getCanonicalLocale(), {\n\t\t\tdateStyle: 'medium',\n\t\t\ttimeStyle: 'medium',\n\t\t\ttimeZone: settingsStore.dateTimeFormat === 'utc' ? 'UTC' : undefined,\n\t\t})\n\t\treturn dateFormat.format(new Date(time))\n\t}\n\t/**\n\t * Format a log entry into a human readable text\n\t *\n\t * @param entry The log entry to format\n\t */\n\tconst formatLogEntry = (entry: ILogEntry) => {\n\t\treturn (\n\t\t\t`[${entry.app}] ${LOGGING_LEVEL_NAMES[entry.level]}: ${entry.message}\\n`\n\t\t\t+ (entry.method ? `\\t${entry.method} ${entry.url}\\n` : '')\n\t\t\t+ t('logreader', '\\tfrom {address} by {user} at {time}\\n', {\n\t\t\t\taddress: entry.remoteAddr || '?',\n\t\t\t\tuser: entry.user || '?',\n\t\t\t\ttime: formatTime(entry.time),\n\t\t\t})\n\t\t)\n\t}\n\treturn {\n\t\tformatTime,\n\t\tformatLogEntry,\n\t}\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","const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default?.()[0].children?.trim?.() || \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal.mjs.map\n","import { warn } from \"vue\";\nimport { N as NC_ACTIONS_CLOSE_MENU } from \"./useNcActions.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal.mjs\";\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n inject: {\n closeMenu: {\n from: NC_ACTIONS_CLOSE_MENU\n }\n },\n emits: [\n \"click\"\n ],\n created() {\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcAction*]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n this.closeMenu(false);\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText.mjs.map\n","import '../assets/NcActionButton.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { A as ActionTextMixin } from \"./actionText.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, normalizeStyle, toDisplayString, createCommentVNode, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of ``\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:modelValue\"],\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the
` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js python ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Extract} node\n *   Reference node (image, link).\n * @returns {Array}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return [{type: 'text', value: '![' + node.alt + suffix}]\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: .\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === null || spread === undefined\n    ? node.children.length > 1\n    : spread\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  // @ts-expect-error: root is different, but hard to type.\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  return undefined\n}\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n *   Generate content for the backreference dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n *   Content for the backreference when linking back from definitions to their\n *   reference.\n *\n * @callback FootnoteBackLabelTemplate\n *   Generate a back label dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n *   Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n  /** @type {Array} */\n  const result = [{type: 'text', value: '↩'}]\n\n  if (rereferenceIndex > 1) {\n    result.push({\n      type: 'element',\n      tagName: 'sup',\n      properties: {},\n      children: [{type: 'text', value: String(rereferenceIndex)}]\n    })\n  }\n\n  return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n  return (\n    'Back to reference ' +\n    (referenceIndex + 1) +\n    (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n  )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const footnoteBackContent =\n    state.options.footnoteBackContent || defaultFootnoteBackContent\n  const footnoteBackLabel =\n    state.options.footnoteBackLabel || defaultFootnoteBackLabel\n  const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n  const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n  const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  /** @type {Array} */\n  const listItems = []\n  let referenceIndex = -1\n\n  while (++referenceIndex < state.footnoteOrder.length) {\n    const definition = state.footnoteById.get(\n      state.footnoteOrder[referenceIndex]\n    )\n\n    if (!definition) {\n      continue\n    }\n\n    const content = state.all(definition)\n    const id = String(definition.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let rereferenceIndex = 0\n    /** @type {Array} */\n    const backReferences = []\n    const counts = state.footnoteCounts.get(id)\n\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (counts !== undefined && ++rereferenceIndex <= counts) {\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      let children =\n        typeof footnoteBackContent === 'string'\n          ? footnoteBackContent\n          : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n      if (typeof children === 'string') {\n        children = {type: 'text', value: children}\n      }\n\n      backReferences.push({\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            clobberPrefix +\n            'fnref-' +\n            safeId +\n            (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n          dataFootnoteBackref: '',\n          ariaLabel:\n            typeof footnoteBackLabel === 'string'\n              ? footnoteBackLabel\n              : footnoteBackLabel(referenceIndex, rereferenceIndex),\n          className: ['data-footnote-backref']\n        },\n        children: Array.isArray(children) ? children : [children]\n      })\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(definition, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: footnoteLabelTagName,\n        properties: {\n          ...structuredClone(footnoteLabelProperties),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @import {\n *   ElementContent as HastElementContent,\n *   Element as HastElement,\n *   Nodes as HastNodes,\n *   Properties as HastProperties,\n *   RootContent as HastRootContent,\n *   Text as HastText\n * } from 'hast'\n * @import {\n *   Definition as MdastDefinition,\n *   FootnoteDefinition as MdastFootnoteDefinition,\n *   Nodes as MdastNodes,\n *   Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n *   FootnoteBackContentTemplate,\n *   FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n */\n\nimport {visit} from 'unist-util-visit'\n\n/**\n * Remove empty paragraphs in `tree`.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @returns {undefined}\n * Nothing.\n */\nexport function squeezeParagraphs(tree) {\n visit(tree, function (node, index, parent) {\n if (\n index !== undefined &&\n parent &&\n node.type === 'paragraph' &&\n node.children.every(function (child) {\n return child.type === 'text' && /^\\s*$/.test(child.value)\n })\n ) {\n parent.children.splice(index, 1)\n return index\n }\n })\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n */\n\nimport {squeezeParagraphs} from 'mdast-squeeze-paragraphs'\nimport {visit} from 'unist-util-visit'\n\n/**\n * Only keep links with the given protocols.\n *\n * @param {object} options Options\n * @param {string[]} options.except - Protocols to exclude. Defauls to `['http', 'https']`.\n * @returns\n * Transform.\n */\nexport default function remarkUnlinkProtocols(\n options = {except: ['http', 'https']}\n) {\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n /** @type {Map} */\n const definitions = new Map()\n\n // Find definitions to look up linkReferences.\n visit(tree, 'definition', function (node, index, parent) {\n definitions.set(node.identifier, node.url)\n if (parent && typeof index === 'number') {\n const url = node.url\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1)\n return index\n }\n }\n })\n\n visit(tree, function (node, index, parent) {\n if (\n parent &&\n typeof index === 'number' &&\n (node.type === 'link' || node.type === 'linkReference')\n ) {\n const url =\n node.type === 'link' ? node.url : definitions.get(node.identifier)\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1, ...node.children)\n return index\n }\n }\n })\n\n squeezeParagraphs(tree)\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n/**\n * @module public\n */\nimport { loadState } from '@nextcloud/initial-state';\n/**\n * Check if the current page is on a public share\n */\nexport function isPublicShare() {\n // check both the new initial state version and fallback to legacy input\n return (loadState('files_sharing', 'isPublic', null)\n ?? document.querySelector('input#isPublic[type=\"hidden\"][name=\"isPublic\"][value=\"1\"]') !== null);\n}\n/**\n * Get the sharing token for the current public share\n */\nexport function getSharingToken() {\n return (loadState('files_sharing', 'sharingToken', null)\n ?? document.querySelector('input#sharingToken[type=\"hidden\"]')?.value\n ?? null);\n}\n","import { l as logger } from \"./logger.mjs\";\nwindow._vue_richtext_widgets ??= {};\nwindow._registerWidget ??= (id, callback, onDestroy, props) => {\n registerWidget(id, callback, onDestroy, props);\n};\nfunction registerWidget(id, callback, onDestroy = () => {\n}, props) {\n const propsWithDefaults = {\n hasInteractiveView: true,\n fullWidth: false,\n isResizable: false,\n ...props\n };\n if (window._vue_richtext_widgets[id]) {\n logger.error(`[ReferencePicker]: Widget for id ${id} already registered`);\n return;\n }\n window._vue_richtext_widgets[id] = {\n id,\n callback,\n onDestroy,\n ...propsWithDefaults\n };\n}\nfunction renderWidget(el, options) {\n const { richObjectType, richObject, accessible, interactive } = options;\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n logger.error(\"Widget for rich object type \" + richObjectType + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });\n}\nfunction destroyWidget(richObjectType, el) {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n return;\n }\n window._vue_richtext_widgets[richObjectType].onDestroy(el);\n}\nfunction isWidgetRegistered(id) {\n return !!window._vue_richtext_widgets[id];\n}\nfunction hasInteractiveView(id) {\n return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n}\nfunction hasFullWidth(id) {\n return !!window._vue_richtext_widgets[id]?.fullWidth;\n}\nfunction isResizable(id) {\n return !!window._vue_richtext_widgets[id]?.isResizable;\n}\nexport {\n renderWidget as a,\n hasFullWidth as b,\n isResizable as c,\n destroyWidget as d,\n hasInteractiveView as h,\n isWidgetRegistered as i,\n registerWidget as r\n};\n//# sourceMappingURL=widgets.mjs.map\n","/**\n * @typedef {import('unist').Node} Node\n */\n\n/**\n * @typedef {Array | string} ChildrenOrValue\n * List to use as `children` or value to use as `value`.\n *\n * @typedef {Record} Props\n * Other fields to add to the node.\n */\n\n/**\n * Build a node.\n *\n * @template {string} T\n * @template {Props} P\n * @template {Array} C\n *\n * @overload\n * @param {T} type\n * @returns {{type: T}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @returns {{type: T} & P}\n *\n * @overload\n * @param {T} type\n * @param {string} value\n * @returns {{type: T, value: string}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {string} value\n * @returns {{type: T, value: string} & P}\n *\n * @overload\n * @param {T} type\n * @param {C} children\n * @returns {{type: T, children: C}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {C} children\n * @returns {{type: T, children: C} & P}\n *\n * @param {string} type\n * Node type.\n * @param {ChildrenOrValue | Props | null | undefined} [props]\n * Fields assigned to node (default: `undefined`).\n * @param {ChildrenOrValue | null | undefined} [value]\n * Children of node or value of `node` (cast to string).\n * @returns {Node}\n * Built node.\n */\nexport function u(type, props, value) {\n /** @type {Node} */\n const node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n // @ts-expect-error: create a parent.\n node.children = value\n } else if (value !== undefined && value !== null) {\n // @ts-expect-error: create a literal.\n node.value = String(value)\n }\n\n return node\n}\n","import '../assets/autolink.css';\nimport { getBaseUrl, getRootUrl } from \"@nextcloud/router\";\nimport { u } from \"unist-builder\";\nimport { visitParents, SKIP } from \"unist-util-visit-parents\";\nimport { defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { l as logger } from \"./logger.mjs\";\nconst _hoisted_1 = [\"href\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextExternalLink\",\n props: {\n href: {},\n decorateExternal: { type: Boolean, default: false }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"a\", {\n href: __props.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: normalizeClass([_ctx.$style.externalLink, {\n [_ctx.$style.externalLink_decorated]: __props.decorateExternal\n }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.href), 1)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst externalLink = \"_externalLink_pbE0W\";\nconst externalLink_decorated = \"_externalLink_decorated_AvzkD\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_Fq-2a\",\n externalLink,\n externalLink_decorated\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcRichTextExternalLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\nconst URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig;\nfunction remarkAutolink({ autolink, useMarkdown, useExtendedMarkdown }) {\n return function(tree) {\n if (useExtendedMarkdown || !useMarkdown || !autolink) {\n return;\n }\n visitParents(tree, (node) => node.type === \"text\", (node, ancestors) => {\n if (ancestors.some((ancestor) => ancestor.type === \"link\" || ancestor.type === \"linkReference\")) {\n return;\n }\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node) ?? 0;\n const parsed = parseUrl(node.value);\n const parsedNodes = typeof parsed === \"string\" ? [u(\"text\", parsed)] : parsed.map((n) => {\n if (typeof n === \"string\") {\n return u(\"text\", n);\n }\n return u(\"link\", {\n url: n.props.href\n }, [u(\"text\", n.props.href)]);\n }).filter((x) => x).flat();\n parent.children.splice(index, 1, ...parsedNodes);\n return [SKIP, index + parsedNodes.length];\n });\n };\n}\nfunction parseUrl(text) {\n let match = URL_PATTERN_AUTOLINK.exec(text);\n const list = [];\n let start = 0;\n while (match !== null) {\n let href = match[2];\n let textAfter;\n let textBefore = text.substring(start, match.index + match[1].length);\n if (href[0] === \" \") {\n textBefore += href[0];\n href = href.substring(1).trim();\n }\n const lastChar = href[href.length - 1];\n if (lastChar === \".\" || lastChar === \",\" || lastChar === \";\" || match[0][0] === \"(\" && lastChar === \")\") {\n href = href.substring(0, href.length - 1);\n textAfter = lastChar;\n }\n list.push(textBefore);\n list.push({ component: NcRichTextExternalLink, props: { href: href.trim(), decorateExternal: true } });\n if (textAfter) {\n list.push(textAfter);\n }\n start = match.index + match[0].length;\n match = URL_PATTERN_AUTOLINK.exec(text);\n }\n list.push(text.substring(start));\n const joinedText = list.map((item) => typeof item === \"string\" ? item : item.props.href).join(\"\");\n if (text === joinedText) {\n return list;\n }\n logger.error(\"[NcRichText] Failed to reassemble the chunked text: \" + text);\n return text;\n}\nfunction getRoute(router, url) {\n const removePrefix = (str, prefix) => str.startsWith(prefix) ? str.slice(prefix.length) : str;\n const removePrefixes = (str, ...prefixes) => prefixes.reduce((acc, prefix) => removePrefix(acc, prefix), str);\n if (!router) {\n return null;\n }\n const isAbsoluteURL = /^https?:\\/\\//.test(url);\n const isNonHttpLink = /^[a-z][a-z0-9+.-]*:.+/.test(url);\n if (!isAbsoluteURL && isNonHttpLink) {\n return null;\n }\n if (isAbsoluteURL && !url.startsWith(getBaseUrl())) {\n return null;\n }\n if (!isAbsoluteURL && !url.startsWith(\"/\")) {\n return null;\n }\n const relativeUrl = isAbsoluteURL ? removePrefixes(url, getBaseUrl(), \"/index.php\") : url;\n const relativeRouterBase = removePrefixes(router.options.history.base, getRootUrl(), \"/index.php\");\n const potentialRouterPath = removePrefixes(relativeUrl, relativeRouterBase) || \"/\";\n const route = router.resolve(potentialRouterPath);\n if (!route.matched.length) {\n return null;\n }\n return route.fullPath;\n}\nexport {\n NcRichTextExternalLink as N,\n URL_PATTERN as U,\n getRoute as g,\n parseUrl as p,\n remarkAutolink as r\n};\n//# sourceMappingURL=autolink.mjs.map\n","import '../assets/NcReferenceWidget.css';\nimport { defineComponent, inject, ref, useTemplateRef, nextTick, computed, watch, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, withKeys, withModifiers, unref, createCommentVNode, createBlock, resolveDynamicComponent, mergeProps, withCtx, toDisplayString, createTextVNode } from \"vue\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport { routerKey, RouterLink } from \"vue-router\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { r as register, m as t26, a as t } from \"./_l10n.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { b as hasFullWidth, c as isResizable, i as isWidgetRegistered, h as hasInteractiveView, a as renderWidget, d as destroyWidget } from \"./widgets.mjs\";\nimport { g as getRoute } from \"./autolink.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nregister(t26);\nconst _hoisted_1 = [\"aria-label\", \"aria-valuenow\", \"aria-valuemin\", \"aria-valuemax\"];\nconst _hoisted_2 = [\"src\"];\nconst _hoisted_3 = { class: \"widget-default--details\" };\nconst _hoisted_4 = { class: \"widget-default--name\" };\nconst _hoisted_5 = { class: \"widget-default--link\" };\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst RESIZE_KEYBOARD_STEP = 10;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcReferenceWidget\",\n props: {\n reference: {},\n interactive: { type: Boolean, default: true },\n interactiveOptIn: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = __props;\n const router = inject(routerKey, null);\n const widgetId = `nc-reference-widget-${createElementId()}`;\n const isVisible = ref(false);\n const customWidget = useTemplateRef(\"customWidget\");\n const customWidgetContent = useTemplateRef(\"customWidgetContent\");\n const widgetRoot = useTemplateRef(\"widgetRoot\");\n const { width } = useElementSize(widgetRoot);\n const { height: customWidgetHeight } = useElementSize(customWidget);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n const showInteractive = ref(false);\n const rendered = ref(false);\n let idleTimeout = null;\n const isResizing = ref(false);\n const resizedHeight = ref(null);\n const resizeStartY = ref(0);\n const resizeStartHeight = ref(0);\n const resizeMinHeight = ref(100);\n const resizeMaxHeight = ref(window.innerHeight - 120);\n const isInteractive = computed(() => {\n return !props.interactiveOptIn && props.interactive || showInteractive.value;\n });\n const referenceHasFullWidth = computed(() => {\n return hasFullWidth(props.reference.richObjectType);\n });\n const isWidgetResizable = computed(() => {\n return isResizable(props.reference.richObjectType);\n });\n const hasCustomWidget = computed(() => {\n return isWidgetRegistered(props.reference.richObjectType);\n });\n const customWidgetStyle = computed(() => {\n if (!resizedHeight.value) {\n return null;\n }\n return { height: `${resizedHeight.value}px !important` };\n });\n const ariaValueNow = computed(() => {\n return Math.round(resizedHeight.value ?? customWidgetHeight.value);\n });\n const referenceHasInteractiveView = computed(() => {\n return hasCustomWidget.value && hasInteractiveView(props.reference.richObjectType);\n });\n const noAccess = computed(() => {\n return !props.reference.accessible;\n });\n const numberOfLines = computed(() => {\n const lineCountOffsets = [250, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => width.value < max);\n });\n const descriptionStyle = computed(() => {\n if (numberOfLines.value === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = numberOfLines.value;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n });\n const compactLink = computed(() => {\n const link = props.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n });\n const route = computed(() => {\n return getRoute(router, props.reference.openGraphObject.link);\n });\n const referenceWidgetLinkComponent = computed(() => {\n return route.value ? RouterLink : \"a\";\n });\n const referenceWidgetLinkProps = computed(() => {\n return route.value ? { to: route.value } : { href: props.reference.openGraphObject.link, target: \"_blank\" };\n });\n watch(isVisible, (val) => {\n if (!val) {\n idleTimeout = setTimeout(() => {\n if (!isVisible.value) {\n destroyReferenceWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n if (!rendered.value) {\n renderReferenceWidget();\n }\n }, { immediate: true });\n onBeforeUnmount(() => {\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n stopResize();\n destroyReferenceWidget();\n });\n function enableInteractive() {\n showInteractive.value = true;\n renderReferenceWidget();\n }\n function renderReferenceWidget() {\n if (!customWidgetContent.value) {\n return;\n }\n if (props.reference.richObjectType === \"open-graph\") {\n return;\n }\n customWidgetContent.value.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style.width = \"100%\";\n customWidgetContent.value.appendChild(widget);\n nextTick(() => {\n renderWidget(widget, {\n ...props.reference,\n interactive: isInteractive.value\n });\n rendered.value = true;\n });\n }\n function destroyReferenceWidget() {\n if (rendered.value && widgetRoot.value) {\n destroyWidget(props.reference.richObjectType, widgetRoot.value);\n rendered.value = false;\n }\n }\n function initResizeLimits() {\n const widgetEl = customWidgetContent.value?.firstElementChild;\n if (widgetEl) {\n const computedStyle = window.getComputedStyle(widgetEl);\n const parsedMin = parseFloat(computedStyle.minHeight);\n const parsedMax = parseFloat(computedStyle.maxHeight);\n resizeMinHeight.value = parsedMin > 0 ? parsedMin : 100;\n resizeMaxHeight.value = Number.isFinite(parsedMax) && parsedMax > 0 ? parsedMax : window.innerHeight - 120;\n } else {\n resizeMinHeight.value = 100;\n resizeMaxHeight.value = window.innerHeight - 120;\n }\n }\n function startResize(event) {\n if (!isWidgetResizable.value || !customWidget.value) {\n return;\n }\n initResizeLimits();\n isResizing.value = true;\n resizeStartY.value = event.clientY;\n resizeStartHeight.value = customWidget.value.getBoundingClientRect().height;\n window.addEventListener(\"pointermove\", onResize);\n window.addEventListener(\"pointerup\", stopResize);\n }\n function onResizeKeydown(delta) {\n if (!isWidgetResizable.value || !customWidget.value) {\n return;\n }\n initResizeLimits();\n const currentHeight = resizedHeight.value ?? resizeStartHeight.value;\n const next = currentHeight + delta;\n resizedHeight.value = Math.min(resizeMaxHeight.value, Math.max(resizeMinHeight.value, next));\n }\n function onResize(event) {\n if (!isResizing.value || !customWidget.value) {\n return;\n }\n const deltaY = event.clientY - resizeStartY.value;\n resizedHeight.value = Math.min(resizeMaxHeight.value, Math.max(resizeMinHeight.value, resizeStartHeight.value + deltaY));\n }\n function stopResize() {\n if (!isResizing.value) {\n return;\n }\n isResizing.value = false;\n window.removeEventListener(\"pointermove\", onResize);\n window.removeEventListener(\"pointerup\", stopResize);\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"widgetRoot\",\n ref: widgetRoot,\n class: normalizeClass({ \"toggle-interactive\": referenceHasInteractiveView.value && !isInteractive.value })\n }, [\n __props.reference && hasCustomWidget.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: widgetId,\n ref_key: \"customWidget\",\n ref: customWidget,\n class: normalizeClass([\"widget-custom\", { \"full-width\": referenceHasFullWidth.value }]),\n style: normalizeStyle(customWidgetStyle.value)\n }, [\n createElementVNode(\"div\", {\n ref_key: \"customWidgetContent\",\n ref: customWidgetContent,\n class: \"widget-custom__content\"\n }, null, 512),\n isWidgetResizable.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"widget-custom__resize-handle\",\n role: \"slider\",\n tabindex: \"0\",\n \"aria-orientation\": \"vertical\",\n \"aria-label\": unref(t)(\"Widget height\"),\n \"aria-valuenow\": ariaValueNow.value,\n \"aria-valuemin\": resizeMinHeight.value,\n \"aria-valuemax\": resizeMaxHeight.value,\n \"aria-controls\": widgetId,\n onPointerdown: withModifiers(startResize, [\"stop\", \"prevent\"]),\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers(($event) => onResizeKeydown(-RESIZE_KEYBOARD_STEP), [\"stop\", \"prevent\"]), [\"up\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers(($event) => onResizeKeydown(RESIZE_KEYBOARD_STEP), [\"stop\", \"prevent\"]), [\"down\"]))\n ]\n }, null, 40, _hoisted_1)) : createCommentVNode(\"\", true)\n ], 6)) : !noAccess.value && __props.reference && __props.reference.openGraphObject && !hasCustomWidget.value ? (openBlock(), createBlock(resolveDynamicComponent(referenceWidgetLinkComponent.value), mergeProps({ key: 1 }, referenceWidgetLinkProps.value, {\n rel: \"noopener noreferrer\",\n class: \"widget-default\"\n }), {\n default: withCtx(() => [\n __props.reference.openGraphObject.thumb ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"widget-default--image\",\n src: __props.reference.openGraphObject.thumb\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"p\", _hoisted_4, toDisplayString(__props.reference.openGraphObject.name), 1),\n createElementVNode(\"p\", {\n class: \"widget-default--description\",\n style: normalizeStyle(descriptionStyle.value)\n }, toDisplayString(__props.reference.openGraphObject.description), 5),\n createElementVNode(\"p\", _hoisted_5, toDisplayString(compactLink.value), 1)\n ])\n ]),\n _: 1\n }, 16)) : createCommentVNode(\"\", true),\n __props.interactiveOptIn && referenceHasInteractiveView.value && !isInteractive.value ? (openBlock(), createBlock(NcButton, {\n key: 2,\n class: \"toggle-interactive--button\",\n onClick: enableInteractive\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Enable interactive view\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-f8edbaf7\"]]);\nexport {\n NcReferenceWidget as N\n};\n//# sourceMappingURL=NcReferenceWidget.mjs.map\n","import { d as mdiCheck, e as mdiContentCopy } from \"./mdi.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, e as t23, a as t } from \"./_l10n.mjs\";\nregister(t23);\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.mjs.map\n","import '../assets/NcRichText.css';\nimport { toString } from \"mdast-util-to-string\";\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport rehype2react from \"rehype-react\";\nimport breaks from \"remark-breaks\";\nimport remarkParse from \"remark-parse\";\nimport remark2rehype from \"remark-rehype\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport { unified } from \"unified\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createBlock, createCommentVNode, defineComponent, unref, withCtx, createVNode, h, ref } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch.mjs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { N as NcReferenceWidget } from \"./NcReferenceWidget.mjs\";\nimport { l as logger } from \"./logger.mjs\";\nimport { U as URL_PATTERN, g as getRoute, N as NcRichTextExternalLink, p as parseUrl, r as remarkAutolink } from \"./autolink.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { u as useCopy } from \"./useCopy.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { u } from \"unist-builder\";\nimport { visitParents, EXIT, SKIP } from \"unist-util-visit-parents\";\nconst _sfc_main$2 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n props: {\n /**\n * The text to extract references from\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * The data of the references to display.\n */\n referenceData: {\n type: Array,\n default: null\n },\n /**\n * The maximum number of references to display\n */\n limit: {\n type: Number,\n default: 1\n },\n /**\n * Show the fallback reference if no references are found\n */\n displayFallback: {\n type: Boolean,\n default: false\n },\n /**\n * Whether to render the widgets in interactive mode (if available)\n */\n interactive: {\n type: Boolean,\n default: true\n },\n /**\n * Whether to show user an option to enable to interactive mode for widgets (if available)\n */\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"loaded\"],\n data() {\n return {\n references: null,\n loading: false\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.filter(Boolean).slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n created() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n logger.error(\"[NcReferenceList] Failed to extract references\", { error });\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n return $options.isVisible ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"widgets--list\", { \"icon-loading\": $data.loading }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedReferences, (reference) => {\n return openBlock(), createBlock(_component_NcReferenceWidget, {\n key: reference.openGraphObject?.id,\n reference,\n interactive: $props.interactive,\n interactiveOptIn: $props.interactiveOptIn\n }, null, 8, [\"reference\", \"interactive\", \"interactiveOptIn\"]);\n }), 128))\n ], 2)) : createCommentVNode(\"\", true);\n}\nconst NcReferenceList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-8db718e3\"]]);\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n (function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : (\n // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(\n /** @type {Props} */\n test\n )\n );\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n })\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propertiesFactory(check) {\n const checkAsRecord = (\n /** @type {Record} */\n check\n );\n return castFactory(all);\n function all(node) {\n const nodeAsRecord = (\n /** @type {Record} */\n /** @type {unknown} */\n node\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node) {\n return node && node.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node, parents);\n }\n }\n function handler(node, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node.value);\n }\n if (change) {\n if (start < node.value.length) {\n nodes.push({ type: \"text\", value: node.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"link\");\n node.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"footnoteReference\");\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node.label = label;\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"footnoteDefinition\");\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node.label = label;\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node), { after: \"]\", before: value })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n };\n}\nfunction gfmFootnoteToMarkdown(options) {\n let firstLineBlank = false;\n if (options && options.firstLineBlank) {\n firstLineBlank = true;\n }\n return {\n handlers: { footnoteDefinition, footnoteReference },\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"label\", \"phrasing\", \"reference\"] }]\n };\n function footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node), { before: value, after: \"]\" })\n );\n subexit();\n value += tracker.move(\"]:\");\n if (node.children && node.children.length > 0) {\n tracker.shift(4);\n value += tracker.move(\n (firstLineBlank ? \"\\n\" : \" \") + state.indentLines(\n state.containerFlow(node, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n );\n }\n exit2();\n return value;\n }\n}\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank);\n}\nfunction mapAll(line, index, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction markdownTable(table, options) {\n const settings = options || {};\n const align = (settings.align || []).concat();\n const stringLength = settings.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = settings.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (settings.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === \"\") && (settings.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (settings.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (settings.alignDelimiters !== false) {\n line.push(after);\n }\n if (settings.padding !== false) {\n line.push(\" \");\n }\n if (settings.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n settings.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false && node.value && // If there’s no info…\n !node.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node, _, state, info) {\n const marker = checkFence(state);\n const raw = node.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nfunction encodeCharacterReference(code2) {\n return \"&#x\" + code2.toString(16).toUpperCase() + \";\";\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside);\n const insideKind = classifyCharacter(inside);\n if (outsideKind === void 0) {\n return insideKind === void 0 ? (\n // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === \"_\" ? { inside: true, outside: true } : { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (letter, whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: encode outer (letter)\n { inside: false, outside: true }\n );\n }\n if (outsideKind === 1) {\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n }\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode inner (whitespace).\n { inside: true, outside: false }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker);\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nfunction visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n let reverse;\n let test;\n let visitor;\n if (typeof testOrVisitor === \"function\" && typeof visitorOrReverse !== \"function\") {\n test = void 0;\n visitor = testOrVisitor;\n reverse = visitorOrReverse;\n } else {\n test = testOrVisitor;\n visitor = visitorOrReverse;\n reverse = maybeReverse;\n }\n visitParents(tree, test, overload, reverse);\n function overload(node, parents) {\n const parent = parents[parents.length - 1];\n const index = parent ? parent.children.indexOf(node) : void 0;\n return visitor(node, index, parent);\n }\n}\nfunction formatHeadingAsSetext(node, state) {\n let literalWithBreak = false;\n visit(node, function(node2) {\n if (\"value\" in node2 && /\\r?\\n|\\r/.test(node2.value) || node2.type === \"break\") {\n literalWithBreak = true;\n return EXIT;\n }\n });\n return Boolean(\n (!node.depth || node.depth < 3) && toString(node) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node) {\n return node.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node, _, state, info) {\n const type = node.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node, _, state) {\n let value = node.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node, state) {\n const raw = toString(node);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node.url && // And there’s a no title…\n !node.title && // And the content of `node` is a single text node…\n node.children && node.children.length === 1 && node.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node.url || \"mailto:\" + raw === node.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node, _, state, info) {\n const type = node.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node.children.length) {\n const item = node.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node, _, state, info) {\n const hasPhrasing = node.children.some(function(d) {\n return phrasing(d);\n });\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return container.call(state, node, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker + marker);\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker + marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node, _, state, info) {\n return state.safe(node.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"inlineCode\");\n node.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align);\n }\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node, parent, state) {\n let value = handle.inlineCode(node, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node = this.stack[this.stack.length - 2];\n ok$1(node.type === \"listItem\");\n node.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node = this.stack[this.stack.length - 1];\n ok$1(node.type === \"paragraph\");\n const head = node.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node.children.shift();\n } else if (node.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0];\n const checkable = typeof node.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index]);\n }\n return all;\n}\nfunction syntaxExtension(all, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : void 0;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: \"wwwAutolink\",\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: \"protocolAutolink\",\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: \"emailAutolink\",\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharacterReferenceStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharacterReferenceStart(code2) {\n return asciiAlpha(code2) ? trailCharacterReferenceInside(code2) : nok(code2);\n }\n function trailCharacterReferenceInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharacterReferenceInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n name: \"gfmFootnoteDefinition\",\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: \"gfmFootnoteCall\",\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: \"gfmPotentialFootnoteCall\",\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(effects, whitespaceAfter, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", 4 + 1);\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: \"strikethrough\",\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [[\"enter\", strikethrough, context], [\"enter\", events[open][1], context], [\"exit\", events[open][1], context], [\"enter\", text2, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n splice(nextEvents, nextEvents.length, 0, [[\"exit\", text2, context], [\"enter\", events[index][1], context], [\"exit\", events[index][1], context], [\"exit\", strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\");\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n name: \"table\",\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n name: \"tasklistCheck\",\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok2, nok)(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextCopyButton\",\n props: {\n contentId: {}\n },\n setup(__props) {\n const { copy, icon, altText } = useCopy(() => document.getElementById(__props.contentId).textContent);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcButton, {\n variant: \"tertiary\",\n size: \"small\",\n \"aria-label\": unref(altText),\n title: unref(altText),\n onClick: unref(copy)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]);\n };\n }\n});\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode$1(node) {\n return node.type === \"text\";\n}\nconst transformPlaceholders = function(ast) {\n visitParents(ast, isTextNode$1, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n const placeholders = node.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`,\n children: []\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n });\n};\nconst remarkPlaceholder = () => transformPlaceholders;\n/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isCodeNode(node) {\n return [\"code\", \"inlineCode\"].includes(node.type);\n}\nconst remarkStripCode = function() {\n return function(tree) {\n visitParents(tree, isCodeNode, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n parent.children.splice(index, 1, {\n ...node,\n value: \"\"\n });\n return [SKIP, index + 1];\n });\n };\n};\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode(node) {\n return [\"text\", \"code\", \"inlineCode\"].includes(node.type);\n}\nconst remarkUnescape = function() {\n return function(tree) {\n visitParents(tree, isTextNode, (node, ancestors) => {\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node);\n parent.children.splice(index, 1, {\n ...node,\n value: node.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP, index + 1];\n });\n };\n};\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The main text\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * Arguments for the richobjects\n */\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n /**\n * Limit the number of reference widgets to render\n */\n referenceLimit: {\n type: Number,\n default: 0\n },\n /**\n * Whether to render the widgets in interactive mode (if available)\n */\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n /**\n * Whether to show user an option to enable to interactive mode for widgets (if available)\n */\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n /**\n * Automatically convert link-like text to markdown links\n */\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"interactTodo\"\n ],\n data() {\n return {\n parentId: createElementId()\n };\n },\n methods: {\n renderPlaintext() {\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return this.prepareTextNode(entry);\n }\n const argumentId = matches[1];\n const argument = this.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(typeof component === \"string\" ? resolveComponent(component) : component, {\n ...props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n renderMarkdown() {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node) {\n return toHast(node, node.component, { value: node.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n Fragment,\n jsx: this.createElement,\n jsxs: this.createElement,\n elementAttributeNameCase: \"html\",\n prefix: false\n }).processSync(this.text.replace(/<[^>]+>/g, (match) => match.replace(/\")).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.prepareReferenceSource(this.text),\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n /**\n * Render plain text nodes\n *\n * @param {string} text - Content of the node\n */\n prepareTextNode(text2) {\n if (this.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n return h(component, {\n ...props,\n class: \"rich-text--component\"\n });\n });\n }\n return text2;\n },\n /**\n * Strip content of inline code and code blocks for reference widgets\n * (e.g. ignore fenced links from being added as reference)\n *\n * @param {string} text - Content of the node\n */\n prepareReferenceSource(text2) {\n if (!this.useMarkdown && !this.useExtendedMarkdown) {\n return text2;\n }\n const processor = unified();\n processor.compiler = (tree) => toString(tree);\n return processor.use(remarkParse).use(remarkStripCode).processSync(text2.replace(/\\s/g, \" \")).value;\n },\n createElement(type, props, key) {\n if (key) {\n props.key = key;\n }\n const children = props.children ?? [];\n delete props.children;\n if (!String(type).startsWith(\"#\")) {\n if ([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(String(type))) {\n type = `h${Math.min(+String(type)[1] + 3, 6)}`;\n }\n let nestedNode = null;\n if (this.useExtendedMarkdown) {\n if (String(type) === \"code\" && !rehypeHighlight.value && props?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n if (String(type) === \"pre\" && children && String(children.type) === \"code\") {\n const id = this.parentId + \"-code-block-\" + createElementId();\n return h(\"p\", { class: \"rich-text__code-block\" }, [\n h(type, { ...props, id }, children),\n h(_sfc_main$1, { class: \"rich-text__code-block-button\", contentId: id })\n ]);\n }\n if (String(type) === \"li\" && Array.isArray(children) && children.length !== 0 && children[0].type === \"input\" && children[0].props.type === \"checkbox\") {\n const [inputNode, , ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.type));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + createElementId();\n const propsToForward = { ...inputNode.props };\n delete propsToForward.checked;\n const inputComponent = h(NcCheckboxRadioSwitch, {\n ...propsToForward,\n modelValue: inputNode.props.checked,\n id,\n disabled: !this.interactive,\n \"onUpdate:modelValue\": () => {\n this.$emit(\"interactTodo\", id);\n }\n }, { default: () => labelParts });\n return h(type, props, [inputComponent, nestedNode]);\n }\n }\n if (String(type) === \"a\") {\n const route = getRoute(this.$router, props.href);\n if (route) {\n delete props.href;\n delete props.target;\n return h(RouterLink, {\n ...props,\n to: route\n }, { default: () => children });\n }\n const isAllowedScheme = /^(https?:\\/\\/|tel:|mailto:)/.test(props.href);\n if (isAllowedScheme) {\n props.href = props.href.trim();\n return h(NcRichTextExternalLink, props, children);\n } else {\n delete props.href;\n delete props.target;\n return h(\"span\", props, children);\n }\n }\n return h(type, props, children);\n }\n const placeholder = this.arguments[type.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...props, class: \"rich-text--fallback\" }, [`{${type.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", { ...props }, [placeholder]);\n }\n return h(\n typeof placeholder.component === \"string\" ? resolveComponent(placeholder.component) : placeholder.component,\n {\n ...props,\n ...placeholder.props,\n class: \"rich-text--component\"\n },\n { default: () => children }\n );\n }\n },\n render() {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown() : this.renderPlaintext();\n }\n};\nconst NcRichText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-80e57a29\"]]);\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText.mjs.map\n","import { l as logger } from \"./logger.mjs\";\nwindow._vue_richtext_custom_picker_elements ??= {};\nwindow._registerCustomPickerElement ??= registerCustomPickerElement;\nclass NcCustomPickerRenderResult {\n element;\n object;\n /**\n * @param element - The HTML element\n * @param object - The object\n */\n constructor(element, object) {\n this.element = element;\n this.object = object;\n }\n}\nfunction isCustomPickerElementRegistered(id) {\n return !!window._vue_richtext_custom_picker_elements[id];\n}\nfunction getCustomPickerElementSize(id) {\n const size = window._vue_richtext_custom_picker_elements[id]?.size;\n if (size && [\"small\", \"normal\", \"large\", \"full\"].includes(size)) {\n return size;\n }\n return null;\n}\nfunction registerCustomPickerElement(id, callback, onDestroy = () => {\n}, size = \"large\") {\n if (window._vue_richtext_custom_picker_elements[id]) {\n logger.error(`Custom reference picker element for id ${id} already registered`);\n return;\n }\n window._vue_richtext_custom_picker_elements[id] = {\n id,\n callback,\n onDestroy,\n size\n };\n}\nfunction renderCustomPickerElement(el, options) {\n const { providerId, accessible } = options;\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n logger.error(`Custom reference picker element for reference provider ID ${providerId} not registered`);\n return;\n }\n return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });\n}\nfunction destroyCustomPickerElement(providerId, el, renderResult) {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n return;\n }\n window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);\n}\nexport {\n NcCustomPickerRenderResult as N,\n renderCustomPickerElement as a,\n destroyCustomPickerElement as d,\n getCustomPickerElementSize as g,\n isCustomPickerElementRegistered as i,\n registerCustomPickerElement as r\n};\n//# sourceMappingURL=customPickerElements.mjs.map\n","import './assets/index-DuYzGG0a.css';\nimport { openBlock, createElementBlock, createElementVNode, resolveDirective, normalizeClass, renderSlot, normalizeProps, guardReactiveProps, Fragment, renderList, mergeProps, createTextVNode, toDisplayString, withKeys, withModifiers, createBlock, resolveDynamicComponent, createCommentVNode, toHandlers, withDirectives, vShow, createVNode, Transition, withCtx, warn } from \"vue\";\nconst appendToBody = {\n mounted(el, { instance }) {\n if (instance.appendToBody) {\n document.body.appendChild(el);\n const { height, top, left, width } = instance.$refs.toggle.getBoundingClientRect();\n const scrollX = window.scrollX || window.pageXOffset;\n const scrollY = window.scrollY || window.pageYOffset;\n el.unbindPosition = instance.calculatePosition(el, instance, {\n width: width + \"px\",\n left: scrollX + left + \"px\",\n top: scrollY + top + height + \"px\"\n });\n }\n },\n unmounted(el, { instance }) {\n if (instance.appendToBody) {\n if (el.unbindPosition && typeof el.unbindPosition === \"function\") {\n el.unbindPosition();\n }\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n }\n};\nconst ajax = {\n props: {\n /**\n * Toggles the adding of a 'loading' class to the main\n * .v-select wrapper. Useful to control UI state when\n * results are being processed through AJAX.\n */\n loading: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n mutableLoading: false\n };\n },\n watch: {\n /**\n * Anytime the search string changes, emit the\n * 'search' event. The event is passed with two\n * parameters: the search string, and a function\n * that accepts a boolean parameter to toggle the\n * loading state.\n *\n * @fires 'search'\n */\n search() {\n this.$emit(\"search\", this.search, this.toggleLoading);\n },\n /**\n * Sync the loading prop with the internal\n * mutable loading value.\n *\n * @param val Incoming loading state.\n */\n loading(val) {\n this.mutableLoading = val;\n }\n },\n methods: {\n /**\n * Toggle this.loading. Optionally pass a boolean\n * value. If no value is provided, this.loading\n * will be set to the opposite of it's current value.\n *\n * @param toggle Boolean\n * @return {*}\n */\n toggleLoading(toggle = null) {\n if (toggle === null || toggle === void 0) {\n return this.mutableLoading = !this.mutableLoading;\n }\n return this.mutableLoading = toggle;\n }\n }\n};\nconst pointerScroll = {\n props: {\n autoscroll: {\n type: Boolean,\n default: true\n }\n },\n watch: {\n typeAheadPointer() {\n if (this.autoscroll) {\n this.maybeAdjustScroll();\n }\n },\n open(open) {\n if (this.autoscroll && open) {\n this.$nextTick(() => this.maybeAdjustScroll());\n }\n }\n },\n methods: {\n /**\n * Adjust the scroll position of the dropdown list\n * if the current pointer is outside of the\n * overflow bounds.\n *\n * @return {*}\n */\n maybeAdjustScroll() {\n const optionEl = this.$refs.dropdownMenu?.children[this.typeAheadPointer] || false;\n if (optionEl) {\n const bounds = this.getDropdownViewport();\n const { top, bottom, height } = optionEl.getBoundingClientRect();\n if (top < bounds.top) {\n return this.$refs.dropdownMenu.scrollTop = optionEl.offsetTop;\n } else if (bottom > bounds.bottom) {\n return this.$refs.dropdownMenu.scrollTop = optionEl.offsetTop - (bounds.height - height);\n }\n }\n },\n /**\n * The currently viewable portion of the dropdownMenu.\n *\n * @return {{top: (string|*|number), bottom: *}}\n */\n getDropdownViewport() {\n return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.getBoundingClientRect() : {\n height: 0,\n top: 0,\n bottom: 0\n };\n }\n }\n};\nconst pointer = {\n data() {\n return {\n typeAheadPointer: -1\n };\n },\n watch: {\n filteredOptions() {\n if (!this.resetFocusOnOptionsChange) {\n return;\n }\n for (let i = 0; i < this.filteredOptions.length; i++) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n open(open) {\n if (open) {\n this.typeAheadToLastSelected();\n }\n },\n selectedValue() {\n if (this.open) {\n this.typeAheadToLastSelected();\n }\n }\n },\n methods: {\n /**\n * Move the typeAheadPointer visually up the list by\n * setting it to the previous selectable option.\n *\n * @return {void}\n */\n typeAheadUp() {\n for (let i = this.typeAheadPointer - 1; i >= 0; i--) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n /**\n * Move the typeAheadPointer visually down the list by\n * setting it to the next selectable option.\n *\n * @return {void}\n */\n typeAheadDown() {\n for (let i = this.typeAheadPointer + 1; i < this.filteredOptions.length; i++) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n /**\n * Select the option at the current typeAheadPointer position.\n * Optionally clear the search input on selection.\n *\n * @return {void}\n */\n typeAheadSelect() {\n const typeAheadOption = this.filteredOptions[this.typeAheadPointer];\n if (typeAheadOption && this.selectable(typeAheadOption)) {\n this.select(typeAheadOption);\n }\n },\n /**\n * Moves the pointer to the last selected option.\n */\n typeAheadToLastSelected() {\n const indexOfLastSelected = this.selectedValue.length !== 0 ? this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length - 1]) : -1;\n if (indexOfLastSelected !== -1) {\n this.typeAheadPointer = indexOfLastSelected;\n }\n }\n }\n};\nfunction sortAndStringify(sortable) {\n const ordered = {};\n Object.keys(sortable).sort().forEach((key) => {\n ordered[key] = sortable[key];\n });\n return JSON.stringify(ordered);\n}\nlet idCount = 0;\nfunction uniqueId() {\n return ++idCount;\n}\nconst _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};\nconst _sfc_main$2 = {};\nconst _hoisted_1$2 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\"\n};\nfunction _sfc_render$2(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$2, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"path\", { d: \"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\" }, null, -1)\n ])]);\n}\nconst Deselect = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$1 = {};\nconst _hoisted_1$1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"14\",\n height: \"10\"\n};\nfunction _sfc_render$1(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$1, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"path\", { d: \"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\" }, null, -1)\n ])]);\n}\nconst OpenIndicator = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nconst childComponents = {\n Deselect,\n OpenIndicator\n};\nconst _sfc_main = {\n components: { ...childComponents },\n directives: { appendToBody },\n mixins: [pointerScroll, pointer, ajax],\n props: {\n /**\n * Contains the currently selected value. Very similar to a\n * `value` attribute on an . You can listen for changes\n * with the 'input' event.\n *\n * @type {object | string | Array | null}\n */\n modelValue: {},\n /**\n * An object with any custom components that you'd like to overwrite\n * the default implementation of in your app. The keys in this object\n * will be merged with the defaults.\n *\n * @see https://vue-select.org/guide/components.html\n * @type {Function}\n */\n components: {\n type: Object,\n default: () => ({})\n },\n /**\n * An array of strings or objects to be used as dropdown choices.\n * If you are using an array of objects, vue-select will look for\n * a `label` key (ex. [{label: 'This is Foo', value: 'foo'}]). A\n * custom label key can be set with the `label` prop.\n *\n * @type {Array}\n */\n options: {\n type: Array,\n default() {\n return [];\n }\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n *\n * @type {number}\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the entire component.\n *\n * @type {boolean}\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Can the user clear the selected property.\n *\n * @type {boolean}\n */\n clearable: {\n type: Boolean,\n default: true\n },\n /**\n * Can the user deselect an option by clicking it from\n * within the dropdown.\n *\n * @type {boolean}\n */\n deselectFromDropdown: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable filtering the options.\n *\n * @type {boolean}\n */\n searchable: {\n type: Boolean,\n default: true\n },\n /**\n * Equivalent to the `multiple` attribute on a ``.\n *\n * @type {string}\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Sets a Vue transition property on the `.vs__dropdown-menu`.\n *\n * @type {string}\n */\n transition: {\n type: String,\n default: \"vs__fade\"\n },\n /**\n * Enables/disables clearing the search text when an option is selected.\n *\n * @type {boolean}\n */\n clearSearchOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Close a dropdown when an option is chosen. Set to false to keep the dropdown\n * open (useful when combined with multi-select, for example)\n *\n * @type {boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Tells vue-select what key to use when generating option\n * labels when each `option` is an object.\n *\n * @type {string}\n */\n label: {\n type: String,\n default: \"label\"\n },\n /**\n * Allows to customize the `aria-label` set on the comobobox for searching options.\n *\n * @type {string}\n * @default 'Search for options'\n */\n ariaLabelCombobox: {\n type: String,\n default: \"Search for options\"\n },\n /**\n * Allows to customize the `aria-label` set on the listbox element.\n *\n * @type {string}\n * @default 'Options'\n */\n ariaLabelListbox: {\n type: String,\n default: \"Options\"\n },\n /**\n * Allows to customize the `aria-label` set on the clear-selected button\n *\n * @type {string}\n * @default 'Clear selected'\n */\n ariaLabelClearSelected: {\n type: String,\n default: \"Clear selected\"\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => `Deselect ${optionLabel}`\n },\n /**\n * Value of the 'autocomplete' field of the input\n * element.\n *\n * @type {string}\n */\n autocomplete: {\n type: String,\n default: \"off\"\n },\n /**\n * When working with objects, the reduce\n * prop allows you to transform a given\n * object to only the information you\n * want passed to a v-model binding\n * or \\@input event.\n */\n reduce: {\n type: Function,\n default: (option) => option\n },\n /**\n * Decides whether an option is selectable or not. Not selectable options\n * are displayed but disabled and cannot be selected.\n *\n * @type {Function}\n * @since 3.3.0\n * @param {object | string} option\n * @return {boolean}\n */\n selectable: {\n type: Function,\n default: () => true\n },\n /**\n * Callback to generate the label text. If {option}\n * is an object, returns option[this.label] by default.\n *\n * Label text is used for filtering comparison and\n * displaying. If you only need to adjust the\n * display, you should use the `option` and\n * `selected-option` slots.\n *\n * @type {Function}\n * @param {object | string} option\n * @return {string}\n */\n getOptionLabel: {\n type: Function,\n default(option) {\n if (typeof option === \"object\") {\n if (!Object.hasOwn(option, this.label)) {\n return warn(`[vue-select warn]: Label key \"option.${this.label}\" does not exist in options object ${JSON.stringify(option)}.\nhttps://vue-select.org/api/props.html#getoptionlabel`);\n }\n return option[this.label];\n }\n return option;\n }\n },\n /**\n * Generate a unique identifier for each option. If `option`\n * is an object and `option.hasOwnProperty('id')` exists,\n * `option.id` is used by default, otherwise the option\n * will be serialized to JSON.\n *\n * If you are supplying a lot of options, you should\n * provide your own keys, as JSON.stringify can be\n * slow with lots of objects.\n *\n * The result of this function *must* be unique.\n *\n * @type {Function}\n * @param {object | string} option\n * @return {string}\n */\n getOptionKey: {\n type: Function,\n default(option) {\n if (typeof option !== \"object\") {\n return option;\n }\n try {\n return Object.hasOwn(option, \"id\") ? option.id : sortAndStringify(option);\n } catch (e) {\n const warning = \"[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\\nhttps://vue-select.org/api/props.html#getoptionkey\";\n return warn(warning, option, e);\n }\n }\n },\n /**\n * Select the current value if selectOnTab is enabled\n *\n * @deprecated since 3.3\n */\n onTab: {\n type: Function,\n default() {\n if (this.selectOnTab && !this.isComposing) {\n this.typeAheadSelect();\n }\n }\n },\n /**\n * Enable/disable creating options from searchEl.\n *\n * @type {boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * Set the tabindex for the input field.\n *\n * @type {number}\n */\n tabindex: {\n type: Number,\n default: null\n },\n /**\n * When true, newly created tags will be added to\n * the options list.\n *\n * @type {boolean}\n */\n pushTags: {\n type: Boolean,\n default: false\n },\n /**\n * When true, existing options will be filtered\n * by the search text. Should not be used in conjunction\n * with taggable.\n *\n * @type {boolean}\n */\n filterable: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * @type {Function}\n * @param {object | string} option\n * @param {string} label\n * @param {string} search\n * @return {boolean}\n */\n filterBy: {\n type: Function,\n default(option, label, search) {\n return (label || \"\").toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n }\n },\n /**\n * Callback to filter results when search text\n * is provided. Default implementation loops\n * each option, and returns the result of\n * this.filterBy.\n *\n * @type {Function}\n * @param {Array} list of options\n * @param {string} search text\n * @param {object} vSelect instance\n * @return {boolean}\n */\n filter: {\n type: Function,\n default(options, search) {\n return options.filter((option) => {\n let label = this.getOptionLabel(option);\n if (typeof label === \"number\") {\n label = label.toString();\n }\n return this.filterBy(option, label, search);\n });\n }\n },\n /**\n * User defined function for adding Options\n *\n * @type {Function}\n */\n createOption: {\n type: Function,\n default(option) {\n return typeof this.optionList[0] === \"object\" ? { [this.label]: option } : option;\n }\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change.\n *\n * @type {boolean}\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * When false, updating the options will not reset the selected value. Accepts\n * a `boolean` or `function` that returns a `boolean`. If defined as a function,\n * it will receive the params listed below.\n *\n * @since 3.4 - Type changed to {boolean | Function}\n *\n * @type {boolean | Function}\n * @param {Array} newOptions\n * @param {Array} oldOptions\n * @param {Array} selectedValue\n */\n resetOnOptionsChange: {\n default: false,\n validator: (value) => [\"function\", \"boolean\"].includes(typeof value)\n },\n /**\n * If search text should clear on blur\n *\n * @return {boolean} True when single and clearSearchOnSelect\n */\n clearSearchOnBlur: {\n type: Function,\n default({ clearSearchOnSelect, multiple }) {\n return clearSearchOnSelect && !multiple;\n }\n },\n /**\n * Disable the dropdown entirely.\n *\n * @type {boolean}\n */\n noDrop: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the id of the input element.\n *\n * @type {string}\n * @default {null}\n */\n inputId: {\n type: String\n },\n /**\n * Sets RTL support. Accepts 'ltr', 'rtl', 'auto'.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir\n * @type {string}\n * @default 'auto'\n */\n dir: {\n type: String,\n default: \"auto\"\n },\n /**\n * When true, hitting the 'tab' key will select the current select value\n *\n * @type {boolean}\n * @deprecated since 3.3 - use selectOnKeyCodes instead\n */\n selectOnTab: {\n type: Boolean,\n default: false\n },\n /**\n * Keycodes that will select the current option.\n *\n * @type Array\n */\n selectOnKeyCodes: {\n type: Array,\n default: () => [\n // enter\n 13\n ]\n },\n /**\n * Query Selector used to find the search input\n * when the 'search' scoped slot is used.\n *\n * Must be a valid CSS selector string.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n * @type {string}\n */\n searchInputQuerySelector: {\n type: String,\n default: \"[type=search]\"\n },\n /**\n * Used to modify the default keydown events map\n * for the search input. Can be used to implement\n * custom behaviour for key presses.\n */\n mapKeydown: {\n type: Function,\n /**\n * @param {object} map Existing keydown handlers map.\n * @param {VueSelect} vm Component instance.\n * @return {object}\n */\n default: (map) => map\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically. Use it if you have\n * overflow or z-index issues.\n *\n * @type {boolean}\n */\n appendToBody: {\n type: Boolean,\n default: false\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @since v3.7.0\n * @see http://vue-select.org/guide/positioning.html\n */\n calculatePosition: {\n type: Function,\n /**\n * @param {HTMLUListElement} dropdownList Dropdown list element.\n * @param {Vue} component Component instance.\n * @param {object} width Computed dropdown coordinates.\n * @param {string} width.width Computed width value.\n * @param {string} width.top Computed top position.\n * @param {string} width.left Computed left position.\n * @return {Function | void}\n */\n default(dropdownList, component, { width, top, left }) {\n dropdownList.style.top = top;\n dropdownList.style.left = left;\n dropdownList.style.width = width;\n }\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @since v3.12.0\n * @return {boolean}\n */\n dropdownShouldOpen: {\n type: Function,\n default({ noDrop, open, mutableLoading }) {\n return noDrop ? false : open && !mutableLoading;\n }\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus.\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: false\n },\n /**\n * A unique identifier used to generate IDs in HTML.\n * Must be unique for every instance of the component.\n */\n uid: {\n type: [String, Number],\n default: () => uniqueId()\n }\n },\n emits: [\n \"open\",\n \"close\",\n \"update:modelValue\",\n \"search\",\n \"search:compositionstart\",\n \"search:compositionend\",\n \"search:keydown\",\n \"search:blur\",\n \"search:focus\",\n \"search:input\",\n \"option:created\",\n \"option:selecting\",\n \"option:selected\",\n \"option:deselecting\",\n \"option:deselected\"\n ],\n data() {\n return {\n search: \"\",\n open: false,\n isComposing: false,\n isKeyboardNavigation: false,\n pushedTags: [],\n // eslint-disable-next-line vue/no-reserved-keys\n _value: [],\n // Internal value managed by Vue Select if no `modelValue` prop is passed\n deselectButtons: []\n };\n },\n computed: {\n isReducingValues() {\n return this.$props.reduce !== this.$options.props.reduce.default;\n },\n /**\n * Determine if the component needs to\n * track the state of values internally.\n *\n * @return {boolean}\n */\n isTrackingValues() {\n return typeof this.modelValue === \"undefined\" || this.isReducingValues;\n },\n /**\n * The options that are currently selected.\n *\n * @return {Array}\n */\n selectedValue() {\n let value = this.modelValue;\n if (this.isTrackingValues) {\n value = this.$data._value;\n }\n if (value !== void 0 && value !== null && value !== \"\") {\n return [].concat(value);\n }\n return [];\n },\n /**\n * The options available to be chosen\n * from the dropdown, including any\n * tags that have been pushed.\n *\n * @return {Array}\n */\n optionList() {\n return this.options.concat(this.pushTags ? this.pushedTags : []);\n },\n /**\n * Find the search input DOM element.\n *\n * @return {HTMLInputElement}\n */\n searchEl() {\n return this.$slots.search ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector) : this.$refs.search;\n },\n /**\n * The object to be bound to the $slots.search slot.\n *\n * @return {object}\n */\n scope() {\n const listSlot = {\n search: this.search,\n loading: this.loading,\n searching: this.searching,\n filteredOptions: this.filteredOptions\n };\n return {\n search: {\n attributes: {\n id: this.inputId,\n disabled: this.disabled,\n placeholder: this.searchPlaceholder,\n tabindex: this.tabindex,\n readonly: !this.searchable,\n role: \"combobox\",\n \"aria-autocomplete\": \"list\",\n \"aria-label\": this.ariaLabelCombobox,\n \"aria-controls\": `vs-${this.uid}__listbox`,\n \"aria-owns\": `vs-${this.uid}__listbox`,\n \"aria-expanded\": this.dropdownOpen.toString(),\n ref: \"search\",\n type: \"search\",\n autocomplete: this.autocomplete,\n value: this.search,\n ...this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {\n \"aria-activedescendant\": `vs-${this.uid}__option-${this.typeAheadPointer}`\n } : {}\n },\n events: {\n compositionstart: () => this.isComposing = true,\n compositionend: () => this.isComposing = false,\n keydown: this.onSearchKeyDown,\n keypress: this.onSearchKeyPress,\n blur: this.onSearchBlur,\n focus: this.onSearchFocus,\n input: (e) => this.search = e.target.value\n }\n },\n spinner: {\n loading: this.mutableLoading\n },\n noOptions: {\n search: this.search,\n loading: this.mutableLoading,\n searching: this.searching\n },\n openIndicator: {\n attributes: {\n ref: \"openIndicator\",\n role: \"presentation\",\n class: \"vs__open-indicator\"\n }\n },\n listHeader: listSlot,\n listFooter: listSlot,\n header: { ...listSlot, deselect: this.deselect },\n footer: { ...listSlot, deselect: this.deselect }\n };\n },\n /**\n * Returns an object containing the child components\n * that will be used throughout the component. The\n * `component` prop can be used to overwrite the defaults.\n *\n * @return {object}\n */\n childComponents() {\n return {\n ...childComponents,\n ...this.components\n };\n },\n /**\n * Holds the current state of the component.\n *\n * @return {object}\n */\n stateClasses() {\n return {\n \"vs--open\": this.dropdownOpen,\n \"vs--single\": !this.multiple,\n \"vs--multiple\": this.multiple,\n \"vs--searching\": this.searching && !this.noDrop,\n \"vs--searchable\": this.searchable && !this.noDrop,\n \"vs--unsearchable\": !this.searchable,\n \"vs--loading\": this.mutableLoading,\n \"vs--disabled\": this.disabled\n };\n },\n /**\n * Return the current state of the\n * search input\n *\n * @return {boolean} True if non empty value\n */\n searching() {\n return !!this.search;\n },\n /**\n * Return the current state of the\n * dropdown menu.\n *\n * @return {boolean} True if open\n */\n dropdownOpen() {\n return this.dropdownShouldOpen(this);\n },\n /**\n * Return the placeholder string if it's set\n * & there is no value selected.\n *\n * @return {string} Placeholder text\n */\n searchPlaceholder() {\n return this.isValueEmpty && this.placeholder ? this.placeholder : void 0;\n },\n /**\n * The currently displayed options, filtered\n * by the search elements value. If tagging\n * true, the search text will be prepended\n * if it doesn't already exist.\n *\n * @return {Array}\n */\n filteredOptions() {\n const limitOptions = (options2) => {\n if (this.limit !== null) {\n return options2.slice(0, this.limit);\n }\n return options2;\n };\n const optionList = [].concat(this.optionList);\n if (!this.filterable && !this.taggable) {\n return limitOptions(optionList);\n }\n const options = this.search.length ? this.filter(optionList, this.search, this) : optionList;\n if (this.taggable && this.search.length) {\n try {\n const createdOption = this.createOption(this.search);\n if (!this.optionExists(createdOption)) {\n options.unshift(createdOption);\n }\n } catch {\n }\n }\n return limitOptions(options);\n },\n /**\n * Check if there aren't any options selected.\n *\n * @return {boolean}\n */\n isValueEmpty() {\n return this.selectedValue.length === 0;\n },\n /**\n * Determines if the clear button should be displayed.\n *\n * @return {boolean}\n */\n showClearButton() {\n return !this.multiple && this.clearable && !this.open && !this.isValueEmpty;\n }\n },\n watch: {\n /**\n * Maybe reset the value\n * when options change.\n * Make sure selected option\n * is correct.\n *\n * @param {Array} newOptions Updated options list.\n * @param {Array} oldOptions Previous options list.\n * @return {boolean} [description]\n */\n options(newOptions, oldOptions) {\n const shouldReset = () => typeof this.resetOnOptionsChange === \"function\" ? this.resetOnOptionsChange(\n newOptions,\n oldOptions,\n this.selectedValue\n ) : this.resetOnOptionsChange;\n if (!this.taggable && shouldReset()) {\n this.clearSelection();\n }\n if (this.modelValue && this.isTrackingValues) {\n this.setInternalValueFromOptions(this.modelValue);\n }\n },\n /**\n * Make sure to update internal\n * value if prop changes outside\n */\n modelValue: {\n immediate: true,\n handler(val) {\n if (this.isTrackingValues) {\n this.setInternalValueFromOptions(val);\n }\n }\n },\n /**\n * Always reset the value when\n * the multiple prop changes.\n *\n * @return {void}\n */\n multiple() {\n this.clearSelection();\n },\n open(isOpen) {\n this.$emit(isOpen ? \"open\" : \"close\");\n },\n search(search) {\n if (search.length) {\n this.open = true;\n }\n }\n },\n created() {\n this.mutableLoading = this.loading;\n },\n methods: {\n /**\n * Make sure tracked value is\n * one option if possible.\n *\n * @param {object | string} value Reduced value to resolve.\n * @return {void}\n */\n setInternalValueFromOptions(value) {\n if (Array.isArray(value)) {\n this.$data._value = value.map((val) => this.findOptionFromReducedValue(val));\n } else {\n this.$data._value = this.findOptionFromReducedValue(value);\n }\n },\n /**\n * Select or deselect a given option.\n * Allow deselect if clearable or if not the only selected option.\n *\n * @param {object | string} option Option to select or deselect.\n * @return {void}\n */\n select(option) {\n this.$emit(\"option:selecting\", option);\n if (!this.isOptionSelected(option)) {\n if (this.taggable && !this.optionExists(option)) {\n this.$emit(\"option:created\", option);\n this.pushTag(option);\n }\n if (this.multiple) {\n option = this.selectedValue.concat(option);\n }\n this.updateValue(option);\n this.$emit(\"option:selected\", option);\n } else if (this.deselectFromDropdown && (this.clearable || this.multiple && this.selectedValue.length > 1)) {\n this.deselect(option);\n }\n this.onAfterSelect(option);\n },\n /**\n * De-select a given option.\n *\n * @param {object | string} option Option to remove.\n * @return {void}\n */\n deselect(option) {\n this.$emit(\"option:deselecting\", option);\n this.updateValue(this.selectedValue.filter((val) => {\n return !this.optionComparator(val, option);\n }));\n this.$emit(\"option:deselected\", option);\n },\n /**\n * De-select a given option on keyboard input.\n *\n * @param {object | string} option Option to remove.\n * @param {number} index Index of the deselect button.\n * @return {void}\n */\n keyboardDeselect(option, index2) {\n this.deselect(option);\n const nextDeselect = this.deselectButtons?.[index2 + 1];\n const prevDeselect = this.deselectButtons?.[index2 - 1];\n const deselectToFocus = nextDeselect ?? prevDeselect;\n if (deselectToFocus) {\n deselectToFocus.focus();\n } else {\n this.searchEl.focus();\n }\n },\n /**\n * Clears the currently selected value(s)\n *\n * @return {void}\n */\n clearSelection() {\n this.updateValue(this.multiple ? [] : null);\n this.searchEl.focus();\n },\n /**\n * Called from this.select after each selection.\n *\n * @param {object | string} option Option that was handled.\n * @return {void}\n */\n onAfterSelect() {\n if (this.closeOnSelect) {\n this.open = !this.open;\n }\n if (this.clearSearchOnSelect) {\n this.search = \"\";\n }\n if (this.noDrop && this.multiple) {\n this.$nextTick(() => this.$refs.search.focus());\n }\n },\n /**\n * Accepts a selected value, updates local\n * state when required, and triggers the\n * input event.\n *\n * @fires input\n * @param {object | string} value Selected value payload.\n */\n updateValue(value) {\n if (typeof this.modelValue === \"undefined\") {\n this.$data._value = value;\n }\n if (value !== null) {\n if (Array.isArray(value)) {\n value = value.map((val) => this.reduce(val));\n } else {\n value = this.reduce(value);\n }\n }\n this.$emit(\"update:modelValue\", value);\n },\n /**\n * Toggle the visibility of the dropdown menu.\n *\n * @param {Event} event Toggle trigger event.\n * @return {void}\n */\n toggleDropdown(event) {\n const targetIsNotSearch = event.target !== this.searchEl;\n if (targetIsNotSearch) {\n event.preventDefault();\n }\n const ignoredButtons = [\n ...this.deselectButtons || [],\n ...this.$refs.clearButton ? [this.$refs.clearButton] : []\n ];\n if (this.searchEl === void 0 || ignoredButtons.filter(Boolean).some((ref) => ref.contains(event.target) || ref === event.target)) {\n event.preventDefault();\n return;\n }\n if (this.open && targetIsNotSearch) {\n this.open = false;\n this.searchEl.blur();\n } else if (!this.disabled) {\n this.open = true;\n this.searchEl.focus();\n }\n },\n /**\n * Check if the given option is currently selected.\n *\n * @param {object | string} option Option to evaluate.\n * @return {boolean} True when selected | False otherwise\n */\n isOptionSelected(option) {\n return this.selectedValue.some((value) => this.optionComparator(value, option));\n },\n /**\n * Can the current option be removed via the dropdown?\n *\n * @param {object | string} option Option to evaluate.\n * @return {boolean}\n */\n isOptionDeselectable(option) {\n return this.isOptionSelected(option) && this.deselectFromDropdown;\n },\n /**\n * Check if the option at the given index should display a\n * keyboard focus border.\n *\n * @param {number} index Option index.\n * @return {boolean}\n */\n hasKeyboardFocusBorder(index2) {\n if (this.keyboardFocusBorder && this.isKeyboardNavigation) {\n return index2 === this.typeAheadPointer;\n }\n return false;\n },\n /**\n * Determine if two option objects are matching.\n *\n * @param {object} a First option.\n * @param {object} b Second option.\n * @return {boolean}\n */\n optionComparator(a, b) {\n return this.getOptionKey(a) === this.getOptionKey(b);\n },\n /**\n * Finds an option from the options\n * where a reduced value matches\n * the passed in value.\n *\n * @param {object} value Reduced value to match.\n * @return {*}\n */\n findOptionFromReducedValue(value) {\n const predicate = (option) => JSON.stringify(this.reduce(option)) === JSON.stringify(value);\n const matches = [...this.options, ...this.pushedTags].filter(predicate);\n if (matches.length === 1) {\n return matches[0];\n }\n return matches.find((match) => this.optionComparator(match, this.$data._value)) || value;\n },\n /**\n * 'Private' function to close the search options\n *\n * @fires {search:blur}\n * @return {void}\n */\n closeSearchOptions() {\n this.open = false;\n this.$emit(\"search:blur\");\n },\n /**\n * Delete the value on Delete keypress when there is no\n * text in the search input, & there's tags to delete\n *\n * @return {this.value}\n */\n maybeDeleteValue() {\n if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {\n let value = null;\n if (this.multiple) {\n value = [\n ...this.selectedValue.slice(0, this.selectedValue.length - 1)\n ];\n }\n this.updateValue(value);\n }\n },\n /**\n * Determine if an option exists\n * within this.optionList array.\n *\n * @param {Object || String} option Option to find.\n * @return {boolean}\n */\n optionExists(option) {\n return this.optionList.some((_option) => this.optionComparator(_option, option));\n },\n /**\n * Determine the `aria-selected` value\n * of an option\n *\n * @param {object | string} option Option to evaluate.\n * @return {null|string}\n */\n optionAriaSelected(option) {\n if (!this.selectable(option)) {\n return null;\n }\n return String(this.isOptionSelected(option));\n },\n /**\n * Ensures that options are always\n * passed as objects to scoped slots.\n *\n * @param {object | string} option Option to normalize.\n * @return {object}\n */\n normalizeOptionForSlot(option) {\n return typeof option === \"object\" ? option : { [this.label]: option };\n },\n /**\n * If push-tags is true, push the\n * given option to `this.pushedTags`.\n *\n * @param {Object || String} option Option to append.\n * @return {void}\n */\n pushTag(option) {\n this.pushedTags.push(option);\n },\n /**\n * If there is any text in the search input, remove it.\n * Otherwise, blur the search input to close the dropdown.\n *\n * @return {void}\n */\n onEscape() {\n if (!this.search.length) {\n this.open = false;\n } else {\n this.search = \"\";\n }\n },\n /**\n * Close the dropdown on blur.\n *\n * @fires {search:blur}\n * @return {void}\n */\n onSearchBlur() {\n if (this.mousedown && !this.searching) {\n this.mousedown = false;\n } else {\n const { clearSearchOnSelect, multiple } = this;\n if (this.clearSearchOnBlur({ clearSearchOnSelect, multiple })) {\n this.search = \"\";\n }\n this.closeSearchOptions();\n return;\n }\n if (this.search.length === 0 && this.options.length === 0) {\n this.closeSearchOptions();\n }\n },\n /**\n * Do NOT open the dropdown here: auto-opening on focus violates\n * WCAG 3.2.1 (On Focus). Keyboard users open via\n * Space/Enter/ArrowDown/ArrowUp; mouse users click.\n *\n * @fires {search:focus}\n * @return {void}\n */\n onSearchFocus() {\n this.$emit(\"search:focus\");\n },\n /**\n * Event-Handler to help workaround IE11 (probably fixes 10 as well)\n * firing a `blur` event when clicking\n * the dropdown's scrollbar, causing it\n * to collapse abruptly.\n *\n * @see https://github.com/sagalbot/vue-select/issues/106\n * @return {void}\n */\n onMousedown() {\n this.mousedown = true;\n },\n /**\n * Event-Handler to help workaround IE11 (probably fixes 10 as well)\n *\n * @see https://github.com/sagalbot/vue-select/issues/106\n * @return {void}\n */\n onMouseUp() {\n this.mousedown = false;\n },\n /**\n * Event-Handler for option mousemove\n *\n * @param {object | string} option Hovered option.\n * @param {number} index Hovered option index.\n * @return {void}\n */\n onMouseMove(option, index2) {\n this.isKeyboardNavigation = false;\n if (!this.selectable(option)) {\n return;\n }\n this.typeAheadPointer = index2;\n },\n /**\n * Search KeyBoardEvent handler.\n *\n * @param {KeyboardEvent} e Keyboard event.\n * @return {Function}\n */\n onSearchKeyDown(e) {\n const preventAndSelect = (e2) => {\n e2.preventDefault();\n if (!this.open) {\n this.open = true;\n return;\n }\n return !this.isComposing && this.typeAheadSelect();\n };\n const defaults = {\n // backspace\n 8: () => this.maybeDeleteValue(),\n // tab\n 9: () => this.onTab(),\n // esc\n 27: () => this.onEscape(),\n // up.prevent\n 38: (e2) => {\n e2.preventDefault();\n this.isKeyboardNavigation = true;\n if (!this.open) {\n this.open = true;\n return;\n }\n return this.typeAheadUp();\n },\n // down.prevent\n 40: (e2) => {\n e2.preventDefault();\n this.isKeyboardNavigation = true;\n if (!this.open) {\n this.open = true;\n return;\n }\n return this.typeAheadDown();\n }\n };\n this.selectOnKeyCodes.forEach((keyCode) => defaults[keyCode] = preventAndSelect);\n const handlers = this.mapKeydown(defaults, this);\n if (typeof handlers[e.keyCode] === \"function\") {\n return handlers[e.keyCode](e);\n }\n },\n /**\n * TODO: Probably want to add a mapKeyPress method just like we have for keydown.\n *\n * @param {KeyboardEvent} e Keyboard event.\n */\n onSearchKeyPress(e) {\n if (!this.open && e.keyCode === 32) {\n e.preventDefault();\n this.open = true;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"dir\"];\nconst _hoisted_2 = {\n ref: \"toggle\",\n class: \"vs__dropdown-toggle\"\n};\nconst _hoisted_3 = [\"disabled\", \"title\", \"aria-label\", \"onMousedown\", \"onKeydown\"];\nconst _hoisted_4 = {\n ref: \"actions\",\n class: \"vs__actions\"\n};\nconst _hoisted_5 = [\"disabled\", \"title\", \"aria-label\"];\nconst _hoisted_6 = { class: \"vs__spinner\" };\nconst _hoisted_7 = [\"id\", \"aria-label\", \"aria-multiselectable\"];\nconst _hoisted_8 = [\"id\", \"aria-selected\", \"onMousemove\", \"onClick\"];\nconst _hoisted_9 = {\n key: 0,\n class: \"vs__no-options\"\n};\nconst _hoisted_10 = [\"id\", \"aria-label\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _directive_append_to_body = resolveDirective(\"append-to-body\");\n return openBlock(), createElementBlock(\"div\", {\n id: `v-select-${$props.uid}`,\n dir: $props.dir,\n class: normalizeClass([\"v-select\", $options.stateClasses])\n }, [\n renderSlot(_ctx.$slots, \"header\", normalizeProps(guardReactiveProps($options.scope.header))),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", {\n ref: \"selectedOptions\",\n class: \"vs__selected-options\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => $options.toggleDropdown && $options.toggleDropdown(...args))\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.selectedValue, (option, index2) => {\n return renderSlot(_ctx.$slots, \"selected-option-container\", {\n option: $options.normalizeOptionForSlot(option),\n deselect: $options.deselect,\n multiple: $props.multiple,\n disabled: $props.disabled\n }, () => [\n (openBlock(), createElementBlock(\"span\", {\n key: $props.getOptionKey(option),\n class: \"vs__selected\"\n }, [\n renderSlot(_ctx.$slots, \"selected-option\", mergeProps({ ref_for: true }, $options.normalizeOptionForSlot(option)), () => [\n createTextVNode(toDisplayString($props.getOptionLabel(option)), 1)\n ]),\n $props.multiple ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n ref_for: true,\n ref: (el) => $data.deselectButtons[index2] = el,\n disabled: $props.disabled,\n type: \"button\",\n class: \"vs__deselect\",\n title: $props.ariaLabelDeselectOption($props.getOptionLabel(option)),\n \"aria-label\": $props.ariaLabelDeselectOption($props.getOptionLabel(option)),\n onMousedown: withModifiers(($event) => $options.deselect(option), [\"stop\"]),\n onKeydown: withKeys(($event) => $options.keyboardDeselect(option, index2), [\"enter\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.Deselect)))\n ], 40, _hoisted_3)) : createCommentVNode(\"\", true)\n ]))\n ]);\n }), 256)),\n renderSlot(_ctx.$slots, \"search\", normalizeProps(guardReactiveProps($options.scope.search)), () => [\n createElementVNode(\"input\", mergeProps({ class: \"vs__search\" }, $options.scope.search.attributes, toHandlers($options.scope.search.events, true)), null, 16)\n ])\n ], 544),\n createElementVNode(\"div\", _hoisted_4, [\n withDirectives(createElementVNode(\"button\", {\n ref: \"clearButton\",\n disabled: $props.disabled,\n type: \"button\",\n class: \"vs__clear\",\n title: $props.ariaLabelClearSelected,\n \"aria-label\": $props.ariaLabelClearSelected,\n onClick: _cache[1] || (_cache[1] = (...args) => $options.clearSelection && $options.clearSelection(...args))\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.Deselect)))\n ], 8, _hoisted_5), [\n [vShow, $options.showClearButton]\n ]),\n !$props.noDrop ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n ref: \"openIndicatorButton\",\n class: \"vs__open-indicator-button\",\n type: \"button\",\n tabindex: \"-1\",\n \"aria-hidden\": \"true\",\n onMousedown: _cache[2] || (_cache[2] = (...args) => $options.toggleDropdown && $options.toggleDropdown(...args))\n }, [\n renderSlot(_ctx.$slots, \"open-indicator\", normalizeProps(guardReactiveProps($options.scope.openIndicator)), () => [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.OpenIndicator), normalizeProps(guardReactiveProps($options.scope.openIndicator.attributes)), null, 16))\n ])\n ], 544)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"spinner\", normalizeProps(guardReactiveProps($options.scope.spinner)), () => [\n withDirectives(createElementVNode(\"div\", _hoisted_6, \" Loading... \", 512), [\n [vShow, _ctx.mutableLoading]\n ])\n ])\n ], 512)\n ], 512),\n createVNode(Transition, { name: $props.transition }, {\n default: withCtx(() => [\n $options.dropdownOpen ? withDirectives((openBlock(), createElementBlock(\"ul\", {\n id: `vs-${$props.uid}__listbox`,\n ref: \"dropdownMenu\",\n key: `vs-${$props.uid}__listbox`,\n class: \"vs__dropdown-menu\",\n role: \"listbox\",\n \"aria-label\": $props.ariaLabelListbox,\n \"aria-multiselectable\": $props.multiple ? \"true\" : null,\n tabindex: \"-1\",\n onMousedown: _cache[3] || (_cache[3] = withModifiers((...args) => $options.onMousedown && $options.onMousedown(...args), [\"prevent\"])),\n onMouseup: _cache[4] || (_cache[4] = (...args) => $options.onMouseUp && $options.onMouseUp(...args))\n }, [\n renderSlot(_ctx.$slots, \"list-header\", normalizeProps(guardReactiveProps($options.scope.listHeader))),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.filteredOptions, (option, index2) => {\n return openBlock(), createElementBlock(\"li\", {\n id: `vs-${$props.uid}__option-${index2}`,\n key: $props.getOptionKey(option),\n role: \"option\",\n class: normalizeClass([\"vs__dropdown-option\", {\n \"vs__dropdown-option--deselect\": $options.isOptionDeselectable(option) && index2 === _ctx.typeAheadPointer,\n \"vs__dropdown-option--selected\": $options.isOptionSelected(option),\n \"vs__dropdown-option--highlight\": index2 === _ctx.typeAheadPointer,\n \"vs__dropdown-option--kb-focus\": $options.hasKeyboardFocusBorder(index2),\n \"vs__dropdown-option--disabled\": !$props.selectable(option)\n }]),\n \"aria-selected\": $options.optionAriaSelected(option),\n onMousemove: ($event) => $options.onMouseMove(option, index2),\n onClick: withModifiers(($event) => $props.selectable(option) ? $options.select(option) : null, [\"prevent\", \"stop\"])\n }, [\n renderSlot(_ctx.$slots, \"option\", mergeProps({ ref_for: true }, $options.normalizeOptionForSlot(option)), () => [\n createTextVNode(toDisplayString($props.getOptionLabel(option)), 1)\n ])\n ], 42, _hoisted_8);\n }), 128)),\n $options.filteredOptions.length === 0 ? (openBlock(), createElementBlock(\"li\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"no-options\", normalizeProps(guardReactiveProps($options.scope.noOptions)), () => [\n _cache[5] || (_cache[5] = createTextVNode(\" Sorry, no matching options. \", -1))\n ])\n ])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"list-footer\", normalizeProps(guardReactiveProps($options.scope.listFooter)))\n ], 40, _hoisted_7)), [\n [_directive_append_to_body]\n ]) : (openBlock(), createElementBlock(\"ul\", {\n key: 1,\n id: `vs-${$props.uid}__listbox`,\n role: \"listbox\",\n \"aria-label\": $props.ariaLabelListbox,\n style: { \"display\": \"none\", \"visibility\": \"hidden\" }\n }, null, 8, _hoisted_10))\n ]),\n _: 3\n }, 8, [\"name\"]),\n renderSlot(_ctx.$slots, \"footer\", normalizeProps(guardReactiveProps($options.scope.footer)))\n ], 10, _hoisted_1);\n}\nconst Select = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nconst index = { ajax, pointer, pointerScroll };\nexport {\n Select as VueSelect,\n index as mixins\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcInputField.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, warn, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, withDirectives, renderSlot, vShow, createBlock, withCtx, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": __props.disabled,\n \"input-field--error\": __props.error,\n \"input-field--label-outside\": __props.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": __props.pill,\n \"input-field--success\": __props.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", __props.inputClass],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n type: __props.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n __props.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": __props.trailingButtonLabel,\n disabled: __props.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : __props.success || __props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-feb04bef\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField.mjs.map\n","import { defineComponent, useModel, useTemplateRef, computed, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, mergeModels } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi.mjs\";\nimport { r as register, b as t53, c as t19, a as t } from \"./_l10n.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcInputField } from \"./NcInputField.mjs\";\nregister(t19, t53);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n type: {},\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n __props.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n __props.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: __props.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang.mjs.map\n","import '../assets/NcSelect.css';\nimport { autoUpdate, computePosition, flip, offset, shift, limitShift } from \"@floating-ui/dom\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi.mjs\";\nimport { VueSelect } from \"@nextcloud/vue-select\";\nimport { resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createVNode, normalizeClass, createElementVNode, createElementBlock, renderList, warn, h } from \"vue\";\nimport { C as ChevronDown } from \"./ChevronDown.mjs\";\nimport { I as IconClose } from \"./Close.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTextField.vue_vue_type_script_setup_true_lang.mjs\";\nimport { r as register, g as t18, a as t } from \"./_l10n.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nregister(t18);\nconst _sfc_main = {\n name: \"NcSelect\",\n components: {\n ChevronDown,\n NcEllipsisedOption,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcTextField: _sfc_main$1,\n VueSelect\n },\n props: {\n // Add VueSelect props to $props\n ...VueSelect.props,\n ...VueSelect.mixins.reduce((allProps, mixin) => ({ ...allProps, ...mixin.props }), {}),\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the search input\n *\n * A descriptive `inputLabel` is preferred as this is not visible.\n */\n ariaLabelCombobox: {\n type: String,\n default: null\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically.\n *\n * @see https://vue-select.org/api/props.html#appendtobody\n */\n appendToBody: {\n type: Boolean,\n default: true\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @see https://vue-select.org/api/props.html#calculateposition\n */\n calculatePosition: {\n type: Function,\n default: null\n },\n /**\n * Keep the dropdown open after selecting an option.\n *\n * @default false\n * @since 8.25.0\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Replace default vue-select components\n *\n * @see https://vue-select.org/api/props.html#components\n */\n components: {\n type: Object,\n default: () => ({\n Deselect: {\n render: () => h(IconClose, {\n size: 20,\n fillColor: \"var(--vs-controls-color)\",\n style: [\n { cursor: \"pointer\" }\n ]\n })\n }\n })\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the component\n *\n * @see https://vue-select.org/api/props.html#disabled\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @see https://vue-select.org/api/props.html#dropdownshouldopen\n */\n dropdownShouldOpen: {\n type: Function,\n default: ({ noDrop, open }) => {\n return noDrop ? false : open;\n }\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * Defaults to the internal vue-select function documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#filterby\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Class for the `input`\n *\n * Necessary for use in NcActionInput\n */\n inputClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visible label for the input element\n */\n inputLabel: {\n type: String,\n default: null\n },\n /**\n * Additional helper text shown beneath the select.\n */\n helperText: {\n type: String,\n default: \"\"\n },\n /**\n * Toggle the error state, styling the helper text as an error.\n */\n error: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the success state, styling the helper text as a success.\n */\n success: {\n type: Boolean,\n default: false\n },\n /**\n * Pass true if you are using an external label\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: true\n },\n /**\n * Key of the displayed label for object options\n *\n * Defaults to the internal vue-select string documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#label\n */\n label: {\n type: String,\n default: null\n },\n /**\n * Show the loading icon\n *\n * @see https://vue-select.org/api/props.html#loading\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Allow selection of multiple options\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Disable automatic wrapping when selected options overflow the width\n */\n noWrap: {\n type: Boolean,\n default: false\n },\n /**\n * Array of options\n *\n * @type {Array>}\n *\n * @see https://vue-select.org/api/props.html#options\n */\n options: {\n type: Array,\n default: () => []\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Customized component's response to keydown events while the search input has focus\n *\n * @see https://vue-select.org/guide/keydown.html#mapkeydown\n */\n mapKeydown: {\n type: Function,\n /**\n * Patched Vue-Select keydown events handlers map to stop Escape propagation in open select\n *\n * @param {Record void>} map - Mapped keyCode to handlers { : }\n * @param {import('vue').ComponentPublicInstance} vm - VueSelect instance\n * @return {Record void>} patched keydown event handlers\n */\n default(map, vm) {\n return {\n ...map,\n /**\n * Patched Escape handler to stop propagation from open select\n *\n * @param {KeyboardEvent} event - default keydown event handler\n */\n 27: (event) => {\n if (vm.open) {\n event.stopPropagation();\n }\n map[27](event);\n }\n };\n }\n },\n /**\n * A unique identifier used to generate IDs and DOM attributes. Must be unique for every instance of the component.\n *\n * @see https://vue-select.org/api/props.html#uid\n */\n uid: {\n type: String,\n default: () => createElementId()\n },\n /**\n * When `appendToBody` is true, this sets the placement of the dropdown\n *\n * @type {'bottom' | 'top'}\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * Currently selected value\n *\n * The `v-model` directive may be used for two-way data binding\n *\n * @type {string | number | Record | Array}\n *\n * @see https://vue-select.org/api/props.html#value\n */\n modelValue: {\n type: [String, Number, Object, Array],\n default: null\n },\n /**\n * Enable if a value is required for native form validation\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \",\n \"update:modelValue\"\n ],\n setup() {\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n return {\n avatarSize,\n isLegacy,\n mdiAlertCircleOutline,\n mdiCheck\n };\n },\n data() {\n return {\n search: \"\"\n };\n },\n computed: {\n inputRequired() {\n if (!this.required) {\n return null;\n }\n return this.modelValue === null || Array.isArray(this.modelValue) && this.modelValue.length === 0;\n },\n localCalculatePosition() {\n if (this.calculatePosition !== null) {\n return this.calculatePosition;\n }\n return (dropdownMenu, component, { width }) => {\n dropdownMenu.style.width = width;\n const addClass = {\n name: \"addClass\",\n fn() {\n dropdownMenu.classList.add(\"vs__dropdown-menu--floating\", \"nc-select__dropdown\");\n return {};\n }\n };\n const togglePlacementClass = {\n name: \"togglePlacementClass\",\n fn({ placement }) {\n component.$el.classList.toggle(\n \"select--drop-up\",\n placement === \"top\"\n );\n dropdownMenu.classList.toggle(\n \"vs__dropdown-menu--floating-placement-top\",\n placement === \"top\"\n );\n return {};\n }\n };\n const updatePosition = () => {\n computePosition(component.$refs.toggle, dropdownMenu, {\n placement: this.placement,\n middleware: [\n // Flip first so the placement-dependent middleware below see the final placement\n flip(),\n addClass,\n togglePlacementClass,\n // On top placement, leave a gap for the floating label overhang\n // (about half the floated label line-height) instead of connecting seamlessly\n offset(({ placement }) => placement.startsWith(\"top\") ? 10 : -1),\n shift({ limiter: limitShift() })\n ]\n }).then(({ x, y }) => {\n Object.assign(dropdownMenu.style, {\n left: `${x}px`,\n top: `${y}px`,\n width: `${component.$refs.toggle.getBoundingClientRect().width}px`\n });\n });\n };\n const cleanup = autoUpdate(\n component.$refs.toggle,\n dropdownMenu,\n updatePosition\n );\n return cleanup;\n };\n },\n localFilterBy() {\n return this.filterBy ?? VueSelect.props.filterBy.default;\n },\n localLabel() {\n return this.label ?? VueSelect.props.label.default;\n },\n propsToForward() {\n const vueSelectKeys = [\n ...Object.keys(VueSelect.props),\n ...VueSelect.mixins.flatMap((mixin) => Object.keys(mixin.props ?? {}))\n ];\n const initialPropsToForward = Object.fromEntries(Object.entries(this.$props).filter(([key, _value]) => vueSelectKeys.includes(key)));\n const propsToForward = {\n ...initialPropsToForward,\n // Custom overrides of vue-select props\n calculatePosition: this.localCalculatePosition,\n closeOnSelect: !this.keepOpen,\n filterBy: this.localFilterBy,\n label: this.localLabel\n };\n return propsToForward;\n }\n },\n mounted() {\n if (!this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox) {\n warn(\"[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`.\");\n }\n if (this.inputLabel && this.ariaLabelCombobox) {\n warn(\"[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.\");\n }\n },\n methods: {\n t,\n /**\n * Consumer-provided slots forwarded to vue-select, excluding `footer`\n * which we render ourselves to host the helper text.\n *\n * `$slots` is not reactive, so this is a method (re-evaluated on every\n * render) rather than a computed, to keep the forwarded slot list fresh.\n *\n * @return {string[]}\n */\n forwardedSlots() {\n return Object.keys(this.$slots).filter((name) => name !== \"footer\");\n }\n }\n};\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_VueSelect = resolveComponent(\"VueSelect\");\n return openBlock(), createBlock(_component_VueSelect, mergeProps({\n class: [\"select nc-select\", {\n \"select--legacy\": $setup.isLegacy,\n \"select--no-wrap\": $props.noWrap\n }]\n }, $options.propsToForward, {\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"update:modelValue\", $event))\n }), createSlots({\n search: withCtx(({ attributes, events }) => [\n createVNode(_component_NcTextField, {\n id: attributes.id,\n class: normalizeClass([\"vs__search\", [$props.inputClass]]),\n type: attributes.type,\n modelValue: attributes.value,\n placeholder: $props.multiple || $props.modelValue ? \"\" : $props.placeholder || \"\",\n label: !$props.labelOutside && !$props.multiple && $props.inputLabel ? $props.inputLabel : \"\",\n labelOutside: $props.labelOutside || $props.multiple,\n disabled: $props.disabled,\n required: $options.inputRequired,\n role: attributes.role,\n tabindex: attributes.tabindex,\n readonly: attributes.readonly,\n autocomplete: attributes.autocomplete,\n \"aria-label\": attributes[\"aria-label\"],\n \"aria-describedby\": [attributes[\"aria-describedby\"], $props.helperText ? `${$props.inputId}-helper-text` : null].filter(Boolean).join(\" \") || void 0,\n \"aria-autocomplete\": attributes[\"aria-autocomplete\"],\n \"aria-controls\": attributes[\"aria-controls\"],\n \"aria-owns\": attributes[\"aria-owns\"],\n \"aria-expanded\": attributes[\"aria-expanded\"],\n \"aria-activedescendant\": attributes[\"aria-activedescendant\"],\n onKeydown: events.keydown,\n onKeypress: events.keypress,\n onFocus: events.focus,\n onBlur: events.blur,\n onCompositionstart: events.compositionstart,\n onCompositionend: events.compositionend,\n \"onUpdate:modelValue\": ($event) => events.input({ target: { value: $event } })\n }, null, 8, [\"id\", \"class\", \"type\", \"modelValue\", \"placeholder\", \"label\", \"labelOutside\", \"disabled\", \"required\", \"role\", \"tabindex\", \"readonly\", \"autocomplete\", \"aria-label\", \"aria-describedby\", \"aria-autocomplete\", \"aria-controls\", \"aria-owns\", \"aria-expanded\", \"aria-activedescendant\", \"onKeydown\", \"onKeypress\", \"onFocus\", \"onBlur\", \"onCompositionstart\", \"onCompositionend\", \"onUpdate:modelValue\"])\n ]),\n \"open-indicator\": withCtx(({ attributes }) => [\n createVNode(_component_ChevronDown, mergeProps(attributes, {\n fillColor: \"var(--vs-controls-color)\",\n style: {\n cursor: !$props.disabled ? \"pointer\" : null\n },\n size: 20\n }), null, 16, [\"style\"])\n ]),\n option: withCtx((option) => [\n renderSlot(_ctx.$slots, \"option\", normalizeProps(guardReactiveProps(option)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(option[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n renderSlot(_ctx.$slots, \"selected-option\", normalizeProps(guardReactiveProps(selectedOption)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(selectedOption[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n spinner: withCtx((spinner) => [\n spinner.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"No results\")), 1)\n ]),\n _: 2\n }, [\n $props.multiple && !$props.labelOutside && $props.inputLabel ? {\n name: \"header\",\n fn: withCtx(() => [\n createElementVNode(\"label\", {\n for: $props.inputId,\n class: \"select__label\"\n }, toDisplayString($props.inputLabel), 9, _hoisted_1)\n ]),\n key: \"0\"\n } : void 0,\n $props.helperText || _ctx.$slots.footer ? {\n name: \"footer\",\n fn: withCtx((data) => [\n $props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${$props.inputId}-helper-text`,\n class: normalizeClass([\"select__helper-text\", {\n \"select__helper-text--error\": $props.error,\n \"select__helper-text--success\": $props.success\n }])\n }, [\n $props.success ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"select__helper-text-icon\",\n path: $setup.mdiCheck,\n inline: \"\"\n }, null, 8, [\"path\"])) : $props.error ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n class: \"select__helper-text-icon\",\n path: $setup.mdiAlertCircleOutline,\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString($props.helperText), 1)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", normalizeProps(guardReactiveProps(data)))\n ]),\n key: \"1\"\n } : void 0,\n renderList($options.forwardedSlots(), (name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"class\"]);\n}\nconst NcSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelect as N\n};\n//# sourceMappingURL=NcSelect.mjs.map\n","import '../assets/referencePickerModal.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createVNode, withCtx, withKeys, createBlock, normalizeClass, createTextVNode, withModifiers, normalizeStyle, createApp } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { I as IconClose } from \"./Close.mjs\";\nimport { a as renderCustomPickerElement, d as destroyCustomPickerElement, i as isCustomPickerElementRegistered, g as getCustomPickerElementSize } from \"./customPickerElements.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, Y as t8, a as t, Z as t48, _ as t43, $ as t27, s as t45, a0 as t34, A as t20, a1 as t13 } from \"./_l10n.mjs\";\nimport { l as logger } from \"./logger.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent.mjs\";\nimport { _ as _sfc_main$9 } from \"./NcHighlight.vue_vue_type_script_lang.mjs\";\nimport { N as NcSelect } from \"./NcSelect.mjs\";\nimport debounce from \"debounce\";\nimport { N as NcReferenceWidget } from \"./NcReferenceWidget.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon.mjs\";\nimport { _ as _sfc_main$a } from \"./NcTextField.vue_vue_type_script_setup_true_lang.mjs\";\nimport { I as IconDotsHorizontal } from \"./NcActions.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcModal } from \"./NcModal.mjs\";\nconst _sfc_main$8 = {\n name: \"ArrowLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$8 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$8);\n}\nconst ArrowLeftIcon = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$7 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeUnmount() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"pick\", this.onPick);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"pick\", (e) => {\n this.onPick(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onPick(value) {\n this.$emit(\"pick\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nconst _hoisted_1$7 = { ref: \"domElement\" };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$7, null, 512);\n}\nconst NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$7], [\"__scopeId\", \"data-v-df9d8f84\"]]);\nconst _sfc_main$6 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$6 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$5 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$4 = { d: \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon link-variant-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$4, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst LinkVariantIcon = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nregister(t8);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n order: 0,\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers ??= loadState(\"core\", \"reference-provider-list\", []);\nwindow._vue_richtext_reference_provider_timestamps ??= loadState(\"core\", \"reference-provider-timestamps\", {});\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n logger.debug(`[smart picker] ${p.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`);\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nasync function touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n await axios.put(url, { timestamp });\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n}\nregister(t43, t48);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch {\n return false;\n }\n}\nconst _sfc_main$5 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight: _sfc_main$9,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"selectProvider\",\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n this.$emit(\"pick\", { link: p.title });\n } else {\n this.$emit(\"selectProvider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query) {\n this.query = query;\n }\n }\n};\nconst _hoisted_1$5 = { class: \"provider-list\" };\nconst _hoisted_2$4 = {\n key: 0,\n class: \"provider\"\n};\nconst _hoisted_3$3 = {\n key: 1,\n class: \"provider\"\n};\nconst _hoisted_4$2 = [\"src\", \"alt\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$5, [\n createVNode(_component_NcSelect, {\n ref: \"provider-select\",\n modelValue: $data.selectedProvider,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedProvider = $event),\n $options.onProviderSelected\n ],\n class: \"provider-list--select\",\n inputId: \"provider-select-input\",\n label: \"title\",\n placeholder: $data.multiselectPlaceholder,\n options: $options.options,\n appendToBody: false,\n clearSearchOnSelect: true,\n clearSearchOnBlur: () => false,\n filterable: false,\n onSearch: $options.onSearch\n }, {\n option: withCtx((option) => [\n option.isLink ? (openBlock(), createElementBlock(\"div\", _hoisted_2$4, [\n createVNode(_component_LinkVariantIcon, {\n class: \"link-icon\",\n size: 20\n }),\n createElementVNode(\"span\", null, toDisplayString(option.title), 1)\n ])) : (openBlock(), createElementBlock(\"div\", _hoisted_3$3, [\n createElementVNode(\"img\", {\n class: \"provider-icon\",\n src: option.icon_url,\n alt: $data.providerIconAlt\n }, null, 8, _hoisted_4$2),\n createVNode(_component_NcHighlight, {\n class: \"option-text\",\n search: $data.query,\n text: option.title\n }, null, 8, [\"search\", \"text\"])\n ]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"onSearch\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcEmptyContent, { class: \"provider-list--empty-content\" }, {\n icon: withCtx(() => [\n createVNode(_component_LinkVariantIcon)\n ]),\n _: 1\n })\n ]);\n}\nconst NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5], [\"__scopeId\", \"data-v-c9740c42\"]]);\nregister(t27);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField: _sfc_main$a\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n },\n debouncedUpdateReference() {\n return debounce(this.updateReference, 500);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n this.$emit(\"pick\", { link: value });\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n this.debouncedUpdateReference();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n logger.error(\"[NcRawLinkInput] Failed to update reference\", { error });\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nconst _hoisted_1$4 = { class: \"raw-link\" };\nconst _hoisted_2$3 = { class: \"input-wrapper\" };\nconst _hoisted_3$2 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n createElementVNode(\"div\", _hoisted_2$3, [\n createVNode(_component_NcTextField, {\n ref: \"url-input\",\n modelValue: $data.inputValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.inputValue = $event),\n $options.onInput\n ],\n showTrailingButton: $data.inputValue !== \"\",\n label: $data.inputPlaceholder,\n onTrailingButtonClick: $options.onClear,\n onKeyup: withKeys($options.onSubmit, [\"enter\"])\n }, {\n default: withCtx(() => [\n $data.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, {\n key: 0,\n size: 16\n })) : (openBlock(), createBlock(_component_LinkVariantIcon, {\n key: 1,\n size: 16\n }))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"showTrailingButton\", \"label\", \"onTrailingButtonClick\", \"onUpdate:modelValue\", \"onKeyup\"])\n ]),\n $data.reference !== null ? (openBlock(), createBlock(_component_NcReferenceWidget, {\n key: 0,\n class: \"reference-widget\",\n reference: $data.reference\n }, null, 8, [\"reference\"])) : (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 1,\n class: \"raw-link--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_3$2)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n }))\n ]);\n}\nconst NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-fb24b594\"]]);\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: _sfc_main$9\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nconst _hoisted_1$3 = { class: \"result\" };\nconst _hoisted_2$2 = [\"src\"];\nconst _hoisted_3$1 = { class: \"result--content\" };\nconst _hoisted_4$1 = { class: \"result--content--name\" };\nconst _hoisted_5$1 = { class: \"result--content--subline\" };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$3, [\n $props.entry.icon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([{ [$props.entry.icon]: true, rounded: $props.entry.rounded }, \"result--icon-class\"])\n }, null, 2)) : (openBlock(), createElementBlock(\"img\", {\n key: 1,\n class: normalizeClass([\"result--image\", { rounded: $props.entry.rounded }]),\n src: $props.entry.thumbnailUrl\n }, null, 10, _hoisted_2$2)),\n createElementVNode(\"div\", _hoisted_3$1, [\n createElementVNode(\"span\", _hoisted_4$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.title\n }, null, 8, [\"search\", \"text\"])\n ]),\n createElementVNode(\"span\", _hoisted_5$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.subline\n }, null, 8, [\"search\", \"text\"])\n ])\n ])\n ]);\n}\nconst NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-059edcfb\"]]);\nregister(t34, t43, t45);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: IconDotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n /**\n * Whether to show the empty content when there are no search results\n */\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n /**\n * Placeholder of the search\n */\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n },\n debouncedUpdateSearch() {\n return debounce(this.updateSearch, 500);\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeUnmount() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query) {\n this.searchQuery = query;\n this.debouncedUpdateSearch();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n const reference = { link: item.resourceUrl };\n if (item.title) {\n reference.title = item.title;\n }\n this.$emit(\"pick\", reference);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nconst _hoisted_1$2 = {\n key: 0,\n class: \"custom-option\"\n};\nconst _hoisted_2$1 = { class: \"option-text\" };\nconst _hoisted_3 = {\n key: 2,\n class: \"custom-option group-name\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"option-text\" };\nconst _hoisted_6 = {\n key: 3,\n class: \"custom-option\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"option-simple-icon icon-loading-small\"\n};\nconst _hoisted_8 = { class: \"option-text\" };\nconst _hoisted_9 = [\"alt\", \"src\"];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcSearchResult = resolveComponent(\"NcSearchResult\");\n const _component_DotsHorizontalIcon = resolveComponent(\"DotsHorizontalIcon\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"smart-picker-search\", { \"with-empty-content\": $props.showEmptyContent }])\n }, [\n createVNode(_component_NcSelect, {\n ref: \"search-select\",\n modelValue: $data.selectedResult,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedResult = $event),\n $options.onSelectResultSelected\n ],\n class: \"smart-picker-search--select\",\n inputId: \"search-select-input\",\n label: \"name\",\n placeholder: $options.mySearchPlaceholder,\n options: $options.options,\n appendToBody: false,\n closeOnSelect: false,\n clearSearchOnSelect: false,\n clearSearchOnBlur: () => false,\n resetFocusOnOptionsChange: false,\n filterable: false,\n autoscroll: true,\n resetOnOptionsChange: false,\n loading: $data.searching,\n onSearch: $options.onSearchInput\n }, {\n option: withCtx((option) => [\n option.isRawLink ? (openBlock(), createElementBlock(\"div\", _hoisted_1$2, [\n createVNode(_component_LinkVariantIcon, {\n class: \"option-simple-icon\",\n size: 20\n }),\n createElementVNode(\"span\", _hoisted_2$1, toDisplayString($options.t(\"Raw link {options}\", { options: option.resourceUrl })), 1)\n ])) : option.resourceUrl ? (openBlock(), createBlock(_component_NcSearchResult, {\n key: 1,\n class: \"search-result\",\n entry: option,\n query: $data.searchQuery\n }, null, 8, [\"entry\", \"query\"])) : option.isCustomGroupTitle ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon group-name-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, [\n createElementVNode(\"strong\", null, toDisplayString(option.name), 1)\n ])\n ])) : option.isMore ? (openBlock(), createElementBlock(\"span\", _hoisted_6, [\n option.isLoading ? (openBlock(), createElementBlock(\"span\", _hoisted_7)) : (openBlock(), createBlock(_component_DotsHorizontalIcon, {\n key: 1,\n class: \"option-simple-icon\",\n size: 20\n })),\n createElementVNode(\"span\", _hoisted_8, toDisplayString($options.t('Load more \"{options}\"', { options: option.name })), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($data.noOptionsText), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"loading\", \"onSearch\", \"onUpdate:modelValue\"]),\n $props.showEmptyContent ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n class: \"smart-picker-search--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n alt: $data.providerIconAlt,\n src: $props.provider.icon_url\n }, null, 8, _hoisted_9)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-d965b4c7\"]]);\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancelRawLink\",\n \"cancelSearch\",\n \"providerSelected\",\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"providerSelected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancelSearch\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancelRawLink\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n pickLink(reference) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"pick\", reference);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"providerSelected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 3,\n class: \"custom-element-wrapper\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcProviderList = resolveComponent(\"NcProviderList\");\n const _component_NcRawLinkInput = resolveComponent(\"NcRawLinkInput\");\n const _component_NcSearch = resolveComponent(\"NcSearch\");\n const _component_NcCustomPickerElement = resolveComponent(\"NcCustomPickerElement\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"reference-picker\",\n style: normalizeStyle($options.pickerWrapperStyle),\n tabindex: \"-1\",\n onKeydown: _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.onEscapePressed && $options.onEscapePressed(...args), [\"stop\", \"prevent\"]), [\"esc\"]))\n }, [\n $options.mode === $data.MODES.providerList ? (openBlock(), createBlock(_component_NcProviderList, {\n key: 0,\n ref: \"provider-list\",\n onSelectProvider: $options.onProviderSelected,\n onSubmit: $options.submitLink,\n onPick: $options.pickLink,\n onCancel: $options.cancelProviderSelection\n }, null, 8, [\"onSelectProvider\", \"onSubmit\", \"onPick\", \"onCancel\"])) : $options.mode === $data.MODES.standardLinkInput ? (openBlock(), createBlock(_component_NcRawLinkInput, {\n key: 1,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onPick: $options.pickLink,\n onCancel: $options.cancelRawLinkInput\n }, null, 8, [\"provider\", \"onSubmit\", \"onPick\", \"onCancel\"])) : $options.mode === $data.MODES.searchInput ? (openBlock(), createBlock(_component_NcSearch, {\n key: 2,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onPick: $options.pickLink,\n onCancel: $options.cancelSearch\n }, null, 8, [\"provider\", \"onSubmit\", \"onPick\", \"onCancel\"])) : $options.mode === $data.MODES.customElement ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(_component_NcCustomPickerElement, {\n provider: $data.selectedProvider,\n class: \"custom-element\",\n onSubmit: $options.submitLink,\n onPick: $options.pickLink,\n onCancel: $options.cancelCustomElement\n }, null, 8, [\"provider\", \"onSubmit\", \"onPick\", \"onCancel\"])\n ])) : createCommentVNode(\"\", true)\n ], 36);\n}\nconst NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-40667c6c\"]]);\nregister(t13, t20);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon,\n CloseIcon: IconClose\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\",\n \"pick\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onPick(value) {\n this.show = false;\n this.$emit(\"pick\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nconst _hoisted_1 = {\n ref: \"modal_content\",\n class: \"reference-picker-modal--content\"\n};\nconst _hoisted_2 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ArrowLeftIcon = resolveComponent(\"ArrowLeftIcon\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_CloseIcon = resolveComponent(\"CloseIcon\");\n const _component_NcReferencePicker = resolveComponent(\"NcReferencePicker\");\n const _component_NcModal = resolveComponent(\"NcModal\");\n return $data.show ? (openBlock(), createBlock(_component_NcModal, {\n key: 0,\n size: $options.modalSize,\n class: \"reference-picker-modal\",\n onClose: $options.onCancel\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n $options.showBackButton ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.backButtonTitle,\n title: $data.backButtonTitle,\n class: \"back-button\",\n onClick: $options.onBackClicked\n }, {\n icon: withCtx(() => [\n createVNode(_component_ArrowLeftIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"])) : createCommentVNode(\"\", true),\n createVNode(_component_NcButton, {\n class: \"close-button\",\n \"aria-label\": $data.closeButtonLabel,\n title: $data.closeButtonTitle,\n variant: \"tertiary\",\n onClick: $options.onCancel\n }, {\n icon: withCtx(() => [\n createVNode(_component_CloseIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.showModalName ? (openBlock(), createElementBlock(\"h2\", _hoisted_2, toDisplayString($options.modalName), 1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcReferencePicker, {\n ref: \"referencePicker\",\n initialProvider: $props.initialProvider,\n focusOnCreate: $props.focusOnCreate,\n onProviderSelected: $options.onProviderSelect,\n onSubmit: $options.onSubmit,\n onPick: $options.onPick,\n onCancel: $options.onCancel\n }, null, 8, [\"initialProvider\", \"focusOnCreate\", \"onProviderSelected\", \"onSubmit\", \"onPick\", \"onCancel\"])\n ], 512)\n ]),\n _: 1\n }, 8, [\"size\", \"onClose\"])) : createCommentVNode(\"\", true);\n}\nconst NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-58d45f81\"]]);\nasync function getLinkWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onSubmit(link) {\n view.unmount();\n resolve(link);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nasync function getReferenceWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onPick(reference) {\n view.unmount();\n resolve(reference);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nexport {\n NcReferencePicker as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n getReferenceWithPicker as d,\n sortProviders as e,\n NcReferencePickerModal as f,\n getLinkWithPicker as g,\n NcSearch as h,\n searchProvider as s\n};\n//# sourceMappingURL=referencePickerModal.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 * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/**\n * Copy text to clipboard if it fails (e.g. not secure context (https, localhost...))\n * a prompt will be opened for the user to copy the text manually\n *\n * @param text The text to copy\n * @return true if automatic copy suceeded, false if prompt was used\n */\nexport async function copyToCipboard(text: string) {\n\ttry {\n\t\tawait window.navigator.clipboard.writeText(text)\n\t\treturn true\n\t} catch (e) {\n\t\twindow.prompt(\n\t\t\tt('logreader', 'Could not copy to clipboard, please copy manually:'),\n\t\t\ttext,\n\t\t)\n\t}\n\treturn false\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud Gmbh and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Pinia } from 'pinia'\nimport type { ILogEntry } from '../interfaces'\n\nimport { getCanonicalLocale, translate as t } from '@nextcloud/l10n'\nimport { LOGGING_LEVEL_NAMES } from '../constants'\nimport { useSettingsStore } from '../store/settings'\n\n/**\n *\n * @param pinia Pinia instance\n */\nexport function useLogFormatting(pinia?: Pinia) {\n\tconst settingsStore = useSettingsStore(pinia)\n\n\tconst formatTime = (time: string) => {\n\t\tconst dateFormat = Intl.DateTimeFormat(getCanonicalLocale(), {\n\t\t\tdateStyle: 'medium',\n\t\t\ttimeStyle: 'medium',\n\t\t\ttimeZone: settingsStore.dateTimeFormat === 'utc' ? 'UTC' : undefined,\n\t\t})\n\t\treturn dateFormat.format(new Date(time))\n\t}\n\t/**\n\t * Format a log entry into a human readable text\n\t *\n\t * @param entry The log entry to format\n\t */\n\tconst formatLogEntry = (entry: ILogEntry) => {\n\t\treturn (\n\t\t\t`[${entry.app}] ${LOGGING_LEVEL_NAMES[entry.level]}: ${entry.message}\\n`\n\t\t\t+ (entry.method ? `\\t${entry.method} ${entry.url}\\n` : '')\n\t\t\t+ t('logreader', '\\tfrom {address} by {user} at {time}\\n', {\n\t\t\t\taddress: entry.remoteAddr || '?',\n\t\t\t\tuser: entry.user || '?',\n\t\t\t\ttime: formatTime(entry.time),\n\t\t\t})\n\t\t)\n\t}\n\treturn {\n\t\tformatTime,\n\t\tformatLogEntry,\n\t}\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","const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default?.()[0].children?.trim?.() || \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal.mjs.map\n","import { warn } from \"vue\";\nimport { N as NC_ACTIONS_CLOSE_MENU } from \"./useNcActions.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal.mjs\";\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n inject: {\n closeMenu: {\n from: NC_ACTIONS_CLOSE_MENU\n }\n },\n emits: [\n \"click\"\n ],\n created() {\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcAction*]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n this.closeMenu(false);\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText.mjs.map\n","import '../assets/NcActionButton.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { A as ActionTextMixin } from \"./actionText.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, normalizeStyle, toDisplayString, createCommentVNode, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of ``\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:modelValue\"],\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the