From 968e5de3219f27176bb03fa0bd8b0ace11c57d67 Mon Sep 17 00:00:00 2001 From: nextcloud-command Date: Sun, 13 Sep 2026 07:57:38 +0000 Subject: [PATCH] fix(deps): Fix npm audit Signed-off-by: GitHub --- js/twofactor_totp-main-login-setup.js | 4 +- js/twofactor_totp-main-login-setup.js.map | 2 +- js/twofactor_totp-main-settings.js | 4 +- js/twofactor_totp-main-settings.js.map | 2 +- package-lock.json | 4575 +++++++++++---------- 5 files changed, 2354 insertions(+), 2233 deletions(-) diff --git a/js/twofactor_totp-main-login-setup.js b/js/twofactor_totp-main-login-setup.js index cf0da8f73..347b672fb 100644 --- a/js/twofactor_totp-main-login-setup.js +++ b/js/twofactor_totp-main-login-setup.js @@ -1,2 +1,2 @@ -(()=>{var e={7526(t,e){"use strict";e.byteLength=function(t){var e=a(t),n=e[0],r=e[1];return 3*(n+r)/4-r},e.toByteArray=function(t){var e,n,i=a(t),s=i[0],c=i[1],l=new o(function(t,e,n){return 3*(e+n)/4-n}(0,s,c)),u=0,f=c>0?s-4:s;for(n=0;n>16&255,l[u++]=e>>8&255,l[u++]=255&e;return 2===c&&(e=r[t.charCodeAt(n)]<<2|r[t.charCodeAt(n+1)]>>4,l[u++]=255&e),1===c&&(e=r[t.charCodeAt(n)]<<10|r[t.charCodeAt(n+1)]<<4|r[t.charCodeAt(n+2)]>>2,l[u++]=e>>8&255,l[u++]=255&e),l},e.fromByteArray=function(t){for(var e,r=t.length,o=r%3,i=[],s=16383,a=0,c=r-o;ac?c:a+s));return 1===o?(e=t[r-1],i.push(n[e>>2]+n[e<<4&63]+"==")):2===o&&(e=(t[r-2]<<8)+t[r-1],i.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),i.join("")};for(var n=[],r=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=i[s],r[i.charCodeAt(s)]=s;function a(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function c(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function l(t,e,n){for(var r,o=[],i=e;is)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,c.prototype),e}function c(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return f(t)}return l(t,e,n)}function l(t,e,n){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!c.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const n=0|g(t,e);let r=a(n);const o=r.write(t,e);return o!==n&&(r=r.slice(0,o)),r}(t,e);if(ArrayBuffer.isView(t))return function(t){if(J(t,Uint8Array)){const e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return h(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(J(t,ArrayBuffer)||t&&J(t.buffer,ArrayBuffer))return p(t,e,n);if("undefined"!=typeof SharedArrayBuffer&&(J(t,SharedArrayBuffer)||t&&J(t.buffer,SharedArrayBuffer)))return p(t,e,n);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=t.valueOf&&t.valueOf();if(null!=r&&r!==t)return c.from(r,e,n);const o=function(t){if(c.isBuffer(t)){const e=0|d(t.length),n=a(e);return 0===n.length||t.copy(n,0,0,e),n}return void 0!==t.length?"number"!=typeof t.length||K(t.length)?a(0):h(t):"Buffer"===t.type&&Array.isArray(t.data)?h(t.data):void 0}(t);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return c.from(t[Symbol.toPrimitive]("string"),e,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function u(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function f(t){return u(t),a(t<0?0:0|d(t))}function h(t){const e=t.length<0?0:0|d(t.length),n=a(e);for(let r=0;r=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|t}function g(t,e){if(c.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||J(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const n=t.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let o=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return W(t).length;default:if(o)return r?-1:G(t).length;e=(""+e).toLowerCase(),o=!0}}function m(t,e,n){let r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return x(this,e,n);case"utf8":case"utf-8":return O(this,e,n);case"ascii":return C(this,e,n);case"latin1":case"binary":return I(this,e,n);case"base64":return S(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function y(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function b(t,e,n,r,o){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),K(n=+n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof e&&(e=c.from(e,r)),c.isBuffer(e))return 0===e.length?-1:v(t,e,n,r,o);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):v(t,[e],n,r,o);throw new TypeError("val must be string, number or Buffer")}function v(t,e,n,r,o){let i,s=1,a=t.length,c=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;s=2,a/=2,c/=2,n/=2}function l(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(o){let r=-1;for(i=n;ia&&(n=a-c),i=n;i>=0;i--){let n=!0;for(let r=0;ro&&(r=o):r=o;const i=e.length;let s;for(r>i/2&&(r=i/2),s=0;s>8,o=n%256,i.push(o),i.push(r);return i}(e,t.length-n),t,n,r)}function S(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function O(t,e,n){n=Math.min(t.length,n);const r=[];let o=e;for(;o239?4:e>223?3:e>191?2:1;if(o+s<=n){let n,r,a,c;switch(s){case 1:e<128&&(i=e);break;case 2:n=t[o+1],128==(192&n)&&(c=(31&e)<<6|63&n,c>127&&(i=c));break;case 3:n=t[o+1],r=t[o+2],128==(192&n)&&128==(192&r)&&(c=(15&e)<<12|(63&n)<<6|63&r,c>2047&&(c<55296||c>57343)&&(i=c));break;case 4:n=t[o+1],r=t[o+2],a=t[o+3],128==(192&n)&&128==(192&r)&&128==(192&a)&&(c=(15&e)<<18|(63&n)<<12|(63&r)<<6|63&a,c>65535&&c<1114112&&(i=c))}}null===i?(i=65533,s=1):i>65535&&(i-=65536,r.push(i>>>10&1023|55296),i=56320|1023&i),r.push(i),o+=s}return function(t){const e=t.length;if(e<=T)return String.fromCharCode.apply(String,t);let n="",r=0;for(;rr.length?(c.isBuffer(e)||(e=c.from(e)),e.copy(r,o)):Uint8Array.prototype.set.call(r,e,o);else{if(!c.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(r,o)}o+=e.length}return r},c.byteLength=g,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;en&&(t+=" ... "),""},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(t,e,n,r,o){if(J(t,Uint8Array)&&(t=c.from(t,t.offset,t.byteLength)),!c.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),e<0||n>t.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&e>=n)return 0;if(r>=o)return-1;if(e>=n)return 1;if(this===t)return 0;let i=(o>>>=0)-(r>>>=0),s=(n>>>=0)-(e>>>=0);const a=Math.min(i,s),l=this.slice(r,o),u=t.slice(e,n);for(let t=0;t>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const o=this.length-e;if((void 0===n||n>o)&&(n=o),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let i=!1;for(;;)switch(r){case"hex":return E(this,t,e,n);case"utf8":case"utf-8":return w(this,t,e,n);case"ascii":case"latin1":case"binary":return _(this,t,e,n);case"base64":return R(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,e,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function C(t,e,n){let r="";n=Math.min(t.length,n);for(let o=e;or)&&(n=r);let o="";for(let r=e;rn)throw new RangeError("Trying to access beyond buffer length")}function P(t,e,n,r,o,i){if(!c.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>o||et.length)throw new RangeError("Index out of range")}function B(t,e,n,r,o){q(e,r,o,t,n,7);let i=Number(e&BigInt(4294967295));t[n++]=i,i>>=8,t[n++]=i,i>>=8,t[n++]=i,i>>=8,t[n++]=i;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[n++]=s,s>>=8,t[n++]=s,s>>=8,t[n++]=s,s>>=8,t[n++]=s,n}function U(t,e,n,r,o){q(e,r,o,t,n,7);let i=Number(e&BigInt(4294967295));t[n+7]=i,i>>=8,t[n+6]=i,i>>=8,t[n+5]=i,i>>=8,t[n+4]=i;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[n+3]=s,s>>=8,t[n+2]=s,s>>=8,t[n+1]=s,s>>=8,t[n]=s,n+8}function k(t,e,n,r,o,i){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function M(t,e,n,r,i){return e=+e,n>>>=0,i||k(t,0,n,4),o.write(t,e,n,r,23,4),n+4}function D(t,e,n,r,i){return e=+e,n>>>=0,i||k(t,0,n,8),o.write(t,e,n,r,52,8),n+8}c.prototype.slice=function(t,e){const n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e>>=0,e>>>=0,n||N(t,e,this.length);let r=this[t],o=1,i=0;for(;++i>>=0,e>>>=0,n||N(t,e,this.length);let r=this[t+--e],o=1;for(;e>0&&(o*=256);)r+=this[t+--e]*o;return r},c.prototype.readUint8=c.prototype.readUInt8=function(t,e){return t>>>=0,e||N(t,1,this.length),this[t]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(t,e){return t>>>=0,e||N(t,2,this.length),this[t]|this[t+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(t,e){return t>>>=0,e||N(t,2,this.length),this[t]<<8|this[t+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(t,e){return t>>>=0,e||N(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(t,e){return t>>>=0,e||N(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},c.prototype.readBigUInt64LE=Q(function(t){V(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||H(t,this.length-8);const r=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,o=this[++t]+256*this[++t]+65536*this[++t]+n*2**24;return BigInt(r)+(BigInt(o)<>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||H(t,this.length-8);const r=e*2**24+65536*this[++t]+256*this[++t]+this[++t],o=this[++t]*2**24+65536*this[++t]+256*this[++t]+n;return(BigInt(r)<>>=0,e>>>=0,n||N(t,e,this.length);let r=this[t],o=1,i=0;for(;++i=o&&(r-=Math.pow(2,8*e)),r},c.prototype.readIntBE=function(t,e,n){t>>>=0,e>>>=0,n||N(t,e,this.length);let r=e,o=1,i=this[t+--r];for(;r>0&&(o*=256);)i+=this[t+--r]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*e)),i},c.prototype.readInt8=function(t,e){return t>>>=0,e||N(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},c.prototype.readInt16LE=function(t,e){t>>>=0,e||N(t,2,this.length);const n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(t,e){t>>>=0,e||N(t,2,this.length);const n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(t,e){return t>>>=0,e||N(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},c.prototype.readInt32BE=function(t,e){return t>>>=0,e||N(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},c.prototype.readBigInt64LE=Q(function(t){V(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||H(t,this.length-8);const r=this[t+4]+256*this[t+5]+65536*this[t+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||H(t,this.length-8);const r=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(r)<>>=0,e||N(t,4,this.length),o.read(this,t,!0,23,4)},c.prototype.readFloatBE=function(t,e){return t>>>=0,e||N(t,4,this.length),o.read(this,t,!1,23,4)},c.prototype.readDoubleLE=function(t,e){return t>>>=0,e||N(t,8,this.length),o.read(this,t,!0,52,8)},c.prototype.readDoubleBE=function(t,e){return t>>>=0,e||N(t,8,this.length),o.read(this,t,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(t,e,n,r){t=+t,e>>>=0,n>>>=0,r||P(this,t,e,n,Math.pow(2,8*n)-1,0);let o=1,i=0;for(this[e]=255&t;++i>>=0,n>>>=0,r||P(this,t,e,n,Math.pow(2,8*n)-1,0);let o=n-1,i=1;for(this[e+o]=255&t;--o>=0&&(i*=256);)this[e+o]=t/i&255;return e+n},c.prototype.writeUint8=c.prototype.writeUInt8=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,1,255,0),this[e]=255&t,e+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},c.prototype.writeBigUInt64LE=Q(function(t,e=0){return B(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Q(function(t,e=0){return U(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e>>>=0,!r){const r=Math.pow(2,8*n-1);P(this,t,e,n,r-1,-r)}let o=0,i=1,s=0;for(this[e]=255&t;++o>>=0,!r){const r=Math.pow(2,8*n-1);P(this,t,e,n,r-1,-r)}let o=n-1,i=1,s=0;for(this[e+o]=255&t;--o>=0&&(i*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/i|0)-s&255;return e+n},c.prototype.writeInt8=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},c.prototype.writeInt16LE=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},c.prototype.writeInt16BE=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},c.prototype.writeInt32LE=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},c.prototype.writeInt32BE=function(t,e,n){return t=+t,e>>>=0,n||P(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},c.prototype.writeBigInt64LE=Q(function(t,e=0){return B(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Q(function(t,e=0){return U(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeFloatLE=function(t,e,n){return M(this,t,e,!0,n)},c.prototype.writeFloatBE=function(t,e,n){return M(this,t,e,!1,n)},c.prototype.writeDoubleLE=function(t,e,n){return D(this,t,e,!0,n)},c.prototype.writeDoubleBE=function(t,e,n){return D(this,t,e,!1,n)},c.prototype.copy=function(t,e,n,r){if(!c.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(o=e;o=r+4;n-=3)e=`_${t.slice(n-3,n)}${e}`;return`${t.slice(0,n)}${e}`}function q(t,e,n,r,o,i){if(t>n||t3?0===e||e===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(i+1)}${r}`:`>= -(2${r} ** ${8*(i+1)-1}${r}) and < 2 ** ${8*(i+1)-1}${r}`:`>= ${e}${r} and <= ${n}${r}`,new F.ERR_OUT_OF_RANGE("value",o,t)}!function(t,e,n){V(e,"offset"),void 0!==t[e]&&void 0!==t[e+n]||H(e,t.length-(n+1))}(r,o,i)}function V(t,e){if("number"!=typeof t)throw new F.ERR_INVALID_ARG_TYPE(e,"number",t)}function H(t,e,n){if(Math.floor(t)!==t)throw V(t,n),new F.ERR_OUT_OF_RANGE(n||"offset","an integer",t);if(e<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${e}`,t)}j("ERR_BUFFER_OUT_OF_BOUNDS",function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),j("ERR_INVALID_ARG_TYPE",function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`},TypeError),j("ERR_OUT_OF_RANGE",function(t,e,n){let r=`The value of "${t}" is out of range.`,o=n;return Number.isInteger(n)&&Math.abs(n)>2**32?o=$(String(n)):"bigint"==typeof n&&(o=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(o=$(o)),o+="n"),r+=` It must be ${e}. Received ${o}`,r},RangeError);const z=/[^+/0-9A-Za-z-_]/g;function G(t,e){let n;e=e||1/0;const r=t.length;let o=null;const i=[];for(let s=0;s55295&&n<57344){if(!o){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(e-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((e-=1)<0)break;i.push(n)}else if(n<2048){if((e-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function W(t){return r.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(z,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function X(t,e,n,r){let o;for(o=0;o=e.length||o>=t.length);++o)e[o+n]=t[o];return o}function J(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function K(t){return t!=t}const Y=function(){const t="0123456789abcdef",e=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let o=0;o<16;++o)e[r+o]=t[n]+t[o]}return e}();function Q(t){return"undefined"==typeof BigInt?Z:t}function Z(){throw new Error("BigInt not supported")}},8506(t,e,n){"use strict";n.d(e,{A:()=>a});var r=n(1354),o=n.n(r),i=n(6314),s=n.n(i)()(o());s.push([t.id,".setup-confirmation__secret[data-v-59b7bea7]{word-break:break-all}","",{version:3,sources:["webpack://./src/components/SetupConfirmation.vue"],names:[],mappings:"AAEC,6CACC,oBAAA",sourceRoot:""}]);const a=s},6461(t,e,n){"use strict";n.d(e,{A:()=>a});var r=n(1354),o=n.n(r),i=n(6314),s=n.n(i)()(o());s.push([t.id,"\n.loading[data-v-14a6b63c] {\n\tmin-height: 50px;\n}\n","",{version:3,sources:["webpack://./src/components/LoginSetup.vue"],names:[],mappings:";AAkFA;CACC,gBAAgB;AACjB",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = new Uint8Array(encodeUtf8(data))\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/**\n* @vue/shared v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver) && 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.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = 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 setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n pauseTracking();\n try {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } finally {\n resetTracking();\n }\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const {\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 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 patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!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}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n 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 let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n 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 cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n\n","'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","'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","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","'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","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 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 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 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\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","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","/**\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 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\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\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 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","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\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","// eslint-disable-next-line strict\nexport default null;\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","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","'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","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-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: 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-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 { 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: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\nexport const saveState = async (data) => {\n\tconst url = generateUrl('/apps/twofactor_totp/settings/enable')\n\n\tconst resp = await Axios.post(url, data)\n\treturn resp.data\n}\n","\n\n\n\n\n\n\n","/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */\nimport { defineComponent, h } from 'vue';\nimport { toString, toDataURL, toCanvas } from 'qrcode';\n\nconst EVENT_READY = 'ready';\r\nvar index = defineComponent({\r\n name: 'VueQrcode',\r\n props: {\r\n /**\r\n * The value of the QR code.\r\n */\r\n value: {\r\n type: String,\r\n default: undefined,\r\n },\r\n /**\r\n * The options for the QR code generator.\r\n * {@link https://github.com/soldair/node-qrcode#qr-code-options}\r\n */\r\n options: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n /**\r\n * The tag name of the component's root element.\r\n */\r\n tag: {\r\n type: String,\r\n default: 'canvas',\r\n },\r\n },\r\n emits: [EVENT_READY],\r\n watch: {\r\n $props: {\r\n deep: true,\r\n immediate: true,\r\n /**\r\n * Update the QR code when props changed.\r\n */\r\n handler() {\r\n if (this.$el) {\r\n this.generate();\r\n }\r\n },\r\n },\r\n },\r\n mounted() {\r\n this.generate();\r\n },\r\n methods: {\r\n /**\r\n * Generate QR code.\r\n */\r\n generate() {\r\n const options = this.options || {};\r\n const value = String(this.value);\r\n const done = () => {\r\n this.$emit(EVENT_READY, this.$el);\r\n };\r\n switch (this.tag) {\r\n case 'canvas':\r\n toCanvas(this.$el, value, options, (error) => {\r\n if (error) {\r\n throw error;\r\n }\r\n done();\r\n });\r\n break;\r\n case 'img':\r\n toDataURL(value, options, (error, url) => {\r\n if (error) {\r\n throw error;\r\n }\r\n this.$el.src = url;\r\n this.$el.onload = done;\r\n });\r\n break;\r\n case 'svg':\r\n toString(value, options, (error, string) => {\r\n if (error) {\r\n throw error;\r\n }\r\n const div = document.createElement('div');\r\n div.innerHTML = string;\r\n const svg = div.querySelector('svg');\r\n if (svg) {\r\n const { attributes, childNodes } = svg;\r\n Object.keys(attributes).forEach((key) => {\r\n const attribute = attributes[Number(key)];\r\n this.$el.setAttribute(attribute.name, attribute.value);\r\n });\r\n Object.keys(childNodes).forEach((key) => {\r\n const childNode = childNodes[Number(key)];\r\n this.$el.appendChild(childNode.cloneNode(true));\r\n });\r\n done();\r\n }\r\n });\r\n break;\r\n }\r\n },\r\n },\r\n render() {\r\n return h(this.tag, this.$slots.default);\r\n },\r\n});\n\nexport { index as default };\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./SetupConfirmation.vue?vue&type=template&id=59b7bea7&scoped=true\"\nimport script from \"./SetupConfirmation.vue?vue&type=script&lang=js\"\nexport * from \"./SetupConfirmation.vue?vue&type=script&lang=js\"\n\nimport \"./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-59b7bea7\"]])\n\nexport default __exports__","/*\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default Object.freeze({\n\tSTATE_DISABLED: 0,\n\tSTATE_CREATED: 1,\n\tSTATE_ENABLED: 2,\n})\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./LoginSetup.vue?vue&type=style&index=0&id=14a6b63c&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./LoginSetup.vue?vue&type=style&index=0&id=14a6b63c&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./LoginSetup.vue?vue&type=template&id=14a6b63c&scoped=true\"\nimport script from \"./LoginSetup.vue?vue&type=script&lang=js\"\nexport * from \"./LoginSetup.vue?vue&type=script&lang=js\"\n\nimport \"./LoginSetup.vue?vue&type=style&index=0&id=14a6b63c&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-14a6b63c\"]])\n\nexport default __exports__","/*\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport Logger from './logger.js'\nimport LoginSetup from './components/LoginSetup.vue'\n\nLogger.debug('rendering login setup view')\nconst app = createApp(LoginSetup)\napp.mixin({ methods: { t } })\napp.mount('#twofactor-totp-login-setup')\nLogger.debug('login setup view rendered')\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","tripletToBase64","num","start","end","output","base64","ieee754","customInspectSymbol","Symbol","Buffer","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","___CSS_LOADER_EXPORT___","module","id","cssWithMappingToString","map","item","content","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","cssMapping","btoa","unescape","encodeURIComponent","JSON","stringify","sourceMapping","dijkstra","single_source_shortest_paths","graph","s","d","predecessors","costs","closest","u","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","hasOwnProperty","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","opts","key","T","t","queue","sorter","default_sorter","sort","shift","result","index","point","second","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","isNaN","log","LN2","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","args","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","text","cb","argsNum","isLastArgCb","getContext","Promise","resolve","reject","create","bind","render","renderToDataURL","_","then","getSymbolSize","getRowColCoords","posCount","intervals","ceil","positions","getPositions","coords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","mode","ALPHANUMERIC","getBitsLength","getLength","bitBuffer","put","BitBuffer","bufIndex","putBit","getLengthInBits","bit","BitMatrix","reservedBit","row","col","reserved","xor","isReserved","encodeUtf8","ByteData","BYTE","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","EXP_TABLE","LOG_TABLE","exp","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","getMaskAt","maskPattern","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","keys","bestPattern","lowerPenalty","p","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","group","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","matrix","bits","createSymbol","segments","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","forEach","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","encode","r","createCodewords","createData","moduleCount","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","options","toSJISFunc","setToSJISFunction","Polynomial","genPoly","initialize","paddedData","remainder","buff","numeric","kanji","byte","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","test","getStringByteLength","getSegments","regex","exec","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","s1","s2","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","reduce","acc","seg","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","node","lastCount","prevNodeId","buildGraph","path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","f","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","document","createElement","getCanvasElement","getOptions","getImageWidth","ctx","image","createImageData","qrToImageData","clearRect","width","height","style","clearCanvas","putImageData","rendererOpts","toDataURL","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","hex2rgba","hexCode","hexValue","g","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","debug","MAX_LENGTH","MAX_SAFE_INTEGER","safeRe","re","parseOptions","compareIdentifiers","SemVer","loose","includePrerelease","match","LOOSE","FULL","raw","major","minor","patch","prerelease","build","format","other","compareMain","comparePre","compareBuild","release","identifier","identifierBase","startsWith","PRERELEASELOOSE","PRERELEASE","base","throwErrors","er","parse","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","NODE_DEBUG","anum","bnum","rcompareIdentifiers","looseOption","freeze","emptyOpts","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","BUILD","FULLPLAIN","MAINVERSIONLOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","stylesInDOM","getIndexByIdentifier","modulesToDom","idCountMap","identifiers","count","indexByIdentifier","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","insert","styleTarget","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","appendChild","element","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","sfc","props","__vccOpts","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","globalThis","Function","prop","toStringTag","nc","makeMap","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","assign","el","hasOwn","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","catch","objectToString","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","cache","camelizeRE","camelize","toUpperCase","hyphenateRE","hyphenate","capitalize","charAt","toHandlerKey","hasChanged","oldValue","is","invokeArrayFns","fns","def","looseToNumber","parseFloat","_globalThis","getGlobalThis","self","normalizeStyle","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","normalizeClass","isSpecialBooleanAttr","includeBooleanAttr","looseEqual","aValidType","bValidType","getTime","equal","looseCompareArrays","aHasKey","bHasKey","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","values","_a","description","activeEffectScope","activeSub","EffectScope","detached","_active","_on","effects","cleanups","_isPaused","_warnOnRun","__v_skip","active","parent","scopes","pause","resume","currentEffectScope","prevScope","current","stop","fromParent","pausedQueueEffects","WeakSet","ReactiveEffect","deps","depsTail","flags","next","cleanup","scheduler","has","delete","trigger","notify","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","nextDep","removeSub","onStop","add","runIfDirty","isDirty","dirty","batchedSub","batchedComputed","batchDepth","isComputed","startBatch","endBatch","err","prevActiveLink","dep","activeLink","tail","prev","prevDep","removeDep","computed","refreshComputed","_dirty","globalVersion","isSSR","prevSub","_value","soft","nextSub","subs","sc","trackStack","pauseTracking","resetTracking","Link","Dep","track","debugInfo","addSub","currentTail","targetMap","WeakMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","depsMap","Map","newValue","oldTarget","targetIsArray","isArrayIndex","newLength","key2","reactiveReadArray","toRaw","isShallow","toReactive","shallowReadArray","toWrapped","isReadonly","isReactive","toReadonly","arrayInstrumentations","__proto__","iterator","every","thisArg","filter","find","findIndex","findLast","findLastIndex","searchProxy","separator","noTracking","reduceRight","some","toReversed","toSorted","comparer","toSpliced","unshift","method","wrapValue","iter","_next","done","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","wrapInitialAccumulator","isProxy","isNonTrackableKeys","builtInSymbols","Set","getOwnPropertyNames","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","getPrototypeOf","Reflect","readonly","reactive","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","deleteProperty","ownKeys","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","createReadonlyMethod","createInstrumentationGetter","shallow","instrumentations","rawTarget","rawKey","wrap","callback","observed","clear","rawValue","valueToAdd","hadItems","targetIsMap","isPair","isKeyOnly","innerIterator","createIterableMethod","createInstrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","isExtensible","existingProxy","targetType","rawType","targetTypeMap","proxy","Proxy","shallowUnwrapHandlers","ref2","proxyRefs","objectWithRefs","ComputedRefImpl","setter","__v_isRef","effect","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","traverse","depth","seen","getOwnPropertySymbols","propertyIsEnumerable","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","throwInDev","vnode","errorHandler","throwUnhandledErrorInProduction","appContext","config","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","contextVNode","throwInProd","logError","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","queueJob","job","jobId","getId","lastJob","middle","middleJob","middleJobId","findInsertionIndex","queueFlush","flushJobs","flushPreFlushCbs","uid","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","withDirectives","directives","getComponentPublicInstance","bindings","dirs","modifiers","mounted","updated","deep","invokeDirectiveHook","prevVNode","oldBindings","hook","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","provides","_context","ce","ssrContextKey","for","source","doWatch","immediate","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","__watcherHandles","watchStopHandle","currentInstance","isPre","queuePostRenderEffect","suspense","isFirstRun","augmentJob","watchHandle","reactiveGetter","source2","boundCleanup","forceTrigger","isMultiSource","currentEffect","baseGetter","scope","_cb","immediateFirstRun","currentWatcher","cleanupFn","failSilently","owner","onWatcherCleanup","cleanup2","watch","instanceWatch","publicThis","createPathGetter","handler","reset","setCurrentInstance","TeleportEndKey","leaveCbKey","setTransitionHooks","hooks","shapeFlag","component","transition","subTree","ssContent","clone","ssFallback","markAsyncBoundary","ids","isTemplateRefKey","refs","desc","getOwnPropertyDescriptor","Boolean","pendingSetRefMap","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","isAsyncWrapper","__asyncResolved","refValue","ref","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","newVal","pendingSetRef","requestIdleCallback","cancelIdleCallback","__asyncLoader","isKeepAlive","__isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","isDeactivated","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","createHook","lifecycle","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","resolveComponent","maybeSelfReference","warnMissing","Component","selfName","includeInferred","displayName","__name","getComponentName","resolveAsset","NULL_DYNAMIC_COMPONENT","registry","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","attrs","$slots","slots","$refs","$parent","$root","root","$host","$emit","$options","resolveMergedOptions","$forceUpdate","$nextTick","$watch","hasSetupBinding","state","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","cssModules","descriptor","normalizePropsOrEmits","callHook","h","createWatcher","mixins","extends","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","cached","resolved","mergeOptions","to","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","emits","methods","mergeObjectOptions","beforeCreate","mergeAsArray","created","beforeMount","beforeUpdate","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","components","merged","provide","normalizeInject","createAppContext","app","isNativeTag","performance","warnHandler","compilerOptions","propsCache","emitsCache","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","_uid","_component","_props","_container","_instance","use","plugin","install","mixin","directive","mount","rootContainer","isHydrate","namespace","_ceVNode","createVNode","__vue_app__","onUnmount","unmount","runWithContext","lastApp","event","rawArgs","isUnmounted","modelName","modelModifiers","getModelModifiers","handlerName","number","onceHandler","emitted","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","renderComponentRoot","withProxy","propsOptions","renderCache","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","Comment","filterModelListeners","cloneVNode","hasPropsChanged","prevProps","nextProps","emitsOptions","nextKeys","hasPropValueChanged","nextProp","prevProp","internalObjectProto","createInternalObject","isInternalObject","setFullProps","rawProps","needCastKeys","rawCastValues","hasAttrsChanged","camelKey","rawCurrentProps","castValues","resolvePropValue","isAbsent","opt","hasDefault","default","skipFactory","propsDefaults","_setProp","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","withCtx","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","children","assignSlots","optimized","pendingBranch","baseCreateRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","patchProp","hostPatchProp","hostCreateElement","createText","hostCreateText","createComment","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","nextSibling","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","n1","n2","container","anchor","parentComponent","slotScopeIds","dynamicChildren","isSameVNodeType","getNextHostNode","patchFlag","Text","processText","processCommentNode","Static","mountStaticNode","Fragment","processFragment","processElement","processComponent","internals","mountElement","customElement","_isVueCE","_beginPatch","patchElement","_endPatch","vnodeHook","mountChildren","resolveChildrenNamespace","scopeId","onVnodeBeforeMount","invokeVNodeHook","needCallTransitionHooks","persisted","needTransition","beforeEnter","onVnodeMounted","enter","isSuspense","parentVNode","child","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","innerHTML","textContent","patchBlockChildren","patchChildren","patchProps","class","propsToUpdate","dynamicProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","activate","mountComponent","updateComponent","initialVNode","emptyAppContext","exposed","exposeProxy","setupContext","suspenseId","pendingId","asyncDep","asyncResolved","bc","bm","bu","um","bum","da","rtg","rtc","sp","createComponentInstance","renderer","setInSSRSetupState","isStateful","initProps","initSlots","setupResult","setup","expose","attrsProxyHandlers","createSetupContext","isAsyncSetup","unsetCurrentInstance","resolvedResult","handleSetupResult","finishComponentSetup","setupStatefulComponent","setupComponent","registerDep","setupRenderEffect","placeholder","nextVNode","prevChildren","nextChildren","$stable","shouldUpdateComponent","updateComponentPreRender","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","activeBranch","updateHOCHostEl","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","__asyncHydrate","_hasShadowRoot","_injectChildStyle","scopedInitialVNode","rawPrevProps","kebabKey","camelizedKey","updateProps","needDeletionCheck","deletionComparisonTarget","updateSlots","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","arrI","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","wasLeaving","_isLeaving","moveStaticNode","doRemove","cacheIndex","deactivate","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","hasOnce","shouldInvalidateMemo","onVnodeUnmounted","removeFragment","removeStaticNode","performRemove","invalidateMount","teleportEnd","isFlushing","_vnode","mt","mc","pc","pbc","createApp","currentNamespace","allowed","ch1","ch2","subComponent","anchorVnode","__isSuspense","currentBlock","openBlock","disableTracking","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","isVNode","__v_isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","targetAnchor","staticCount","normalizeChildren","normalize","cloned","guardReactiveProps","klass","__isTeleport","isTeleport","extraProps","mergeRef","cloneTransition","mergedProps","toMerge","incoming","mergeProps","createTextVNode","flag","slot","slotFlag","internalSetCurrentInstance","registerGlobalSetter","setters","compile","installWithProxy","__ssrInlineRender","ssrRender","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","filters","resolveInjections","methodHandler","parentProvides","registerLifecycleHook","register","_hook","applyOptions","getterOrOptions","debugOptions","policy","tt","trustedTypes","createPolicy","createHTML","unsafeToTrustedHTML","doc","templateContainer","nodeOps","insertBefore","tag","createElementNS","multiple","nodeValue","selector","before","previousSibling","lastChild","cloneNode","wrapper","vtcKey","vShowOriginalDisplay","vShowHidden","CSS_VAR_TEXT","displayRE","importantRE","setStyle","setProperty","prefixed","rawName","prefixCache","prefixes","autoPrefix","shouldPreserveTextareaResizeStyle","tagName","xlinkNS","patchAttr","isSVG","isBoolean","removeAttributeNS","setAttributeNS","removeAttribute","patchDOMProp","attrName","getAttribute","needRemove","addEventListener","veiKey","optionsModifierRE","optionsModifierEventRE","cachedNow","getNow","Date","now","isNativeOn","HTMLElement","getModelAssigner","onCompositionStart","composing","onCompositionEnd","dispatchEvent","Event","assignKey","castValue","vModelText","lazy","castToNumber","rootNode","getRootNode","Document","ShadowRoot","activeElement","rendererOptions","prevValue","nextValue","transitionClasses","className","patchClass","isCssString","hasControlledDisplay","prevStyle","cssVarText","display","patchStyle","invokers","existingInvoker","parseName","invoker","initialValue","_vts","attached","originalStop","stopImmediatePropagation","_stopped","handlers","createInvoker","removeEventListener","patchEvent","shouldSetAsProp","_def","shouldSetAsPropForVueCE","_trueValue","_falseValue","ProxyBus","bus","bus2","getVersion","valid","warn","subscribe","unsubscribe","SimpleBus","getBus","OC","_eventBus","_nc_event_bus","_generateUrlPath","url","params","allOptions","escape","vars","generateUrl","noRewrite","baseOrRootURL","baseURL","webroot","_oc_webroot","location","pathname","getRootUrl","modRewriteWorking","ScopedStorage","static","wrapped","persistent","GLOBAL_SCOPE_PERSISTENT","GLOBAL_SCOPE_VOLATILE","scopeKey","setItem","getItem","removeItem","setRequestToken","cause","_nc_auth_requestToken","dataset","requesttoken","_internal","currentUser","attribute","getCurrentUser","getElementsByTagName","isAdmin","_oc_isadmin","appId","clearedOnLogout","persist","clearOnLogout","localStorage","sessionStorage","LogLevel","LogLevel2","ConsoleLogger","formatMessage","Debug","Info","info","Warn","Fatal","fatal","buildConsoleLogger","LoggerBuilder","factory","setApp","setLogLevel","setUid","detectUser","user","detectLogLevel","onLoaded","readyState","_oc_config","loglevel","_oc_debug","builder","hasOwnInPrototypeChain","thing","kindOf","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isNumber","isFile","isBlob","isFileList","G","FormDataCtor","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","random","callbacks","asap","queueMicrotask","isIterable","isFormData","append","kind","isArrayBufferView","isEmptyObject","isReactNativeBlob","uri","isReactNative","formData","getParts","isRegExp","isStream","pipe","merge","objs","caseless","skipUndefined","assignValue","targetKey","symbols","symbol","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","position","lastIndex","toArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","hasOwnProp","getSafeProp","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toCamelCase","toFiniteNumber","global","isSpecCompliantForm","toJSONObject","visited","visit","reducedValue","isThenable","isSafeIterable","ignoreDuplicateOf","utils","INVALID_UNICODE_HEADER_VALUE_CHARS","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","trimSPorHTAB","toByteStringHeaderObject","headers","byteStringHeaders","header","sanitizeByteStringHeaderValue","$internals","normalizeHeader","normalizeValue","sanitizeHeaderValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","substring","parseHeaders","dest","entry","parser","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","w","char","formatHeader","targets","asStrings","getSetCookie","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","AxiosError","request","response","customProps","axiosError","status","isAxiosError","redactKeys","redact","serializedConfig","lowerKeys","hasOwnOrPrototypeToJSON","redactConfig","fileName","lineNumber","columnNumber","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","throwIfMaxDepthExceeded","ancestors","currentValue","stringifyWithDepthLimit","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","_options","serialize","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","advertiseZstdAcceptEncoding","validateStatusUndefinedResolves","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","href","throwIfDepthExceeded","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","own","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","platform","helpers","isNode","toURLEncodedForm","_FormData","stringifySafely","transformResponse","responseType","JSONRequested","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","transformData","isCancel","__CANCEL__","settle","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","round","lastArgs","timer","timestamp","threshold","invoke","loaded","rawLoaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isMSIE","URL","protocol","host","port","userAgent","expires","domain","secure","sameSite","cookie","toUTCString","cookies","eq","decodeURIComponent","malformedHttpProtocol","httpProtocolControlCharacters","assertValidHttpProtocolURL","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","allowedSocketPaths","responseEncoding","configValue","transitional2","transitional1","getMergedTransitionalOption","FORM_DATA_CONTENT_HEADERS","newConfig","auth","username","password","getHeaders","formHeaders","setFormDataHeaders","isURLSameOrigin","xsrfValue","XMLHttpRequest","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","setRequestHeader","upload","cancel","abort","aborted","parseProtocol","send","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","trackStream","stream","onProgress","onFinish","async","iterable","asyncIterator","reader","getReader","readStream","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isHexDigit","charCode","isPercentEncodedByte","VERSION","decodeURIComponentSafe","globalObject","TextEncoder","Request","Response","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","body","duplex","hasContentType","supportsResponseStream","resolvers","getBodyLength","_request","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","toAbortSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","protocolIndex","urlToCheck","maybeWithAuthCredentials","parsedURL","comma","meta","effectiveLen","pad","idx","tailIsPct3D","estimateDataURLDecodedBytes","outboundLength","mustEnforceStreamBody","trackRequestStream","getContentLength","resolveBodyLength","contentTypeHeader","isCredentialsSupported","resolvedOptions","credentials","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","networkError","seedCache","getFetch","seeds","seed","knownAdapters","http","xhr","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","CanceledError","toFormData","Cancel","all","promises","spread","payload","formToJSON","getAdapter","RETRY_KEY","RETRY_DELAY_KEY","cancelableClient","client","observer","onRequestTokenUpdate","getCancelableClient","ok","json","fetchRequestToken","onCsrfTokenError","retryDelay","retryIfMaintenanceMode","onMaintenanceModeError","reloadExpiredSession","reload","saveState","post","EVENT_READY","extraOptions","defineComponent","generate","onload","div","svg","childNodes","childNode","propsOrChildren","QR","loading","secret","required","qrUrl","confirmation","confirmationCode","confirm","onConfirmKeyDown","locals","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_toDisplayString","_createVNode","_component_QR","$event","minlength","maxlength","autocomplete","inputmode","autocapitalize","disabled","onKeydown","_cache","onClick","STATE_DISABLED","STATE_CREATED","STATE_ENABLED","SetupConfirmation","confirmationLoading","load","Logger","STATE","confirmForm","submit","_component_SetupConfirmation","onConfirm","createRenderer","containerOrSelector","normalizeContainer","nodeType","SVGElement","MathMLElement","resolveRootNamespace","Element","LoginSetup"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"twofactor_totp-main-login-setup.js?v=a794319905356b646dbc","mappings":"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","sources":["webpack:///twofactor_totp/node_modules/base64-js/index.js","webpack:///twofactor_totp/node_modules/buffer/index.js","webpack:///twofactor_totp/src/components/SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true","webpack:///twofactor_totp/src/components/LoginSetup.vue?vue&type=style&index=0&id=14a6b63c&scoped=true&lang=css","webpack:///twofactor_totp/node_modules/css-loader/dist/runtime/api.js","webpack:///twofactor_totp/node_modules/css-loader/dist/runtime/sourceMaps.js","webpack:///twofactor_totp/node_modules/dijkstrajs/dijkstra.js","webpack:///twofactor_totp/node_modules/encode-utf8/index.js","webpack:///twofactor_totp/node_modules/ieee754/index.js","webpack:///twofactor_totp/node_modules/process/browser.js","webpack:///twofactor_totp/node_modules/qrcode/lib/browser.js","webpack:///twofactor_totp/node_modules/qrcode/lib/can-promise.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/alignment-pattern.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/alphanumeric-data.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/bit-buffer.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/bit-matrix.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/byte-data.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/error-correction-code.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/error-correction-level.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/finder-pattern.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/format-info.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/galois-field.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/kanji-data.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/mask-pattern.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/mode.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/numeric-data.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/polynomial.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/qrcode.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/regex.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/segments.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/utils.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/version-check.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/version.js","webpack:///twofactor_totp/node_modules/qrcode/lib/renderer/canvas.js","webpack:///twofactor_totp/node_modules/qrcode/lib/renderer/svg-tag.js","webpack:///twofactor_totp/node_modules/qrcode/lib/renderer/utils.js","webpack:///twofactor_totp/node_modules/semver/classes/semver.js","webpack:///twofactor_totp/node_modules/semver/functions/major.js","webpack:///twofactor_totp/node_modules/semver/functions/parse.js","webpack:///twofactor_totp/node_modules/semver/functions/valid.js","webpack:///twofactor_totp/node_modules/semver/internal/constants.js","webpack:///twofactor_totp/node_modules/semver/internal/debug.js","webpack:///twofactor_totp/node_modules/semver/internal/identifiers.js","webpack:///twofactor_totp/node_modules/semver/internal/parse-options.js","webpack:///twofactor_totp/node_modules/semver/internal/re.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///twofactor_totp/node_modules/vue-loader/dist/exportHelper.js","webpack:///twofactor_totp/webpack/bootstrap","webpack:///twofactor_totp/webpack/runtime/compat get default export","webpack:///twofactor_totp/webpack/runtime/define property getters","webpack:///twofactor_totp/webpack/runtime/global","webpack:///twofactor_totp/webpack/runtime/hasOwnProperty shorthand","webpack:///twofactor_totp/webpack/runtime/make namespace object","webpack:///twofactor_totp/webpack/runtime/nonce","webpack:///twofactor_totp/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///twofactor_totp/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///twofactor_totp/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///twofactor_totp/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///twofactor_totp/node_modules/@nextcloud/event-bus/dist/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/router/dist/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","webpack:///twofactor_totp/node_modules/@nextcloud/auth/dist/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/browser-storage/dist/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","webpack:///twofactor_totp/node_modules/@nextcloud/logger/dist/index.mjs","webpack:///twofactor_totp/src/logger.js","webpack:///twofactor_totp/src/components/LoginSetup.vue","webpack:///twofactor_totp/node_modules/axios/lib/helpers/bind.js","webpack:///twofactor_totp/node_modules/axios/lib/utils.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/sanitizeHeaderValue.js","webpack:///twofactor_totp/node_modules/axios/lib/core/AxiosHeaders.js","webpack:///twofactor_totp/node_modules/axios/lib/core/AxiosError.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/toFormData.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/buildURL.js","webpack:///twofactor_totp/node_modules/axios/lib/core/InterceptorManager.js","webpack:///twofactor_totp/node_modules/axios/lib/defaults/transitional.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/browser/index.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/browser/classes/FormData.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/browser/classes/Blob.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/common/utils.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/index.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/formDataToJSON.js","webpack:///twofactor_totp/node_modules/axios/lib/defaults/index.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack:///twofactor_totp/node_modules/axios/lib/core/transformData.js","webpack:///twofactor_totp/node_modules/axios/lib/cancel/isCancel.js","webpack:///twofactor_totp/node_modules/axios/lib/cancel/CanceledError.js","webpack:///twofactor_totp/node_modules/axios/lib/core/settle.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/speedometer.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/progressEventReducer.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/throttle.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/cookies.js","webpack:///twofactor_totp/node_modules/axios/lib/core/buildFullPath.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/combineURLs.js","webpack:///twofactor_totp/node_modules/axios/lib/core/mergeConfig.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/resolveConfig.js","webpack:///twofactor_totp/node_modules/axios/lib/adapters/xhr.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/parseProtocol.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/composeSignals.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/trackStream.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","webpack:///twofactor_totp/node_modules/axios/lib/env/data.js","webpack:///twofactor_totp/node_modules/axios/lib/adapters/fetch.js","webpack:///twofactor_totp/node_modules/axios/lib/adapters/adapters.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/null.js","webpack:///twofactor_totp/node_modules/axios/lib/core/dispatchRequest.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/validator.js","webpack:///twofactor_totp/node_modules/axios/lib/core/Axios.js","webpack:///twofactor_totp/node_modules/axios/lib/cancel/CancelToken.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack:///twofactor_totp/node_modules/axios/lib/axios.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/spread.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/isAxiosError.js","webpack:///twofactor_totp/node_modules/axios/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/interceptors/csrf-token.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/interceptors/maintenance-mode.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/client.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/interceptors/not-logged-in.js","webpack:///twofactor_totp/src/services/StateService.js","webpack:///twofactor_totp/src/components/SetupConfirmation.vue","webpack:///twofactor_totp/node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.esm.js","webpack://twofactor_totp/./src/components/SetupConfirmation.vue?697b","webpack://twofactor_totp/./src/components/SetupConfirmation.vue?64ca","webpack:///twofactor_totp/src/state.js","webpack://twofactor_totp/./src/components/LoginSetup.vue?3fdc","webpack://twofactor_totp/./src/components/LoginSetup.vue?de63","webpack:///twofactor_totp/src/main-login-setup.js"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.setup-confirmation__secret[data-v-59b7bea7]{word-break:break-all}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/SetupConfirmation.vue\"],\"names\":[],\"mappings\":\"AAEC,6CACC,oBAAA\",\"sourcesContent\":[\"\\n.setup-confirmation {\\n\\t&__secret {\\n\\t\\tword-break: break-all;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.loading[data-v-14a6b63c] {\n\tmin-height: 50px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/LoginSetup.vue\"],\"names\":[],\"mappings\":\";AAkFA;CACC,gBAAgB;AACjB\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = new Uint8Array(encodeUtf8(data))\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/**\n* @vue/shared v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver) && 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.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = 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 setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n pauseTracking();\n try {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } finally {\n resetTracking();\n }\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const {\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 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 patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!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}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n 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 let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n 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 cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n\n","'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","'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","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","'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","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 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 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 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\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","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","/**\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 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\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\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 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","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\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","// eslint-disable-next-line strict\nexport default null;\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","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","'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","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-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: 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-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 { 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: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\nexport const saveState = async (data) => {\n\tconst url = generateUrl('/apps/twofactor_totp/settings/enable')\n\n\tconst resp = await Axios.post(url, data)\n\treturn resp.data\n}\n","\n\n\n\n\n\n\n","/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */\nimport { defineComponent, h } from 'vue';\nimport { toString, toDataURL, toCanvas } from 'qrcode';\n\nconst EVENT_READY = 'ready';\r\nvar index = defineComponent({\r\n name: 'VueQrcode',\r\n props: {\r\n /**\r\n * The value of the QR code.\r\n */\r\n value: {\r\n type: String,\r\n default: undefined,\r\n },\r\n /**\r\n * The options for the QR code generator.\r\n * {@link https://github.com/soldair/node-qrcode#qr-code-options}\r\n */\r\n options: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n /**\r\n * The tag name of the component's root element.\r\n */\r\n tag: {\r\n type: String,\r\n default: 'canvas',\r\n },\r\n },\r\n emits: [EVENT_READY],\r\n watch: {\r\n $props: {\r\n deep: true,\r\n immediate: true,\r\n /**\r\n * Update the QR code when props changed.\r\n */\r\n handler() {\r\n if (this.$el) {\r\n this.generate();\r\n }\r\n },\r\n },\r\n },\r\n mounted() {\r\n this.generate();\r\n },\r\n methods: {\r\n /**\r\n * Generate QR code.\r\n */\r\n generate() {\r\n const options = this.options || {};\r\n const value = String(this.value);\r\n const done = () => {\r\n this.$emit(EVENT_READY, this.$el);\r\n };\r\n switch (this.tag) {\r\n case 'canvas':\r\n toCanvas(this.$el, value, options, (error) => {\r\n if (error) {\r\n throw error;\r\n }\r\n done();\r\n });\r\n break;\r\n case 'img':\r\n toDataURL(value, options, (error, url) => {\r\n if (error) {\r\n throw error;\r\n }\r\n this.$el.src = url;\r\n this.$el.onload = done;\r\n });\r\n break;\r\n case 'svg':\r\n toString(value, options, (error, string) => {\r\n if (error) {\r\n throw error;\r\n }\r\n const div = document.createElement('div');\r\n div.innerHTML = string;\r\n const svg = div.querySelector('svg');\r\n if (svg) {\r\n const { attributes, childNodes } = svg;\r\n Object.keys(attributes).forEach((key) => {\r\n const attribute = attributes[Number(key)];\r\n this.$el.setAttribute(attribute.name, attribute.value);\r\n });\r\n Object.keys(childNodes).forEach((key) => {\r\n const childNode = childNodes[Number(key)];\r\n this.$el.appendChild(childNode.cloneNode(true));\r\n });\r\n done();\r\n }\r\n });\r\n break;\r\n }\r\n },\r\n },\r\n render() {\r\n return h(this.tag, this.$slots.default);\r\n },\r\n});\n\nexport { index as default };\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs/index.js??clonedRuleSet-2.use[2]!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs/index.js??clonedRuleSet-2.use[2]!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./SetupConfirmation.vue?vue&type=template&id=59b7bea7&scoped=true\"\nimport script from \"./SetupConfirmation.vue?vue&type=script&lang=js\"\nexport * from \"./SetupConfirmation.vue?vue&type=script&lang=js\"\n\nimport \"./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-59b7bea7\"]])\n\nexport default __exports__","/*\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default Object.freeze({\n\tSTATE_DISABLED: 0,\n\tSTATE_CREATED: 1,\n\tSTATE_ENABLED: 2,\n})\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./LoginSetup.vue?vue&type=style&index=0&id=14a6b63c&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./LoginSetup.vue?vue&type=style&index=0&id=14a6b63c&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./LoginSetup.vue?vue&type=template&id=14a6b63c&scoped=true\"\nimport script from \"./LoginSetup.vue?vue&type=script&lang=js\"\nexport * from \"./LoginSetup.vue?vue&type=script&lang=js\"\n\nimport \"./LoginSetup.vue?vue&type=style&index=0&id=14a6b63c&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-14a6b63c\"]])\n\nexport default __exports__","/*\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport Logger from './logger.js'\nimport LoginSetup from './components/LoginSetup.vue'\n\nLogger.debug('rendering login setup view')\nconst app = createApp(LoginSetup)\napp.mixin({ methods: { t } })\napp.mount('#twofactor-totp-login-setup')\nLogger.debug('login setup view rendered')\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","tripletToBase64","num","start","end","output","base64","ieee754","customInspectSymbol","Symbol","Buffer","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","___CSS_LOADER_EXPORT___","module","id","cssWithMappingToString","map","item","content","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","cssMapping","btoa","unescape","encodeURIComponent","JSON","stringify","sourceMapping","dijkstra","single_source_shortest_paths","graph","s","d","predecessors","costs","closest","u","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","hasOwnProperty","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","opts","key","T","t","queue","sorter","default_sorter","sort","shift","result","index","point","second","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","isNaN","log","LN2","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","args","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","text","cb","argsNum","isLastArgCb","getContext","Promise","resolve","reject","create","bind","render","renderToDataURL","_","then","getSymbolSize","getRowColCoords","posCount","intervals","ceil","positions","getPositions","coords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","mode","ALPHANUMERIC","getBitsLength","getLength","bitBuffer","put","BitBuffer","bufIndex","putBit","getLengthInBits","bit","BitMatrix","reservedBit","row","col","reserved","xor","isReserved","encodeUtf8","ByteData","BYTE","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","EXP_TABLE","LOG_TABLE","exp","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","getMaskAt","maskPattern","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","keys","bestPattern","lowerPenalty","p","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","group","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","matrix","bits","createSymbol","segments","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","forEach","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","encode","r","createCodewords","createData","moduleCount","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","options","toSJISFunc","setToSJISFunction","Polynomial","genPoly","initialize","paddedData","remainder","buff","numeric","kanji","byte","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","test","getStringByteLength","getSegments","regex","exec","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","s1","s2","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","reduce","acc","seg","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","node","lastCount","prevNodeId","buildGraph","path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","f","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","document","createElement","getCanvasElement","getOptions","getImageWidth","ctx","image","createImageData","qrToImageData","clearRect","width","height","style","clearCanvas","putImageData","rendererOpts","toDataURL","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","hex2rgba","hexCode","hexValue","g","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","debug","MAX_LENGTH","MAX_SAFE_INTEGER","safeRe","re","parseOptions","compareIdentifiers","SemVer","loose","includePrerelease","match","LOOSE","FULL","raw","major","minor","patch","prerelease","build","format","other","compareMain","comparePre","compareBuild","release","identifier","identifierBase","startsWith","PRERELEASELOOSE","PRERELEASE","base","throwErrors","er","parse","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","NODE_DEBUG","anum","bnum","rcompareIdentifiers","looseOption","freeze","emptyOpts","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","BUILD","FULLPLAIN","MAINVERSIONLOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","stylesInDOM","getIndexByIdentifier","modulesToDom","idCountMap","identifiers","count","indexByIdentifier","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","insert","styleTarget","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","appendChild","element","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","sfc","props","__vccOpts","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","globalThis","Function","prop","toStringTag","nc","makeMap","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","assign","el","hasOwn","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","catch","objectToString","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","cache","camelizeRE","camelize","toUpperCase","hyphenateRE","hyphenate","capitalize","charAt","toHandlerKey","hasChanged","oldValue","is","invokeArrayFns","fns","def","looseToNumber","parseFloat","_globalThis","getGlobalThis","self","normalizeStyle","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","normalizeClass","isSpecialBooleanAttr","includeBooleanAttr","looseEqual","aValidType","bValidType","getTime","equal","looseCompareArrays","aHasKey","bHasKey","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","values","_a","description","activeEffectScope","activeSub","EffectScope","detached","_active","_on","effects","cleanups","_isPaused","_warnOnRun","__v_skip","active","parent","scopes","pause","resume","currentEffectScope","prevScope","current","stop","fromParent","pausedQueueEffects","WeakSet","ReactiveEffect","deps","depsTail","flags","next","cleanup","scheduler","has","delete","trigger","notify","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","nextDep","removeSub","onStop","add","runIfDirty","isDirty","dirty","batchedSub","batchedComputed","batchDepth","isComputed","startBatch","endBatch","err","prevActiveLink","dep","activeLink","tail","prev","prevDep","removeDep","computed","refreshComputed","_dirty","globalVersion","isSSR","prevSub","_value","soft","nextSub","subs","sc","trackStack","pauseTracking","resetTracking","Link","Dep","track","debugInfo","addSub","currentTail","targetMap","WeakMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","depsMap","Map","newValue","oldTarget","targetIsArray","isArrayIndex","newLength","key2","reactiveReadArray","toRaw","isShallow","toReactive","shallowReadArray","toWrapped","isReadonly","isReactive","toReadonly","arrayInstrumentations","__proto__","iterator","every","thisArg","filter","find","findIndex","findLast","findLastIndex","searchProxy","separator","noTracking","reduceRight","some","toReversed","toSorted","comparer","toSpliced","unshift","method","wrapValue","iter","_next","done","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","wrapInitialAccumulator","isProxy","isNonTrackableKeys","builtInSymbols","Set","getOwnPropertyNames","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","getPrototypeOf","Reflect","readonly","reactive","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","deleteProperty","ownKeys","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","createReadonlyMethod","createInstrumentationGetter","shallow","instrumentations","rawTarget","rawKey","wrap","callback","observed","clear","rawValue","valueToAdd","hadItems","targetIsMap","isPair","isKeyOnly","innerIterator","createIterableMethod","createInstrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","isExtensible","existingProxy","targetType","rawType","targetTypeMap","proxy","Proxy","shallowUnwrapHandlers","ref2","proxyRefs","objectWithRefs","ComputedRefImpl","setter","__v_isRef","effect","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","traverse","depth","seen","getOwnPropertySymbols","propertyIsEnumerable","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","throwInDev","vnode","errorHandler","throwUnhandledErrorInProduction","appContext","config","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","contextVNode","throwInProd","logError","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","queueJob","job","jobId","getId","lastJob","middle","middleJob","middleJobId","findInsertionIndex","queueFlush","flushJobs","flushPreFlushCbs","uid","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","withDirectives","directives","getComponentPublicInstance","bindings","dirs","modifiers","mounted","updated","deep","invokeDirectiveHook","prevVNode","oldBindings","hook","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","provides","_context","ce","ssrContextKey","for","source","doWatch","immediate","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","__watcherHandles","watchStopHandle","currentInstance","isPre","queuePostRenderEffect","suspense","isFirstRun","augmentJob","watchHandle","reactiveGetter","source2","boundCleanup","forceTrigger","isMultiSource","currentEffect","baseGetter","scope","_cb","immediateFirstRun","currentWatcher","cleanupFn","failSilently","owner","onWatcherCleanup","cleanup2","watch","instanceWatch","publicThis","createPathGetter","handler","reset","setCurrentInstance","TeleportEndKey","leaveCbKey","setTransitionHooks","hooks","shapeFlag","component","transition","subTree","ssContent","clone","ssFallback","markAsyncBoundary","ids","isTemplateRefKey","refs","desc","getOwnPropertyDescriptor","Boolean","pendingSetRefMap","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","isAsyncWrapper","__asyncResolved","refValue","ref","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","newVal","pendingSetRef","requestIdleCallback","cancelIdleCallback","__asyncLoader","isKeepAlive","__isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","isDeactivated","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","createHook","lifecycle","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","resolveComponent","maybeSelfReference","warnMissing","Component","selfName","includeInferred","displayName","__name","getComponentName","resolveAsset","NULL_DYNAMIC_COMPONENT","registry","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","attrs","$slots","slots","$refs","$parent","$root","root","$host","$emit","$options","resolveMergedOptions","$forceUpdate","$nextTick","$watch","hasSetupBinding","state","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","cssModules","descriptor","normalizePropsOrEmits","callHook","h","createWatcher","mixins","extends","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","cached","resolved","mergeOptions","to","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","emits","methods","mergeObjectOptions","beforeCreate","mergeAsArray","created","beforeMount","beforeUpdate","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","components","merged","provide","normalizeInject","createAppContext","app","isNativeTag","performance","warnHandler","compilerOptions","propsCache","emitsCache","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","_uid","_component","_props","_container","_instance","use","plugin","install","mixin","directive","mount","rootContainer","isHydrate","namespace","_ceVNode","createVNode","__vue_app__","onUnmount","unmount","runWithContext","lastApp","event","rawArgs","isUnmounted","modelName","modelModifiers","getModelModifiers","handlerName","number","onceHandler","emitted","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","renderComponentRoot","withProxy","propsOptions","renderCache","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","Comment","filterModelListeners","cloneVNode","hasPropsChanged","prevProps","nextProps","emitsOptions","nextKeys","hasPropValueChanged","nextProp","prevProp","internalObjectProto","createInternalObject","isInternalObject","setFullProps","rawProps","needCastKeys","rawCastValues","hasAttrsChanged","camelKey","rawCurrentProps","castValues","resolvePropValue","isAbsent","opt","hasDefault","default","skipFactory","propsDefaults","_setProp","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","withCtx","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","children","assignSlots","optimized","pendingBranch","baseCreateRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","patchProp","hostPatchProp","hostCreateElement","createText","hostCreateText","createComment","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","nextSibling","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","n1","n2","container","anchor","parentComponent","slotScopeIds","dynamicChildren","isSameVNodeType","getNextHostNode","patchFlag","Text","processText","processCommentNode","Static","mountStaticNode","Fragment","processFragment","processElement","processComponent","internals","mountElement","customElement","_isVueCE","_beginPatch","patchElement","_endPatch","vnodeHook","mountChildren","resolveChildrenNamespace","scopeId","onVnodeBeforeMount","invokeVNodeHook","needCallTransitionHooks","persisted","needTransition","beforeEnter","onVnodeMounted","enter","isSuspense","parentVNode","child","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","innerHTML","textContent","patchBlockChildren","patchChildren","patchProps","class","propsToUpdate","dynamicProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","activate","mountComponent","updateComponent","initialVNode","emptyAppContext","exposed","exposeProxy","setupContext","suspenseId","pendingId","asyncDep","asyncResolved","bc","bm","bu","um","bum","da","rtg","rtc","sp","createComponentInstance","renderer","setInSSRSetupState","isStateful","initProps","initSlots","setupResult","setup","expose","attrsProxyHandlers","createSetupContext","isAsyncSetup","unsetCurrentInstance","resolvedResult","handleSetupResult","finishComponentSetup","setupStatefulComponent","setupComponent","registerDep","setupRenderEffect","placeholder","nextVNode","prevChildren","nextChildren","$stable","shouldUpdateComponent","updateComponentPreRender","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","activeBranch","updateHOCHostEl","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","__asyncHydrate","_hasShadowRoot","_injectChildStyle","scopedInitialVNode","rawPrevProps","kebabKey","camelizedKey","updateProps","needDeletionCheck","deletionComparisonTarget","updateSlots","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","arrI","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","wasLeaving","_isLeaving","moveStaticNode","doRemove","cacheIndex","deactivate","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","hasOnce","shouldInvalidateMemo","onVnodeUnmounted","removeFragment","removeStaticNode","performRemove","invalidateMount","teleportEnd","isFlushing","_vnode","mt","mc","pc","pbc","createApp","currentNamespace","allowed","ch1","ch2","subComponent","anchorVnode","__isSuspense","currentBlock","openBlock","disableTracking","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","isVNode","__v_isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","targetAnchor","staticCount","normalizeChildren","normalize","cloned","guardReactiveProps","klass","__isTeleport","isTeleport","extraProps","mergeRef","cloneTransition","mergedProps","toMerge","incoming","mergeProps","createTextVNode","flag","slot","slotFlag","internalSetCurrentInstance","registerGlobalSetter","setters","compile","installWithProxy","__ssrInlineRender","ssrRender","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","filters","resolveInjections","methodHandler","parentProvides","registerLifecycleHook","register","_hook","applyOptions","getterOrOptions","debugOptions","policy","tt","trustedTypes","createPolicy","createHTML","unsafeToTrustedHTML","doc","templateContainer","nodeOps","insertBefore","tag","createElementNS","multiple","nodeValue","selector","before","previousSibling","lastChild","cloneNode","wrapper","vtcKey","vShowOriginalDisplay","vShowHidden","CSS_VAR_TEXT","displayRE","importantRE","setStyle","setProperty","prefixed","rawName","prefixCache","prefixes","autoPrefix","shouldPreserveTextareaResizeStyle","tagName","xlinkNS","patchAttr","isSVG","isBoolean","removeAttributeNS","setAttributeNS","removeAttribute","patchDOMProp","attrName","getAttribute","needRemove","addEventListener","veiKey","optionsModifierRE","optionsModifierEventRE","cachedNow","getNow","Date","now","isNativeOn","HTMLElement","getModelAssigner","onCompositionStart","composing","onCompositionEnd","dispatchEvent","Event","assignKey","castValue","vModelText","lazy","castToNumber","rootNode","getRootNode","Document","ShadowRoot","activeElement","rendererOptions","prevValue","nextValue","transitionClasses","className","patchClass","isCssString","hasControlledDisplay","prevStyle","cssVarText","display","patchStyle","invokers","existingInvoker","parseName","invoker","initialValue","_vts","attached","originalStop","stopImmediatePropagation","_stopped","handlers","createInvoker","removeEventListener","patchEvent","shouldSetAsProp","_def","shouldSetAsPropForVueCE","_trueValue","_falseValue","ProxyBus","bus","bus2","getVersion","valid","warn","subscribe","unsubscribe","SimpleBus","getBus","OC","_eventBus","_nc_event_bus","_generateUrlPath","url","params","allOptions","escape","vars","generateUrl","noRewrite","baseOrRootURL","baseURL","webroot","_oc_webroot","location","pathname","getRootUrl","modRewriteWorking","ScopedStorage","static","wrapped","persistent","GLOBAL_SCOPE_PERSISTENT","GLOBAL_SCOPE_VOLATILE","scopeKey","setItem","getItem","removeItem","setRequestToken","cause","_nc_auth_requestToken","dataset","requesttoken","_internal","currentUser","attribute","getCurrentUser","getElementsByTagName","isAdmin","_oc_isadmin","appId","clearedOnLogout","persist","clearOnLogout","localStorage","sessionStorage","LogLevel","LogLevel2","ConsoleLogger","formatMessage","Debug","Info","info","Warn","Fatal","fatal","buildConsoleLogger","LoggerBuilder","factory","setApp","setLogLevel","setUid","detectUser","user","detectLogLevel","onLoaded","readyState","_oc_config","loglevel","_oc_debug","builder","hasOwnInPrototypeChain","thing","kindOf","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isNumber","isFile","isBlob","isFileList","G","FormDataCtor","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","random","callbacks","asap","queueMicrotask","isIterable","isFormData","append","kind","isArrayBufferView","isEmptyObject","isReactNativeBlob","uri","isReactNative","formData","getParts","isRegExp","isStream","pipe","merge","objs","caseless","skipUndefined","assignValue","targetKey","symbols","symbol","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","position","lastIndex","toArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","hasOwnProp","getSafeProp","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toCamelCase","toFiniteNumber","global","isSpecCompliantForm","toJSONObject","visited","visit","reducedValue","isThenable","isSafeIterable","ignoreDuplicateOf","utils","INVALID_UNICODE_HEADER_VALUE_CHARS","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","trimSPorHTAB","toByteStringHeaderObject","headers","byteStringHeaders","header","sanitizeByteStringHeaderValue","$internals","normalizeHeader","normalizeValue","sanitizeHeaderValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","substring","parseHeaders","dest","entry","parser","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","w","char","formatHeader","targets","asStrings","getSetCookie","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","AxiosError","request","response","customProps","axiosError","status","isAxiosError","redactKeys","redact","serializedConfig","lowerKeys","hasOwnOrPrototypeToJSON","redactConfig","fileName","lineNumber","columnNumber","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","throwIfMaxDepthExceeded","ancestors","currentValue","stringifyWithDepthLimit","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","_options","serialize","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","advertiseZstdAcceptEncoding","validateStatusUndefinedResolves","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","href","throwIfDepthExceeded","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","own","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","platform","helpers","isNode","toURLEncodedForm","_FormData","stringifySafely","transformResponse","responseType","JSONRequested","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","transformData","isCancel","__CANCEL__","settle","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","round","lastArgs","timer","timestamp","threshold","invoke","loaded","rawLoaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isMSIE","URL","protocol","host","port","userAgent","expires","domain","secure","sameSite","cookie","toUTCString","cookies","eq","decodeURIComponent","malformedHttpProtocol","httpProtocolControlCharacters","assertValidHttpProtocolURL","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","allowedSocketPaths","responseEncoding","configValue","transitional2","transitional1","getMergedTransitionalOption","FORM_DATA_CONTENT_HEADERS","newConfig","auth","username","password","getHeaders","formHeaders","setFormDataHeaders","isURLSameOrigin","xsrfValue","XMLHttpRequest","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","setRequestHeader","upload","cancel","abort","aborted","parseProtocol","send","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","trackStream","stream","onProgress","onFinish","async","iterable","asyncIterator","reader","getReader","readStream","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isHexDigit","charCode","isPercentEncodedByte","VERSION","decodeURIComponentSafe","globalObject","TextEncoder","Request","Response","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","body","duplex","hasContentType","supportsResponseStream","resolvers","getBodyLength","_request","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","toAbortSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","protocolIndex","urlToCheck","maybeWithAuthCredentials","parsedURL","comma","meta","effectiveLen","pad","idx","tailIsPct3D","estimateDataURLDecodedBytes","outboundLength","mustEnforceStreamBody","trackRequestStream","getContentLength","resolveBodyLength","contentTypeHeader","isCredentialsSupported","resolvedOptions","credentials","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","networkError","seedCache","getFetch","seeds","seed","knownAdapters","http","xhr","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","CanceledError","toFormData","Cancel","all","promises","spread","payload","formToJSON","getAdapter","RETRY_KEY","RETRY_DELAY_KEY","cancelableClient","client","observer","onRequestTokenUpdate","getCancelableClient","ok","json","fetchRequestToken","onCsrfTokenError","retryDelay","retryIfMaintenanceMode","onMaintenanceModeError","reloadExpiredSession","reload","saveState","post","EVENT_READY","extraOptions","defineComponent","generate","onload","div","svg","childNodes","childNode","propsOrChildren","QR","loading","secret","required","qrUrl","confirmation","confirmationCode","confirm","onConfirmKeyDown","locals","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_toDisplayString","_createVNode","_component_QR","$event","minlength","maxlength","autocomplete","inputmode","autocapitalize","disabled","onKeydown","_cache","onClick","STATE_DISABLED","STATE_CREATED","STATE_ENABLED","SetupConfirmation","confirmationLoading","load","Logger","STATE","confirmForm","submit","_component_SetupConfirmation","onConfirm","createRenderer","containerOrSelector","normalizeContainer","nodeType","SVGElement","MathMLElement","resolveRootNamespace","Element","LoginSetup"],"sourceRoot":""} \ No newline at end of file diff --git a/js/twofactor_totp-main-settings.js b/js/twofactor_totp-main-settings.js index ec2c39a71..b87388ff2 100644 --- a/js/twofactor_totp-main-settings.js +++ b/js/twofactor_totp-main-settings.js @@ -1,2 +1,2 @@ -(()=>{var e={7526(e,t){"use strict";t.byteLength=function(e){var t=a(e),n=t[0],o=t[1];return 3*(n+o)/4-o},t.toByteArray=function(e){var t,n,i=a(e),s=i[0],l=i[1],c=new r(function(e,t,n){return 3*(t+n)/4-n}(0,s,l)),u=0,d=l>0?s-4:s;for(n=0;n>16&255,c[u++]=t>>8&255,c[u++]=255&t;return 2===l&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[u++]=255&t),1===l&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t),c},t.fromByteArray=function(e){for(var t,o=e.length,r=o%3,i=[],s=16383,a=0,l=o-r;al?l:a+s));return 1===r?(t=e[o-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===r&&(t=(e[o-2]<<8)+e[o-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),i.join("")};for(var n=[],o=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=i[s],o[i.charCodeAt(s)]=s;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e){return n[e>>18&63]+n[e>>12&63]+n[e>>6&63]+n[63&e]}function c(e,t,n){for(var o,r=[],i=t;is)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return c(e,t,n)}function c(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|g(e,t);let o=a(n);const r=o.write(e,t);return r!==n&&(o=o.slice(0,r)),o}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){const t=new Uint8Array(e);return f(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer))return f(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return f(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const o=e.valueOf&&e.valueOf();if(null!=o&&o!==e)return l.from(o,t,n);const r=function(e){if(l.isBuffer(e)){const t=0|h(e.length),n=a(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||K(e.length)?a(0):p(e):"Buffer"===e.type&&Array.isArray(e.data)?p(e.data):void 0}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return u(e),a(e<0?0:0|h(e))}function p(e){const t=e.length<0?0:0|h(e.length),n=a(t);for(let o=0;o=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function g(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===n)return 0;let r=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return V(e).length;default:if(r)return o?-1:W(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){let o=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return S(this,t,n);case"ascii":return B(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return x(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,n);default:if(o)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),o=!0}}function v(e,t,n){const o=e[t];e[t]=e[n],e[n]=o}function A(e,t,n,o,r){if(0===e.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),K(n=+n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=l.from(t,o)),l.isBuffer(t))return 0===t.length?-1:b(e,t,n,o,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,o,r);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,o,r){let i,s=1,a=e.length,l=t.length;if(void 0!==o&&("ucs2"===(o=String(o).toLowerCase())||"ucs-2"===o||"utf16le"===o||"utf-16le"===o)){if(e.length<2||t.length<2)return-1;s=2,a/=2,l/=2,n/=2}function c(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(r){let o=-1;for(i=n;ia&&(n=a-l),i=n;i>=0;i--){let n=!0;for(let o=0;or&&(o=r):o=r;const i=t.length;let s;for(o>i/2&&(o=i/2),s=0;s>8,r=n%256,i.push(r),i.push(o);return i}(t,e.length-n),e,n,o)}function x(e,t,n){return 0===t&&n===e.length?o.fromByteArray(e):o.fromByteArray(e.slice(t,n))}function S(e,t,n){n=Math.min(e.length,n);const o=[];let r=t;for(;r239?4:t>223?3:t>191?2:1;if(r+s<=n){let n,o,a,l;switch(s){case 1:t<128&&(i=t);break;case 2:n=e[r+1],128==(192&n)&&(l=(31&t)<<6|63&n,l>127&&(i=l));break;case 3:n=e[r+1],o=e[r+2],128==(192&n)&&128==(192&o)&&(l=(15&t)<<12|(63&n)<<6|63&o,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:n=e[r+1],o=e[r+2],a=e[r+3],128==(192&n)&&128==(192&o)&&128==(192&a)&&(l=(15&t)<<18|(63&n)<<12|(63&o)<<6|63&a,l>65535&&l<1114112&&(i=l))}}null===i?(i=65533,s=1):i>65535&&(i-=65536,o.push(i>>>10&1023|55296),i=56320|1023&i),o.push(i),r+=s}return function(e){const t=e.length;if(t<=k)return String.fromCharCode.apply(String,e);let n="",o=0;for(;oo.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(o,r)):Uint8Array.prototype.set.call(o,t,r);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(o,r)}r+=t.length}return o},l.byteLength=g,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},i&&(l.prototype[i]=l.prototype.inspect),l.prototype.compare=function(e,t,n,o,r){if(Y(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===o&&(o=0),void 0===r&&(r=this.length),t<0||n>e.length||o<0||r>this.length)throw new RangeError("out of range index");if(o>=r&&t>=n)return 0;if(o>=r)return-1;if(t>=n)return 1;if(this===e)return 0;let i=(r>>>=0)-(o>>>=0),s=(n>>>=0)-(t>>>=0);const a=Math.min(i,s),c=this.slice(o,r),u=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===o&&(o="utf8")):(o=n,n=void 0)}const r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");o||(o="utf8");let i=!1;for(;;)switch(o){case"hex":return y(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":case"latin1":case"binary":return C(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+o);o=(""+o).toLowerCase(),i=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const k=4096;function B(e,t,n){let o="";n=Math.min(e.length,n);for(let r=t;ro)&&(n=o);let r="";for(let o=t;on)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,o,r,i){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function R(e,t,n,o,r){U(t,o,r,e,n,7);let i=Number(t&BigInt(4294967295));e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,n}function I(e,t,n,o,r){U(t,o,r,e,n,7);let i=Number(t&BigInt(4294967295));e[n+7]=i,i>>=8,e[n+6]=i,i>>=8,e[n+5]=i,i>>=8,e[n+4]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=s,s>>=8,e[n+2]=s,s>>=8,e[n+1]=s,s>>=8,e[n]=s,n+8}function D(e,t,n,o,r,i){if(n+o>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function F(e,t,n,o,i){return t=+t,n>>>=0,i||D(e,0,n,4),r.write(e,t,n,o,23,4),n+4}function j(e,t,n,o,i){return t=+t,n>>>=0,i||D(e,0,n,8),r.write(e,t,n,o,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||O(e,t,this.length);let o=this[e],r=1,i=0;for(;++i>>=0,t>>>=0,n||O(e,t,this.length);let o=this[e+--t],r=1;for(;t>0&&(r*=256);)o+=this[e+--t]*r;return o},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=J(function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const o=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,r=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(o)+(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const o=t*2**24+65536*this[++e]+256*this[++e]+this[++e],r=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(o)<>>=0,t>>>=0,n||O(e,t,this.length);let o=this[e],r=1,i=0;for(;++i=r&&(o-=Math.pow(2,8*t)),o},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||O(e,t,this.length);let o=t,r=1,i=this[e+--o];for(;o>0&&(r*=256);)i+=this[e+--o]*r;return r*=128,i>=r&&(i-=Math.pow(2,8*t)),i},l.prototype.readInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||O(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||O(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=J(function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const o=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(o)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const o=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(o)<>>=0,t||O(e,4,this.length),r.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||O(e,4,this.length),r.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||O(e,8,this.length),r.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||O(e,8,this.length),r.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,o){e=+e,t>>>=0,n>>>=0,o||L(this,e,t,n,Math.pow(2,8*n)-1,0);let r=1,i=0;for(this[t]=255&e;++i>>=0,n>>>=0,o||L(this,e,t,n,Math.pow(2,8*n)-1,0);let r=n-1,i=1;for(this[t+r]=255&e;--r>=0&&(i*=256);)this[t+r]=e/i&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=J(function(e,t=0){return R(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeBigUInt64BE=J(function(e,t=0){return I(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeIntLE=function(e,t,n,o){if(e=+e,t>>>=0,!o){const o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}let r=0,i=1,s=0;for(this[t]=255&e;++r>>=0,!o){const o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}let r=n-1,i=1,s=0;for(this[t+r]=255&e;--r>=0&&(i*=256);)e<0&&0===s&&0!==this[t+r+1]&&(s=1),this[t+r]=(e/i|0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=J(function(e,t=0){return R(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),l.prototype.writeBigInt64BE=J(function(e,t=0){return I(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),l.prototype.writeFloatLE=function(e,t,n){return F(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return F(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return j(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,o){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),o||0===o||(o=this.length),t>=e.length&&(t=e.length),t||(t=0),o>0&&o=this.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(r=t;r=o+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function U(e,t,n,o,r,i){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${o} and < 2${o} ** ${8*(i+1)}${o}`:`>= -(2${o} ** ${8*(i+1)-1}${o}) and < 2 ** ${8*(i+1)-1}${o}`:`>= ${t}${o} and <= ${n}${o}`,new $.ERR_OUT_OF_RANGE("value",r,e)}!function(e,t,n){H(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||q(t,e.length-(n+1))}(o,r,i)}function H(e,t){if("number"!=typeof e)throw new $.ERR_INVALID_ARG_TYPE(t,"number",e)}function q(e,t,n){if(Math.floor(e)!==e)throw H(e,n),new $.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new $.ERR_BUFFER_OUT_OF_BOUNDS;throw new $.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}M("ERR_BUFFER_OUT_OF_BOUNDS",function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),M("ERR_INVALID_ARG_TYPE",function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`},TypeError),M("ERR_OUT_OF_RANGE",function(e,t,n){let o=`The value of "${e}" is out of range.`,r=n;return Number.isInteger(n)&&Math.abs(n)>2**32?r=z(String(n)):"bigint"==typeof n&&(r=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(r=z(r)),r+="n"),o+=` It must be ${t}. Received ${r}`,o},RangeError);const G=/[^+/0-9A-Za-z-_]/g;function W(e,t){let n;t=t||1/0;const o=e.length;let r=null;const i=[];for(let s=0;s55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===o){(t-=3)>-1&&i.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&i.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function V(e){return o.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(G,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function X(e,t,n,o){let r;for(r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}function Y(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function K(e){return e!=e}const Z=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const o=16*n;for(let r=0;r<16;++r)t[o+r]=e[n]+e[r]}return t}();function J(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},4076(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"\n._passwordDialog_joix2_2 {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px 0;\n\tmargin-inline: 6px;\n\tmargin-block-end: 6px;\n}\n","",{version:3,sources:["webpack://./node_modules/@nextcloud/password-confirmation/dist/style.css"],names:[],mappings:";AACA;CACC,aAAa;CACb,sBAAsB;CACtB,WAAW;CACX,kBAAkB;CAClB,qBAAqB;AACtB",sourcesContent:["\n._passwordDialog_joix2_2 {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px 0;\n\tmargin-inline: 6px;\n\tmargin-block-end: 6px;\n}\n"],sourceRoot:""}]);const a=s},5307(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-5f7eed6b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-items[data-v-5f7eed6b] {\n display: flex;\n align-items: center;\n gap: calc((var(--default-clickable-area) - 16px) / 2 / 2);\n}\n.action-item[data-v-5f7eed6b] {\n --open-background-color: var(--color-background-hover, $action-background-hover);\n position: relative;\n display: inline-block;\n}\n.action-item.action-item--primary[data-v-5f7eed6b] {\n --open-background-color: var(--color-primary-element-hover);\n}\n.action-item.action-item--secondary[data-v-5f7eed6b] {\n --open-background-color: var(--color-primary-element-light-hover);\n}\n.action-item.action-item--error[data-v-5f7eed6b] {\n --open-background-color: var(--color-error-hover);\n}\n.action-item.action-item--warning[data-v-5f7eed6b] {\n --open-background-color: var(--color-warning-hover);\n}\n.action-item.action-item--success[data-v-5f7eed6b] {\n --open-background-color: var(--color-success-hover);\n}\n.action-item.action-item--tertiary-no-background[data-v-5f7eed6b] {\n --open-background-color: transparent;\n}\n.action-item.action-item--open .action-item__menutoggle[data-v-5f7eed6b] {\n background-color: var(--open-background-color);\n}\n.action-item__menutoggle__icon[data-v-5f7eed6b] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper {\n border-radius: var(--border-radius-element);\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner {\n border-radius: var(--border-radius-element);\n padding: 4px;\n max-height: calc(100vh - var(--header-height));\n overflow: auto;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActions-DOI7rRa0.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,yDAAyD;AAC3D;AACA;EACE,gFAAgF;EAChF,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,2DAA2D;AAC7D;AACA;EACE,iEAAiE;AACnE;AACA;EACE,iDAAiD;AACnD;AACA;EACE,mDAAmD;AACrD;AACA;EACE,mDAAmD;AACrD;AACA;EACE,oCAAoC;AACtC;AACA;EACE,8CAA8C;AAChD;AACA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;EAC3C,YAAY;EACZ,8CAA8C;EAC9C,cAAc;AAChB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-5f7eed6b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-items[data-v-5f7eed6b] {\n display: flex;\n align-items: center;\n gap: calc((var(--default-clickable-area) - 16px) / 2 / 2);\n}\n.action-item[data-v-5f7eed6b] {\n --open-background-color: var(--color-background-hover, $action-background-hover);\n position: relative;\n display: inline-block;\n}\n.action-item.action-item--primary[data-v-5f7eed6b] {\n --open-background-color: var(--color-primary-element-hover);\n}\n.action-item.action-item--secondary[data-v-5f7eed6b] {\n --open-background-color: var(--color-primary-element-light-hover);\n}\n.action-item.action-item--error[data-v-5f7eed6b] {\n --open-background-color: var(--color-error-hover);\n}\n.action-item.action-item--warning[data-v-5f7eed6b] {\n --open-background-color: var(--color-warning-hover);\n}\n.action-item.action-item--success[data-v-5f7eed6b] {\n --open-background-color: var(--color-success-hover);\n}\n.action-item.action-item--tertiary-no-background[data-v-5f7eed6b] {\n --open-background-color: transparent;\n}\n.action-item.action-item--open .action-item__menutoggle[data-v-5f7eed6b] {\n background-color: var(--open-background-color);\n}\n.action-item__menutoggle__icon[data-v-5f7eed6b] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper {\n border-radius: var(--border-radius-element);\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner {\n border-radius: var(--border-radius-element);\n padding: 4px;\n max-height: calc(100vh - var(--header-height));\n overflow: auto;\n}"],sourceRoot:""}]);const a=s},1520(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-18f6cf03] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue[data-v-18f6cf03] {\n --button-size: var(--default-clickable-area);\n --button-inner-size: calc(var(--button-size) - 4px);\n --button-radius: var(--border-radius-element);\n --button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));\n --button-padding: var(--default-grid-baseline) var(--button-padding-default);\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n border: 1px solid var(--color-primary-element-light-hover);\n border-bottom-width: 2px;\n border-radius: var(--button-radius);\n box-sizing: border-box;\n position: relative;\n width: fit-content;\n overflow: hidden;\n padding-block: 1px 0;\n padding-inline: var(--button-padding);\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n align-items: center;\n justify-content: center;\n transition-property: color, border-color, background-color;\n transition-duration: 0.1s;\n transition-timing-function: linear;\n cursor: pointer;\n font-size: var(--default-font-size);\n font-weight: var(--font-weight-element, bold);\n}\n.button-vue--size-small[data-v-18f6cf03] {\n --button-size: var(--clickable-area-small);\n}\n.button-vue--size-large[data-v-18f6cf03] {\n --button-size: var(--clickable-area-large);\n}\n.button-vue[data-v-18f6cf03] * {\n cursor: pointer;\n}\n.button-vue[data-v-18f6cf03]:focus {\n outline: none;\n}\n.button-vue[data-v-18f6cf03]:disabled {\n filter: saturate(0.7);\n opacity: 0.5;\n cursor: default;\n}\n.button-vue[data-v-18f6cf03]:disabled * {\n cursor: default;\n}\n.button-vue[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue[data-v-18f6cf03]:active:not(:disabled) {\n background-color: var(--color-primary-element-light);\n}\n.button-vue__wrapper[data-v-18f6cf03] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n.button-vue--end .button-vue__wrapper[data-v-18f6cf03] {\n justify-content: end;\n}\n.button-vue--start .button-vue__wrapper[data-v-18f6cf03] {\n justify-content: start;\n}\n.button-vue--reverse .button-vue__wrapper[data-v-18f6cf03] {\n flex-direction: row-reverse;\n}\n.button-vue--reverse[data-v-18f6cf03] {\n --button-padding: var(--button-padding-default) var(--default-grid-baseline);\n}\n.button-vue__icon[data-v-18f6cf03] {\n --default-clickable-area: var(--button-inner-size);\n height: var(--button-inner-size);\n width: var(--button-inner-size);\n min-height: var(--button-inner-size);\n min-width: var(--button-inner-size);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.button-vue__icon[data-v-18f6cf03]:empty {\n display: none;\n}\n.button-vue--size-small .button-vue__icon[data-v-18f6cf03] > * {\n max-height: 16px;\n max-width: 16px;\n}\n.button-vue--size-small .button-vue__icon[data-v-18f6cf03] svg {\n height: 16px;\n width: 16px;\n}\n.button-vue__text[data-v-18f6cf03] {\n font-weight: var(--font-weight-element, bold);\n margin-bottom: 1px;\n padding: 2px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.button-vue__text[data-v-18f6cf03]:empty {\n display: none;\n}\n.button-vue[data-v-18f6cf03]:has(.button-vue__text:empty) {\n --button-padding: var(--button-radius);\n line-height: 1;\n width: var(--button-size) !important;\n}\n.button-vue[data-v-18f6cf03]:has(.button-vue__icon:empty) {\n --button-padding: var(--button-padding-default);\n}\n.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-18f6cf03] {\n padding-inline: var(--default-grid-baseline);\n}\n.button-vue--wide[data-v-18f6cf03] {\n width: 100%;\n}\n.button-vue[data-v-18f6cf03]:focus-visible {\n outline: 2px solid var(--color-main-text) !important;\n box-shadow: 0 0 0 4px var(--color-main-background) !important;\n}\n.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-18f6cf03] {\n outline: 2px solid var(--color-primary-element-text);\n border-radius: var(--border-radius-element);\n background-color: transparent;\n}\n.button-vue--primary[data-v-18f6cf03] {\n background-color: var(--color-primary-element);\n border-color: var(--color-primary-element-hover);\n color: var(--color-primary-element-text);\n}\n.button-vue--primary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-primary-element-hover);\n}\n.button-vue--primary[data-v-18f6cf03]:active {\n background-color: var(--color-primary-element);\n}\n.button-vue--secondary[data-v-18f6cf03] {\n background-color: var(--color-primary-element-light);\n border-color: var(--color-primary-element-light-hover);\n color: var(--color-primary-element-light-text);\n}\n.button-vue--secondary[data-v-18f6cf03]:hover:not(:disabled) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue--tertiary[data-v-18f6cf03] {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-main-text);\n}\n.button-vue--tertiary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-background-hover);\n}\n.button-vue--tertiary[data-v-18f6cf03]:not(.button-vue--legacy34):hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--color-primary-element) 8%, transparent);\n}\n.button-vue--tertiary-no-background[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--tertiary-on-primary[data-v-18f6cf03] {\n color: var(--color-primary-element-text);\n}\n.button-vue--tertiary-on-primary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--success[data-v-18f6cf03] {\n border-color: var(--color-success-hover);\n background-color: var(--color-success);\n color: var(--color-success-text);\n}\n.button-vue--success[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-success-hover);\n}\n.button-vue--success[data-v-18f6cf03]:active {\n background-color: var(--color-success);\n}\n.button-vue--warning[data-v-18f6cf03] {\n border-color: var(--color-warning-hover);\n background-color: var(--color-warning);\n color: var(--color-warning-text);\n}\n.button-vue--warning[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-warning-hover);\n}\n.button-vue--warning[data-v-18f6cf03]:active {\n background-color: var(--color-warning);\n}\n.button-vue--error[data-v-18f6cf03] {\n border-color: var(--color-error-hover);\n background-color: var(--color-error);\n color: var(--color-error-text);\n}\n.button-vue--error[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-error-hover);\n}\n.button-vue--error[data-v-18f6cf03]:active {\n background-color: var(--color-error);\n}\n.button-vue--legacy[data-v-18f6cf03] {\n --button-inner-size: var(--button-size);\n border: none;\n padding-block: 0;\n}\n.button-vue--legacy.button-vue--error[data-v-18f6cf03], .button-vue--legacy.button-vue--success[data-v-18f6cf03], .button-vue--legacy.button-vue--warning[data-v-18f6cf03] {\n color: white;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcButton-Bf9wuDV-.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,4CAA4C;EAC5C,mDAAmD;EACnD,6CAA6C;EAC7C,mFAAmF;EACnF,4EAA4E;EAC5E,8CAA8C;EAC9C,oDAAoD;EACpD,0DAA0D;EAC1D,wBAAwB;EACxB,mCAAmC;EACnC,sBAAsB;EACtB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,oBAAoB;EACpB,qCAAqC;EACrC,8BAA8B;EAC9B,6BAA6B;EAC7B,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,0DAA0D;EAC1D,yBAAyB;EACzB,kCAAkC;EAClC,eAAe;EACf,mCAAmC;EACnC,6CAA6C;AAC/C;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,oDAAoD;AACtD;AACA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;AACb;AACA;EACE,oBAAoB;AACtB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,4EAA4E;AAC9E;AACA;EACE,kDAAkD;EAClD,gCAAgC;EAChC,+BAA+B;EAC/B,oCAAoC;EACpC,mCAAmC;EACnC,aAAa;EACb,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,YAAY;EACZ,WAAW;AACb;AACA;EACE,6CAA6C;EAC7C,kBAAkB;EAClB,cAAc;EACd,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,sCAAsC;EACtC,cAAc;EACd,oCAAoC;AACtC;AACA;EACE,+CAA+C;AACjD;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,WAAW;AACb;AACA;EACE,oDAAoD;EACpD,6DAA6D;AAC/D;AACA;EACE,oDAAoD;EACpD,2CAA2C;EAC3C,6BAA6B;AAC/B;AACA;EACE,8CAA8C;EAC9C,gDAAgD;EAChD,wCAAwC;AAC1C;AACA;EACE,oDAAoD;AACtD;AACA;EACE,8CAA8C;AAChD;AACA;EACE,oDAAoD;EACpD,sDAAsD;EACtD,8CAA8C;AAChD;AACA;EACE,8CAA8C;EAC9C,0DAA0D;AAC5D;AACA;EACE,6BAA6B;EAC7B,yBAAyB;EACzB,6BAA6B;AAC/B;AACA;EACE,+CAA+C;AACjD;AACA;EACE,kFAAkF;AACpF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;EACxC,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,sCAAsC;AACxC;AACA;EACE,wCAAwC;EACxC,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,sCAAsC;AACxC;AACA;EACE,sCAAsC;EACtC,oCAAoC;EACpC,8BAA8B;AAChC;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,oCAAoC;AACtC;AACA;EACE,uCAAuC;EACvC,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,YAAY;AACd",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-18f6cf03] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue[data-v-18f6cf03] {\n --button-size: var(--default-clickable-area);\n --button-inner-size: calc(var(--button-size) - 4px);\n --button-radius: var(--border-radius-element);\n --button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));\n --button-padding: var(--default-grid-baseline) var(--button-padding-default);\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n border: 1px solid var(--color-primary-element-light-hover);\n border-bottom-width: 2px;\n border-radius: var(--button-radius);\n box-sizing: border-box;\n position: relative;\n width: fit-content;\n overflow: hidden;\n padding-block: 1px 0;\n padding-inline: var(--button-padding);\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n align-items: center;\n justify-content: center;\n transition-property: color, border-color, background-color;\n transition-duration: 0.1s;\n transition-timing-function: linear;\n cursor: pointer;\n font-size: var(--default-font-size);\n font-weight: var(--font-weight-element, bold);\n}\n.button-vue--size-small[data-v-18f6cf03] {\n --button-size: var(--clickable-area-small);\n}\n.button-vue--size-large[data-v-18f6cf03] {\n --button-size: var(--clickable-area-large);\n}\n.button-vue[data-v-18f6cf03] * {\n cursor: pointer;\n}\n.button-vue[data-v-18f6cf03]:focus {\n outline: none;\n}\n.button-vue[data-v-18f6cf03]:disabled {\n filter: saturate(0.7);\n opacity: 0.5;\n cursor: default;\n}\n.button-vue[data-v-18f6cf03]:disabled * {\n cursor: default;\n}\n.button-vue[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue[data-v-18f6cf03]:active:not(:disabled) {\n background-color: var(--color-primary-element-light);\n}\n.button-vue__wrapper[data-v-18f6cf03] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n.button-vue--end .button-vue__wrapper[data-v-18f6cf03] {\n justify-content: end;\n}\n.button-vue--start .button-vue__wrapper[data-v-18f6cf03] {\n justify-content: start;\n}\n.button-vue--reverse .button-vue__wrapper[data-v-18f6cf03] {\n flex-direction: row-reverse;\n}\n.button-vue--reverse[data-v-18f6cf03] {\n --button-padding: var(--button-padding-default) var(--default-grid-baseline);\n}\n.button-vue__icon[data-v-18f6cf03] {\n --default-clickable-area: var(--button-inner-size);\n height: var(--button-inner-size);\n width: var(--button-inner-size);\n min-height: var(--button-inner-size);\n min-width: var(--button-inner-size);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.button-vue__icon[data-v-18f6cf03]:empty {\n display: none;\n}\n.button-vue--size-small .button-vue__icon[data-v-18f6cf03] > * {\n max-height: 16px;\n max-width: 16px;\n}\n.button-vue--size-small .button-vue__icon[data-v-18f6cf03] svg {\n height: 16px;\n width: 16px;\n}\n.button-vue__text[data-v-18f6cf03] {\n font-weight: var(--font-weight-element, bold);\n margin-bottom: 1px;\n padding: 2px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.button-vue__text[data-v-18f6cf03]:empty {\n display: none;\n}\n.button-vue[data-v-18f6cf03]:has(.button-vue__text:empty) {\n --button-padding: var(--button-radius);\n line-height: 1;\n width: var(--button-size) !important;\n}\n.button-vue[data-v-18f6cf03]:has(.button-vue__icon:empty) {\n --button-padding: var(--button-padding-default);\n}\n.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-18f6cf03] {\n padding-inline: var(--default-grid-baseline);\n}\n.button-vue--wide[data-v-18f6cf03] {\n width: 100%;\n}\n.button-vue[data-v-18f6cf03]:focus-visible {\n outline: 2px solid var(--color-main-text) !important;\n box-shadow: 0 0 0 4px var(--color-main-background) !important;\n}\n.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-18f6cf03] {\n outline: 2px solid var(--color-primary-element-text);\n border-radius: var(--border-radius-element);\n background-color: transparent;\n}\n.button-vue--primary[data-v-18f6cf03] {\n background-color: var(--color-primary-element);\n border-color: var(--color-primary-element-hover);\n color: var(--color-primary-element-text);\n}\n.button-vue--primary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-primary-element-hover);\n}\n.button-vue--primary[data-v-18f6cf03]:active {\n background-color: var(--color-primary-element);\n}\n.button-vue--secondary[data-v-18f6cf03] {\n background-color: var(--color-primary-element-light);\n border-color: var(--color-primary-element-light-hover);\n color: var(--color-primary-element-light-text);\n}\n.button-vue--secondary[data-v-18f6cf03]:hover:not(:disabled) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue--tertiary[data-v-18f6cf03] {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-main-text);\n}\n.button-vue--tertiary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-background-hover);\n}\n.button-vue--tertiary[data-v-18f6cf03]:not(.button-vue--legacy34):hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--color-primary-element) 8%, transparent);\n}\n.button-vue--tertiary-no-background[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--tertiary-on-primary[data-v-18f6cf03] {\n color: var(--color-primary-element-text);\n}\n.button-vue--tertiary-on-primary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--success[data-v-18f6cf03] {\n border-color: var(--color-success-hover);\n background-color: var(--color-success);\n color: var(--color-success-text);\n}\n.button-vue--success[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-success-hover);\n}\n.button-vue--success[data-v-18f6cf03]:active {\n background-color: var(--color-success);\n}\n.button-vue--warning[data-v-18f6cf03] {\n border-color: var(--color-warning-hover);\n background-color: var(--color-warning);\n color: var(--color-warning-text);\n}\n.button-vue--warning[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-warning-hover);\n}\n.button-vue--warning[data-v-18f6cf03]:active {\n background-color: var(--color-warning);\n}\n.button-vue--error[data-v-18f6cf03] {\n border-color: var(--color-error-hover);\n background-color: var(--color-error);\n color: var(--color-error-text);\n}\n.button-vue--error[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-error-hover);\n}\n.button-vue--error[data-v-18f6cf03]:active {\n background-color: var(--color-error);\n}\n.button-vue--legacy[data-v-18f6cf03] {\n --button-inner-size: var(--button-size);\n border: none;\n padding-block: 0;\n}\n.button-vue--legacy.button-vue--error[data-v-18f6cf03], .button-vue--legacy.button-vue--success[data-v-18f6cf03], .button-vue--legacy.button-vue--warning[data-v-18f6cf03] {\n color: white;\n}"],sourceRoot:""}]);const a=s},2429(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/** When having the small dialog style we override the modal styling so dialogs look more dialog like */\n@media only screen and (max-width: 512px) {\n.dialog__modal .modal-wrapper--small .modal-container {\n width: fit-content;\n height: unset;\n max-height: 90%;\n position: relative;\n top: unset;\n border-radius: var(--border-radius-element);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-24e91b99] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dialog[data-v-24e91b99] {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container {\n display: flex !important;\n padding-block: 4px 0;\n padding-inline: 12px 0;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.dialog__wrapper[data-v-24e91b99] {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.dialog__wrapper--collapsed[data-v-24e91b99] {\n flex-direction: column;\n}\n.dialog__navigation[data-v-24e91b99] {\n display: flex;\n flex-shrink: 0;\n}\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99] {\n flex-direction: column;\n overflow: hidden auto;\n height: 100%;\n min-width: 200px;\n margin-inline-end: 20px;\n}\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99] {\n flex-direction: row;\n justify-content: space-between;\n overflow: auto hidden;\n width: 100%;\n min-width: 100%;\n}\n.dialog__name[data-v-24e91b99] {\n font-size: 21px;\n text-align: center;\n height: fit-content;\n min-height: var(--default-clickable-area);\n line-height: var(--default-clickable-area);\n overflow-wrap: break-word;\n margin-block: 0 12px;\n}\n.dialog__content[data-v-24e91b99] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n padding-inline-end: 12px;\n}\n.dialog__text[data-v-24e91b99] {\n padding-block-end: 6px;\n}\n.dialog__actions[data-v-24e91b99] {\n display: flex;\n gap: 6px;\n align-content: center;\n justify-content: end;\n width: 100%;\n max-width: 100%;\n padding-inline: 0 12px;\n margin-inline: 0;\n margin-block: 0;\n}\n.dialog__actions[data-v-24e91b99]:not(:empty) {\n margin-block: 6px 12px;\n}\n@media only screen and (max-width: 512px) {\n.dialog__name[data-v-24e91b99] {\n text-align: start;\n margin-inline-end: var(--default-clickable-area);\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcDialog-BSV74Bru.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA,uGAAuG;AACvG;AACA;IACI,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,2CAA2C;AAC/C;AACA,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,8BAA8B;EAC9B,gBAAgB;AAClB;AACA;EACE,wBAAwB;EACxB,oBAAoB;EACpB,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,OAAO;EACP,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;AAChB;AACA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,mBAAmB;EACnB,8BAA8B;EAC9B,qBAAqB;EACrB,WAAW;EACX,eAAe;AACjB;AACA;EACE,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,yCAAyC;EACzC,0CAA0C;EAC1C,yBAAyB;EACzB,oBAAoB;AACtB;AACA;EACE,OAAO;EACP,aAAa;EACb,cAAc;EACd,wBAAwB;AAC1B;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,QAAQ;EACR,qBAAqB;EACrB,oBAAoB;EACpB,WAAW;EACX,eAAe;EACf,sBAAsB;EACtB,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,sBAAsB;AACxB;AACA;AACA;IACI,iBAAiB;IACjB,gDAAgD;AACpD;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/** When having the small dialog style we override the modal styling so dialogs look more dialog like */\n@media only screen and (max-width: 512px) {\n.dialog__modal .modal-wrapper--small .modal-container {\n width: fit-content;\n height: unset;\n max-height: 90%;\n position: relative;\n top: unset;\n border-radius: var(--border-radius-element);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-24e91b99] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dialog[data-v-24e91b99] {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container {\n display: flex !important;\n padding-block: 4px 0;\n padding-inline: 12px 0;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.dialog__wrapper[data-v-24e91b99] {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.dialog__wrapper--collapsed[data-v-24e91b99] {\n flex-direction: column;\n}\n.dialog__navigation[data-v-24e91b99] {\n display: flex;\n flex-shrink: 0;\n}\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99] {\n flex-direction: column;\n overflow: hidden auto;\n height: 100%;\n min-width: 200px;\n margin-inline-end: 20px;\n}\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99] {\n flex-direction: row;\n justify-content: space-between;\n overflow: auto hidden;\n width: 100%;\n min-width: 100%;\n}\n.dialog__name[data-v-24e91b99] {\n font-size: 21px;\n text-align: center;\n height: fit-content;\n min-height: var(--default-clickable-area);\n line-height: var(--default-clickable-area);\n overflow-wrap: break-word;\n margin-block: 0 12px;\n}\n.dialog__content[data-v-24e91b99] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n padding-inline-end: 12px;\n}\n.dialog__text[data-v-24e91b99] {\n padding-block-end: 6px;\n}\n.dialog__actions[data-v-24e91b99] {\n display: flex;\n gap: 6px;\n align-content: center;\n justify-content: end;\n width: 100%;\n max-width: 100%;\n padding-inline: 0 12px;\n margin-inline: 0;\n margin-block: 0;\n}\n.dialog__actions[data-v-24e91b99]:not(:empty) {\n margin-block: 6px 12px;\n}\n@media only screen and (max-width: 512px) {\n.dialog__name[data-v-24e91b99] {\n text-align: start;\n margin-inline-end: var(--default-clickable-area);\n}\n}"],sourceRoot:""}]);const a=s},2148(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-aaedb1c3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.icon-vue[data-v-aaedb1c3] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: var(--default-clickable-area);\n min-height: var(--default-clickable-area);\n opacity: 1;\n}\n.icon-vue.icon-vue--inline[data-v-aaedb1c3] {\n display: inline-flex !important;\n min-width: fit-content;\n min-height: fit-content;\n vertical-align: text-bottom;\n}\n.icon-vue span[data-v-aaedb1c3] {\n line-height: 0;\n}\n.icon-vue[data-v-aaedb1c3] svg {\n fill: currentColor;\n width: var(--fb515064);\n height: var(--fb515064);\n max-width: var(--fb515064);\n max-height: var(--fb515064);\n}\n.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl) {\n transform: scaleX(-1);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcIconSvgWrapper-N3OwSN9O.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,wCAAwC;EACxC,yCAAyC;EACzC,UAAU;AACZ;AACA;EACE,+BAA+B;EAC/B,sBAAsB;EACtB,uBAAuB;EACvB,2BAA2B;AAC7B;AACA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,sBAAsB;EACtB,uBAAuB;EACvB,0BAA0B;EAC1B,2BAA2B;AAC7B;AACA;EACE,qBAAqB;AACvB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-aaedb1c3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.icon-vue[data-v-aaedb1c3] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: var(--default-clickable-area);\n min-height: var(--default-clickable-area);\n opacity: 1;\n}\n.icon-vue.icon-vue--inline[data-v-aaedb1c3] {\n display: inline-flex !important;\n min-width: fit-content;\n min-height: fit-content;\n vertical-align: text-bottom;\n}\n.icon-vue span[data-v-aaedb1c3] {\n line-height: 0;\n}\n.icon-vue[data-v-aaedb1c3] svg {\n fill: currentColor;\n width: var(--fb515064);\n height: var(--fb515064);\n max-width: var(--fb515064);\n max-height: var(--fb515064);\n}\n.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl) {\n transform: scaleX(-1);\n}"],sourceRoot:""}]);const a=s},5113(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8e16cbb5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.input-field[data-v-8e16cbb5] {\n --input-border-color: var(--color-border-maxcontrast);\n --input-border-radius: var(--border-radius-element);\n --input-padding-start: var(--border-radius-element);\n --input-padding-end: var(--border-radius-element);\n position: relative;\n width: 100%;\n margin-block-start: 6px;\n}\n.input-field--disabled[data-v-8e16cbb5] {\n opacity: 0.4;\n filter: saturate(0.4);\n}\n.input-field--label-outside[data-v-8e16cbb5] {\n margin-block-start: 0;\n}\n.input-field--leading-icon[data-v-8e16cbb5] {\n --input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--trailing-icon[data-v-8e16cbb5] {\n --input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--pill[data-v-8e16cbb5] {\n --input-border-radius: var(--border-radius-pill);\n}\n.input-field__main-wrapper[data-v-8e16cbb5] {\n height: var(--default-clickable-area);\n padding: var(--border-width-input-focused, 2px);\n position: relative;\n}\n.input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow-light: 0 -1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.input-field__input[data-v-8e16cbb5]:hover:not([disabled]) {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.input-field__input .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.input-field--legacy .input-field__input[data-v-8e16cbb5] {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n.input-field--legacy .input-field__input[data-v-8e16cbb5]:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color);\n}\n.input-field__input[data-v-8e16cbb5]:focus-within:not([disabled]), .input-field__input[data-v-8e16cbb5]:active:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color), 0 0 0 4px var(--color-main-background) !important;\n}\n.input-field__input[data-v-8e16cbb5] {\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border-radius: var(--input-border-radius);\n cursor: pointer;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n padding-block: 0;\n padding-inline: var(--input-padding-start) var(--input-padding-end);\n height: 100% !important;\n min-height: unset;\n width: 100%;\n}\n.input-field__input[data-v-8e16cbb5]::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.input-field__input[data-v-8e16cbb5]::-webkit-search-cancel-button {\n display: none;\n}\n.input-field__input[data-v-8e16cbb5]::-webkit-search-decoration, .input-field__input[data-v-8e16cbb5]::-webkit-search-results-button, .input-field__input[data-v-8e16cbb5]::-webkit-search-results-decoration, .input-field__input[data-v-8e16cbb5]::-ms-clear {\n display: none;\n}\n.input-field__input[data-v-8e16cbb5]:active:not([disabled]), .input-field__input[data-v-8e16cbb5]:focus:not([disabled]) {\n --input-border-color: var(--color-main-text);\n}\n.input-field__input:focus + .input-field__label[data-v-8e16cbb5], .input-field__input:hover:not(:placeholder-shown) + .input-field__label[data-v-8e16cbb5] {\n color: var(--color-main-text);\n}\n.input-field__input[data-v-8e16cbb5]:focus {\n cursor: text;\n}\n.input-field__input[data-v-8e16cbb5]:disabled {\n cursor: default;\n}\n.input-field__input[data-v-8e16cbb5]:focus-visible {\n box-shadow: unset !important;\n}\n.input-field:not(.input-field--label-outside) .input-field__input[data-v-8e16cbb5]:not(:focus)::placeholder {\n opacity: 0;\n}\n.input-field__label[data-v-8e16cbb5] {\n --input-label-font-size: var(--default-font-size);\n font-size: var(--input-label-font-size);\n position: absolute;\n margin-inline: var(--input-padding-start) var(--input-padding-end);\n max-width: fit-content;\n inset-block-start: calc((var(--default-clickable-area) - 1lh) / 2);\n inset-inline: var(--border-width-input-focused, 2px);\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.input-field__input:focus + .input-field__label[data-v-8e16cbb5], .input-field__input:not(:placeholder-shown) + .input-field__label[data-v-8e16cbb5] {\n --input-label-font-size: 13px;\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: var(--font-weight-element, 500);\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.input-field__icon[data-v-8e16cbb5] {\n position: absolute;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.7;\n inset-block-end: 0;\n}\n.input-field__icon--leading[data-v-8e16cbb5] {\n inset-inline-start: 0px;\n}\n.input-field__icon--trailing[data-v-8e16cbb5] {\n inset-inline-end: 0px;\n}\n.input-field__trailing-button[data-v-8e16cbb5] {\n --button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;\n --button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px));\n}\n.input-field__trailing-button.button-vue[data-v-8e16cbb5] {\n position: absolute;\n top: var(--border-width-input-focused, 2px);\n inset-inline-end: var(--border-width-input-focused, 2px);\n}\n.input-field__trailing-button.button-vue[data-v-8e16cbb5]:focus-visible {\n box-shadow: none !important;\n}\n.input-field__helper-text-message[data-v-8e16cbb5] {\n padding-block: 4px;\n padding-inline: var(--border-radius-element);\n display: flex;\n align-items: center;\n color: var(--color-text-maxcontrast);\n overflow-wrap: anywhere;\n}\n.input-field__helper-text-message__icon[data-v-8e16cbb5] {\n margin-inline-end: 8px;\n}\n.input-field--error .input-field__helper-text-message[data-v-8e16cbb5],\n.input-field--error .input-field__icon--trailing[data-v-8e16cbb5] {\n color: var(--color-text-error, var(--color-error));\n}\n.input-field--error .input-field__input[data-v-8e16cbb5], .input-field__input[data-v-8e16cbb5]:user-invalid {\n --input-border-color: var(--color-border-error, var(--color-error)) !important;\n}\n.input-field--error .input-field__input[data-v-8e16cbb5]:focus-visible, .input-field__input[data-v-8e16cbb5]:user-invalid:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__input[data-v-8e16cbb5] {\n --input-border-color: var(--color-border-success, var(--color-success)) !important;\n}\n.input-field--success .input-field__input[data-v-8e16cbb5]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__helper-text-message__icon[data-v-8e16cbb5] {\n color: var(--color-border-success, var(--color-success));\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcInputField-DpyFJ1xw.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;;EAEE;AACF;;;EAGE;AACF;EACE,qDAAqD;EACrD,mDAAmD;EACnD,mDAAmD;EACnD,iDAAiD;EACjD,kBAAkB;EAClB,WAAW;EACX,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,qBAAqB;AACvB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,yFAAyF;AAC3F;AACA;EACE,uFAAuF;AACzF;AACA;EACE,gDAAgD;AAClD;AACA;EACE,qCAAqC;EACrC,+CAA+C;EAC/C,kBAAkB;AACpB;AACA;EACE;2EACyE;EACzE;2EACyE;EACzE,+DAA+D;EAC/D,YAAY;EACZ,2CAA2C;EAC3C,0CAA0C;AAC5C;AACA;EACE,+CAA+C;AACjD;AACA;AACA;IACI,8DAA8D;AAClE;AACA;AACA;EACE,8DAA8D;AAChE;AACA;EACE,+DAA+D;AACjE;AACA;EACE,+CAA+C;AACjD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,kGAAkG;AACpG;AACA;EACE,8CAA8C;EAC9C,6BAA6B;EAC7B,yCAAyC;EACzC,eAAe;EACf,wCAAwC;EACxC,qCAAqC;EACrC,gCAAgC;EAChC,mCAAmC;EACnC,uBAAuB;EACvB,gBAAgB;EAChB,mEAAmE;EACnE,uBAAuB;EACvB,iBAAiB;EACjB,WAAW;AACb;AACA;EACE,oCAAoC;AACtC;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,UAAU;AACZ;AACA;EACE,iDAAiD;EACjD,uCAAuC;EACvC,kBAAkB;EAClB,kEAAkE;EAClE,sBAAsB;EACtB,kEAAkE;EAClE,oDAAoD;EACpD,oCAAoC;EACpC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;EACpB,kNAAkN;AACpN;AACA;EACE,6BAA6B;EAC7B,gBAAgB;EAChB,gEAAgE;EAChE,4CAA4C;EAC5C,4EAA4E;EAC5E,8CAA8C;EAC9C,4CAA4C;EAC5C,4IAA4I;EAC5I,mJAAmJ;AACrJ;AACA;EACE,kBAAkB;EAClB,qCAAqC;EACrC,oCAAoC;EACpC,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,0GAA0G;EAC1G,0FAA0F;AAC5F;AACA;EACE,kBAAkB;EAClB,2CAA2C;EAC3C,wDAAwD;AAC1D;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,kBAAkB;EAClB,4CAA4C;EAC5C,aAAa;EACb,mBAAmB;EACnB,oCAAoC;EACpC,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;;EAEE,kDAAkD;AACpD;AACA;EACE,8EAA8E;AAChF;AACA;EACE,iIAAiI;AACnI;AACA;EACE,kFAAkF;AACpF;AACA;EACE,iIAAiI;AACnI;AACA;EACE,wDAAwD;AAC1D",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8e16cbb5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.input-field[data-v-8e16cbb5] {\n --input-border-color: var(--color-border-maxcontrast);\n --input-border-radius: var(--border-radius-element);\n --input-padding-start: var(--border-radius-element);\n --input-padding-end: var(--border-radius-element);\n position: relative;\n width: 100%;\n margin-block-start: 6px;\n}\n.input-field--disabled[data-v-8e16cbb5] {\n opacity: 0.4;\n filter: saturate(0.4);\n}\n.input-field--label-outside[data-v-8e16cbb5] {\n margin-block-start: 0;\n}\n.input-field--leading-icon[data-v-8e16cbb5] {\n --input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--trailing-icon[data-v-8e16cbb5] {\n --input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--pill[data-v-8e16cbb5] {\n --input-border-radius: var(--border-radius-pill);\n}\n.input-field__main-wrapper[data-v-8e16cbb5] {\n height: var(--default-clickable-area);\n padding: var(--border-width-input-focused, 2px);\n position: relative;\n}\n.input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow-light: 0 -1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.input-field__input[data-v-8e16cbb5]:hover:not([disabled]) {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.input-field__input .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.input-field--legacy .input-field__input[data-v-8e16cbb5] {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n.input-field--legacy .input-field__input[data-v-8e16cbb5]:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color);\n}\n.input-field__input[data-v-8e16cbb5]:focus-within:not([disabled]), .input-field__input[data-v-8e16cbb5]:active:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color), 0 0 0 4px var(--color-main-background) !important;\n}\n.input-field__input[data-v-8e16cbb5] {\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border-radius: var(--input-border-radius);\n cursor: pointer;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n padding-block: 0;\n padding-inline: var(--input-padding-start) var(--input-padding-end);\n height: 100% !important;\n min-height: unset;\n width: 100%;\n}\n.input-field__input[data-v-8e16cbb5]::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.input-field__input[data-v-8e16cbb5]::-webkit-search-cancel-button {\n display: none;\n}\n.input-field__input[data-v-8e16cbb5]::-webkit-search-decoration, .input-field__input[data-v-8e16cbb5]::-webkit-search-results-button, .input-field__input[data-v-8e16cbb5]::-webkit-search-results-decoration, .input-field__input[data-v-8e16cbb5]::-ms-clear {\n display: none;\n}\n.input-field__input[data-v-8e16cbb5]:active:not([disabled]), .input-field__input[data-v-8e16cbb5]:focus:not([disabled]) {\n --input-border-color: var(--color-main-text);\n}\n.input-field__input:focus + .input-field__label[data-v-8e16cbb5], .input-field__input:hover:not(:placeholder-shown) + .input-field__label[data-v-8e16cbb5] {\n color: var(--color-main-text);\n}\n.input-field__input[data-v-8e16cbb5]:focus {\n cursor: text;\n}\n.input-field__input[data-v-8e16cbb5]:disabled {\n cursor: default;\n}\n.input-field__input[data-v-8e16cbb5]:focus-visible {\n box-shadow: unset !important;\n}\n.input-field:not(.input-field--label-outside) .input-field__input[data-v-8e16cbb5]:not(:focus)::placeholder {\n opacity: 0;\n}\n.input-field__label[data-v-8e16cbb5] {\n --input-label-font-size: var(--default-font-size);\n font-size: var(--input-label-font-size);\n position: absolute;\n margin-inline: var(--input-padding-start) var(--input-padding-end);\n max-width: fit-content;\n inset-block-start: calc((var(--default-clickable-area) - 1lh) / 2);\n inset-inline: var(--border-width-input-focused, 2px);\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.input-field__input:focus + .input-field__label[data-v-8e16cbb5], .input-field__input:not(:placeholder-shown) + .input-field__label[data-v-8e16cbb5] {\n --input-label-font-size: 13px;\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: var(--font-weight-element, 500);\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.input-field__icon[data-v-8e16cbb5] {\n position: absolute;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.7;\n inset-block-end: 0;\n}\n.input-field__icon--leading[data-v-8e16cbb5] {\n inset-inline-start: 0px;\n}\n.input-field__icon--trailing[data-v-8e16cbb5] {\n inset-inline-end: 0px;\n}\n.input-field__trailing-button[data-v-8e16cbb5] {\n --button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;\n --button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px));\n}\n.input-field__trailing-button.button-vue[data-v-8e16cbb5] {\n position: absolute;\n top: var(--border-width-input-focused, 2px);\n inset-inline-end: var(--border-width-input-focused, 2px);\n}\n.input-field__trailing-button.button-vue[data-v-8e16cbb5]:focus-visible {\n box-shadow: none !important;\n}\n.input-field__helper-text-message[data-v-8e16cbb5] {\n padding-block: 4px;\n padding-inline: var(--border-radius-element);\n display: flex;\n align-items: center;\n color: var(--color-text-maxcontrast);\n overflow-wrap: anywhere;\n}\n.input-field__helper-text-message__icon[data-v-8e16cbb5] {\n margin-inline-end: 8px;\n}\n.input-field--error .input-field__helper-text-message[data-v-8e16cbb5],\n.input-field--error .input-field__icon--trailing[data-v-8e16cbb5] {\n color: var(--color-text-error, var(--color-error));\n}\n.input-field--error .input-field__input[data-v-8e16cbb5], .input-field__input[data-v-8e16cbb5]:user-invalid {\n --input-border-color: var(--color-border-error, var(--color-error)) !important;\n}\n.input-field--error .input-field__input[data-v-8e16cbb5]:focus-visible, .input-field__input[data-v-8e16cbb5]:user-invalid:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__input[data-v-8e16cbb5] {\n --input-border-color: var(--color-border-success, var(--color-success)) !important;\n}\n.input-field--success .input-field__input[data-v-8e16cbb5]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__helper-text-message__icon[data-v-8e16cbb5] {\n color: var(--color-border-success, var(--color-success));\n}"],sourceRoot:""}]);const a=s},3808(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cf399190] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.loading-icon[data-v-cf399190] {\n overflow: hidden;\n}\n.loading-icon svg[data-v-cf399190] {\n animation: rotate var(--animation-duration, 0.8s) linear infinite;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcLoadingIcon-CWUlo4XY.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iEAAiE;AACnE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cf399190] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.loading-icon[data-v-cf399190] {\n overflow: hidden;\n}\n.loading-icon svg[data-v-cf399190] {\n animation: rotate var(--animation-duration, 0.8s) linear infinite;\n}"],sourceRoot:""}]);const a=s},1158(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c357e2d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.modal-mask[data-v-3c357e2d] {\n position: fixed;\n z-index: 9998;\n top: 0;\n inset-inline-start: 0;\n display: block;\n width: 100%;\n height: 100%;\n --backdrop-color: 0, 0, 0;\n background-color: rgba(var(--backdrop-color), 0.5);\n}\n.modal-mask[data-v-3c357e2d], .modal-mask[data-v-3c357e2d] * {\n box-sizing: border-box;\n}\n.modal-mask--opaque[data-v-3c357e2d] {\n background-color: rgba(var(--backdrop-color), 0.92);\n}\n.modal-mask--light[data-v-3c357e2d] {\n --backdrop-color: 255, 255, 255;\n}\n.modal-header[data-v-3c357e2d] {\n position: absolute;\n z-index: 10001;\n top: 0;\n inset-inline: 0 0;\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: var(--header-height);\n overflow: hidden;\n transition: opacity 250ms, visibility 250ms;\n}\n.modal-header__name[data-v-3c357e2d] {\n overflow-x: hidden;\n width: 100%;\n padding-inline: 12px 0;\n transition: padding ease 100ms;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 16px;\n margin-block: 0;\n}\n@media only screen and (min-width: 1024px) {\n.modal-header__name[data-v-3c357e2d] {\n padding-inline-start: calc(var(--header-height) * var(--v046d2bb2));\n text-align: center;\n}\n}\n.modal-header .icons-menu[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n align-self: flex-end;\n}\n.modal-header .icons-menu .header-close[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n padding: 0;\n}\n.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n margin: 0;\n padding: 0;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d], .modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d] {\n opacity: 1;\n border-radius: calc(var(--default-clickable-area) / 2);\n background-color: rgba(127, 127, 127, 0.25);\n}\n.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n cursor: pointer;\n opacity: 0.7;\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item {\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item--single {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n cursor: pointer;\n background-position: center;\n background-size: 22px;\n}\n.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible {\n box-shadow: none !important;\n outline: 2px solid #fff !important;\n}\n.modal-wrapper[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n /* Navigation buttons */\n}\n.modal-wrapper .prev[data-v-3c357e2d],\n.modal-wrapper .next[data-v-3c357e2d] {\n z-index: 10000;\n height: 35vh;\n min-height: 300px;\n position: absolute;\n transition: opacity 250ms;\n color: white;\n}\n.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,\n.modal-wrapper .next[data-v-3c357e2d]:focus-visible {\n box-shadow: 0 0 0 2px var(--color-primary-element-text);\n background-color: var(--color-box-shadow);\n}\n.modal-wrapper .prev[data-v-3c357e2d] {\n inset-inline-start: 2px;\n}\n.modal-wrapper .next[data-v-3c357e2d] {\n inset-inline-end: 2px;\n}\n.modal-wrapper[data-v-3c357e2d] {\n /* Content */\n}\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n position: relative;\n display: flex;\n padding: 0;\n transition: transform 300ms ease;\n border-radius: var(--border-radius-container);\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n overflow: auto;\n}\n.modal-wrapper .modal-container__close[data-v-3c357e2d] {\n z-index: 1;\n position: absolute;\n top: 4px;\n inset-inline-end: var(--default-grid-baseline);\n}\n.modal-wrapper .modal-container__content[data-v-3c357e2d] {\n width: 100%;\n min-height: 52px;\n overflow: auto;\n}\n.modal-wrapper--small > .modal-container[data-v-3c357e2d] {\n width: 400px;\n max-width: 90%;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--normal > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 600px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--large > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 900px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--full > .modal-container[data-v-3c357e2d] {\n width: 100%;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n max-width: initial;\n width: 100%;\n max-height: initial;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n}\n\n/* TRANSITIONS */\n.fade-enter-active[data-v-3c357e2d],\n.fade-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.fade-enter-from[data-v-3c357e2d],\n.fade-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.fade-visibility-enter-from[data-v-3c357e2d],\n.fade-visibility-leave-to[data-v-3c357e2d] {\n visibility: hidden;\n opacity: 0;\n}\n.modal-in-enter-active[data-v-3c357e2d],\n.modal-in-leave-active[data-v-3c357e2d],\n.modal-out-enter-active[data-v-3c357e2d],\n.modal-out-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.modal-in-enter-from[data-v-3c357e2d],\n.modal-in-leave-to[data-v-3c357e2d],\n.modal-out-enter-from[data-v-3c357e2d],\n.modal-out-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.modal-in-enter .modal-container[data-v-3c357e2d],\n.modal-in-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(0.9);\n}\n.modal-out-enter .modal-container[data-v-3c357e2d],\n.modal-out-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(1.1);\n}\n.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n transform: rotate(-90deg);\n}\n.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d] {\n transition: 100ms stroke-dashoffset;\n transform-origin: 50% 50%;\n animation: progressring-3c357e2d linear var(--v71f7c020) infinite;\n stroke-linecap: round;\n stroke-dashoffset: 94.2477796077;\n stroke-dasharray: 94.2477796077;\n}\n.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d] {\n animation: breath-3c357e2d 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d] {\n animation-play-state: paused !important;\n}\n@keyframes progressring-3c357e2d {\nfrom {\n stroke-dashoffset: 94.2477796077;\n}\nto {\n stroke-dashoffset: 0;\n}\n}\n@keyframes breath-3c357e2d {\n0% {\n opacity: 1;\n}\n50% {\n opacity: 0;\n}\n100% {\n opacity: 1;\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcModal-D81luiuU.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,aAAa;EACb,MAAM;EACN,qBAAqB;EACrB,cAAc;EACd,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,kDAAkD;AACpD;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mDAAmD;AACrD;AACA;EACE,+BAA+B;AACjC;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,MAAM;EACN,iBAAiB;EACjB,wBAAwB;EACxB,mBAAmB;EACnB,8BAA8B;EAC9B,WAAW;EACX,4BAA4B;EAC5B,gBAAgB;EAChB,2CAA2C;AAC7C;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,sBAAsB;EACtB,8BAA8B;EAC9B,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,eAAe;AACjB;AACA;AACA;IACI,mEAAmE;IACnE,kBAAkB;AACtB;AACA;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,yBAAyB;EACzB,oBAAoB;AACtB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,wEAAwE;EACxE,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,SAAS;EACT,UAAU;EACV,eAAe;EACf,YAAY;EACZ,6BAA6B;AAC/B;AACA;EACE,UAAU;EACV,sDAAsD;EACtD,2CAA2C;AAC7C;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,wEAAwE;EACxE,eAAe;EACf,YAAY;AACd;AACA;EACE,wEAAwE;AAC1E;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,eAAe;EACf,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,2BAA2B;EAC3B,kCAAkC;AACpC;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,uBAAuB;AACzB;AACA;;EAEE,cAAc;EACd,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,yBAAyB;EACzB,YAAY;AACd;AACA;;EAEE,uDAAuD;EACvD,yCAAyC;AAC3C;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,UAAU;EACV,gCAAgC;EAChC,6CAA6C;EAC7C,8CAA8C;EAC9C,6BAA6B;EAC7B,uCAAuC;EACvC,cAAc;AAChB;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,QAAQ;EACR,8CAA8C;AAChD;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,YAAY;EACZ,cAAc;EACd,wFAAwF;AAC1F;AACA;EACE,cAAc;EACd,YAAY;EACZ,wFAAwF;AAC1F;AACA;EACE,cAAc;EACd,YAAY;EACZ,wFAAwF;AAC1F;AACA;EACE,WAAW;EACX,yCAAyC;EACzC,kBAAkB;EAClB,yBAAyB;EACzB,gBAAgB;AAClB;AACA;AACA;IACI,kBAAkB;IAClB,WAAW;IACX,mBAAmB;IACnB,yCAAyC;IACzC,kBAAkB;IAClB,yBAAyB;IACzB,gBAAgB;AACpB;AACA;;AAEA,gBAAgB;AAChB;;EAEE,yBAAyB;AAC3B;AACA;;EAEE,UAAU;AACZ;AACA;;EAEE,kBAAkB;EAClB,UAAU;AACZ;AACA;;;;EAIE,yBAAyB;AAC3B;AACA;;;;EAIE,UAAU;AACZ;AACA;;EAEE,qBAAqB;AACvB;AACA;;EAEE,qBAAqB;AACvB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,qBAAqB;EACrB,yBAAyB;AAC3B;AACA;EACE,mCAAmC;EACnC,yBAAyB;EACzB,iEAAiE;EACjE,qBAAqB;EACrB,gCAAgC;EAChC,+BAA+B;AACjC;AACA;EACE,mEAAmE;AACrE;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,gCAAgC;AACpC;AACA;IACI,oBAAoB;AACxB;AACA;AACA;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c357e2d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.modal-mask[data-v-3c357e2d] {\n position: fixed;\n z-index: 9998;\n top: 0;\n inset-inline-start: 0;\n display: block;\n width: 100%;\n height: 100%;\n --backdrop-color: 0, 0, 0;\n background-color: rgba(var(--backdrop-color), 0.5);\n}\n.modal-mask[data-v-3c357e2d], .modal-mask[data-v-3c357e2d] * {\n box-sizing: border-box;\n}\n.modal-mask--opaque[data-v-3c357e2d] {\n background-color: rgba(var(--backdrop-color), 0.92);\n}\n.modal-mask--light[data-v-3c357e2d] {\n --backdrop-color: 255, 255, 255;\n}\n.modal-header[data-v-3c357e2d] {\n position: absolute;\n z-index: 10001;\n top: 0;\n inset-inline: 0 0;\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: var(--header-height);\n overflow: hidden;\n transition: opacity 250ms, visibility 250ms;\n}\n.modal-header__name[data-v-3c357e2d] {\n overflow-x: hidden;\n width: 100%;\n padding-inline: 12px 0;\n transition: padding ease 100ms;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 16px;\n margin-block: 0;\n}\n@media only screen and (min-width: 1024px) {\n.modal-header__name[data-v-3c357e2d] {\n padding-inline-start: calc(var(--header-height) * var(--v046d2bb2));\n text-align: center;\n}\n}\n.modal-header .icons-menu[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n align-self: flex-end;\n}\n.modal-header .icons-menu .header-close[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n padding: 0;\n}\n.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n margin: 0;\n padding: 0;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d], .modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d] {\n opacity: 1;\n border-radius: calc(var(--default-clickable-area) / 2);\n background-color: rgba(127, 127, 127, 0.25);\n}\n.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n cursor: pointer;\n opacity: 0.7;\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item {\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item--single {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n cursor: pointer;\n background-position: center;\n background-size: 22px;\n}\n.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible {\n box-shadow: none !important;\n outline: 2px solid #fff !important;\n}\n.modal-wrapper[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n /* Navigation buttons */\n}\n.modal-wrapper .prev[data-v-3c357e2d],\n.modal-wrapper .next[data-v-3c357e2d] {\n z-index: 10000;\n height: 35vh;\n min-height: 300px;\n position: absolute;\n transition: opacity 250ms;\n color: white;\n}\n.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,\n.modal-wrapper .next[data-v-3c357e2d]:focus-visible {\n box-shadow: 0 0 0 2px var(--color-primary-element-text);\n background-color: var(--color-box-shadow);\n}\n.modal-wrapper .prev[data-v-3c357e2d] {\n inset-inline-start: 2px;\n}\n.modal-wrapper .next[data-v-3c357e2d] {\n inset-inline-end: 2px;\n}\n.modal-wrapper[data-v-3c357e2d] {\n /* Content */\n}\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n position: relative;\n display: flex;\n padding: 0;\n transition: transform 300ms ease;\n border-radius: var(--border-radius-container);\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n overflow: auto;\n}\n.modal-wrapper .modal-container__close[data-v-3c357e2d] {\n z-index: 1;\n position: absolute;\n top: 4px;\n inset-inline-end: var(--default-grid-baseline);\n}\n.modal-wrapper .modal-container__content[data-v-3c357e2d] {\n width: 100%;\n min-height: 52px;\n overflow: auto;\n}\n.modal-wrapper--small > .modal-container[data-v-3c357e2d] {\n width: 400px;\n max-width: 90%;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--normal > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 600px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--large > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 900px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--full > .modal-container[data-v-3c357e2d] {\n width: 100%;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n max-width: initial;\n width: 100%;\n max-height: initial;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n}\n\n/* TRANSITIONS */\n.fade-enter-active[data-v-3c357e2d],\n.fade-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.fade-enter-from[data-v-3c357e2d],\n.fade-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.fade-visibility-enter-from[data-v-3c357e2d],\n.fade-visibility-leave-to[data-v-3c357e2d] {\n visibility: hidden;\n opacity: 0;\n}\n.modal-in-enter-active[data-v-3c357e2d],\n.modal-in-leave-active[data-v-3c357e2d],\n.modal-out-enter-active[data-v-3c357e2d],\n.modal-out-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.modal-in-enter-from[data-v-3c357e2d],\n.modal-in-leave-to[data-v-3c357e2d],\n.modal-out-enter-from[data-v-3c357e2d],\n.modal-out-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.modal-in-enter .modal-container[data-v-3c357e2d],\n.modal-in-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(0.9);\n}\n.modal-out-enter .modal-container[data-v-3c357e2d],\n.modal-out-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(1.1);\n}\n.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n transform: rotate(-90deg);\n}\n.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d] {\n transition: 100ms stroke-dashoffset;\n transform-origin: 50% 50%;\n animation: progressring-3c357e2d linear var(--v71f7c020) infinite;\n stroke-linecap: round;\n stroke-dashoffset: 94.2477796077;\n stroke-dasharray: 94.2477796077;\n}\n.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d] {\n animation: breath-3c357e2d 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d] {\n animation-play-state: paused !important;\n}\n@keyframes progressring-3c357e2d {\nfrom {\n stroke-dashoffset: 94.2477796077;\n}\nto {\n stroke-dashoffset: 0;\n}\n}\n@keyframes breath-3c357e2d {\n0% {\n opacity: 1;\n}\n50% {\n opacity: 0;\n}\n100% {\n opacity: 1;\n}\n}"],sourceRoot:""}]);const a=s},5696(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cb828737] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-cb828737] .password-field__input--secure-text {\n -webkit-text-security: disc;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcPasswordField-BN4HFgU5.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2BAA2B;AAC7B",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cb828737] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-cb828737] .password-field__input--secure-text {\n -webkit-text-security: disc;\n}"],sourceRoot:""}]);const a=s},525(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,'/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_Sit4G {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9, ._ncPopover_SapAL.v-popper--theme-nc-popover-9 * {\n box-sizing: border-box;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9 .resize-observer {\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9 .resize-observer object {\n display: block;\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper {\n z-index: 100000;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n display: block !important;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper {\n /*\n * In theory, "filter: drop-shadow" would look better here with arrow shadow.\n * In fact, in results in a blurry popover in Chromium on scaling.\n * The hypothesis is that "filter" creates a new composition layer,\n * and with GPU acceleration requires the previous layers content to be rasterized.\n * In combination with translate3d from floating-vue, it makes Chromium to first render and rasterize the popover\n * and then apply scaling, which results in a blurry popover.\n */\n box-shadow: 0 1px 10px var(--color-box-shadow);\n border-radius: var(--border-radius-element);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner {\n padding: 0;\n color: var(--color-main-text);\n border-radius: var(--border-radius-element);\n overflow: hidden;\n background: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container {\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n border-width: 10px;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {\n bottom: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-bottom-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-top-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {\n top: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-top-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-bottom-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-left-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-right-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n right: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-right-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-left-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\n opacity: 0;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity var(--animation-quick);\n opacity: 1;\n}',"",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcPopover-C7YEE_vn.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,WAAW;EACX,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,eAAe;EACf,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,yBAAyB;AAC3B;AACA;EACE;;;;;;;IAOE;EACF,8CAA8C;EAC9C,2CAA2C;AAC7C;AACA;EACE,UAAU;EACV,6BAA6B;EAC7B,2CAA2C;EAC3C,gBAAgB;EAChB,wCAAwC;AAC1C;AACA;EACE,kBAAkB;EAClB,UAAU;EACV,QAAQ;EACR,SAAS;EACT,mBAAmB;EACnB,yBAAyB;EACzB,kBAAkB;AACpB;AACA;EACE,YAAY;EACZ,qDAAqD,EAAE,mBAAmB;EAC1E,sBAAsB;EACtB,qDAAqD,EAAE,mBAAmB;EAC1E,8CAA8C;AAChD;AACA;EACE,SAAS;EACT,qDAAqD,EAAE,mBAAmB;EAC1E,mBAAmB;EACnB,qDAAqD,EAAE,mBAAmB;EAC1E,iDAAiD;AACnD;AACA;EACE,qDAAqD,EAAE,mBAAmB;EAC1E,UAAU;EACV,qDAAqD,EAAE,mBAAmB;EAC1E,oBAAoB;EACpB,qDAAqD,EAAE,mBAAmB;EAC1E,gDAAgD;AAClD;AACA;EACE,qDAAqD,EAAE,mBAAmB;EAC1E,WAAW;EACX,qDAAqD,EAAE,mBAAmB;EAC1E,qBAAqB;EACrB,qDAAqD,EAAE,mBAAmB;EAC1E,+CAA+C;AACjD;AACA;EACE,kBAAkB;EAClB,6EAA6E;EAC7E,UAAU;AACZ;AACA;EACE,mBAAmB;EACnB,0CAA0C;EAC1C,UAAU;AACZ",sourcesContent:['/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_Sit4G {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9, ._ncPopover_SapAL.v-popper--theme-nc-popover-9 * {\n box-sizing: border-box;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9 .resize-observer {\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9 .resize-observer object {\n display: block;\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper {\n z-index: 100000;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n display: block !important;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper {\n /*\n * In theory, "filter: drop-shadow" would look better here with arrow shadow.\n * In fact, in results in a blurry popover in Chromium on scaling.\n * The hypothesis is that "filter" creates a new composition layer,\n * and with GPU acceleration requires the previous layers content to be rasterized.\n * In combination with translate3d from floating-vue, it makes Chromium to first render and rasterize the popover\n * and then apply scaling, which results in a blurry popover.\n */\n box-shadow: 0 1px 10px var(--color-box-shadow);\n border-radius: var(--border-radius-element);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner {\n padding: 0;\n color: var(--color-main-text);\n border-radius: var(--border-radius-element);\n overflow: hidden;\n background: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container {\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n border-width: 10px;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {\n bottom: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-bottom-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-top-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {\n top: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-top-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-bottom-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-left-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-right-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n right: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-right-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-left-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\n opacity: 0;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity var(--animation-quick);\n opacity: 1;\n}'],sourceRoot:""}]);const a=s},8506(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,".setup-confirmation__secret[data-v-59b7bea7]{word-break:break-all}","",{version:3,sources:["webpack://./src/components/SetupConfirmation.vue"],names:[],mappings:"AAEC,6CACC,oBAAA",sourceRoot:""}]);const a=s},4340(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(1354),r=n.n(o),i=n(6314),s=n.n(i)()(r());s.push([e.id,"\n.totp-loading[data-v-48827c4a] {\n\tdisplay: inline-block;\n\tvertical-align: sub;\n\tmargin-inline: -2px 4px;\n}\n","",{version:3,sources:["webpack://./src/components/PersonalTotpSettings.vue"],names:[],mappings:";AAmKA;CACC,qBAAqB;CACrB,mBAAmB;CACnB,uBAAuB;AACxB",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = new Uint8Array(encodeUtf8(data))\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/**\n* @vue/shared v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver) && 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.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = 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 setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n pauseTracking();\n try {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } finally {\n resetTracking();\n }\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const {\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 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 patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!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}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n 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 let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n 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 cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcDialog-BSV74Bru.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcDialog-BSV74Bru.css\";\n export default content && content.locals ? content.locals : undefined;\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\n/**\n* @internal\n*/\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\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\tconst _clearTimeout = (timer) => {\n\t\tclearTimeout(timer);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst filter = (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\treturn Promise.resolve(invoke());\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : 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\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\tresolve(invoke());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn filter;\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, debounce, function.\n*\n* @__NO_SIDE_EFFECTS__\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, getCurrentScope, 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 } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditable() && isTypedCharValid(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\tmatches.value = toValue(query).split(\",\").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\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\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\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\tvariable.value = ((_window$getComputedSt = window.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim()) || 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) useEventListener(window, \"devicemotion\", createFilterWrapper(eventFilter, (event) => {\n\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\tacceleration.value = {\n\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t};\n\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t};\n\t\t\trotationRate.value = {\n\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t};\n\t\t\tinterval.value = event.interval;\n\t\t}), { passive: true });\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\tif (isPointerNearEdge({\n\t\t\tx: x - container.scrollLeft,\n\t\t\ty: y - container.scrollTop\n\t\t}, 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\", 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 dataTypesValid = checkDataTypes(Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type));\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 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) {\n\t\t\twidth.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n\t\t\theight.value = \"offsetHeight\" in ele ? ele.offsetHeight : 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\n/* #__PURE__ */\nconst events = /* @__PURE__ */ new Map();\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tconst scope = getCurrentScope();\n\tfunction on(listener) {\n\t\tvar _scope$cleanups;\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\tscope === null || scope === void 0 || (_scope$cleanups = scope.cleanups) === null || _scope$cleanups === void 0 || _scope$cleanups.push(_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\terror.value = errorData;\n\t\t\tif (options.updateDataOnError) data.value = responseData;\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\tfiles.value = event.target.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) if (gamepad && gamepads.value[gamepad.index]) gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\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\tsetArrivedState((_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target);\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 = 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\tisLeft.value = !(event.relatedTarget || event.toElement);\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 return mouseRollAdjust(-(y.value - height.value / 2) / height.value);\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 return mouseTiltAdjust((x.value - width.value / 2) / width.value);\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 = (/* #__PURE__ */ {\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\", (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\n","/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */\nimport { defineComponent, h } from 'vue';\nimport { toString, toDataURL, toCanvas } from 'qrcode';\n\nconst EVENT_READY = 'ready';\r\nvar index = defineComponent({\r\n name: 'VueQrcode',\r\n props: {\r\n /**\r\n * The value of the QR code.\r\n */\r\n value: {\r\n type: String,\r\n default: undefined,\r\n },\r\n /**\r\n * The options for the QR code generator.\r\n * {@link https://github.com/soldair/node-qrcode#qr-code-options}\r\n */\r\n options: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n /**\r\n * The tag name of the component's root element.\r\n */\r\n tag: {\r\n type: String,\r\n default: 'canvas',\r\n },\r\n },\r\n emits: [EVENT_READY],\r\n watch: {\r\n $props: {\r\n deep: true,\r\n immediate: true,\r\n /**\r\n * Update the QR code when props changed.\r\n */\r\n handler() {\r\n if (this.$el) {\r\n this.generate();\r\n }\r\n },\r\n },\r\n },\r\n mounted() {\r\n this.generate();\r\n },\r\n methods: {\r\n /**\r\n * Generate QR code.\r\n */\r\n generate() {\r\n const options = this.options || {};\r\n const value = String(this.value);\r\n const done = () => {\r\n this.$emit(EVENT_READY, this.$el);\r\n };\r\n switch (this.tag) {\r\n case 'canvas':\r\n toCanvas(this.$el, value, options, (error) => {\r\n if (error) {\r\n throw error;\r\n }\r\n done();\r\n });\r\n break;\r\n case 'img':\r\n toDataURL(value, options, (error, url) => {\r\n if (error) {\r\n throw error;\r\n }\r\n this.$el.src = url;\r\n this.$el.onload = done;\r\n });\r\n break;\r\n case 'svg':\r\n toString(value, options, (error, string) => {\r\n if (error) {\r\n throw error;\r\n }\r\n const div = document.createElement('div');\r\n div.innerHTML = string;\r\n const svg = div.querySelector('svg');\r\n if (svg) {\r\n const { attributes, childNodes } = svg;\r\n Object.keys(attributes).forEach((key) => {\r\n const attribute = attributes[Number(key)];\r\n this.$el.setAttribute(attribute.name, attribute.value);\r\n });\r\n Object.keys(childNodes).forEach((key) => {\r\n const childNode = childNodes[Number(key)];\r\n this.$el.appendChild(childNode.cloneNode(true));\r\n });\r\n done();\r\n }\r\n });\r\n break;\r\n }\r\n },\r\n },\r\n render() {\r\n return h(this.tag, this.$slots.default);\r\n },\r\n});\n\nexport { index as default };\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./SetupConfirmation.vue?vue&type=template&id=59b7bea7&scoped=true\"\nimport script from \"./SetupConfirmation.vue?vue&type=script&lang=js\"\nexport * from \"./SetupConfirmation.vue?vue&type=script&lang=js\"\n\nimport \"./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-59b7bea7\"]])\n\nexport default __exports__","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./PersonalTotpSettings.vue?vue&type=style&index=0&id=48827c4a&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./PersonalTotpSettings.vue?vue&type=style&index=0&id=48827c4a&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./PersonalTotpSettings.vue?vue&type=template&id=48827c4a&scoped=true\"\nimport script from \"./PersonalTotpSettings.vue?vue&type=script&lang=js\"\nexport * from \"./PersonalTotpSettings.vue?vue&type=script&lang=js\"\n\nimport \"./PersonalTotpSettings.vue?vue&type=style&index=0&id=48827c4a&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-48827c4a\"]])\n\nexport default __exports__","/*\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport { loadState } from '@nextcloud/initial-state'\nimport Logger from './logger.js'\nimport { useTotpStore } from './store.js'\n\nimport PersonalTotpSettings from './components/PersonalTotpSettings.vue'\n\nconst pinia = createPinia()\nconst app = createApp(PersonalTotpSettings)\napp.mixin({ methods: { t } })\napp.use(pinia)\n\nconst store = useTotpStore(pinia)\nstore.totpState = loadState('twofactor_totp', 'state')\n\napp.mount('#twofactor-totp-settings')\n\nLogger.debug('personal settings loaded and rendered')\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","tripletToBase64","num","start","end","output","base64","ieee754","customInspectSymbol","Symbol","Buffer","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","___CSS_LOADER_EXPORT___","module","id","cssWithMappingToString","map","item","content","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","cssMapping","btoa","unescape","encodeURIComponent","JSON","stringify","sourceMapping","dijkstra","single_source_shortest_paths","graph","s","d","predecessors","costs","closest","u","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","hasOwnProperty","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","opts","key","T","t","queue","sorter","default_sorter","sort","shift","result","index","point","second","matchHtmlRegExp","escape","match","exec","html","lastIndex","substring","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","isNaN","log","LN2","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","args","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","text","cb","argsNum","isLastArgCb","getContext","Promise","resolve","reject","create","bind","render","renderToDataURL","_","then","getSymbolSize","getRowColCoords","posCount","intervals","ceil","positions","getPositions","coords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","mode","ALPHANUMERIC","getBitsLength","getLength","bitBuffer","put","BitBuffer","bufIndex","putBit","getLengthInBits","bit","BitMatrix","reservedBit","row","col","reserved","xor","isReserved","encodeUtf8","ByteData","BYTE","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","EXP_TABLE","LOG_TABLE","exp","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","getMaskAt","maskPattern","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","keys","bestPattern","lowerPenalty","p","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","group","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","matrix","bits","createSymbol","segments","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","forEach","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","encode","r","createCodewords","createData","moduleCount","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","options","toSJISFunc","setToSJISFunction","Polynomial","genPoly","initialize","paddedData","remainder","buff","numeric","kanji","byte","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","test","getStringByteLength","getSegments","regex","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","s1","s2","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","reduce","acc","seg","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","node","lastCount","prevNodeId","buildGraph","path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","f","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","document","createElement","getCanvasElement","getOptions","getImageWidth","ctx","image","createImageData","qrToImageData","clearRect","width","height","style","clearCanvas","putImageData","rendererOpts","toDataURL","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","hex2rgba","hexCode","hexValue","g","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","debug","MAX_LENGTH","MAX_SAFE_INTEGER","safeRe","re","parseOptions","compareIdentifiers","SemVer","loose","includePrerelease","LOOSE","FULL","raw","major","minor","patch","prerelease","build","format","other","compareMain","comparePre","compareBuild","release","identifier","identifierBase","startsWith","PRERELEASELOOSE","PRERELEASE","base","throwErrors","er","parse","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","NODE_DEBUG","anum","bnum","rcompareIdentifiers","looseOption","freeze","emptyOpts","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","BUILD","FULLPLAIN","MAINVERSIONLOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","stylesInDOM","getIndexByIdentifier","modulesToDom","idCountMap","identifiers","count","indexByIdentifier","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","insert","styleTarget","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","appendChild","element","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","sfc","props","__vccOpts","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","globalThis","Function","prop","toStringTag","nc","makeMap","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","assign","el","hasOwn","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","catch","objectToString","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","cache","camelizeRE","camelize","toUpperCase","hyphenateRE","hyphenate","capitalize","charAt","toHandlerKey","hasChanged","oldValue","is","invokeArrayFns","fns","def","looseToNumber","parseFloat","_globalThis","getGlobalThis","self","normalizeStyle","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","normalizeClass","normalizeProps","class","klass","isSpecialBooleanAttr","includeBooleanAttr","looseEqual","aValidType","bValidType","getTime","equal","looseCompareArrays","aHasKey","bHasKey","looseIndexOf","findIndex","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","values","_a","description","normalizeCssVarValue","activeEffectScope","activeSub","EffectScope","detached","_active","_on","effects","cleanups","_isPaused","_warnOnRun","__v_skip","active","parent","scopes","pause","resume","currentEffectScope","prevScope","current","stop","fromParent","effectScope","getCurrentScope","onScopeDispose","failSilently","pausedQueueEffects","WeakSet","ReactiveEffect","deps","depsTail","flags","next","cleanup","scheduler","has","delete","trigger","notify","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","nextDep","removeSub","onStop","add","runIfDirty","isDirty","dirty","batchedSub","batchedComputed","batchDepth","isComputed","startBatch","endBatch","err","prevActiveLink","dep","activeLink","tail","prev","prevDep","removeDep","computed","refreshComputed","_dirty","globalVersion","isSSR","prevSub","_value","soft","nextSub","subs","sc","trackStack","pauseTracking","resetTracking","Link","Dep","track","debugInfo","addSub","currentTail","targetMap","WeakMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","depsMap","Map","newValue","oldTarget","targetIsArray","isArrayIndex","newLength","key2","reactiveReadArray","toRaw","isShallow","toReactive","shallowReadArray","toWrapped","isReadonly","isReactive","toReadonly","arrayInstrumentations","__proto__","iterator","every","thisArg","filter","find","findLast","findLastIndex","searchProxy","separator","noTracking","reduceRight","some","toReversed","toSorted","comparer","toSpliced","unshift","method","wrapValue","iter","_next","done","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","wrapInitialAccumulator","isProxy","isNonTrackableKeys","builtInSymbols","Set","getOwnPropertyNames","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","getPrototypeOf","Reflect","readonly","reactive","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","deleteProperty","ownKeys","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createReadonlyMethod","createInstrumentationGetter","shallow","instrumentations","rawTarget","rawKey","wrap","callback","observed","clear","rawValue","valueToAdd","hadItems","targetIsMap","isPair","isKeyOnly","innerIterator","createIterableMethod","createInstrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","isExtensible","existingProxy","targetType","rawType","targetTypeMap","proxy","Proxy","markRaw","ref","createRef","shallowRef","RefImpl","_rawValue","useDirectValue","unref","ref2","toValue","source","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","newVal","ObjectRefImpl","_object","_defaultValue","_raw","_shallow","nestedRef","object","depMap","getDepFromReactive","GetterRefImpl","_getter","propertyToRef","ComputedRefImpl","setter","__v_isRef","effect","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","traverse","depth","seen","getOwnPropertySymbols","propertyIsEnumerable","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","throwInDev","vnode","errorHandler","throwUnhandledErrorInProduction","appContext","config","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","contextVNode","throwInProd","logError","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","queueJob","job","jobId","getId","lastJob","middle","middleJob","middleJobId","findInsertionIndex","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","uid","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","withScopeId","_id","withCtx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","withDirectives","directives","getComponentPublicInstance","bindings","dirs","modifiers","mounted","updated","deep","invokeDirectiveHook","prevVNode","oldBindings","hook","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","provides","_context","ce","hasInjectionContext","ssrContextKey","for","watchEffect","doWatch","immediate","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","__watcherHandles","watchStopHandle","currentInstance","isPre","queuePostRenderEffect","suspense","isFirstRun","augmentJob","watchHandle","reactiveGetter","source2","boundCleanup","forceTrigger","isMultiSource","currentEffect","baseGetter","scope","_cb","immediateFirstRun","currentWatcher","cleanupFn","owner","onWatcherCleanup","cleanup2","watch","instanceWatch","publicThis","createPathGetter","handler","reset","setCurrentInstance","pendingMounts","TeleportEndKey","isTeleport","__isTeleport","isTeleportDisabled","disabled","isTargetSVG","SVGElement","isTargetMathML","MathMLElement","resolveTarget","select","targetSelector","to","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mc","mountChildren","pc","patchChildren","pbc","patchBlockChildren","createText","createComment","dynamicChildren","mount","container2","anchor2","shapeFlag","children","mountToTarget","disabled2","targetAnchor","prepareAnchor","isCE","_teleportTargets","updateCssVars","queuePendingMount","mountJob","mountContainer","placeholder","mainAnchor","defer","pendingBranch","pendingMount","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","um","unmount","hostRemove","doRemove","shouldRemove","child","move","hydrate","nextSibling","hydrateChildren","hydrateAnchor","target2","targetNode","nodeType","_lpa","hydrateDisabledTeleport","node2","vnode2","parentAnchor","moveType","isReorder","Teleport","isDisabled","ut","leaveCbKey","enterCbKey","TransitionHookValidator","BaseTransitionPropsValidators","appear","Boolean","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","recursiveGetSubtree","subTree","component","findNonCommentChild","hasFound","Comment","BaseTransition","setup","slots","state","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","useTransitionState","default","getTransitionRawChildren","createCommentVNode","rawProps","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","afterLeave","delayLeave","earlyRemove","delayedLeave","getLeavingNodesForType","leavingVNodesCache","postClone","callHook","callAsyncHook","hook2","beforeEnter","leavingVNode","enter","afterHook","cancelHook","called","cancelled","leave","clone","hooks2","isKeepAlive","cloneVNode","transition","ssContent","ssFallback","keepComment","parentKey","keyedFragmentCount","Fragment","patchFlag","defineComponent","extraOptions","markAsyncBoundary","ids","useTemplateRef","refs","isTemplateRefKey","desc","getOwnPropertyDescriptor","pendingSetRefMap","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","__asyncResolved","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","pendingSetRef","requestIdleCallback","cancelIdleCallback","__asyncLoader","__isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","isDeactivated","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","warnMissing","Component","selfName","includeInferred","displayName","__name","getComponentName","registry","renderList","renderItem","cached","sourceIsArray","isReadonlySource","renderSlot","fallback","noSlotted","hasProps","openBlock","createBlock","createVNode","slot","validSlotContent","ensureValidVNode","slotKey","rendered","scopeId","vnodes","isVNode","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","attrs","$slots","$refs","$parent","$root","root","$host","$emit","$options","resolveMergedOptions","$forceUpdate","$nextTick","$watch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","cssModules","descriptor","useSlots","calledFunctionName","setupContext","createSetupContext","normalizePropsOrEmits","mergeModels","h","createWatcher","mixins","extends","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","mergeOptions","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","emits","methods","mergeObjectOptions","beforeCreate","mergeAsArray","created","beforeMount","beforeUpdate","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","components","merged","provide","normalizeInject","createAppContext","app","isNativeTag","performance","warnHandler","compilerOptions","propsCache","emitsCache","uid$1","createAppAPI","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","_uid","_component","_props","_container","_instance","use","plugin","install","mixin","directive","rootContainer","isHydrate","_ceVNode","__vue_app__","onUnmount","runWithContext","lastApp","useModel","camelizedName","hyphenatedName","getModelModifiers","localValue","prevEmittedValue","prevSetValue","propValue","emittedValue","hasVModel","i2","modelName","modelModifiers","event","rawArgs","isUnmounted","handlerName","number","onceHandler","emitted","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","renderComponentRoot","withProxy","propsOptions","renderCache","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","filterModelListeners","hasPropsChanged","prevProps","nextProps","emitsOptions","nextKeys","hasPropValueChanged","nextProp","prevProp","internalObjectProto","createInternalObject","isInternalObject","setFullProps","needCastKeys","rawCastValues","hasAttrsChanged","camelKey","rawCurrentProps","castValues","resolvePropValue","isAbsent","opt","hasDefault","skipFactory","propsDefaults","_setProp","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","assignSlots","baseCreateRenderer","createHydrationFns","__VUE__","hostInsert","patchProp","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","mountElement","customElement","_isVueCE","_beginPatch","patchElement","_endPatch","vnodeHook","resolveChildrenNamespace","onVnodeBeforeMount","invokeVNodeHook","needCallTransitionHooks","needTransition","onVnodeMounted","isSuspense","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","innerHTML","textContent","patchProps","propsToUpdate","dynamicProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","activate","mountComponent","updateComponent","initialVNode","emptyAppContext","exposed","exposeProxy","suspenseId","pendingId","asyncDep","asyncResolved","bc","bm","bu","bum","da","rtg","rtc","sp","createComponentInstance","renderer","setInSSRSetupState","isStateful","initProps","initSlots","setupResult","isAsyncSetup","unsetCurrentInstance","resolvedResult","handleSetupResult","finishComponentSetup","setupStatefulComponent","setupComponent","registerDep","setupRenderEffect","nextVNode","prevChildren","nextChildren","$stable","shouldUpdateComponent","updateComponentPreRender","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","activeBranch","updateHOCHostEl","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","__asyncHydrate","_hasShadowRoot","_injectChildStyle","scopedInitialVNode","rawPrevProps","kebabKey","camelizedKey","updateProps","needDeletionCheck","deletionComparisonTarget","updateSlots","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","arrI","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","remove2","performLeave","wasLeaving","_isLeaving","moveStaticNode","cacheIndex","deactivate","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","hasOnce","shouldInvalidateMemo","onVnodeUnmounted","removeFragment","removeStaticNode","performRemove","invalidateMount","teleportEnd","isFlushing","_vnode","mt","createApp","currentNamespace","allowed","ch1","ch2","subComponent","anchorVnode","__isSuspense","currentBlock","disableTracking","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","staticCount","normalizeChildren","normalize","cloned","guardReactiveProps","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","flag","asBlock","slotFlag","toMerge","incoming","internalSetCurrentInstance","registerGlobalSetter","setters","compile","installWithProxy","__ssrInlineRender","ssrRender","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","expose","filters","resolveInjections","methodHandler","parentProvides","registerLifecycleHook","register","_hook","applyOptions","attrsProxyHandlers","getterOrOptions","debugOptions","propsOrChildren","policy","tt","trustedTypes","createPolicy","createHTML","unsafeToTrustedHTML","doc","templateContainer","nodeOps","insertBefore","tag","createElementNS","multiple","nodeValue","selector","before","previousSibling","lastChild","cloneNode","wrapper","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","Transition","decorate$1","baseProps","durations","NumberOf","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","_enterCancelled","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","hasExplicitCallback","whenTransitionEnds","forceReflow","resolveTransitionProps","h2","toNumber","cls","classList","_vtc","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","getTransitionInfo","endEvent","ended","removeEventListener","onEnd","addEventListener","delays","toMs","ownerDocument","body","offsetHeight","vShowOriginalDisplay","vShowHidden","vShow","display","setDisplay","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","querySelectorAll","setVarsOnNode","setVars","setVarsOnVNode","ob","MutationObserver","observe","childList","disconnect","isHydrating","setProperty","displayRE","importantRE","setStyle","prefixed","rawName","prefixCache","prefixes","autoPrefix","shouldPreserveTextareaResizeStyle","tagName","xlinkNS","patchAttr","isSVG","isBoolean","removeAttributeNS","setAttributeNS","removeAttribute","patchDOMProp","attrName","getAttribute","needRemove","veiKey","optionsModifierRE","optionsModifierEventRE","cachedNow","getNow","Date","now","isNativeOn","HTMLElement","getModelAssigner","onCompositionStart","composing","onCompositionEnd","dispatchEvent","Event","assignKey","castValue","vModelText","lazy","castToNumber","rootNode","getRootNode","Document","ShadowRoot","activeElement","vModelCheckbox","modelValue","_modelValue","elementValue","getValue","filtered","getCheckboxValue","setChecked","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","left","button","right","exact","withModifiers","_withMods","cacheKey","guard","keyNames","esc","space","up","down","withKeys","_withKeys","eventKey","rendererOptions","prevValue","nextValue","transitionClasses","className","patchClass","isCssString","hasControlledDisplay","prevStyle","cssVarText","patchStyle","invokers","existingInvoker","parseName","invoker","initialValue","_vts","attached","originalStop","stopImmediatePropagation","_stopped","handlers","createInvoker","patchEvent","shouldSetAsProp","_def","shouldSetAsPropForVueCE","_trueValue","_falseValue","createRenderer","containerOrSelector","normalizeContainer","resolveRootNamespace","Element","activePinia","setActivePinia","pinia","piniaSymbol","MutationType","IS_CLIENT","_global","global","download","url","xhr","XMLHttpRequest","responseType","onload","saveAs","response","onerror","send","corsEnabled","status","click","MouseEvent","evt","createEvent","initMouseEvent","_navigator","navigator","userAgent","isMacOSWebView","HTMLAnchorElement","blob","rel","href","origin","location","URL","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","bom","popup","innerText","force","isSafari","isChromeIOS","FileReader","reader","onloadend","readAsDataURL","assign$1","addSubscription","subscriptions","onCleanup","removeSubscription","idx","triggerSubscriptions","fallbackRunWithContext","ACTION_MARKER","ACTION_NAME","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","createSetupStore","$id","hot","isOptionsStore","optionsForPlugin","actions","$subscribeOptions","isListening","isSyncListening","debuggerEvents","actionSubscriptions","initialState","activeListener","$patch","partialStateOrMutator","subscriptionMutation","patchFunction","storeId","events","patchObject","payload","myListenerId","$reset","newState","$state","action","wrappedAction","afterCallbackList","onErrorCallbackList","store","after","onError","partialStore","_p","$onAction","$subscribe","stopWatcher","direct","$dispose","_s","setupStore","_e","actionValue","extender","loadState","_nc_initial_state","elem","parsedValue","atob","cause","ProxyBus","bus","bus2","getVersion","valid","warn","subscribe","unsubscribe","SimpleBus","getBus","OC","_eventBus","_nc_event_bus","_generateUrlPath","params","allOptions","generateUrl","noRewrite","baseOrRootURL","baseURL","getRootUrl","modRewriteWorking","webroot","_oc_webroot","pathname","ScopedStorage","static","wrapped","persistent","GLOBAL_SCOPE_PERSISTENT","GLOBAL_SCOPE_VOLATILE","scopeKey","setItem","getItem","removeItem","setRequestToken","_nc_auth_requestToken","dataset","requesttoken","_internal","currentUser","attribute","getCurrentUser","getElementsByTagName","isAdmin","_oc_isadmin","appId","clearedOnLogout","persist","clearOnLogout","localStorage","sessionStorage","LogLevel","LogLevel2","ConsoleLogger","formatMessage","Debug","Info","info","Warn","Fatal","fatal","buildConsoleLogger","LoggerBuilder","setApp","setLogLevel","setUid","detectUser","user","detectLogLevel","onLoaded","readyState","_oc_config","loglevel","_oc_debug","getLoggerBuilder","builder","hasOwnInPrototypeChain","thing","kindOf","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isNumber","isFile","isBlob","isFileList","G","FormDataCtor","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","isContextDefined","isTypedArray","TypedArray","isHTMLForm","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","random","callbacks","asap","queueMicrotask","isIterable","isFormData","append","kind","isArrayBufferView","isEmptyObject","isReactNativeBlob","uri","isReactNative","formData","getParts","isRegExp","isStream","pipe","merge","objs","caseless","skipUndefined","assignValue","targetKey","symbols","symbol","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","position","toArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","hasOwnProp","getSafeProp","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toCamelCase","toFiniteNumber","isSpecCompliantForm","toJSONObject","visited","visit","reducedValue","isThenable","isSafeIterable","ignoreDuplicateOf","utils","INVALID_UNICODE_HEADER_VALUE_CHARS","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","trimSPorHTAB","toByteStringHeaderObject","headers","byteStringHeaders","header","sanitizeByteStringHeaderValue","$internals","normalizeHeader","normalizeValue","sanitizeHeaderValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","parseHeaders","dest","entry","parser","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","w","char","formatHeader","targets","asStrings","getSetCookie","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","AxiosError","request","customProps","axiosError","isAxiosError","redactKeys","redact","serializedConfig","lowerKeys","hasOwnOrPrototypeToJSON","redactConfig","fileName","lineNumber","columnNumber","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","maxDepth","useBlob","convertValue","toISOString","throwIfMaxDepthExceeded","ancestors","currentValue","stringifyWithDepthLimit","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","_options","serialize","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","advertiseZstdAcceptEncoding","validateStatusUndefinedResolves","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","throwIfDepthExceeded","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","own","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","platform","helpers","isNode","toURLEncodedForm","_FormData","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","transformData","isCancel","__CANCEL__","settle","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","round","lastArgs","timer","timestamp","threshold","invoke","loaded","rawLoaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isMSIE","protocol","host","port","expires","domain","secure","sameSite","cookie","toUTCString","cookies","eq","decodeURIComponent","malformedHttpProtocol","httpProtocolControlCharacters","assertValidHttpProtocolURL","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","allowedSocketPaths","responseEncoding","configValue","transitional2","transitional1","getMergedTransitionalOption","FORM_DATA_CONTENT_HEADERS","newConfig","auth","username","password","getHeaders","formHeaders","setFormDataHeaders","isURLSameOrigin","xsrfValue","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","responseURL","onabort","ontimeout","timeoutErrorMessage","setRequestHeader","upload","cancel","abort","aborted","parseProtocol","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","trackStream","stream","onProgress","onFinish","async","iterable","asyncIterator","getReader","readStream","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isHexDigit","charCode","isPercentEncodedByte","VERSION","decodeURIComponentSafe","globalObject","TextEncoder","Request","Response","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","duplex","hasContentType","supportsResponseStream","resolvers","getBodyLength","_request","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","toAbortSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","protocolIndex","urlToCheck","maybeWithAuthCredentials","parsedURL","comma","effectiveLen","pad","tailIsPct3D","estimateDataURLDecodedBytes","outboundLength","mustEnforceStreamBody","trackRequestStream","getContentLength","resolveBodyLength","contentTypeHeader","isCredentialsSupported","resolvedOptions","credentials","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","networkError","seedCache","getFetch","seeds","seed","knownAdapters","http","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","CanceledError","toFormData","Cancel","all","promises","spread","formToJSON","getAdapter","RETRY_KEY","RETRY_DELAY_KEY","cancelableClient","client","observer","onRequestTokenUpdate","getCancelableClient","ok","json","fetchRequestToken","onCsrfTokenError","retryDelay","retryIfMaintenanceMode","onMaintenanceModeError","reloadExpiredSession","reload","saveState","post","STATE_DISABLED","STATE_CREATED","STATE_ENABLED","useTotpStore","idOrOptions","useStore","hasContext","getters","localState","toRefs","computedGetters","createOptionsStore","defineStore","totpState","enable","secret","qrUrl","STATE","confirm","disable","tryOnScopeDispose","locals","isClient","defaultWindow","unrefElement","elRef","_$el","plain","useEventListener","firstParamTargets","_firstParamTargets$va","_firstParamTargets$va2","raw_targets","raw_events","raw_listeners","raw_options","optionsClone","flatMap","useSupported","useMounted","onKeyStroke","eventName","passive","predicate","keyFilter","repeat","useElementSize","initialSize","box","_unrefElement","namespaceURI","stop1","observerOptions","isSupported","stopWatch","_targets","els","ResizeObserver","_el","useResizeObserver","boxSize","borderBoxSize","contentBoxSize","devicePixelContentBoxSize","$elem","rect","getBoundingClientRect","formatBoxSize","inlineSize","blockSize","contentRect","sync","getLifeCycleTarget","tryOnMounted","ele","offsetWidth","stop2","createElementId","_nc_vue_element_id","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","POSITIVE_INFINITY","isFrozen","seal","_ref","construct","func","_len","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","arrayIsArray","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","numberToString","booleanToString","bigintToString","symbolToString","objectHasOwnProperty","regExpTest","typeErrorCreate","_len4","_key4","_len3","_key3","addToSet","transformCaseFunc","lcElement","cleanArray","newObject","_ref2","_ref3","property","lookupGetter","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","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","_resolveSetOption","cfg","transform","purify","createDOMPurify","DOMPurify","removed","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","trustedTypesPolicy","defaultTrustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","_document","implementation","createNodeIterator","createDocumentFragment","importNode","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","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","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","tagCheck","attributeCheck","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_URI_SAFE_ATTR","ADD_FORBID_CONTENTS","tbody","TRUSTED_TYPES_POLICY","createScriptURL","previousTrustedTypesPolicy","purifyHostElement","suffix","ATTR_NAME","hasAttribute","policyName","scriptUrl","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","_removeAttribute","getAttributeNode","_stripDisallowedAttributes","_initDocument","leadingWhitespace","dirtyPayload","parseFromString","documentElement","createDocument","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_stripTemplateExpressions","_scrubTemplateExpressions2","_node$querySelectorAl","walker","currentNode","nextNode","templates","tmpl","_isDocumentFragment","_isClobbered","realTagName","nodeName","hasChildNodes","_isNode","_executeHooks","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_sanitizeElements","allowedTags","firstElementChild","_isUnsafeNode","_isBasicCustomElement","hoisted","_sanitizeDisallowedNode","parentTagName","_checkSvgNamespace","_checkMathMlNamespace","_checkHtmlNamespace","_checkValidNamespace","_isValidAttribute","lcTag","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","getAttributeType","_createTrustedScriptURL","_setAttributeValue","_sanitizeAttributes","hookEvent","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","_sanitizeShadowDOM2","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","shadow","isElement","rootName","sr","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","inPlace","_neutralizePatchLinkage","nn","walkRoot","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks","getLanguage","_nc_l10n_language","getAppTranslations","translations","_oc_l10n_registry_translations","pluralFunction","_oc_l10n_registry_plural_functions","translate","placeholdersOrNumber","optionsOrNumber","identity","optSanitize","optEscape","isValidReplacement","translation","bundle","vars2","number2","replacement","_nc_l10n_locale","locale","Intl","DateTimeFormat","replaceAll","lang","language","GettextWrapper","addTranslations","dict","msgid","msgid_plural","msgidPlural","msgstr","fromEntries","gettext","original","placeholders","ngettext","singular","plural","textSingular","textPlural","translatePlural","GettextBuilder","setLanguage","detectLocale","detectLanguage","addTranslation","enableDebugMode","getPlural","getGettextBuilder","chunks","registered","decompressed","routerKey","majorVersion","isLegacy","isLegacy34","NC_FORM_BOX_CONTEXT_KEY","_export_sfc","_sfc_main","alignment","ariaLabel","pressed","variant","wide","__props","__emit","formBoxItemClass","isInFormBox","hasVueRouterContext","hasPressedState","variantWithPressed","isTertiaryVariant","flexAlignment","isReverseAligned","getNcPopoverTriggerAttrs","ncPopoverTriggerAttrs","activeClass","onClick","_cache","NcButton","xmlns","_hoisted_4","directional","inline","iconSize","cleanSvg","svgDocument","role","NcIconSvgWrapper","_hoisted_5","NcLoadingIcon","appearance","colors","colors2","icon","label","isLoading","handleClick","mdiAlertCircleOutline","mdiCheck","mdiClose","candidateSelectors","candidateSelector","NoElement","msMatchesSelector","webkitMatchesSelector","_element$getRootNode","_isInert","lookUp","_node$getAttribute","inertAtt","getCandidates","includeContainer","candidates","_getCandidatesIteratively","elements","elementsToCheck","assigned","assignedElements","nestedCandidates","flatten","scopeParent","shadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","hasTabIndex","getTabIndex","tabIndex","_node$getAttribute2","attValue","isContentEditable","sortOrderedTabbables","documentOrder","isInput","isZeroArea","_node$getBoundingClie","isNodeMatchingSelectorFocusable","isHiddenInput","displayCheck","checkVisibility","checkOpacity","opacityProperty","contentVisibilityAuto","visibilityProperty","checkVisibilityCSS","visibility","nodeUnderDetails","parentElement","originalNode","assignedSlot","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","nodeRoot","nodeRootHost","contains","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","getClientRects","isHidden","isDetailsWithSummary","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isRadio","radioSet","radioScope","form","queryRadios","CSS","getCheckedRadio","isTabbableRadio","isNonTabbableRadio","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","isScope","candidateTabindex","getSortOrderTabIndex","sortable","isTabbable","focusableCandidateSelector","isFocusable","_createForOfIteratorHelper","F","_defineProperty","_toPrimitive","_toPropertyKey","_objectSpread2","activeFocusTraps","getActiveTrap","trapStack","activateTrap","trap","pauseTrap","trapIndex","deactivateTrap","unpauseTrap","activeTrap","_setPausedState","_isManuallyPaused","isTabEvent","keyCode","isKeyForward","isKeyBackward","delay","valueOrHandler","getActualTarget","composedPath","internalTrapStack","createFocusTrap","userOptions","returnFocusOnDeactivate","escapeDeactivates","delayInitialFocus","delayReturnFocus","isolateSubtrees","containers","containerGroups","tabbableGroups","adjacentElements","alreadySilent","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","paused","manuallyPaused","delayInitialFocusTimer","recentNavEvent","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","tabbableNodes","getNodeForOption","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_toConsumableArray","_getActiveElement","getInitialFocusNode","tabbableOptions","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","tabbable","focusableNodes","focusable","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","nextTabbableNode","forward","nodeIdx","_tryFocus","focus","preventScroll","isSelectableInput","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","clickOutsideDeactivates","returnFocus","allowOutsideClick","checkFocusIn","targetContained","navAcrossContainers","mruContainerIdx","mruTabIdx","checkTabKey","checkKeyNav","checkEscapeKey","checkClick","addListeners","capture","removeListeners","mutationObserver","mutations","focusedNode","mutation","removedNodes","isConnected","initialFocusNode","updateObservedNodes","subtree","activateOptions","_preexistingTrap$_set","onActivate","onPostActivate","checkCanFocusTrap","preexistingTrap","revertState","_setSubtreeIsolation","finishActivation","afterListeners","listenersPromise","_preexistingTrap$_set2","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","completeDeactivation","finishDeactivation","pauseOptions","unpause","unpauseOptions","updateContainerElements","containerElements","elementsAsArray","_step","containerAncestors","insideShadowRoot","siblings","_step2","_iterator2","collectAdjacentElements","onPause","onPostPause","onUnpause","onPostUnpause","finishUnpause","isEnabled","_el$getAttribute","ariaHidden","inert","getTrapStack","_nc_focus_trap","alignments","placements","side","oppositeSideMap","bottom","top","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getAlignmentSides","rects","rtl","alignmentAxis","mainAlignmentSide","reference","floating","getOppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getPaddingObject","padding","expandPaddingObject","rectToClientRect","computeCoordsFromPlacement","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","detectOverflow","_await$platform$isEle","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","flip","_middlewareData$arrow","_middlewareData$flip","middlewareData","initialPlacement","mainAxis","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","detectOverflowOptions","arrow","alignmentOffset","initialSideAxis","isBasePlacement","isRTL","oppositePlacement","getExpandedPlacements","hasFallbackAxisSideDirection","direction","isStart","getSideList","getOppositeAxisPlacements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","originSides","defaultView","userAgentData","brands","brand","overflowX","overflowY","backdropFilter","WebkitBackdropFilter","perspective","willChange","contain","visualViewport","offsetLeft","offsetTop","frameElement","clientLeft","paddingLeft","clientTop","paddingTop","scrollLeft","scrollTop","pageXOffset","pageYOffset","C","W","D","S","clientWidth","clientHeight","scrollWidth","scrollHeight","A","O","P","getDimensions","getElementRects","distance","skidding","instantMove","disposeTimeout","popperTriggers","preventOverflow","overflowPadding","arrowPadding","arrowOverflow","autoHideOnMousedown","themes","tooltip","triggers","hideTriggers","show","hide","handleResize","loadingContent","dropdown","autoHide","menu","$extend","MSStream","Te","pe","hover","touch","pointer","ae","de","le","he","Y","theme","q","parentPopper","required","targetNodes","referenceNode","popperNode","shown","showGroup","ariaId","positioningDisabled","showTriggers","popperShowTriggers","popperHideTriggers","eagerMount","popperClass","computeTransformOrigin","autoMinSize","autoSize","autoMaxSize","autoBoundaryMaxSize","shiftCrossAxis","noAutoFocus","resize","isShown","skipTransition","showFrom","showTo","hideFrom","hideTo","centerOffset","transformOrigin","randomId","shownChildren","lastAutoHide","pendingHide","containsGlobalTarget","isDisposed","mouseDownContains","popperId","shouldMountContent","slotData","onResize","hasPopperShowTriggerHover","dispose","init","$_ensureTeleport","$_computePosition","$_detachPopperNode","$_autoShowHide","skipDelay","lockedChild","$_scheduleShow","$_showFrameLocked","$_hideInProgress","$_isAimingPopper","lockedChildTimer","$_scheduleHide","$_events","$_preventShow","$_referenceNode","$_targetNodes","ELEMENT_NODE","$_popperNode","$_innerNode","$_arrowNode","$_swapTargetAttrs","$_addEventListeners","$_removeEventListeners","$_updateParentShownChildren","middleware","_middlewareData$offse","diffCoords","mainAxisMulti","crossAxisMulti","convertValueToCoords","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","allowedPlacements","autoAlignment","placements$1","getPlacementList","currentIndex","autoPlacement","currentPlacement","alignmentSides","currentOverflows","allOverflows","placementsSortedByMostSpace","placementsThatFitOnEachSide","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","skip","maxWidth","maxHeight","_state$middlewareData","_state$middlewareData2","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","platformWithDetectOverflow","statefulPlacement","resetCount","currentMiddleware","nextX","nextY","$_scheduleTimer","$_applyHide","$_applyShow","$_computeDelay","$_disposeTimer","$_applyShowEffect","$_registerEventListeners","$_applyAttrsToTarget","usedByTooltip","$_registerTriggerListeners","eventType","$_refreshListeners","$_handleGlobalClose","closePopover","ue","fe","Pe","closeAllPopover","et","clientX","clientY","st","X","nt","emitOnMount","ignoreWidth","ignoreHeight","_w","_h","emitSize","_resizeObject","addResizeHandlers","removeResizeHandlers","compareAndNotify","pt","tabindex","at","__file","Z","themeClass","$resetCss","Ze","dt","toPx","lt","ht","ct","ee","onKeyup","onNotify","te","popper","K","Popper","PopperContent","finalTheme","vPopperTheme","getTargetNodes","popperContent","onShow","onHide","onApplyShow","onApplyHide","onCloseGroup","onCloseDirective","onAutoHide","I","V","Ee","Se","asyncContent","isContentAsync","loading","finalContent","fetchContent","$_fetchId","$_isShown","$_loading","onResult","Ht","isRtl","languageCode","_sfc_main$1","triggerAttrs","popupRole","structuredClone","NcPopover","Dropdown","NcPopoverTriggerProvider","closeOnClickOutside","noCloseOnClickOutside","noFocusTrap","popoverBaseClass","popoverTriggers","setReturnFocus","internalShown","internalTriggers","internalPlacement","checkTriggerA11y","clearFocusTrap","clearEscapeStopPropagation","getPopoverTriggerContainerElement","removeFloatingVueAriaDescribedBy","triggerElements","getPopoverContentElement","popover","useFocusTrap","$focusTrap","fallBackFocus","options2","addEscapeStopPropagation","stopKeydownEscapeHandler","afterShow","afterHide","$setup","_component_NcPopoverTriggerProvider","_component_Dropdown","$event","$style","ncPopover","slotProps","NC_ACTIONS_IS_SEMANTIC_MENU","NC_ACTIONS_CLOSE_MENU","IconDotsHorizontal","fillColor","isSlotPopulated","NcActions","actionsMenuSemanticType","closeMenu","manualOpen","forceMenu","forceName","menuName","primary","defaultIcon","boundariesElement","getElementById","opened","focusIndex","triggerButtonVariant","withArrowNavigation","withTabNavigation","withFocusTrap","navigation","dialog","unknown","handleEscapePressed","shouldPause","trapStackController","pausedStack","createTrapStackController","useTrapStackControl","getActionName","isValidSingleAction","isAction","isIconUrl","toggleMenu","openMenu","triggerButton","onOpened","focusFirstAction","onClosed","getCurrentActiveMenuItemElement","getFocusableMenuItemElements","onKeydown","focusList","newFocusIndex","focusAction","focusPreviousAction","focusNextAction","focusLastAction","onTriggerKeydown","removeCurrentActive","currentActiveElement","focusElement","liMenuParent","preventIfEvent","indexLength","firstCheckedIndex","onFocus","onBlur","findActions","actions2","validInlineActions","inlineActions","menuActions","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","buttonText","propsToForward","renderActionsPopover","triggerIcon","triggerRandomId","onAfterShow","onAfterClose","isMac","disableKeyboardShortcuts","OCP","Accessibility","derivedKeysRegex","nonAsciiPrintableRegex","eventHandler","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","allowInModal","getElementsByClassName","shouldIgnoreEvent","useHotKey","keysOrFilter","validateKeyEvent","caseSensitive","stopKeyDown","stopKeyUp","checkIfDarkTheme","backgroundInvertIfDark","getPropertyValue","createSharedComposable","isFullscreen","checkIfIsFullscreen","outerHeight","screen","isLessThanBreakpoint","breakpoint","isMobile","isSmallMobile","MOBILE_BREAKPOINT","getSameNodeParent","_hoisted_6","_hoisted_7","hasPrevious","hasNext","outTransition","enableSlideshow","slideshowDelay","slideshowPaused","disableSwipe","spreadNavigation","noClose","lightBackdrop","closeButtonOutside","additionalTrapElements","labelId","numHeaderActions","cssSlideshowDelay","showModal","scopeIdAttrs","scopeIds","getSameNodeAncestors","instance2","useScopeIdAttrs","modalId","maskElement","focusTrap","isActive","isPlaying","stopSlideshow","startSlideshow","interval","immediateCallback","clean","clearInterval","intervalValue","setInterval","useIntervalFn","nextSlide","toRef","animationKey","runSlideshow","stopSwipe","onSwipe","onSwipeEnd","onSwipeStart","coordsStart","coordsEnd","diffX","diffY","isThresholdExceeded","isSwiping","getTouchEventCoords","touches","updateCoordsEnd","listenerOptions","stops","updateCoordsStart","lengthX","lengthY","useSwipe","previousSlide","restartSlideshow","handleClickModalWrapper","fallbackFocus","stroke","cx","cy","onMousedown","NcModal","buttons","navigationAriaLabel","navigationAriaLabelledby","contentClasses","dialogClasses","navigationClasses","wrapperElement","dialogWidth","isNavigationCollapsed","hasNavigation","navigationId","navigationAriaLabelAttr","navigationAriaLabelledbyAttr","dialogRootElement","dialogTagName","dialogListeners","submit","handleClosing","handleClosed","modalProps","onClose","isCollapsed","reportValidity","handleButtonClose","NcDialog","inputClass","labelOutside","showTrailingButton","trailingButtonLabel","success","helperText","pill","__expose","inputElement","hasTrailingIcon","internalPlaceholder","isValidLabel","isValidLabel2","ariaDescribedby","ariaDescribedby2","handleInput","onInput","NcInputField","checkPasswordStrength","minlength","asText","visible","inputFieldInstance","password_policy","passwordPolicy","getCapabilities","internalHelpMessage","minLengthWithPolicy","minLength","toggleVisibility","function_","wait","storedContext","storedArguments","timeoutId","callContext","callArguments","later","debounced","arguments_","callNow","debounce","ocsVersion","generateOcsUrl","ocs","onTrailingButtonClick","dynamicSlots","createSlots","NcPasswordField","PwdConfirmationMode","PwdConfirmationMode2","PAGE_LOAD_TIME","NC_MAJOR_VERSION","gtBuilder","t2","validate","passwordInput","hasError","hasConfirmationHeader","isConfirmationError","passwordDialog","PasswordDialogVue","_passwordDialog","_dialogCallback","confirmPassword","backendAllowsPasswordConfirmation","Strict","serverTimeDiff","nc_pageLoad","nc_lastLogin","isPasswordConfirmationRequired","Lax","rest","spawnDialog","promptPassword","lastLogin","_confirmPassword","EVENT_READY","generate","div","childNode","QR","confirmation","confirmationCode","onConfirmKeyDown","SetupConfirmation","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_toDisplayString","_createVNode","_component_QR","maxlength","autocomplete","inputmode","autocapitalize","totpStore","loadingConfirmation","toggleEnabled","createTOTP","disableTOTP","Logger","Notification","showTemporary","enableTOTP","_Fragment","onChange","_hoisted_3","_createBlock","_component_SetupConfirmation","onConfirm","toBeInstalled","$pinia","createPinia","PersonalTotpSettings"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"twofactor_totp-main-settings.js?v=2f650a779188faeb8e65","mappings":"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","sources":["webpack:///twofactor_totp/node_modules/base64-js/index.js","webpack:///twofactor_totp/node_modules/buffer/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/password-confirmation/dist/style.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcActions-DOI7rRa0.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcButton-Bf9wuDV-.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcDialog-BSV74Bru.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcIconSvgWrapper-N3OwSN9O.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcInputField-DpyFJ1xw.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcLoadingIcon-CWUlo4XY.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcModal-D81luiuU.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcPasswordField-BN4HFgU5.css","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/assets/NcPopover-C7YEE_vn.css","webpack:///twofactor_totp/src/components/SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true","webpack:///twofactor_totp/src/components/PersonalTotpSettings.vue?vue&type=style&index=0&id=48827c4a&scoped=true&lang=css","webpack:///twofactor_totp/node_modules/css-loader/dist/runtime/api.js","webpack:///twofactor_totp/node_modules/css-loader/dist/runtime/sourceMaps.js","webpack:///twofactor_totp/node_modules/dijkstrajs/dijkstra.js","webpack:///twofactor_totp/node_modules/encode-utf8/index.js","webpack:///twofactor_totp/node_modules/escape-html/index.js","webpack:///twofactor_totp/node_modules/ieee754/index.js","webpack:///twofactor_totp/node_modules/process/browser.js","webpack:///twofactor_totp/node_modules/qrcode/lib/browser.js","webpack:///twofactor_totp/node_modules/qrcode/lib/can-promise.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/alignment-pattern.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/alphanumeric-data.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/bit-buffer.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/bit-matrix.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/byte-data.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/error-correction-code.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/error-correction-level.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/finder-pattern.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/format-info.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/galois-field.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/kanji-data.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/mask-pattern.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/mode.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/numeric-data.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/polynomial.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/qrcode.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/regex.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/segments.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/utils.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/version-check.js","webpack:///twofactor_totp/node_modules/qrcode/lib/core/version.js","webpack:///twofactor_totp/node_modules/qrcode/lib/renderer/canvas.js","webpack:///twofactor_totp/node_modules/qrcode/lib/renderer/svg-tag.js","webpack:///twofactor_totp/node_modules/qrcode/lib/renderer/utils.js","webpack:///twofactor_totp/node_modules/semver/classes/semver.js","webpack:///twofactor_totp/node_modules/semver/functions/major.js","webpack:///twofactor_totp/node_modules/semver/functions/parse.js","webpack:///twofactor_totp/node_modules/semver/functions/valid.js","webpack:///twofactor_totp/node_modules/semver/internal/constants.js","webpack:///twofactor_totp/node_modules/semver/internal/debug.js","webpack:///twofactor_totp/node_modules/semver/internal/identifiers.js","webpack:///twofactor_totp/node_modules/semver/internal/parse-options.js","webpack:///twofactor_totp/node_modules/semver/internal/re.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///twofactor_totp/node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///twofactor_totp/node_modules/vue-loader/dist/exportHelper.js","webpack:///twofactor_totp/webpack/bootstrap","webpack:///twofactor_totp/webpack/runtime/compat get default export","webpack:///twofactor_totp/webpack/runtime/define property getters","webpack:///twofactor_totp/webpack/runtime/global","webpack:///twofactor_totp/webpack/runtime/hasOwnProperty shorthand","webpack:///twofactor_totp/webpack/runtime/make namespace object","webpack:///twofactor_totp/webpack/runtime/nonce","webpack:///twofactor_totp/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///twofactor_totp/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///twofactor_totp/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///twofactor_totp/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///twofactor_totp/node_modules/pinia/dist/pinia.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/initial-state/dist/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/event-bus/dist/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/router/dist/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","webpack:///twofactor_totp/node_modules/@nextcloud/auth/dist/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/browser-storage/dist/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","webpack:///twofactor_totp/node_modules/@nextcloud/logger/dist/index.mjs","webpack:///twofactor_totp/src/logger.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/bind.js","webpack:///twofactor_totp/node_modules/axios/lib/utils.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/sanitizeHeaderValue.js","webpack:///twofactor_totp/node_modules/axios/lib/core/AxiosHeaders.js","webpack:///twofactor_totp/node_modules/axios/lib/core/AxiosError.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/toFormData.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/buildURL.js","webpack:///twofactor_totp/node_modules/axios/lib/core/InterceptorManager.js","webpack:///twofactor_totp/node_modules/axios/lib/defaults/transitional.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/browser/index.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/browser/classes/FormData.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/browser/classes/Blob.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/common/utils.js","webpack:///twofactor_totp/node_modules/axios/lib/platform/index.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/formDataToJSON.js","webpack:///twofactor_totp/node_modules/axios/lib/defaults/index.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack:///twofactor_totp/node_modules/axios/lib/core/transformData.js","webpack:///twofactor_totp/node_modules/axios/lib/cancel/isCancel.js","webpack:///twofactor_totp/node_modules/axios/lib/cancel/CanceledError.js","webpack:///twofactor_totp/node_modules/axios/lib/core/settle.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/speedometer.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/progressEventReducer.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/throttle.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/cookies.js","webpack:///twofactor_totp/node_modules/axios/lib/core/buildFullPath.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/combineURLs.js","webpack:///twofactor_totp/node_modules/axios/lib/core/mergeConfig.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/resolveConfig.js","webpack:///twofactor_totp/node_modules/axios/lib/adapters/xhr.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/parseProtocol.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/composeSignals.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/trackStream.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","webpack:///twofactor_totp/node_modules/axios/lib/env/data.js","webpack:///twofactor_totp/node_modules/axios/lib/adapters/fetch.js","webpack:///twofactor_totp/node_modules/axios/lib/adapters/adapters.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/null.js","webpack:///twofactor_totp/node_modules/axios/lib/core/dispatchRequest.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/validator.js","webpack:///twofactor_totp/node_modules/axios/lib/core/Axios.js","webpack:///twofactor_totp/node_modules/axios/lib/cancel/CancelToken.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack:///twofactor_totp/node_modules/axios/lib/axios.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/spread.js","webpack:///twofactor_totp/node_modules/axios/lib/helpers/isAxiosError.js","webpack:///twofactor_totp/node_modules/axios/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/interceptors/csrf-token.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/interceptors/maintenance-mode.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/client.js","webpack:///twofactor_totp/node_modules/@nextcloud/axios/dist/interceptors/not-logged-in.js","webpack:///twofactor_totp/src/services/StateService.js","webpack:///twofactor_totp/src/state.js","webpack:///twofactor_totp/src/store.js","webpack:///twofactor_totp/src/components/PersonalTotpSettings.vue","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcDialog-BSV74Bru.css?afe9","webpack:///twofactor_totp/node_modules/@vueuse/shared/dist/index.js","webpack:///twofactor_totp/node_modules/@vueuse/core/dist/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/createElementId-DhjFt1I9.mjs","webpack:///twofactor_totp/node_modules/dompurify/dist/purify.es.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/l10n/dist/chunks/translation-DoG5ZELJ.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/l10n/dist/gettext.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/_l10n-CG4CuN3H.mjs","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcButton-Bf9wuDV-.css?f0f9","webpack:///twofactor_totp/node_modules/@nextcloud/vue/node_modules/vue-router/dist/useApi-s_02lHjl.js","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/legacy-BoqDmOCa.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/useNcFormBox-Djlh582y.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcButton-QbPBynlU.mjs","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcIconSvgWrapper-N3OwSN9O.css?3404","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper-g8ubWhoz.mjs","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcLoadingIcon-CWUlo4XY.css?b0af","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcLoadingIcon-BOVpFVQz.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-Cn-8O9iZ.mjs","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcModal-D81luiuU.css?f643","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/mdi-CpchYUUV.mjs","webpack:///twofactor_totp/node_modules/tabbable/dist/index.esm.js","webpack:///twofactor_totp/node_modules/focus-trap/dist/focus-trap.esm.js","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcActions-DOI7rRa0.css?cfe0","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/focusTrap-HJQ4pqHV.mjs","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcPopover-C7YEE_vn.css?e254","webpack:///twofactor_totp/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack:///twofactor_totp/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/node_modules/floating-vue/dist/floating-vue.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/logger-D3RVzcfQ.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/rtl-v0UOPAM7.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcPopover-CObDh89q.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/useNcActions-BzPO2c4h.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcActions-DY4GGONi.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl-B6cEicto.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/composables/useFormatDateTime/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/platform-CC2ecGvV.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/composables/useHotKey/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/functions/isDarkTheme/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/composables/useIsFullscreen/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcModal-B-YLND3e.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcDialog-D1u-qo74.mjs","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcPasswordField-BN4HFgU5.css?6627","webpack://twofactor_totp/./node_modules/@nextcloud/vue/dist/assets/NcInputField-DpyFJ1xw.css?2189","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcInputField-B1bGxYHt.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/chunks/NcPasswordField-Be5_qcfm.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/capabilities/dist/index.mjs","webpack:///twofactor_totp/node_modules/debounce/index.js","webpack:///twofactor_totp/node_modules/@nextcloud/password-confirmation/dist/index.mjs","webpack:///twofactor_totp/node_modules/@nextcloud/vue/dist/functions/dialog/index.mjs","webpack://twofactor_totp/./node_modules/@nextcloud/password-confirmation/dist/style.css?f683","webpack:///twofactor_totp/src/components/SetupConfirmation.vue","webpack:///twofactor_totp/node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.esm.js","webpack://twofactor_totp/./src/components/SetupConfirmation.vue?697b","webpack://twofactor_totp/./src/components/SetupConfirmation.vue?64ca","webpack://twofactor_totp/./src/components/PersonalTotpSettings.vue?f0dc","webpack://twofactor_totp/./src/components/PersonalTotpSettings.vue?a397","webpack:///twofactor_totp/src/main-settings.js"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n._passwordDialog_joix2_2 {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px 0;\n\tmargin-inline: 6px;\n\tmargin-block-end: 6px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/password-confirmation/dist/style.css\"],\"names\":[],\"mappings\":\";AACA;CACC,aAAa;CACb,sBAAsB;CACtB,WAAW;CACX,kBAAkB;CAClB,qBAAqB;AACtB\",\"sourcesContent\":[\"\\n._passwordDialog_joix2_2 {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 10px 0;\\n\\tmargin-inline: 6px;\\n\\tmargin-block-end: 6px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-5f7eed6b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-items[data-v-5f7eed6b] {\n display: flex;\n align-items: center;\n gap: calc((var(--default-clickable-area) - 16px) / 2 / 2);\n}\n.action-item[data-v-5f7eed6b] {\n --open-background-color: var(--color-background-hover, \\$action-background-hover);\n position: relative;\n display: inline-block;\n}\n.action-item.action-item--primary[data-v-5f7eed6b] {\n --open-background-color: var(--color-primary-element-hover);\n}\n.action-item.action-item--secondary[data-v-5f7eed6b] {\n --open-background-color: var(--color-primary-element-light-hover);\n}\n.action-item.action-item--error[data-v-5f7eed6b] {\n --open-background-color: var(--color-error-hover);\n}\n.action-item.action-item--warning[data-v-5f7eed6b] {\n --open-background-color: var(--color-warning-hover);\n}\n.action-item.action-item--success[data-v-5f7eed6b] {\n --open-background-color: var(--color-success-hover);\n}\n.action-item.action-item--tertiary-no-background[data-v-5f7eed6b] {\n --open-background-color: transparent;\n}\n.action-item.action-item--open .action-item__menutoggle[data-v-5f7eed6b] {\n background-color: var(--open-background-color);\n}\n.action-item__menutoggle__icon[data-v-5f7eed6b] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper {\n border-radius: var(--border-radius-element);\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner {\n border-radius: var(--border-radius-element);\n padding: 4px;\n max-height: calc(100vh - var(--header-height));\n overflow: auto;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcActions-DOI7rRa0.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,yDAAyD;AAC3D;AACA;EACE,gFAAgF;EAChF,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,2DAA2D;AAC7D;AACA;EACE,iEAAiE;AACnE;AACA;EACE,iDAAiD;AACnD;AACA;EACE,mDAAmD;AACrD;AACA;EACE,mDAAmD;AACrD;AACA;EACE,oCAAoC;AACtC;AACA;EACE,8CAA8C;AAChD;AACA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;EAC3C,YAAY;EACZ,8CAA8C;EAC9C,cAAc;AAChB\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-5f7eed6b] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.action-items[data-v-5f7eed6b] {\\n display: flex;\\n align-items: center;\\n gap: calc((var(--default-clickable-area) - 16px) / 2 / 2);\\n}\\n.action-item[data-v-5f7eed6b] {\\n --open-background-color: var(--color-background-hover, $action-background-hover);\\n position: relative;\\n display: inline-block;\\n}\\n.action-item.action-item--primary[data-v-5f7eed6b] {\\n --open-background-color: var(--color-primary-element-hover);\\n}\\n.action-item.action-item--secondary[data-v-5f7eed6b] {\\n --open-background-color: var(--color-primary-element-light-hover);\\n}\\n.action-item.action-item--error[data-v-5f7eed6b] {\\n --open-background-color: var(--color-error-hover);\\n}\\n.action-item.action-item--warning[data-v-5f7eed6b] {\\n --open-background-color: var(--color-warning-hover);\\n}\\n.action-item.action-item--success[data-v-5f7eed6b] {\\n --open-background-color: var(--color-success-hover);\\n}\\n.action-item.action-item--tertiary-no-background[data-v-5f7eed6b] {\\n --open-background-color: transparent;\\n}\\n.action-item.action-item--open .action-item__menutoggle[data-v-5f7eed6b] {\\n background-color: var(--open-background-color);\\n}\\n.action-item__menutoggle__icon[data-v-5f7eed6b] {\\n width: 20px;\\n height: 20px;\\n object-fit: contain;\\n}/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper {\\n border-radius: var(--border-radius-element);\\n}\\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner {\\n border-radius: var(--border-radius-element);\\n padding: 4px;\\n max-height: calc(100vh - var(--header-height));\\n overflow: auto;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-18f6cf03] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue[data-v-18f6cf03] {\n --button-size: var(--default-clickable-area);\n --button-inner-size: calc(var(--button-size) - 4px);\n --button-radius: var(--border-radius-element);\n --button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));\n --button-padding: var(--default-grid-baseline) var(--button-padding-default);\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n border: 1px solid var(--color-primary-element-light-hover);\n border-bottom-width: 2px;\n border-radius: var(--button-radius);\n box-sizing: border-box;\n position: relative;\n width: fit-content;\n overflow: hidden;\n padding-block: 1px 0;\n padding-inline: var(--button-padding);\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n align-items: center;\n justify-content: center;\n transition-property: color, border-color, background-color;\n transition-duration: 0.1s;\n transition-timing-function: linear;\n cursor: pointer;\n font-size: var(--default-font-size);\n font-weight: var(--font-weight-element, bold);\n}\n.button-vue--size-small[data-v-18f6cf03] {\n --button-size: var(--clickable-area-small);\n}\n.button-vue--size-large[data-v-18f6cf03] {\n --button-size: var(--clickable-area-large);\n}\n.button-vue[data-v-18f6cf03] * {\n cursor: pointer;\n}\n.button-vue[data-v-18f6cf03]:focus {\n outline: none;\n}\n.button-vue[data-v-18f6cf03]:disabled {\n filter: saturate(0.7);\n opacity: 0.5;\n cursor: default;\n}\n.button-vue[data-v-18f6cf03]:disabled * {\n cursor: default;\n}\n.button-vue[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue[data-v-18f6cf03]:active:not(:disabled) {\n background-color: var(--color-primary-element-light);\n}\n.button-vue__wrapper[data-v-18f6cf03] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n.button-vue--end .button-vue__wrapper[data-v-18f6cf03] {\n justify-content: end;\n}\n.button-vue--start .button-vue__wrapper[data-v-18f6cf03] {\n justify-content: start;\n}\n.button-vue--reverse .button-vue__wrapper[data-v-18f6cf03] {\n flex-direction: row-reverse;\n}\n.button-vue--reverse[data-v-18f6cf03] {\n --button-padding: var(--button-padding-default) var(--default-grid-baseline);\n}\n.button-vue__icon[data-v-18f6cf03] {\n --default-clickable-area: var(--button-inner-size);\n height: var(--button-inner-size);\n width: var(--button-inner-size);\n min-height: var(--button-inner-size);\n min-width: var(--button-inner-size);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.button-vue__icon[data-v-18f6cf03]:empty {\n display: none;\n}\n.button-vue--size-small .button-vue__icon[data-v-18f6cf03] > * {\n max-height: 16px;\n max-width: 16px;\n}\n.button-vue--size-small .button-vue__icon[data-v-18f6cf03] svg {\n height: 16px;\n width: 16px;\n}\n.button-vue__text[data-v-18f6cf03] {\n font-weight: var(--font-weight-element, bold);\n margin-bottom: 1px;\n padding: 2px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.button-vue__text[data-v-18f6cf03]:empty {\n display: none;\n}\n.button-vue[data-v-18f6cf03]:has(.button-vue__text:empty) {\n --button-padding: var(--button-radius);\n line-height: 1;\n width: var(--button-size) !important;\n}\n.button-vue[data-v-18f6cf03]:has(.button-vue__icon:empty) {\n --button-padding: var(--button-padding-default);\n}\n.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-18f6cf03] {\n padding-inline: var(--default-grid-baseline);\n}\n.button-vue--wide[data-v-18f6cf03] {\n width: 100%;\n}\n.button-vue[data-v-18f6cf03]:focus-visible {\n outline: 2px solid var(--color-main-text) !important;\n box-shadow: 0 0 0 4px var(--color-main-background) !important;\n}\n.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-18f6cf03] {\n outline: 2px solid var(--color-primary-element-text);\n border-radius: var(--border-radius-element);\n background-color: transparent;\n}\n.button-vue--primary[data-v-18f6cf03] {\n background-color: var(--color-primary-element);\n border-color: var(--color-primary-element-hover);\n color: var(--color-primary-element-text);\n}\n.button-vue--primary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-primary-element-hover);\n}\n.button-vue--primary[data-v-18f6cf03]:active {\n background-color: var(--color-primary-element);\n}\n.button-vue--secondary[data-v-18f6cf03] {\n background-color: var(--color-primary-element-light);\n border-color: var(--color-primary-element-light-hover);\n color: var(--color-primary-element-light-text);\n}\n.button-vue--secondary[data-v-18f6cf03]:hover:not(:disabled) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue--tertiary[data-v-18f6cf03] {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-main-text);\n}\n.button-vue--tertiary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-background-hover);\n}\n.button-vue--tertiary[data-v-18f6cf03]:not(.button-vue--legacy34):hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--color-primary-element) 8%, transparent);\n}\n.button-vue--tertiary-no-background[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--tertiary-on-primary[data-v-18f6cf03] {\n color: var(--color-primary-element-text);\n}\n.button-vue--tertiary-on-primary[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--success[data-v-18f6cf03] {\n border-color: var(--color-success-hover);\n background-color: var(--color-success);\n color: var(--color-success-text);\n}\n.button-vue--success[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-success-hover);\n}\n.button-vue--success[data-v-18f6cf03]:active {\n background-color: var(--color-success);\n}\n.button-vue--warning[data-v-18f6cf03] {\n border-color: var(--color-warning-hover);\n background-color: var(--color-warning);\n color: var(--color-warning-text);\n}\n.button-vue--warning[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-warning-hover);\n}\n.button-vue--warning[data-v-18f6cf03]:active {\n background-color: var(--color-warning);\n}\n.button-vue--error[data-v-18f6cf03] {\n border-color: var(--color-error-hover);\n background-color: var(--color-error);\n color: var(--color-error-text);\n}\n.button-vue--error[data-v-18f6cf03]:hover:not(:disabled) {\n background-color: var(--color-error-hover);\n}\n.button-vue--error[data-v-18f6cf03]:active {\n background-color: var(--color-error);\n}\n.button-vue--legacy[data-v-18f6cf03] {\n --button-inner-size: var(--button-size);\n border: none;\n padding-block: 0;\n}\n.button-vue--legacy.button-vue--error[data-v-18f6cf03], .button-vue--legacy.button-vue--success[data-v-18f6cf03], .button-vue--legacy.button-vue--warning[data-v-18f6cf03] {\n color: white;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcButton-Bf9wuDV-.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,4CAA4C;EAC5C,mDAAmD;EACnD,6CAA6C;EAC7C,mFAAmF;EACnF,4EAA4E;EAC5E,8CAA8C;EAC9C,oDAAoD;EACpD,0DAA0D;EAC1D,wBAAwB;EACxB,mCAAmC;EACnC,sBAAsB;EACtB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,oBAAoB;EACpB,qCAAqC;EACrC,8BAA8B;EAC9B,6BAA6B;EAC7B,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,0DAA0D;EAC1D,yBAAyB;EACzB,kCAAkC;EAClC,eAAe;EACf,mCAAmC;EACnC,6CAA6C;AAC/C;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,oDAAoD;AACtD;AACA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;AACb;AACA;EACE,oBAAoB;AACtB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,4EAA4E;AAC9E;AACA;EACE,kDAAkD;EAClD,gCAAgC;EAChC,+BAA+B;EAC/B,oCAAoC;EACpC,mCAAmC;EACnC,aAAa;EACb,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,YAAY;EACZ,WAAW;AACb;AACA;EACE,6CAA6C;EAC7C,kBAAkB;EAClB,cAAc;EACd,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,sCAAsC;EACtC,cAAc;EACd,oCAAoC;AACtC;AACA;EACE,+CAA+C;AACjD;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,WAAW;AACb;AACA;EACE,oDAAoD;EACpD,6DAA6D;AAC/D;AACA;EACE,oDAAoD;EACpD,2CAA2C;EAC3C,6BAA6B;AAC/B;AACA;EACE,8CAA8C;EAC9C,gDAAgD;EAChD,wCAAwC;AAC1C;AACA;EACE,oDAAoD;AACtD;AACA;EACE,8CAA8C;AAChD;AACA;EACE,oDAAoD;EACpD,sDAAsD;EACtD,8CAA8C;AAChD;AACA;EACE,8CAA8C;EAC9C,0DAA0D;AAC5D;AACA;EACE,6BAA6B;EAC7B,yBAAyB;EACzB,6BAA6B;AAC/B;AACA;EACE,+CAA+C;AACjD;AACA;EACE,kFAAkF;AACpF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;EACxC,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,sCAAsC;AACxC;AACA;EACE,wCAAwC;EACxC,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,sCAAsC;AACxC;AACA;EACE,sCAAsC;EACtC,oCAAoC;EACpC,8BAA8B;AAChC;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,oCAAoC;AACtC;AACA;EACE,uCAAuC;EACvC,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,YAAY;AACd\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-18f6cf03] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.button-vue[data-v-18f6cf03] {\\n --button-size: var(--default-clickable-area);\\n --button-inner-size: calc(var(--button-size) - 4px);\\n --button-radius: var(--border-radius-element);\\n --button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));\\n --button-padding: var(--default-grid-baseline) var(--button-padding-default);\\n color: var(--color-primary-element-light-text);\\n background-color: var(--color-primary-element-light);\\n border: 1px solid var(--color-primary-element-light-hover);\\n border-bottom-width: 2px;\\n border-radius: var(--button-radius);\\n box-sizing: border-box;\\n position: relative;\\n width: fit-content;\\n overflow: hidden;\\n padding-block: 1px 0;\\n padding-inline: var(--button-padding);\\n min-height: var(--button-size);\\n min-width: var(--button-size);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transition-property: color, border-color, background-color;\\n transition-duration: 0.1s;\\n transition-timing-function: linear;\\n cursor: pointer;\\n font-size: var(--default-font-size);\\n font-weight: var(--font-weight-element, bold);\\n}\\n.button-vue--size-small[data-v-18f6cf03] {\\n --button-size: var(--clickable-area-small);\\n}\\n.button-vue--size-large[data-v-18f6cf03] {\\n --button-size: var(--clickable-area-large);\\n}\\n.button-vue[data-v-18f6cf03] * {\\n cursor: pointer;\\n}\\n.button-vue[data-v-18f6cf03]:focus {\\n outline: none;\\n}\\n.button-vue[data-v-18f6cf03]:disabled {\\n filter: saturate(0.7);\\n opacity: 0.5;\\n cursor: default;\\n}\\n.button-vue[data-v-18f6cf03]:disabled * {\\n cursor: default;\\n}\\n.button-vue[data-v-18f6cf03]:hover:not(:disabled) {\\n background-color: var(--color-primary-element-light-hover);\\n}\\n.button-vue[data-v-18f6cf03]:active:not(:disabled) {\\n background-color: var(--color-primary-element-light);\\n}\\n.button-vue__wrapper[data-v-18f6cf03] {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n}\\n.button-vue--end .button-vue__wrapper[data-v-18f6cf03] {\\n justify-content: end;\\n}\\n.button-vue--start .button-vue__wrapper[data-v-18f6cf03] {\\n justify-content: start;\\n}\\n.button-vue--reverse .button-vue__wrapper[data-v-18f6cf03] {\\n flex-direction: row-reverse;\\n}\\n.button-vue--reverse[data-v-18f6cf03] {\\n --button-padding: var(--button-padding-default) var(--default-grid-baseline);\\n}\\n.button-vue__icon[data-v-18f6cf03] {\\n --default-clickable-area: var(--button-inner-size);\\n height: var(--button-inner-size);\\n width: var(--button-inner-size);\\n min-height: var(--button-inner-size);\\n min-width: var(--button-inner-size);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n.button-vue__icon[data-v-18f6cf03]:empty {\\n display: none;\\n}\\n.button-vue--size-small .button-vue__icon[data-v-18f6cf03] > * {\\n max-height: 16px;\\n max-width: 16px;\\n}\\n.button-vue--size-small .button-vue__icon[data-v-18f6cf03] svg {\\n height: 16px;\\n width: 16px;\\n}\\n.button-vue__text[data-v-18f6cf03] {\\n font-weight: var(--font-weight-element, bold);\\n margin-bottom: 1px;\\n padding: 2px 0;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n}\\n.button-vue__text[data-v-18f6cf03]:empty {\\n display: none;\\n}\\n.button-vue[data-v-18f6cf03]:has(.button-vue__text:empty) {\\n --button-padding: var(--button-radius);\\n line-height: 1;\\n width: var(--button-size) !important;\\n}\\n.button-vue[data-v-18f6cf03]:has(.button-vue__icon:empty) {\\n --button-padding: var(--button-padding-default);\\n}\\n.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-18f6cf03] {\\n padding-inline: var(--default-grid-baseline);\\n}\\n.button-vue--wide[data-v-18f6cf03] {\\n width: 100%;\\n}\\n.button-vue[data-v-18f6cf03]:focus-visible {\\n outline: 2px solid var(--color-main-text) !important;\\n box-shadow: 0 0 0 4px var(--color-main-background) !important;\\n}\\n.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-18f6cf03] {\\n outline: 2px solid var(--color-primary-element-text);\\n border-radius: var(--border-radius-element);\\n background-color: transparent;\\n}\\n.button-vue--primary[data-v-18f6cf03] {\\n background-color: var(--color-primary-element);\\n border-color: var(--color-primary-element-hover);\\n color: var(--color-primary-element-text);\\n}\\n.button-vue--primary[data-v-18f6cf03]:hover:not(:disabled) {\\n background-color: var(--color-primary-element-hover);\\n}\\n.button-vue--primary[data-v-18f6cf03]:active {\\n background-color: var(--color-primary-element);\\n}\\n.button-vue--secondary[data-v-18f6cf03] {\\n background-color: var(--color-primary-element-light);\\n border-color: var(--color-primary-element-light-hover);\\n color: var(--color-primary-element-light-text);\\n}\\n.button-vue--secondary[data-v-18f6cf03]:hover:not(:disabled) {\\n color: var(--color-primary-element-light-text);\\n background-color: var(--color-primary-element-light-hover);\\n}\\n.button-vue--tertiary[data-v-18f6cf03] {\\n background-color: transparent;\\n border-color: transparent;\\n color: var(--color-main-text);\\n}\\n.button-vue--tertiary[data-v-18f6cf03]:hover:not(:disabled) {\\n background-color: var(--color-background-hover);\\n}\\n.button-vue--tertiary[data-v-18f6cf03]:not(.button-vue--legacy34):hover:not(:disabled) {\\n background-color: color-mix(in srgb, var(--color-primary-element) 8%, transparent);\\n}\\n.button-vue--tertiary-no-background[data-v-18f6cf03]:hover:not(:disabled) {\\n background-color: transparent;\\n}\\n.button-vue--tertiary-on-primary[data-v-18f6cf03] {\\n color: var(--color-primary-element-text);\\n}\\n.button-vue--tertiary-on-primary[data-v-18f6cf03]:hover:not(:disabled) {\\n background-color: transparent;\\n}\\n.button-vue--success[data-v-18f6cf03] {\\n border-color: var(--color-success-hover);\\n background-color: var(--color-success);\\n color: var(--color-success-text);\\n}\\n.button-vue--success[data-v-18f6cf03]:hover:not(:disabled) {\\n background-color: var(--color-success-hover);\\n}\\n.button-vue--success[data-v-18f6cf03]:active {\\n background-color: var(--color-success);\\n}\\n.button-vue--warning[data-v-18f6cf03] {\\n border-color: var(--color-warning-hover);\\n background-color: var(--color-warning);\\n color: var(--color-warning-text);\\n}\\n.button-vue--warning[data-v-18f6cf03]:hover:not(:disabled) {\\n background-color: var(--color-warning-hover);\\n}\\n.button-vue--warning[data-v-18f6cf03]:active {\\n background-color: var(--color-warning);\\n}\\n.button-vue--error[data-v-18f6cf03] {\\n border-color: var(--color-error-hover);\\n background-color: var(--color-error);\\n color: var(--color-error-text);\\n}\\n.button-vue--error[data-v-18f6cf03]:hover:not(:disabled) {\\n background-color: var(--color-error-hover);\\n}\\n.button-vue--error[data-v-18f6cf03]:active {\\n background-color: var(--color-error);\\n}\\n.button-vue--legacy[data-v-18f6cf03] {\\n --button-inner-size: var(--button-size);\\n border: none;\\n padding-block: 0;\\n}\\n.button-vue--legacy.button-vue--error[data-v-18f6cf03], .button-vue--legacy.button-vue--success[data-v-18f6cf03], .button-vue--legacy.button-vue--warning[data-v-18f6cf03] {\\n color: white;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/** When having the small dialog style we override the modal styling so dialogs look more dialog like */\n@media only screen and (max-width: 512px) {\n.dialog__modal .modal-wrapper--small .modal-container {\n width: fit-content;\n height: unset;\n max-height: 90%;\n position: relative;\n top: unset;\n border-radius: var(--border-radius-element);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-24e91b99] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dialog[data-v-24e91b99] {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container {\n display: flex !important;\n padding-block: 4px 0;\n padding-inline: 12px 0;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.dialog__wrapper[data-v-24e91b99] {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.dialog__wrapper--collapsed[data-v-24e91b99] {\n flex-direction: column;\n}\n.dialog__navigation[data-v-24e91b99] {\n display: flex;\n flex-shrink: 0;\n}\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99] {\n flex-direction: column;\n overflow: hidden auto;\n height: 100%;\n min-width: 200px;\n margin-inline-end: 20px;\n}\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99] {\n flex-direction: row;\n justify-content: space-between;\n overflow: auto hidden;\n width: 100%;\n min-width: 100%;\n}\n.dialog__name[data-v-24e91b99] {\n font-size: 21px;\n text-align: center;\n height: fit-content;\n min-height: var(--default-clickable-area);\n line-height: var(--default-clickable-area);\n overflow-wrap: break-word;\n margin-block: 0 12px;\n}\n.dialog__content[data-v-24e91b99] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n padding-inline-end: 12px;\n}\n.dialog__text[data-v-24e91b99] {\n padding-block-end: 6px;\n}\n.dialog__actions[data-v-24e91b99] {\n display: flex;\n gap: 6px;\n align-content: center;\n justify-content: end;\n width: 100%;\n max-width: 100%;\n padding-inline: 0 12px;\n margin-inline: 0;\n margin-block: 0;\n}\n.dialog__actions[data-v-24e91b99]:not(:empty) {\n margin-block: 6px 12px;\n}\n@media only screen and (max-width: 512px) {\n.dialog__name[data-v-24e91b99] {\n text-align: start;\n margin-inline-end: var(--default-clickable-area);\n}\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcDialog-BSV74Bru.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA,uGAAuG;AACvG;AACA;IACI,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,2CAA2C;AAC/C;AACA,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,8BAA8B;EAC9B,gBAAgB;AAClB;AACA;EACE,wBAAwB;EACxB,oBAAoB;EACpB,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,OAAO;EACP,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;AAChB;AACA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,mBAAmB;EACnB,8BAA8B;EAC9B,qBAAqB;EACrB,WAAW;EACX,eAAe;AACjB;AACA;EACE,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,yCAAyC;EACzC,0CAA0C;EAC1C,yBAAyB;EACzB,oBAAoB;AACtB;AACA;EACE,OAAO;EACP,aAAa;EACb,cAAc;EACd,wBAAwB;AAC1B;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,QAAQ;EACR,qBAAqB;EACrB,oBAAoB;EACpB,WAAW;EACX,eAAe;EACf,sBAAsB;EACtB,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,sBAAsB;AACxB;AACA;AACA;IACI,iBAAiB;IACjB,gDAAgD;AACpD;AACA\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/** When having the small dialog style we override the modal styling so dialogs look more dialog like */\\n@media only screen and (max-width: 512px) {\\n.dialog__modal .modal-wrapper--small .modal-container {\\n width: fit-content;\\n height: unset;\\n max-height: 90%;\\n position: relative;\\n top: unset;\\n border-radius: var(--border-radius-element);\\n}\\n}/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-24e91b99] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.dialog[data-v-24e91b99] {\\n height: 100%;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n overflow: hidden;\\n}\\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container {\\n display: flex !important;\\n padding-block: 4px 0;\\n padding-inline: 12px 0;\\n}\\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content {\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.dialog__wrapper[data-v-24e91b99] {\\n display: flex;\\n flex-direction: row;\\n flex: 1;\\n min-height: 0;\\n overflow: hidden;\\n}\\n.dialog__wrapper--collapsed[data-v-24e91b99] {\\n flex-direction: column;\\n}\\n.dialog__navigation[data-v-24e91b99] {\\n display: flex;\\n flex-shrink: 0;\\n}\\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99] {\\n flex-direction: column;\\n overflow: hidden auto;\\n height: 100%;\\n min-width: 200px;\\n margin-inline-end: 20px;\\n}\\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99] {\\n flex-direction: row;\\n justify-content: space-between;\\n overflow: auto hidden;\\n width: 100%;\\n min-width: 100%;\\n}\\n.dialog__name[data-v-24e91b99] {\\n font-size: 21px;\\n text-align: center;\\n height: fit-content;\\n min-height: var(--default-clickable-area);\\n line-height: var(--default-clickable-area);\\n overflow-wrap: break-word;\\n margin-block: 0 12px;\\n}\\n.dialog__content[data-v-24e91b99] {\\n flex: 1;\\n min-height: 0;\\n overflow: auto;\\n padding-inline-end: 12px;\\n}\\n.dialog__text[data-v-24e91b99] {\\n padding-block-end: 6px;\\n}\\n.dialog__actions[data-v-24e91b99] {\\n display: flex;\\n gap: 6px;\\n align-content: center;\\n justify-content: end;\\n width: 100%;\\n max-width: 100%;\\n padding-inline: 0 12px;\\n margin-inline: 0;\\n margin-block: 0;\\n}\\n.dialog__actions[data-v-24e91b99]:not(:empty) {\\n margin-block: 6px 12px;\\n}\\n@media only screen and (max-width: 512px) {\\n.dialog__name[data-v-24e91b99] {\\n text-align: start;\\n margin-inline-end: var(--default-clickable-area);\\n}\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-aaedb1c3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.icon-vue[data-v-aaedb1c3] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: var(--default-clickable-area);\n min-height: var(--default-clickable-area);\n opacity: 1;\n}\n.icon-vue.icon-vue--inline[data-v-aaedb1c3] {\n display: inline-flex !important;\n min-width: fit-content;\n min-height: fit-content;\n vertical-align: text-bottom;\n}\n.icon-vue span[data-v-aaedb1c3] {\n line-height: 0;\n}\n.icon-vue[data-v-aaedb1c3] svg {\n fill: currentColor;\n width: var(--fb515064);\n height: var(--fb515064);\n max-width: var(--fb515064);\n max-height: var(--fb515064);\n}\n.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl) {\n transform: scaleX(-1);\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcIconSvgWrapper-N3OwSN9O.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,wCAAwC;EACxC,yCAAyC;EACzC,UAAU;AACZ;AACA;EACE,+BAA+B;EAC/B,sBAAsB;EACtB,uBAAuB;EACvB,2BAA2B;AAC7B;AACA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,sBAAsB;EACtB,uBAAuB;EACvB,0BAA0B;EAC1B,2BAA2B;AAC7B;AACA;EACE,qBAAqB;AACvB\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-aaedb1c3] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.icon-vue[data-v-aaedb1c3] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n min-width: var(--default-clickable-area);\\n min-height: var(--default-clickable-area);\\n opacity: 1;\\n}\\n.icon-vue.icon-vue--inline[data-v-aaedb1c3] {\\n display: inline-flex !important;\\n min-width: fit-content;\\n min-height: fit-content;\\n vertical-align: text-bottom;\\n}\\n.icon-vue span[data-v-aaedb1c3] {\\n line-height: 0;\\n}\\n.icon-vue[data-v-aaedb1c3] svg {\\n fill: currentColor;\\n width: var(--fb515064);\\n height: var(--fb515064);\\n max-width: var(--fb515064);\\n max-height: var(--fb515064);\\n}\\n.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl) {\\n transform: scaleX(-1);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8e16cbb5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.input-field[data-v-8e16cbb5] {\n --input-border-color: var(--color-border-maxcontrast);\n --input-border-radius: var(--border-radius-element);\n --input-padding-start: var(--border-radius-element);\n --input-padding-end: var(--border-radius-element);\n position: relative;\n width: 100%;\n margin-block-start: 6px;\n}\n.input-field--disabled[data-v-8e16cbb5] {\n opacity: 0.4;\n filter: saturate(0.4);\n}\n.input-field--label-outside[data-v-8e16cbb5] {\n margin-block-start: 0;\n}\n.input-field--leading-icon[data-v-8e16cbb5] {\n --input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--trailing-icon[data-v-8e16cbb5] {\n --input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--pill[data-v-8e16cbb5] {\n --input-border-radius: var(--border-radius-pill);\n}\n.input-field__main-wrapper[data-v-8e16cbb5] {\n height: var(--default-clickable-area);\n padding: var(--border-width-input-focused, 2px);\n position: relative;\n}\n.input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow-light: 0 -1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.input-field__input[data-v-8e16cbb5]:hover:not([disabled]) {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.input-field__input .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .input-field__input[data-v-8e16cbb5] {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.input-field--legacy .input-field__input[data-v-8e16cbb5] {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n.input-field--legacy .input-field__input[data-v-8e16cbb5]:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color);\n}\n.input-field__input[data-v-8e16cbb5]:focus-within:not([disabled]), .input-field__input[data-v-8e16cbb5]:active:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color), 0 0 0 4px var(--color-main-background) !important;\n}\n.input-field__input[data-v-8e16cbb5] {\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border-radius: var(--input-border-radius);\n cursor: pointer;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n padding-block: 0;\n padding-inline: var(--input-padding-start) var(--input-padding-end);\n height: 100% !important;\n min-height: unset;\n width: 100%;\n}\n.input-field__input[data-v-8e16cbb5]::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.input-field__input[data-v-8e16cbb5]::-webkit-search-cancel-button {\n display: none;\n}\n.input-field__input[data-v-8e16cbb5]::-webkit-search-decoration, .input-field__input[data-v-8e16cbb5]::-webkit-search-results-button, .input-field__input[data-v-8e16cbb5]::-webkit-search-results-decoration, .input-field__input[data-v-8e16cbb5]::-ms-clear {\n display: none;\n}\n.input-field__input[data-v-8e16cbb5]:active:not([disabled]), .input-field__input[data-v-8e16cbb5]:focus:not([disabled]) {\n --input-border-color: var(--color-main-text);\n}\n.input-field__input:focus + .input-field__label[data-v-8e16cbb5], .input-field__input:hover:not(:placeholder-shown) + .input-field__label[data-v-8e16cbb5] {\n color: var(--color-main-text);\n}\n.input-field__input[data-v-8e16cbb5]:focus {\n cursor: text;\n}\n.input-field__input[data-v-8e16cbb5]:disabled {\n cursor: default;\n}\n.input-field__input[data-v-8e16cbb5]:focus-visible {\n box-shadow: unset !important;\n}\n.input-field:not(.input-field--label-outside) .input-field__input[data-v-8e16cbb5]:not(:focus)::placeholder {\n opacity: 0;\n}\n.input-field__label[data-v-8e16cbb5] {\n --input-label-font-size: var(--default-font-size);\n font-size: var(--input-label-font-size);\n position: absolute;\n margin-inline: var(--input-padding-start) var(--input-padding-end);\n max-width: fit-content;\n inset-block-start: calc((var(--default-clickable-area) - 1lh) / 2);\n inset-inline: var(--border-width-input-focused, 2px);\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.input-field__input:focus + .input-field__label[data-v-8e16cbb5], .input-field__input:not(:placeholder-shown) + .input-field__label[data-v-8e16cbb5] {\n --input-label-font-size: 13px;\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: var(--font-weight-element, 500);\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.input-field__icon[data-v-8e16cbb5] {\n position: absolute;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.7;\n inset-block-end: 0;\n}\n.input-field__icon--leading[data-v-8e16cbb5] {\n inset-inline-start: 0px;\n}\n.input-field__icon--trailing[data-v-8e16cbb5] {\n inset-inline-end: 0px;\n}\n.input-field__trailing-button[data-v-8e16cbb5] {\n --button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;\n --button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px));\n}\n.input-field__trailing-button.button-vue[data-v-8e16cbb5] {\n position: absolute;\n top: var(--border-width-input-focused, 2px);\n inset-inline-end: var(--border-width-input-focused, 2px);\n}\n.input-field__trailing-button.button-vue[data-v-8e16cbb5]:focus-visible {\n box-shadow: none !important;\n}\n.input-field__helper-text-message[data-v-8e16cbb5] {\n padding-block: 4px;\n padding-inline: var(--border-radius-element);\n display: flex;\n align-items: center;\n color: var(--color-text-maxcontrast);\n overflow-wrap: anywhere;\n}\n.input-field__helper-text-message__icon[data-v-8e16cbb5] {\n margin-inline-end: 8px;\n}\n.input-field--error .input-field__helper-text-message[data-v-8e16cbb5],\n.input-field--error .input-field__icon--trailing[data-v-8e16cbb5] {\n color: var(--color-text-error, var(--color-error));\n}\n.input-field--error .input-field__input[data-v-8e16cbb5], .input-field__input[data-v-8e16cbb5]:user-invalid {\n --input-border-color: var(--color-border-error, var(--color-error)) !important;\n}\n.input-field--error .input-field__input[data-v-8e16cbb5]:focus-visible, .input-field__input[data-v-8e16cbb5]:user-invalid:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__input[data-v-8e16cbb5] {\n --input-border-color: var(--color-border-success, var(--color-success)) !important;\n}\n.input-field--success .input-field__input[data-v-8e16cbb5]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__helper-text-message__icon[data-v-8e16cbb5] {\n color: var(--color-border-success, var(--color-success));\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcInputField-DpyFJ1xw.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;;EAEE;AACF;;;EAGE;AACF;EACE,qDAAqD;EACrD,mDAAmD;EACnD,mDAAmD;EACnD,iDAAiD;EACjD,kBAAkB;EAClB,WAAW;EACX,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,qBAAqB;AACvB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,yFAAyF;AAC3F;AACA;EACE,uFAAuF;AACzF;AACA;EACE,gDAAgD;AAClD;AACA;EACE,qCAAqC;EACrC,+CAA+C;EAC/C,kBAAkB;AACpB;AACA;EACE;2EACyE;EACzE;2EACyE;EACzE,+DAA+D;EAC/D,YAAY;EACZ,2CAA2C;EAC3C,0CAA0C;AAC5C;AACA;EACE,+CAA+C;AACjD;AACA;AACA;IACI,8DAA8D;AAClE;AACA;AACA;EACE,8DAA8D;AAChE;AACA;EACE,+DAA+D;AACjE;AACA;EACE,+CAA+C;AACjD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,kGAAkG;AACpG;AACA;EACE,8CAA8C;EAC9C,6BAA6B;EAC7B,yCAAyC;EACzC,eAAe;EACf,wCAAwC;EACxC,qCAAqC;EACrC,gCAAgC;EAChC,mCAAmC;EACnC,uBAAuB;EACvB,gBAAgB;EAChB,mEAAmE;EACnE,uBAAuB;EACvB,iBAAiB;EACjB,WAAW;AACb;AACA;EACE,oCAAoC;AACtC;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,UAAU;AACZ;AACA;EACE,iDAAiD;EACjD,uCAAuC;EACvC,kBAAkB;EAClB,kEAAkE;EAClE,sBAAsB;EACtB,kEAAkE;EAClE,oDAAoD;EACpD,oCAAoC;EACpC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;EACpB,kNAAkN;AACpN;AACA;EACE,6BAA6B;EAC7B,gBAAgB;EAChB,gEAAgE;EAChE,4CAA4C;EAC5C,4EAA4E;EAC5E,8CAA8C;EAC9C,4CAA4C;EAC5C,4IAA4I;EAC5I,mJAAmJ;AACrJ;AACA;EACE,kBAAkB;EAClB,qCAAqC;EACrC,oCAAoC;EACpC,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,0GAA0G;EAC1G,0FAA0F;AAC5F;AACA;EACE,kBAAkB;EAClB,2CAA2C;EAC3C,wDAAwD;AAC1D;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,kBAAkB;EAClB,4CAA4C;EAC5C,aAAa;EACb,mBAAmB;EACnB,oCAAoC;EACpC,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;;EAEE,kDAAkD;AACpD;AACA;EACE,8EAA8E;AAChF;AACA;EACE,iIAAiI;AACnI;AACA;EACE,kFAAkF;AACpF;AACA;EACE,iIAAiI;AACnI;AACA;EACE,wDAAwD;AAC1D\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-8e16cbb5] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/*!\\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * Similar as inputBorder but without active styles.\\n */\\n/**\\n * Create a consistent border for an input element.\\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\\n */\\n.input-field[data-v-8e16cbb5] {\\n --input-border-color: var(--color-border-maxcontrast);\\n --input-border-radius: var(--border-radius-element);\\n --input-padding-start: var(--border-radius-element);\\n --input-padding-end: var(--border-radius-element);\\n position: relative;\\n width: 100%;\\n margin-block-start: 6px;\\n}\\n.input-field--disabled[data-v-8e16cbb5] {\\n opacity: 0.4;\\n filter: saturate(0.4);\\n}\\n.input-field--label-outside[data-v-8e16cbb5] {\\n margin-block-start: 0;\\n}\\n.input-field--leading-icon[data-v-8e16cbb5] {\\n --input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline));\\n}\\n.input-field--trailing-icon[data-v-8e16cbb5] {\\n --input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\\n}\\n.input-field--pill[data-v-8e16cbb5] {\\n --input-border-radius: var(--border-radius-pill);\\n}\\n.input-field__main-wrapper[data-v-8e16cbb5] {\\n height: var(--default-clickable-area);\\n padding: var(--border-width-input-focused, 2px);\\n position: relative;\\n}\\n.input-field__input[data-v-8e16cbb5] {\\n --input-border-box-shadow-light: 0 -1px var(--input-border-color),\\n \\t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\\n --input-border-box-shadow-dark: 0 1px var(--input-border-color),\\n \\t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\\n --input-border-box-shadow: var(--input-border-box-shadow-light);\\n border: none;\\n border-radius: var(--border-radius-element);\\n box-shadow: var(--input-border-box-shadow);\\n}\\n.input-field__input[data-v-8e16cbb5]:hover:not([disabled]) {\\n box-shadow: 0 0 0 1px var(--input-border-color);\\n}\\n@media (prefers-color-scheme: dark) {\\n.input-field__input .input-field__input[data-v-8e16cbb5] {\\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\\n}\\n}\\n[data-theme-dark] .input-field__input[data-v-8e16cbb5] {\\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\\n}\\n[data-theme-light] .input-field__input[data-v-8e16cbb5] {\\n --input-border-box-shadow: var(--input-border-box-shadow-light);\\n}\\n.input-field--legacy .input-field__input[data-v-8e16cbb5] {\\n box-shadow: 0 0 0 1px var(--input-border-color);\\n}\\n.input-field--legacy .input-field__input[data-v-8e16cbb5]:hover:not([disabled]) {\\n box-shadow: 0 0 0 2px var(--input-border-color);\\n}\\n.input-field__input[data-v-8e16cbb5]:focus-within:not([disabled]), .input-field__input[data-v-8e16cbb5]:active:not([disabled]) {\\n box-shadow: 0 0 0 2px var(--input-border-color), 0 0 0 4px var(--color-main-background) !important;\\n}\\n.input-field__input[data-v-8e16cbb5] {\\n background-color: var(--color-main-background);\\n color: var(--color-main-text);\\n border-radius: var(--input-border-radius);\\n cursor: pointer;\\n -webkit-appearance: textfield !important;\\n -moz-appearance: textfield !important;\\n appearance: textfield !important;\\n font-size: var(--default-font-size);\\n text-overflow: ellipsis;\\n padding-block: 0;\\n padding-inline: var(--input-padding-start) var(--input-padding-end);\\n height: 100% !important;\\n min-height: unset;\\n width: 100%;\\n}\\n.input-field__input[data-v-8e16cbb5]::placeholder {\\n color: var(--color-text-maxcontrast);\\n}\\n.input-field__input[data-v-8e16cbb5]::-webkit-search-cancel-button {\\n display: none;\\n}\\n.input-field__input[data-v-8e16cbb5]::-webkit-search-decoration, .input-field__input[data-v-8e16cbb5]::-webkit-search-results-button, .input-field__input[data-v-8e16cbb5]::-webkit-search-results-decoration, .input-field__input[data-v-8e16cbb5]::-ms-clear {\\n display: none;\\n}\\n.input-field__input[data-v-8e16cbb5]:active:not([disabled]), .input-field__input[data-v-8e16cbb5]:focus:not([disabled]) {\\n --input-border-color: var(--color-main-text);\\n}\\n.input-field__input:focus + .input-field__label[data-v-8e16cbb5], .input-field__input:hover:not(:placeholder-shown) + .input-field__label[data-v-8e16cbb5] {\\n color: var(--color-main-text);\\n}\\n.input-field__input[data-v-8e16cbb5]:focus {\\n cursor: text;\\n}\\n.input-field__input[data-v-8e16cbb5]:disabled {\\n cursor: default;\\n}\\n.input-field__input[data-v-8e16cbb5]:focus-visible {\\n box-shadow: unset !important;\\n}\\n.input-field:not(.input-field--label-outside) .input-field__input[data-v-8e16cbb5]:not(:focus)::placeholder {\\n opacity: 0;\\n}\\n.input-field__label[data-v-8e16cbb5] {\\n --input-label-font-size: var(--default-font-size);\\n font-size: var(--input-label-font-size);\\n position: absolute;\\n margin-inline: var(--input-padding-start) var(--input-padding-end);\\n max-width: fit-content;\\n inset-block-start: calc((var(--default-clickable-area) - 1lh) / 2);\\n inset-inline: var(--border-width-input-focused, 2px);\\n color: var(--color-text-maxcontrast);\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\\n}\\n.input-field__input:focus + .input-field__label[data-v-8e16cbb5], .input-field__input:not(:placeholder-shown) + .input-field__label[data-v-8e16cbb5] {\\n --input-label-font-size: 13px;\\n line-height: 1.5;\\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\\n font-weight: var(--font-weight-element, 500);\\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\\n background-color: var(--color-main-background);\\n padding-inline: var(--default-grid-baseline);\\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\\n}\\n.input-field__icon[data-v-8e16cbb5] {\\n position: absolute;\\n height: var(--default-clickable-area);\\n width: var(--default-clickable-area);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n opacity: 0.7;\\n inset-block-end: 0;\\n}\\n.input-field__icon--leading[data-v-8e16cbb5] {\\n inset-inline-start: 0px;\\n}\\n.input-field__icon--trailing[data-v-8e16cbb5] {\\n inset-inline-end: 0px;\\n}\\n.input-field__trailing-button[data-v-8e16cbb5] {\\n --button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;\\n --button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px));\\n}\\n.input-field__trailing-button.button-vue[data-v-8e16cbb5] {\\n position: absolute;\\n top: var(--border-width-input-focused, 2px);\\n inset-inline-end: var(--border-width-input-focused, 2px);\\n}\\n.input-field__trailing-button.button-vue[data-v-8e16cbb5]:focus-visible {\\n box-shadow: none !important;\\n}\\n.input-field__helper-text-message[data-v-8e16cbb5] {\\n padding-block: 4px;\\n padding-inline: var(--border-radius-element);\\n display: flex;\\n align-items: center;\\n color: var(--color-text-maxcontrast);\\n overflow-wrap: anywhere;\\n}\\n.input-field__helper-text-message__icon[data-v-8e16cbb5] {\\n margin-inline-end: 8px;\\n}\\n.input-field--error .input-field__helper-text-message[data-v-8e16cbb5],\\n.input-field--error .input-field__icon--trailing[data-v-8e16cbb5] {\\n color: var(--color-text-error, var(--color-error));\\n}\\n.input-field--error .input-field__input[data-v-8e16cbb5], .input-field__input[data-v-8e16cbb5]:user-invalid {\\n --input-border-color: var(--color-border-error, var(--color-error)) !important;\\n}\\n.input-field--error .input-field__input[data-v-8e16cbb5]:focus-visible, .input-field__input[data-v-8e16cbb5]:user-invalid:focus-visible {\\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\\n}\\n.input-field--success .input-field__input[data-v-8e16cbb5] {\\n --input-border-color: var(--color-border-success, var(--color-success)) !important;\\n}\\n.input-field--success .input-field__input[data-v-8e16cbb5]:focus-visible {\\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\\n}\\n.input-field--success .input-field__helper-text-message__icon[data-v-8e16cbb5] {\\n color: var(--color-border-success, var(--color-success));\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cf399190] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.loading-icon[data-v-cf399190] {\n overflow: hidden;\n}\n.loading-icon svg[data-v-cf399190] {\n animation: rotate var(--animation-duration, 0.8s) linear infinite;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcLoadingIcon-CWUlo4XY.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iEAAiE;AACnE\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-cf399190] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.loading-icon[data-v-cf399190] {\\n overflow: hidden;\\n}\\n.loading-icon svg[data-v-cf399190] {\\n animation: rotate var(--animation-duration, 0.8s) linear infinite;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c357e2d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.modal-mask[data-v-3c357e2d] {\n position: fixed;\n z-index: 9998;\n top: 0;\n inset-inline-start: 0;\n display: block;\n width: 100%;\n height: 100%;\n --backdrop-color: 0, 0, 0;\n background-color: rgba(var(--backdrop-color), 0.5);\n}\n.modal-mask[data-v-3c357e2d], .modal-mask[data-v-3c357e2d] * {\n box-sizing: border-box;\n}\n.modal-mask--opaque[data-v-3c357e2d] {\n background-color: rgba(var(--backdrop-color), 0.92);\n}\n.modal-mask--light[data-v-3c357e2d] {\n --backdrop-color: 255, 255, 255;\n}\n.modal-header[data-v-3c357e2d] {\n position: absolute;\n z-index: 10001;\n top: 0;\n inset-inline: 0 0;\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: var(--header-height);\n overflow: hidden;\n transition: opacity 250ms, visibility 250ms;\n}\n.modal-header__name[data-v-3c357e2d] {\n overflow-x: hidden;\n width: 100%;\n padding-inline: 12px 0;\n transition: padding ease 100ms;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 16px;\n margin-block: 0;\n}\n@media only screen and (min-width: 1024px) {\n.modal-header__name[data-v-3c357e2d] {\n padding-inline-start: calc(var(--header-height) * var(--v046d2bb2));\n text-align: center;\n}\n}\n.modal-header .icons-menu[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n align-self: flex-end;\n}\n.modal-header .icons-menu .header-close[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n padding: 0;\n}\n.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n margin: 0;\n padding: 0;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d], .modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d] {\n opacity: 1;\n border-radius: calc(var(--default-clickable-area) / 2);\n background-color: rgba(127, 127, 127, 0.25);\n}\n.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n cursor: pointer;\n opacity: 0.7;\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item {\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item--single {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n cursor: pointer;\n background-position: center;\n background-size: 22px;\n}\n.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible {\n box-shadow: none !important;\n outline: 2px solid #fff !important;\n}\n.modal-wrapper[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n /* Navigation buttons */\n}\n.modal-wrapper .prev[data-v-3c357e2d],\n.modal-wrapper .next[data-v-3c357e2d] {\n z-index: 10000;\n height: 35vh;\n min-height: 300px;\n position: absolute;\n transition: opacity 250ms;\n color: white;\n}\n.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,\n.modal-wrapper .next[data-v-3c357e2d]:focus-visible {\n box-shadow: 0 0 0 2px var(--color-primary-element-text);\n background-color: var(--color-box-shadow);\n}\n.modal-wrapper .prev[data-v-3c357e2d] {\n inset-inline-start: 2px;\n}\n.modal-wrapper .next[data-v-3c357e2d] {\n inset-inline-end: 2px;\n}\n.modal-wrapper[data-v-3c357e2d] {\n /* Content */\n}\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n position: relative;\n display: flex;\n padding: 0;\n transition: transform 300ms ease;\n border-radius: var(--border-radius-container);\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n overflow: auto;\n}\n.modal-wrapper .modal-container__close[data-v-3c357e2d] {\n z-index: 1;\n position: absolute;\n top: 4px;\n inset-inline-end: var(--default-grid-baseline);\n}\n.modal-wrapper .modal-container__content[data-v-3c357e2d] {\n width: 100%;\n min-height: 52px;\n overflow: auto;\n}\n.modal-wrapper--small > .modal-container[data-v-3c357e2d] {\n width: 400px;\n max-width: 90%;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--normal > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 600px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--large > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 900px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--full > .modal-container[data-v-3c357e2d] {\n width: 100%;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n max-width: initial;\n width: 100%;\n max-height: initial;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n}\n\n/* TRANSITIONS */\n.fade-enter-active[data-v-3c357e2d],\n.fade-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.fade-enter-from[data-v-3c357e2d],\n.fade-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.fade-visibility-enter-from[data-v-3c357e2d],\n.fade-visibility-leave-to[data-v-3c357e2d] {\n visibility: hidden;\n opacity: 0;\n}\n.modal-in-enter-active[data-v-3c357e2d],\n.modal-in-leave-active[data-v-3c357e2d],\n.modal-out-enter-active[data-v-3c357e2d],\n.modal-out-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.modal-in-enter-from[data-v-3c357e2d],\n.modal-in-leave-to[data-v-3c357e2d],\n.modal-out-enter-from[data-v-3c357e2d],\n.modal-out-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.modal-in-enter .modal-container[data-v-3c357e2d],\n.modal-in-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(0.9);\n}\n.modal-out-enter .modal-container[data-v-3c357e2d],\n.modal-out-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(1.1);\n}\n.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n transform: rotate(-90deg);\n}\n.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d] {\n transition: 100ms stroke-dashoffset;\n transform-origin: 50% 50%;\n animation: progressring-3c357e2d linear var(--v71f7c020) infinite;\n stroke-linecap: round;\n stroke-dashoffset: 94.2477796077;\n stroke-dasharray: 94.2477796077;\n}\n.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d] {\n animation: breath-3c357e2d 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d] {\n animation-play-state: paused !important;\n}\n@keyframes progressring-3c357e2d {\nfrom {\n stroke-dashoffset: 94.2477796077;\n}\nto {\n stroke-dashoffset: 0;\n}\n}\n@keyframes breath-3c357e2d {\n0% {\n opacity: 1;\n}\n50% {\n opacity: 0;\n}\n100% {\n opacity: 1;\n}\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcModal-D81luiuU.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,aAAa;EACb,MAAM;EACN,qBAAqB;EACrB,cAAc;EACd,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,kDAAkD;AACpD;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mDAAmD;AACrD;AACA;EACE,+BAA+B;AACjC;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,MAAM;EACN,iBAAiB;EACjB,wBAAwB;EACxB,mBAAmB;EACnB,8BAA8B;EAC9B,WAAW;EACX,4BAA4B;EAC5B,gBAAgB;EAChB,2CAA2C;AAC7C;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,sBAAsB;EACtB,8BAA8B;EAC9B,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,eAAe;AACjB;AACA;AACA;IACI,mEAAmE;IACnE,kBAAkB;AACtB;AACA;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,yBAAyB;EACzB,oBAAoB;AACtB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,wEAAwE;EACxE,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,SAAS;EACT,UAAU;EACV,eAAe;EACf,YAAY;EACZ,6BAA6B;AAC/B;AACA;EACE,UAAU;EACV,sDAAsD;EACtD,2CAA2C;AAC7C;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,wEAAwE;EACxE,eAAe;EACf,YAAY;AACd;AACA;EACE,wEAAwE;AAC1E;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,eAAe;EACf,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,2BAA2B;EAC3B,kCAAkC;AACpC;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,uBAAuB;AACzB;AACA;;EAEE,cAAc;EACd,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,yBAAyB;EACzB,YAAY;AACd;AACA;;EAEE,uDAAuD;EACvD,yCAAyC;AAC3C;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,UAAU;EACV,gCAAgC;EAChC,6CAA6C;EAC7C,8CAA8C;EAC9C,6BAA6B;EAC7B,uCAAuC;EACvC,cAAc;AAChB;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,QAAQ;EACR,8CAA8C;AAChD;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,YAAY;EACZ,cAAc;EACd,wFAAwF;AAC1F;AACA;EACE,cAAc;EACd,YAAY;EACZ,wFAAwF;AAC1F;AACA;EACE,cAAc;EACd,YAAY;EACZ,wFAAwF;AAC1F;AACA;EACE,WAAW;EACX,yCAAyC;EACzC,kBAAkB;EAClB,yBAAyB;EACzB,gBAAgB;AAClB;AACA;AACA;IACI,kBAAkB;IAClB,WAAW;IACX,mBAAmB;IACnB,yCAAyC;IACzC,kBAAkB;IAClB,yBAAyB;IACzB,gBAAgB;AACpB;AACA;;AAEA,gBAAgB;AAChB;;EAEE,yBAAyB;AAC3B;AACA;;EAEE,UAAU;AACZ;AACA;;EAEE,kBAAkB;EAClB,UAAU;AACZ;AACA;;;;EAIE,yBAAyB;AAC3B;AACA;;;;EAIE,UAAU;AACZ;AACA;;EAEE,qBAAqB;AACvB;AACA;;EAEE,qBAAqB;AACvB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,qBAAqB;EACrB,yBAAyB;AAC3B;AACA;EACE,mCAAmC;EACnC,yBAAyB;EACzB,iEAAiE;EACjE,qBAAqB;EACrB,gCAAgC;EAChC,+BAA+B;AACjC;AACA;EACE,mEAAmE;AACrE;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,gCAAgC;AACpC;AACA;IACI,oBAAoB;AACxB;AACA;AACA;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-3c357e2d] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.modal-mask[data-v-3c357e2d] {\\n position: fixed;\\n z-index: 9998;\\n top: 0;\\n inset-inline-start: 0;\\n display: block;\\n width: 100%;\\n height: 100%;\\n --backdrop-color: 0, 0, 0;\\n background-color: rgba(var(--backdrop-color), 0.5);\\n}\\n.modal-mask[data-v-3c357e2d], .modal-mask[data-v-3c357e2d] * {\\n box-sizing: border-box;\\n}\\n.modal-mask--opaque[data-v-3c357e2d] {\\n background-color: rgba(var(--backdrop-color), 0.92);\\n}\\n.modal-mask--light[data-v-3c357e2d] {\\n --backdrop-color: 255, 255, 255;\\n}\\n.modal-header[data-v-3c357e2d] {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n inset-inline: 0 0;\\n display: flex !important;\\n align-items: center;\\n justify-content: space-between;\\n width: 100%;\\n height: var(--header-height);\\n overflow: hidden;\\n transition: opacity 250ms, visibility 250ms;\\n}\\n.modal-header__name[data-v-3c357e2d] {\\n overflow-x: hidden;\\n width: 100%;\\n padding-inline: 12px 0;\\n transition: padding ease 100ms;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n font-size: 16px;\\n margin-block: 0;\\n}\\n@media only screen and (min-width: 1024px) {\\n.modal-header__name[data-v-3c357e2d] {\\n padding-inline-start: calc(var(--header-height) * var(--v046d2bb2));\\n text-align: center;\\n}\\n}\\n.modal-header .icons-menu[data-v-3c357e2d] {\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n align-self: flex-end;\\n}\\n.modal-header .icons-menu .header-close[data-v-3c357e2d] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\\n padding: 0;\\n}\\n.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d] {\\n position: relative;\\n width: var(--header-height);\\n height: var(--header-height);\\n margin: 0;\\n padding: 0;\\n cursor: pointer;\\n border: none;\\n background-color: transparent;\\n}\\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d], .modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d] {\\n opacity: 1;\\n border-radius: calc(var(--default-clickable-area) / 2);\\n background-color: rgba(127, 127, 127, 0.25);\\n}\\n.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d] {\\n width: var(--default-clickable-area);\\n height: var(--default-clickable-area);\\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\\n cursor: pointer;\\n opacity: 0.7;\\n}\\n.modal-header .icons-menu[data-v-3c357e2d] .action-item {\\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\\n}\\n.modal-header .icons-menu[data-v-3c357e2d] .action-item--single {\\n width: var(--default-clickable-area);\\n height: var(--default-clickable-area);\\n cursor: pointer;\\n background-position: center;\\n background-size: 22px;\\n}\\n.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible {\\n box-shadow: none !important;\\n outline: 2px solid #fff !important;\\n}\\n.modal-wrapper[data-v-3c357e2d] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n height: 100%;\\n /* Navigation buttons */\\n}\\n.modal-wrapper .prev[data-v-3c357e2d],\\n.modal-wrapper .next[data-v-3c357e2d] {\\n z-index: 10000;\\n height: 35vh;\\n min-height: 300px;\\n position: absolute;\\n transition: opacity 250ms;\\n color: white;\\n}\\n.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,\\n.modal-wrapper .next[data-v-3c357e2d]:focus-visible {\\n box-shadow: 0 0 0 2px var(--color-primary-element-text);\\n background-color: var(--color-box-shadow);\\n}\\n.modal-wrapper .prev[data-v-3c357e2d] {\\n inset-inline-start: 2px;\\n}\\n.modal-wrapper .next[data-v-3c357e2d] {\\n inset-inline-end: 2px;\\n}\\n.modal-wrapper[data-v-3c357e2d] {\\n /* Content */\\n}\\n.modal-wrapper .modal-container[data-v-3c357e2d] {\\n position: relative;\\n display: flex;\\n padding: 0;\\n transition: transform 300ms ease;\\n border-radius: var(--border-radius-container);\\n background-color: var(--color-main-background);\\n color: var(--color-main-text);\\n box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\\n overflow: auto;\\n}\\n.modal-wrapper .modal-container__close[data-v-3c357e2d] {\\n z-index: 1;\\n position: absolute;\\n top: 4px;\\n inset-inline-end: var(--default-grid-baseline);\\n}\\n.modal-wrapper .modal-container__content[data-v-3c357e2d] {\\n width: 100%;\\n min-height: 52px;\\n overflow: auto;\\n}\\n.modal-wrapper--small > .modal-container[data-v-3c357e2d] {\\n width: 400px;\\n max-width: 90%;\\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\\n}\\n.modal-wrapper--normal > .modal-container[data-v-3c357e2d] {\\n max-width: 90%;\\n width: 600px;\\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\\n}\\n.modal-wrapper--large > .modal-container[data-v-3c357e2d] {\\n max-width: 90%;\\n width: 900px;\\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\\n}\\n.modal-wrapper--full > .modal-container[data-v-3c357e2d] {\\n width: 100%;\\n height: calc(100% - var(--header-height));\\n position: absolute;\\n top: var(--header-height);\\n border-radius: 0;\\n}\\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\\n.modal-wrapper .modal-container[data-v-3c357e2d] {\\n max-width: initial;\\n width: 100%;\\n max-height: initial;\\n height: calc(100% - var(--header-height));\\n position: absolute;\\n top: var(--header-height);\\n border-radius: 0;\\n}\\n}\\n\\n/* TRANSITIONS */\\n.fade-enter-active[data-v-3c357e2d],\\n.fade-leave-active[data-v-3c357e2d] {\\n transition: opacity 250ms;\\n}\\n.fade-enter-from[data-v-3c357e2d],\\n.fade-leave-to[data-v-3c357e2d] {\\n opacity: 0;\\n}\\n.fade-visibility-enter-from[data-v-3c357e2d],\\n.fade-visibility-leave-to[data-v-3c357e2d] {\\n visibility: hidden;\\n opacity: 0;\\n}\\n.modal-in-enter-active[data-v-3c357e2d],\\n.modal-in-leave-active[data-v-3c357e2d],\\n.modal-out-enter-active[data-v-3c357e2d],\\n.modal-out-leave-active[data-v-3c357e2d] {\\n transition: opacity 250ms;\\n}\\n.modal-in-enter-from[data-v-3c357e2d],\\n.modal-in-leave-to[data-v-3c357e2d],\\n.modal-out-enter-from[data-v-3c357e2d],\\n.modal-out-leave-to[data-v-3c357e2d] {\\n opacity: 0;\\n}\\n.modal-in-enter .modal-container[data-v-3c357e2d],\\n.modal-in-leave-to .modal-container[data-v-3c357e2d] {\\n transform: scale(0.9);\\n}\\n.modal-out-enter .modal-container[data-v-3c357e2d],\\n.modal-out-leave-to .modal-container[data-v-3c357e2d] {\\n transform: scale(1.1);\\n}\\n.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d] {\\n position: absolute;\\n top: 0;\\n inset-inline-start: 0;\\n transform: rotate(-90deg);\\n}\\n.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d] {\\n transition: 100ms stroke-dashoffset;\\n transform-origin: 50% 50%;\\n animation: progressring-3c357e2d linear var(--v71f7c020) infinite;\\n stroke-linecap: round;\\n stroke-dashoffset: 94.2477796077;\\n stroke-dasharray: 94.2477796077;\\n}\\n.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d] {\\n animation: breath-3c357e2d 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\\n}\\n.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d] {\\n animation-play-state: paused !important;\\n}\\n@keyframes progressring-3c357e2d {\\nfrom {\\n stroke-dashoffset: 94.2477796077;\\n}\\nto {\\n stroke-dashoffset: 0;\\n}\\n}\\n@keyframes breath-3c357e2d {\\n0% {\\n opacity: 1;\\n}\\n50% {\\n opacity: 0;\\n}\\n100% {\\n opacity: 1;\\n}\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cb828737] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-cb828737] .password-field__input--secure-text {\n -webkit-text-security: disc;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcPasswordField-BN4HFgU5.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2BAA2B;AAC7B\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-cb828737] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n[data-v-cb828737] .password-field__input--secure-text {\\n -webkit-text-security: disc;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_Sit4G {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9, ._ncPopover_SapAL.v-popper--theme-nc-popover-9 * {\n box-sizing: border-box;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9 .resize-observer {\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9 .resize-observer object {\n display: block;\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper {\n z-index: 100000;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n display: block !important;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper {\n /*\n * In theory, \"filter: drop-shadow\" would look better here with arrow shadow.\n * In fact, in results in a blurry popover in Chromium on scaling.\n * The hypothesis is that \"filter\" creates a new composition layer,\n * and with GPU acceleration requires the previous layers content to be rasterized.\n * In combination with translate3d from floating-vue, it makes Chromium to first render and rasterize the popover\n * and then apply scaling, which results in a blurry popover.\n */\n box-shadow: 0 1px 10px var(--color-box-shadow);\n border-radius: var(--border-radius-element);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner {\n padding: 0;\n color: var(--color-main-text);\n border-radius: var(--border-radius-element);\n overflow: hidden;\n background: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container {\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n border-width: 10px;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {\n bottom: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-bottom-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-top-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {\n top: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-top-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-bottom-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-left-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-right-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n right: -9px;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-right-width: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n border-left-color: var(--color-main-background);\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\n opacity: 0;\n}\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity var(--animation-quick);\n opacity: 1;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcPopover-C7YEE_vn.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,WAAW;EACX,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,eAAe;EACf,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,yBAAyB;AAC3B;AACA;EACE;;;;;;;IAOE;EACF,8CAA8C;EAC9C,2CAA2C;AAC7C;AACA;EACE,UAAU;EACV,6BAA6B;EAC7B,2CAA2C;EAC3C,gBAAgB;EAChB,wCAAwC;AAC1C;AACA;EACE,kBAAkB;EAClB,UAAU;EACV,QAAQ;EACR,SAAS;EACT,mBAAmB;EACnB,yBAAyB;EACzB,kBAAkB;AACpB;AACA;EACE,YAAY;EACZ,qDAAqD,EAAE,mBAAmB;EAC1E,sBAAsB;EACtB,qDAAqD,EAAE,mBAAmB;EAC1E,8CAA8C;AAChD;AACA;EACE,SAAS;EACT,qDAAqD,EAAE,mBAAmB;EAC1E,mBAAmB;EACnB,qDAAqD,EAAE,mBAAmB;EAC1E,iDAAiD;AACnD;AACA;EACE,qDAAqD,EAAE,mBAAmB;EAC1E,UAAU;EACV,qDAAqD,EAAE,mBAAmB;EAC1E,oBAAoB;EACpB,qDAAqD,EAAE,mBAAmB;EAC1E,gDAAgD;AAClD;AACA;EACE,qDAAqD,EAAE,mBAAmB;EAC1E,WAAW;EACX,qDAAqD,EAAE,mBAAmB;EAC1E,qBAAqB;EACrB,qDAAqD,EAAE,mBAAmB;EAC1E,+CAA+C;AACjD;AACA;EACE,kBAAkB;EAClB,6EAA6E;EAC7E,UAAU;AACZ;AACA;EACE,mBAAmB;EACnB,0CAA0C;EAC1C,UAAU;AACZ\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n._material-design-icon_Sit4G {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9, ._ncPopover_SapAL.v-popper--theme-nc-popover-9 * {\\n box-sizing: border-box;\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9 .resize-observer {\\n position: absolute;\\n top: 0;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n left: 0;\\n z-index: -1;\\n width: 100%;\\n height: 100%;\\n border: none;\\n background-color: transparent;\\n pointer-events: none;\\n display: block;\\n overflow: hidden;\\n opacity: 0;\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9 .resize-observer object {\\n display: block;\\n position: absolute;\\n top: 0;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n left: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n pointer-events: none;\\n z-index: -1;\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper {\\n z-index: 100000;\\n top: 0;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n left: 0;\\n display: block !important;\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper {\\n /*\\n * In theory, \\\"filter: drop-shadow\\\" would look better here with arrow shadow.\\n * In fact, in results in a blurry popover in Chromium on scaling.\\n * The hypothesis is that \\\"filter\\\" creates a new composition layer,\\n * and with GPU acceleration requires the previous layers content to be rasterized.\\n * In combination with translate3d from floating-vue, it makes Chromium to first render and rasterize the popover\\n * and then apply scaling, which results in a blurry popover.\\n */\\n box-shadow: 0 1px 10px var(--color-box-shadow);\\n border-radius: var(--border-radius-element);\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner {\\n padding: 0;\\n color: var(--color-main-text);\\n border-radius: var(--border-radius-element);\\n overflow: hidden;\\n background: var(--color-main-background);\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container {\\n position: absolute;\\n z-index: 1;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-color: transparent;\\n border-width: 10px;\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {\\n bottom: -9px;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n border-bottom-width: 0;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n border-top-color: var(--color-main-background);\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {\\n top: -9px;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n border-top-width: 0;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n border-bottom-color: var(--color-main-background);\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n left: -9px;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n border-left-width: 0;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n border-right-color: var(--color-main-background);\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n right: -9px;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n border-right-width: 0;\\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\\n border-left-color: var(--color-main-background);\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] {\\n visibility: hidden;\\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\\n opacity: 0;\\n}\\n._ncPopover_SapAL.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] {\\n visibility: visible;\\n transition: opacity var(--animation-quick);\\n opacity: 1;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.setup-confirmation__secret[data-v-59b7bea7]{word-break:break-all}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/SetupConfirmation.vue\"],\"names\":[],\"mappings\":\"AAEC,6CACC,oBAAA\",\"sourcesContent\":[\"\\n.setup-confirmation {\\n\\t&__secret {\\n\\t\\tword-break: break-all;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.totp-loading[data-v-48827c4a] {\n\tdisplay: inline-block;\n\tvertical-align: sub;\n\tmargin-inline: -2px 4px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/PersonalTotpSettings.vue\"],\"names\":[],\"mappings\":\";AAmKA;CACC,qBAAqB;CACrB,mBAAmB;CACnB,uBAAuB;AACxB\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = new Uint8Array(encodeUtf8(data))\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/**\n* @vue/shared v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver) && 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.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = 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 setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n pauseTracking();\n try {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } finally {\n resetTracking();\n }\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const {\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 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 patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!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}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n 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 let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n 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 cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcDialog-BSV74Bru.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcDialog-BSV74Bru.css\";\n export default content && content.locals ? content.locals : undefined;\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\n/**\n* @internal\n*/\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\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\tconst _clearTimeout = (timer) => {\n\t\tclearTimeout(timer);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst filter = (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\treturn Promise.resolve(invoke());\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : 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\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\tresolve(invoke());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn filter;\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, debounce, function.\n*\n* @__NO_SIDE_EFFECTS__\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, getCurrentScope, 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 } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditable() && isTypedCharValid(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\tmatches.value = toValue(query).split(\",\").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\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\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\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\tvariable.value = ((_window$getComputedSt = window.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim()) || 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) useEventListener(window, \"devicemotion\", createFilterWrapper(eventFilter, (event) => {\n\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\tacceleration.value = {\n\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t};\n\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t};\n\t\t\trotationRate.value = {\n\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t};\n\t\t\tinterval.value = event.interval;\n\t\t}), { passive: true });\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\tif (isPointerNearEdge({\n\t\t\tx: x - container.scrollLeft,\n\t\t\ty: y - container.scrollTop\n\t\t}, 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\", 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 dataTypesValid = checkDataTypes(Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type));\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 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) {\n\t\t\twidth.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n\t\t\theight.value = \"offsetHeight\" in ele ? ele.offsetHeight : 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\n/* #__PURE__ */\nconst events = /* @__PURE__ */ new Map();\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tconst scope = getCurrentScope();\n\tfunction on(listener) {\n\t\tvar _scope$cleanups;\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\tscope === null || scope === void 0 || (_scope$cleanups = scope.cleanups) === null || _scope$cleanups === void 0 || _scope$cleanups.push(_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\terror.value = errorData;\n\t\t\tif (options.updateDataOnError) data.value = responseData;\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\tfiles.value = event.target.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) if (gamepad && gamepads.value[gamepad.index]) gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\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\tsetArrivedState((_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target);\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 = 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\tisLeft.value = !(event.relatedTarget || event.toElement);\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 return mouseRollAdjust(-(y.value - height.value / 2) / height.value);\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 return mouseTiltAdjust((x.value - width.value / 2) / width.value);\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 = (/* #__PURE__ */ {\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\", (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\n","/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */\nimport { defineComponent, h } from 'vue';\nimport { toString, toDataURL, toCanvas } from 'qrcode';\n\nconst EVENT_READY = 'ready';\r\nvar index = defineComponent({\r\n name: 'VueQrcode',\r\n props: {\r\n /**\r\n * The value of the QR code.\r\n */\r\n value: {\r\n type: String,\r\n default: undefined,\r\n },\r\n /**\r\n * The options for the QR code generator.\r\n * {@link https://github.com/soldair/node-qrcode#qr-code-options}\r\n */\r\n options: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n /**\r\n * The tag name of the component's root element.\r\n */\r\n tag: {\r\n type: String,\r\n default: 'canvas',\r\n },\r\n },\r\n emits: [EVENT_READY],\r\n watch: {\r\n $props: {\r\n deep: true,\r\n immediate: true,\r\n /**\r\n * Update the QR code when props changed.\r\n */\r\n handler() {\r\n if (this.$el) {\r\n this.generate();\r\n }\r\n },\r\n },\r\n },\r\n mounted() {\r\n this.generate();\r\n },\r\n methods: {\r\n /**\r\n * Generate QR code.\r\n */\r\n generate() {\r\n const options = this.options || {};\r\n const value = String(this.value);\r\n const done = () => {\r\n this.$emit(EVENT_READY, this.$el);\r\n };\r\n switch (this.tag) {\r\n case 'canvas':\r\n toCanvas(this.$el, value, options, (error) => {\r\n if (error) {\r\n throw error;\r\n }\r\n done();\r\n });\r\n break;\r\n case 'img':\r\n toDataURL(value, options, (error, url) => {\r\n if (error) {\r\n throw error;\r\n }\r\n this.$el.src = url;\r\n this.$el.onload = done;\r\n });\r\n break;\r\n case 'svg':\r\n toString(value, options, (error, string) => {\r\n if (error) {\r\n throw error;\r\n }\r\n const div = document.createElement('div');\r\n div.innerHTML = string;\r\n const svg = div.querySelector('svg');\r\n if (svg) {\r\n const { attributes, childNodes } = svg;\r\n Object.keys(attributes).forEach((key) => {\r\n const attribute = attributes[Number(key)];\r\n this.$el.setAttribute(attribute.name, attribute.value);\r\n });\r\n Object.keys(childNodes).forEach((key) => {\r\n const childNode = childNodes[Number(key)];\r\n this.$el.appendChild(childNode.cloneNode(true));\r\n });\r\n done();\r\n }\r\n });\r\n break;\r\n }\r\n },\r\n },\r\n render() {\r\n return h(this.tag, this.$slots.default);\r\n },\r\n});\n\nexport { index as default };\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs/index.js??clonedRuleSet-2.use[2]!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs/index.js??clonedRuleSet-2.use[2]!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./SetupConfirmation.vue?vue&type=template&id=59b7bea7&scoped=true\"\nimport script from \"./SetupConfirmation.vue?vue&type=script&lang=js\"\nexport * from \"./SetupConfirmation.vue?vue&type=script&lang=js\"\n\nimport \"./SetupConfirmation.vue?vue&type=style&index=0&id=59b7bea7&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-59b7bea7\"]])\n\nexport default __exports__","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./PersonalTotpSettings.vue?vue&type=style&index=0&id=48827c4a&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./PersonalTotpSettings.vue?vue&type=style&index=0&id=48827c4a&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./PersonalTotpSettings.vue?vue&type=template&id=48827c4a&scoped=true\"\nimport script from \"./PersonalTotpSettings.vue?vue&type=script&lang=js\"\nexport * from \"./PersonalTotpSettings.vue?vue&type=script&lang=js\"\n\nimport \"./PersonalTotpSettings.vue?vue&type=style&index=0&id=48827c4a&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-48827c4a\"]])\n\nexport default __exports__","/*\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport { loadState } from '@nextcloud/initial-state'\nimport Logger from './logger.js'\nimport { useTotpStore } from './store.js'\n\nimport PersonalTotpSettings from './components/PersonalTotpSettings.vue'\n\nconst pinia = createPinia()\nconst app = createApp(PersonalTotpSettings)\napp.mixin({ methods: { t } })\napp.use(pinia)\n\nconst store = useTotpStore(pinia)\nstore.totpState = loadState('twofactor_totp', 'state')\n\napp.mount('#twofactor-totp-settings')\n\nLogger.debug('personal settings loaded and rendered')\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","tripletToBase64","num","start","end","output","base64","ieee754","customInspectSymbol","Symbol","Buffer","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","___CSS_LOADER_EXPORT___","module","id","cssWithMappingToString","map","item","content","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","cssMapping","btoa","unescape","encodeURIComponent","JSON","stringify","sourceMapping","dijkstra","single_source_shortest_paths","graph","s","d","predecessors","costs","closest","u","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","hasOwnProperty","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","opts","key","T","t","queue","sorter","default_sorter","sort","shift","result","index","point","second","matchHtmlRegExp","escape","match","exec","html","lastIndex","substring","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","isNaN","log","LN2","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","args","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","text","cb","argsNum","isLastArgCb","getContext","Promise","resolve","reject","create","bind","render","renderToDataURL","_","then","getSymbolSize","getRowColCoords","posCount","intervals","ceil","positions","getPositions","coords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","mode","ALPHANUMERIC","getBitsLength","getLength","bitBuffer","put","BitBuffer","bufIndex","putBit","getLengthInBits","bit","BitMatrix","reservedBit","row","col","reserved","xor","isReserved","encodeUtf8","ByteData","BYTE","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","EXP_TABLE","LOG_TABLE","exp","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","getMaskAt","maskPattern","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","keys","bestPattern","lowerPenalty","p","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","group","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","matrix","bits","createSymbol","segments","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","forEach","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","encode","r","createCodewords","createData","moduleCount","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","options","toSJISFunc","setToSJISFunction","Polynomial","genPoly","initialize","paddedData","remainder","buff","numeric","kanji","byte","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","test","getStringByteLength","getSegments","regex","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","s1","s2","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","reduce","acc","seg","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","node","lastCount","prevNodeId","buildGraph","path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","f","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","document","createElement","getCanvasElement","getOptions","getImageWidth","ctx","image","createImageData","qrToImageData","clearRect","width","height","style","clearCanvas","putImageData","rendererOpts","toDataURL","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","hex2rgba","hexCode","hexValue","g","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","debug","MAX_LENGTH","MAX_SAFE_INTEGER","safeRe","re","parseOptions","compareIdentifiers","SemVer","loose","includePrerelease","LOOSE","FULL","raw","major","minor","patch","prerelease","build","format","other","compareMain","comparePre","compareBuild","release","identifier","identifierBase","startsWith","PRERELEASELOOSE","PRERELEASE","base","throwErrors","er","parse","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","NODE_DEBUG","anum","bnum","rcompareIdentifiers","looseOption","freeze","emptyOpts","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","BUILD","FULLPLAIN","MAINVERSIONLOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","stylesInDOM","getIndexByIdentifier","modulesToDom","idCountMap","identifiers","count","indexByIdentifier","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","insert","styleTarget","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","appendChild","element","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","sfc","props","__vccOpts","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","globalThis","Function","prop","toStringTag","nc","makeMap","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","assign","el","hasOwn","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","catch","objectToString","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","cache","camelizeRE","camelize","toUpperCase","hyphenateRE","hyphenate","capitalize","charAt","toHandlerKey","hasChanged","oldValue","is","invokeArrayFns","fns","def","looseToNumber","parseFloat","_globalThis","getGlobalThis","self","normalizeStyle","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","normalizeClass","normalizeProps","class","klass","isSpecialBooleanAttr","includeBooleanAttr","looseEqual","aValidType","bValidType","getTime","equal","looseCompareArrays","aHasKey","bHasKey","looseIndexOf","findIndex","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","values","_a","description","normalizeCssVarValue","activeEffectScope","activeSub","EffectScope","detached","_active","_on","effects","cleanups","_isPaused","_warnOnRun","__v_skip","active","parent","scopes","pause","resume","currentEffectScope","prevScope","current","stop","fromParent","effectScope","getCurrentScope","onScopeDispose","failSilently","pausedQueueEffects","WeakSet","ReactiveEffect","deps","depsTail","flags","next","cleanup","scheduler","has","delete","trigger","notify","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","nextDep","removeSub","onStop","add","runIfDirty","isDirty","dirty","batchedSub","batchedComputed","batchDepth","isComputed","startBatch","endBatch","err","prevActiveLink","dep","activeLink","tail","prev","prevDep","removeDep","computed","refreshComputed","_dirty","globalVersion","isSSR","prevSub","_value","soft","nextSub","subs","sc","trackStack","pauseTracking","resetTracking","Link","Dep","track","debugInfo","addSub","currentTail","targetMap","WeakMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","depsMap","Map","newValue","oldTarget","targetIsArray","isArrayIndex","newLength","key2","reactiveReadArray","toRaw","isShallow","toReactive","shallowReadArray","toWrapped","isReadonly","isReactive","toReadonly","arrayInstrumentations","__proto__","iterator","every","thisArg","filter","find","findLast","findLastIndex","searchProxy","separator","noTracking","reduceRight","some","toReversed","toSorted","comparer","toSpliced","unshift","method","wrapValue","iter","_next","done","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","wrapInitialAccumulator","isProxy","isNonTrackableKeys","builtInSymbols","Set","getOwnPropertyNames","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","getPrototypeOf","Reflect","readonly","reactive","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","deleteProperty","ownKeys","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createReadonlyMethod","createInstrumentationGetter","shallow","instrumentations","rawTarget","rawKey","wrap","callback","observed","clear","rawValue","valueToAdd","hadItems","targetIsMap","isPair","isKeyOnly","innerIterator","createIterableMethod","createInstrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","isExtensible","existingProxy","targetType","rawType","targetTypeMap","proxy","Proxy","markRaw","ref","createRef","shallowRef","RefImpl","_rawValue","useDirectValue","unref","ref2","toValue","source","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","newVal","ObjectRefImpl","_object","_defaultValue","_raw","_shallow","nestedRef","object","depMap","getDepFromReactive","GetterRefImpl","_getter","propertyToRef","ComputedRefImpl","setter","__v_isRef","effect","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","traverse","depth","seen","getOwnPropertySymbols","propertyIsEnumerable","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","throwInDev","vnode","errorHandler","throwUnhandledErrorInProduction","appContext","config","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","contextVNode","throwInProd","logError","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","queueJob","job","jobId","getId","lastJob","middle","middleJob","middleJobId","findInsertionIndex","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","uid","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","withScopeId","_id","withCtx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","withDirectives","directives","getComponentPublicInstance","bindings","dirs","modifiers","mounted","updated","deep","invokeDirectiveHook","prevVNode","oldBindings","hook","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","provides","_context","ce","hasInjectionContext","ssrContextKey","for","watchEffect","doWatch","immediate","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","__watcherHandles","watchStopHandle","currentInstance","isPre","queuePostRenderEffect","suspense","isFirstRun","augmentJob","watchHandle","reactiveGetter","source2","boundCleanup","forceTrigger","isMultiSource","currentEffect","baseGetter","scope","_cb","immediateFirstRun","currentWatcher","cleanupFn","owner","onWatcherCleanup","cleanup2","watch","instanceWatch","publicThis","createPathGetter","handler","reset","setCurrentInstance","pendingMounts","TeleportEndKey","isTeleport","__isTeleport","isTeleportDisabled","disabled","isTargetSVG","SVGElement","isTargetMathML","MathMLElement","resolveTarget","select","targetSelector","to","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mc","mountChildren","pc","patchChildren","pbc","patchBlockChildren","createText","createComment","dynamicChildren","mount","container2","anchor2","shapeFlag","children","mountToTarget","disabled2","targetAnchor","prepareAnchor","isCE","_teleportTargets","updateCssVars","queuePendingMount","mountJob","mountContainer","placeholder","mainAnchor","defer","pendingBranch","pendingMount","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","um","unmount","hostRemove","doRemove","shouldRemove","child","move","hydrate","nextSibling","hydrateChildren","hydrateAnchor","target2","targetNode","nodeType","_lpa","hydrateDisabledTeleport","node2","vnode2","parentAnchor","moveType","isReorder","Teleport","isDisabled","ut","leaveCbKey","enterCbKey","TransitionHookValidator","BaseTransitionPropsValidators","appear","Boolean","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","recursiveGetSubtree","subTree","component","findNonCommentChild","hasFound","Comment","BaseTransition","setup","slots","state","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","useTransitionState","default","getTransitionRawChildren","createCommentVNode","rawProps","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","afterLeave","delayLeave","earlyRemove","delayedLeave","getLeavingNodesForType","leavingVNodesCache","postClone","callHook","callAsyncHook","hook2","beforeEnter","leavingVNode","enter","afterHook","cancelHook","called","cancelled","leave","clone","hooks2","isKeepAlive","cloneVNode","transition","ssContent","ssFallback","keepComment","parentKey","keyedFragmentCount","Fragment","patchFlag","defineComponent","extraOptions","markAsyncBoundary","ids","useTemplateRef","refs","isTemplateRefKey","desc","getOwnPropertyDescriptor","pendingSetRefMap","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","__asyncResolved","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","pendingSetRef","requestIdleCallback","cancelIdleCallback","__asyncLoader","__isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","isDeactivated","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","warnMissing","Component","selfName","includeInferred","displayName","__name","getComponentName","registry","renderList","renderItem","cached","sourceIsArray","isReadonlySource","renderSlot","fallback","noSlotted","hasProps","openBlock","createBlock","createVNode","slot","validSlotContent","ensureValidVNode","slotKey","rendered","scopeId","vnodes","isVNode","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","attrs","$slots","$refs","$parent","$root","root","$host","$emit","$options","resolveMergedOptions","$forceUpdate","$nextTick","$watch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","cssModules","descriptor","useSlots","calledFunctionName","setupContext","createSetupContext","normalizePropsOrEmits","mergeModels","h","createWatcher","mixins","extends","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","mergeOptions","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","emits","methods","mergeObjectOptions","beforeCreate","mergeAsArray","created","beforeMount","beforeUpdate","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","components","merged","provide","normalizeInject","createAppContext","app","isNativeTag","performance","warnHandler","compilerOptions","propsCache","emitsCache","uid$1","createAppAPI","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","_uid","_component","_props","_container","_instance","use","plugin","install","mixin","directive","rootContainer","isHydrate","_ceVNode","__vue_app__","onUnmount","runWithContext","lastApp","useModel","camelizedName","hyphenatedName","getModelModifiers","localValue","prevEmittedValue","prevSetValue","propValue","emittedValue","hasVModel","i2","modelName","modelModifiers","event","rawArgs","isUnmounted","handlerName","number","onceHandler","emitted","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","renderComponentRoot","withProxy","propsOptions","renderCache","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","filterModelListeners","hasPropsChanged","prevProps","nextProps","emitsOptions","nextKeys","hasPropValueChanged","nextProp","prevProp","internalObjectProto","createInternalObject","isInternalObject","setFullProps","needCastKeys","rawCastValues","hasAttrsChanged","camelKey","rawCurrentProps","castValues","resolvePropValue","isAbsent","opt","hasDefault","skipFactory","propsDefaults","_setProp","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","assignSlots","baseCreateRenderer","createHydrationFns","__VUE__","hostInsert","patchProp","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","mountElement","customElement","_isVueCE","_beginPatch","patchElement","_endPatch","vnodeHook","resolveChildrenNamespace","onVnodeBeforeMount","invokeVNodeHook","needCallTransitionHooks","needTransition","onVnodeMounted","isSuspense","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","innerHTML","textContent","patchProps","propsToUpdate","dynamicProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","activate","mountComponent","updateComponent","initialVNode","emptyAppContext","exposed","exposeProxy","suspenseId","pendingId","asyncDep","asyncResolved","bc","bm","bu","bum","da","rtg","rtc","sp","createComponentInstance","renderer","setInSSRSetupState","isStateful","initProps","initSlots","setupResult","isAsyncSetup","unsetCurrentInstance","resolvedResult","handleSetupResult","finishComponentSetup","setupStatefulComponent","setupComponent","registerDep","setupRenderEffect","nextVNode","prevChildren","nextChildren","$stable","shouldUpdateComponent","updateComponentPreRender","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","activeBranch","updateHOCHostEl","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","__asyncHydrate","_hasShadowRoot","_injectChildStyle","scopedInitialVNode","rawPrevProps","kebabKey","camelizedKey","updateProps","needDeletionCheck","deletionComparisonTarget","updateSlots","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","arrI","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","remove2","performLeave","wasLeaving","_isLeaving","moveStaticNode","cacheIndex","deactivate","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","hasOnce","shouldInvalidateMemo","onVnodeUnmounted","removeFragment","removeStaticNode","performRemove","invalidateMount","teleportEnd","isFlushing","_vnode","mt","createApp","currentNamespace","allowed","ch1","ch2","subComponent","anchorVnode","__isSuspense","currentBlock","disableTracking","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","staticCount","normalizeChildren","normalize","cloned","guardReactiveProps","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","flag","asBlock","slotFlag","toMerge","incoming","internalSetCurrentInstance","registerGlobalSetter","setters","compile","installWithProxy","__ssrInlineRender","ssrRender","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","expose","filters","resolveInjections","methodHandler","parentProvides","registerLifecycleHook","register","_hook","applyOptions","attrsProxyHandlers","getterOrOptions","debugOptions","propsOrChildren","policy","tt","trustedTypes","createPolicy","createHTML","unsafeToTrustedHTML","doc","templateContainer","nodeOps","insertBefore","tag","createElementNS","multiple","nodeValue","selector","before","previousSibling","lastChild","cloneNode","wrapper","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","Transition","decorate$1","baseProps","durations","NumberOf","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","_enterCancelled","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","hasExplicitCallback","whenTransitionEnds","forceReflow","resolveTransitionProps","h2","toNumber","cls","classList","_vtc","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","getTransitionInfo","endEvent","ended","removeEventListener","onEnd","addEventListener","delays","toMs","ownerDocument","body","offsetHeight","vShowOriginalDisplay","vShowHidden","vShow","display","setDisplay","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","querySelectorAll","setVarsOnNode","setVars","setVarsOnVNode","ob","MutationObserver","observe","childList","disconnect","isHydrating","setProperty","displayRE","importantRE","setStyle","prefixed","rawName","prefixCache","prefixes","autoPrefix","shouldPreserveTextareaResizeStyle","tagName","xlinkNS","patchAttr","isSVG","isBoolean","removeAttributeNS","setAttributeNS","removeAttribute","patchDOMProp","attrName","getAttribute","needRemove","veiKey","optionsModifierRE","optionsModifierEventRE","cachedNow","getNow","Date","now","isNativeOn","HTMLElement","getModelAssigner","onCompositionStart","composing","onCompositionEnd","dispatchEvent","Event","assignKey","castValue","vModelText","lazy","castToNumber","rootNode","getRootNode","Document","ShadowRoot","activeElement","vModelCheckbox","modelValue","_modelValue","elementValue","getValue","filtered","getCheckboxValue","setChecked","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","left","button","right","exact","withModifiers","_withMods","cacheKey","guard","keyNames","esc","space","up","down","withKeys","_withKeys","eventKey","rendererOptions","prevValue","nextValue","transitionClasses","className","patchClass","isCssString","hasControlledDisplay","prevStyle","cssVarText","patchStyle","invokers","existingInvoker","parseName","invoker","initialValue","_vts","attached","originalStop","stopImmediatePropagation","_stopped","handlers","createInvoker","patchEvent","shouldSetAsProp","_def","shouldSetAsPropForVueCE","_trueValue","_falseValue","createRenderer","containerOrSelector","normalizeContainer","resolveRootNamespace","Element","activePinia","setActivePinia","pinia","piniaSymbol","MutationType","IS_CLIENT","_global","global","download","url","xhr","XMLHttpRequest","responseType","onload","saveAs","response","onerror","send","corsEnabled","status","click","MouseEvent","evt","createEvent","initMouseEvent","_navigator","navigator","userAgent","isMacOSWebView","HTMLAnchorElement","blob","rel","href","origin","location","URL","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","bom","popup","innerText","force","isSafari","isChromeIOS","FileReader","reader","onloadend","readAsDataURL","assign$1","addSubscription","subscriptions","onCleanup","removeSubscription","idx","triggerSubscriptions","fallbackRunWithContext","ACTION_MARKER","ACTION_NAME","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","createSetupStore","$id","hot","isOptionsStore","optionsForPlugin","actions","$subscribeOptions","isListening","isSyncListening","debuggerEvents","actionSubscriptions","initialState","activeListener","$patch","partialStateOrMutator","subscriptionMutation","patchFunction","storeId","events","patchObject","payload","myListenerId","$reset","newState","$state","action","wrappedAction","afterCallbackList","onErrorCallbackList","store","after","onError","partialStore","_p","$onAction","$subscribe","stopWatcher","direct","$dispose","_s","setupStore","_e","actionValue","extender","loadState","_nc_initial_state","elem","parsedValue","atob","cause","ProxyBus","bus","bus2","getVersion","valid","warn","subscribe","unsubscribe","SimpleBus","getBus","OC","_eventBus","_nc_event_bus","_generateUrlPath","params","allOptions","generateUrl","noRewrite","baseOrRootURL","baseURL","getRootUrl","modRewriteWorking","webroot","_oc_webroot","pathname","ScopedStorage","static","wrapped","persistent","GLOBAL_SCOPE_PERSISTENT","GLOBAL_SCOPE_VOLATILE","scopeKey","setItem","getItem","removeItem","setRequestToken","_nc_auth_requestToken","dataset","requesttoken","_internal","currentUser","attribute","getCurrentUser","getElementsByTagName","isAdmin","_oc_isadmin","appId","clearedOnLogout","persist","clearOnLogout","localStorage","sessionStorage","LogLevel","LogLevel2","ConsoleLogger","formatMessage","Debug","Info","info","Warn","Fatal","fatal","buildConsoleLogger","LoggerBuilder","setApp","setLogLevel","setUid","detectUser","user","detectLogLevel","onLoaded","readyState","_oc_config","loglevel","_oc_debug","getLoggerBuilder","builder","hasOwnInPrototypeChain","thing","kindOf","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isNumber","isFile","isBlob","isFileList","G","FormDataCtor","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","isContextDefined","isTypedArray","TypedArray","isHTMLForm","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","random","callbacks","asap","queueMicrotask","isIterable","isFormData","append","kind","isArrayBufferView","isEmptyObject","isReactNativeBlob","uri","isReactNative","formData","getParts","isRegExp","isStream","pipe","merge","objs","caseless","skipUndefined","assignValue","targetKey","symbols","symbol","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","position","toArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","hasOwnProp","getSafeProp","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toCamelCase","toFiniteNumber","isSpecCompliantForm","toJSONObject","visited","visit","reducedValue","isThenable","isSafeIterable","ignoreDuplicateOf","utils","INVALID_UNICODE_HEADER_VALUE_CHARS","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","trimSPorHTAB","toByteStringHeaderObject","headers","byteStringHeaders","header","sanitizeByteStringHeaderValue","$internals","normalizeHeader","normalizeValue","sanitizeHeaderValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","parseHeaders","dest","entry","parser","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","w","char","formatHeader","targets","asStrings","getSetCookie","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","AxiosError","request","customProps","axiosError","isAxiosError","redactKeys","redact","serializedConfig","lowerKeys","hasOwnOrPrototypeToJSON","redactConfig","fileName","lineNumber","columnNumber","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","maxDepth","useBlob","convertValue","toISOString","throwIfMaxDepthExceeded","ancestors","currentValue","stringifyWithDepthLimit","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","_options","serialize","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","advertiseZstdAcceptEncoding","validateStatusUndefinedResolves","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","throwIfDepthExceeded","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","own","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","platform","helpers","isNode","toURLEncodedForm","_FormData","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","transformData","isCancel","__CANCEL__","settle","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","round","lastArgs","timer","timestamp","threshold","invoke","loaded","rawLoaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isMSIE","protocol","host","port","expires","domain","secure","sameSite","cookie","toUTCString","cookies","eq","decodeURIComponent","malformedHttpProtocol","httpProtocolControlCharacters","assertValidHttpProtocolURL","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","allowedSocketPaths","responseEncoding","configValue","transitional2","transitional1","getMergedTransitionalOption","FORM_DATA_CONTENT_HEADERS","newConfig","auth","username","password","getHeaders","formHeaders","setFormDataHeaders","isURLSameOrigin","xsrfValue","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","responseURL","onabort","ontimeout","timeoutErrorMessage","setRequestHeader","upload","cancel","abort","aborted","parseProtocol","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","trackStream","stream","onProgress","onFinish","async","iterable","asyncIterator","getReader","readStream","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isHexDigit","charCode","isPercentEncodedByte","VERSION","decodeURIComponentSafe","globalObject","TextEncoder","Request","Response","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","duplex","hasContentType","supportsResponseStream","resolvers","getBodyLength","_request","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","toAbortSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","protocolIndex","urlToCheck","maybeWithAuthCredentials","parsedURL","comma","effectiveLen","pad","tailIsPct3D","estimateDataURLDecodedBytes","outboundLength","mustEnforceStreamBody","trackRequestStream","getContentLength","resolveBodyLength","contentTypeHeader","isCredentialsSupported","resolvedOptions","credentials","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","networkError","seedCache","getFetch","seeds","seed","knownAdapters","http","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","CanceledError","toFormData","Cancel","all","promises","spread","formToJSON","getAdapter","RETRY_KEY","RETRY_DELAY_KEY","cancelableClient","client","observer","onRequestTokenUpdate","getCancelableClient","ok","json","fetchRequestToken","onCsrfTokenError","retryDelay","retryIfMaintenanceMode","onMaintenanceModeError","reloadExpiredSession","reload","saveState","post","STATE_DISABLED","STATE_CREATED","STATE_ENABLED","useTotpStore","idOrOptions","useStore","hasContext","getters","localState","toRefs","computedGetters","createOptionsStore","defineStore","totpState","enable","secret","qrUrl","STATE","confirm","disable","tryOnScopeDispose","locals","isClient","defaultWindow","unrefElement","elRef","_$el","plain","useEventListener","firstParamTargets","_firstParamTargets$va","_firstParamTargets$va2","raw_targets","raw_events","raw_listeners","raw_options","optionsClone","flatMap","useSupported","useMounted","onKeyStroke","eventName","passive","predicate","keyFilter","repeat","useElementSize","initialSize","box","_unrefElement","namespaceURI","stop1","observerOptions","isSupported","stopWatch","_targets","els","ResizeObserver","_el","useResizeObserver","boxSize","borderBoxSize","contentBoxSize","devicePixelContentBoxSize","$elem","rect","getBoundingClientRect","formatBoxSize","inlineSize","blockSize","contentRect","sync","getLifeCycleTarget","tryOnMounted","ele","offsetWidth","stop2","createElementId","_nc_vue_element_id","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","POSITIVE_INFINITY","isFrozen","seal","_ref","construct","func","_len","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","arrayIsArray","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","numberToString","booleanToString","bigintToString","symbolToString","objectHasOwnProperty","regExpTest","typeErrorCreate","_len4","_key4","_len3","_key3","addToSet","transformCaseFunc","lcElement","cleanArray","newObject","_ref2","_ref3","property","lookupGetter","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","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","_resolveSetOption","cfg","transform","purify","createDOMPurify","DOMPurify","removed","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","trustedTypesPolicy","defaultTrustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","_document","implementation","createNodeIterator","createDocumentFragment","importNode","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","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","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","tagCheck","attributeCheck","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_URI_SAFE_ATTR","ADD_FORBID_CONTENTS","tbody","TRUSTED_TYPES_POLICY","createScriptURL","previousTrustedTypesPolicy","purifyHostElement","suffix","ATTR_NAME","hasAttribute","policyName","scriptUrl","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","_removeAttribute","getAttributeNode","_stripDisallowedAttributes","_initDocument","leadingWhitespace","dirtyPayload","parseFromString","documentElement","createDocument","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_stripTemplateExpressions","_scrubTemplateExpressions2","_node$querySelectorAl","walker","currentNode","nextNode","templates","tmpl","_isDocumentFragment","_isClobbered","realTagName","nodeName","hasChildNodes","_isNode","_executeHooks","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_sanitizeElements","allowedTags","firstElementChild","_isUnsafeNode","_isBasicCustomElement","hoisted","_sanitizeDisallowedNode","parentTagName","_checkSvgNamespace","_checkMathMlNamespace","_checkHtmlNamespace","_checkValidNamespace","_isValidAttribute","lcTag","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","getAttributeType","_createTrustedScriptURL","_setAttributeValue","_sanitizeAttributes","hookEvent","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","_sanitizeShadowDOM2","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","shadow","isElement","rootName","sr","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","inPlace","_neutralizePatchLinkage","nn","walkRoot","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks","getLanguage","_nc_l10n_language","getAppTranslations","translations","_oc_l10n_registry_translations","pluralFunction","_oc_l10n_registry_plural_functions","translate","placeholdersOrNumber","optionsOrNumber","identity","optSanitize","optEscape","isValidReplacement","translation","bundle","vars2","number2","replacement","_nc_l10n_locale","locale","Intl","DateTimeFormat","replaceAll","lang","language","GettextWrapper","addTranslations","dict","msgid","msgid_plural","msgidPlural","msgstr","fromEntries","gettext","original","placeholders","ngettext","singular","plural","textSingular","textPlural","translatePlural","GettextBuilder","setLanguage","detectLocale","detectLanguage","addTranslation","enableDebugMode","getPlural","getGettextBuilder","chunks","registered","decompressed","routerKey","majorVersion","isLegacy","isLegacy34","NC_FORM_BOX_CONTEXT_KEY","_export_sfc","_sfc_main","alignment","ariaLabel","pressed","variant","wide","__props","__emit","formBoxItemClass","isInFormBox","hasVueRouterContext","hasPressedState","variantWithPressed","isTertiaryVariant","flexAlignment","isReverseAligned","getNcPopoverTriggerAttrs","ncPopoverTriggerAttrs","activeClass","onClick","_cache","NcButton","xmlns","_hoisted_4","directional","inline","iconSize","cleanSvg","svgDocument","role","NcIconSvgWrapper","_hoisted_5","NcLoadingIcon","appearance","colors","colors2","icon","label","isLoading","handleClick","mdiAlertCircleOutline","mdiCheck","mdiClose","candidateSelectors","candidateSelector","NoElement","msMatchesSelector","webkitMatchesSelector","_element$getRootNode","_isInert","lookUp","_node$getAttribute","inertAtt","getCandidates","includeContainer","candidates","_getCandidatesIteratively","elements","elementsToCheck","assigned","assignedElements","nestedCandidates","flatten","scopeParent","shadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","hasTabIndex","getTabIndex","tabIndex","_node$getAttribute2","attValue","isContentEditable","sortOrderedTabbables","documentOrder","isInput","isZeroArea","_node$getBoundingClie","isNodeMatchingSelectorFocusable","isHiddenInput","displayCheck","checkVisibility","checkOpacity","opacityProperty","contentVisibilityAuto","visibilityProperty","checkVisibilityCSS","visibility","nodeUnderDetails","parentElement","originalNode","assignedSlot","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","nodeRoot","nodeRootHost","contains","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","getClientRects","isHidden","isDetailsWithSummary","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isRadio","radioSet","radioScope","form","queryRadios","CSS","getCheckedRadio","isTabbableRadio","isNonTabbableRadio","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","isScope","candidateTabindex","getSortOrderTabIndex","sortable","isTabbable","focusableCandidateSelector","isFocusable","_createForOfIteratorHelper","F","_defineProperty","_toPrimitive","_toPropertyKey","_objectSpread2","activeFocusTraps","getActiveTrap","trapStack","activateTrap","trap","pauseTrap","trapIndex","deactivateTrap","unpauseTrap","activeTrap","_setPausedState","_isManuallyPaused","isTabEvent","keyCode","isKeyForward","isKeyBackward","delay","valueOrHandler","getActualTarget","composedPath","internalTrapStack","createFocusTrap","userOptions","returnFocusOnDeactivate","escapeDeactivates","delayInitialFocus","delayReturnFocus","isolateSubtrees","containers","containerGroups","tabbableGroups","adjacentElements","alreadySilent","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","paused","manuallyPaused","delayInitialFocusTimer","recentNavEvent","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","tabbableNodes","getNodeForOption","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_toConsumableArray","_getActiveElement","getInitialFocusNode","tabbableOptions","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","tabbable","focusableNodes","focusable","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","nextTabbableNode","forward","nodeIdx","_tryFocus","focus","preventScroll","isSelectableInput","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","clickOutsideDeactivates","returnFocus","allowOutsideClick","checkFocusIn","targetContained","navAcrossContainers","mruContainerIdx","mruTabIdx","checkTabKey","checkKeyNav","checkEscapeKey","checkClick","addListeners","capture","removeListeners","mutationObserver","mutations","focusedNode","mutation","removedNodes","isConnected","initialFocusNode","updateObservedNodes","subtree","activateOptions","_preexistingTrap$_set","onActivate","onPostActivate","checkCanFocusTrap","preexistingTrap","revertState","_setSubtreeIsolation","finishActivation","afterListeners","listenersPromise","_preexistingTrap$_set2","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","completeDeactivation","finishDeactivation","pauseOptions","unpause","unpauseOptions","updateContainerElements","containerElements","elementsAsArray","_step","containerAncestors","insideShadowRoot","siblings","_step2","_iterator2","collectAdjacentElements","onPause","onPostPause","onUnpause","onPostUnpause","finishUnpause","isEnabled","_el$getAttribute","ariaHidden","inert","getTrapStack","_nc_focus_trap","alignments","placements","side","oppositeSideMap","bottom","top","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getAlignmentSides","rects","rtl","alignmentAxis","mainAlignmentSide","reference","floating","getOppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getPaddingObject","padding","expandPaddingObject","rectToClientRect","computeCoordsFromPlacement","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","detectOverflow","_await$platform$isEle","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","flip","_middlewareData$arrow","_middlewareData$flip","middlewareData","initialPlacement","mainAxis","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","detectOverflowOptions","arrow","alignmentOffset","initialSideAxis","isBasePlacement","isRTL","oppositePlacement","getExpandedPlacements","hasFallbackAxisSideDirection","direction","isStart","getSideList","getOppositeAxisPlacements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","originSides","defaultView","userAgentData","brands","brand","overflowX","overflowY","backdropFilter","WebkitBackdropFilter","perspective","willChange","contain","visualViewport","offsetLeft","offsetTop","frameElement","clientLeft","paddingLeft","clientTop","paddingTop","scrollLeft","scrollTop","pageXOffset","pageYOffset","C","W","D","S","clientWidth","clientHeight","scrollWidth","scrollHeight","A","O","P","getDimensions","getElementRects","distance","skidding","instantMove","disposeTimeout","popperTriggers","preventOverflow","overflowPadding","arrowPadding","arrowOverflow","autoHideOnMousedown","themes","tooltip","triggers","hideTriggers","show","hide","handleResize","loadingContent","dropdown","autoHide","menu","$extend","MSStream","Te","pe","hover","touch","pointer","ae","de","le","he","Y","theme","q","parentPopper","required","targetNodes","referenceNode","popperNode","shown","showGroup","ariaId","positioningDisabled","showTriggers","popperShowTriggers","popperHideTriggers","eagerMount","popperClass","computeTransformOrigin","autoMinSize","autoSize","autoMaxSize","autoBoundaryMaxSize","shiftCrossAxis","noAutoFocus","resize","isShown","skipTransition","showFrom","showTo","hideFrom","hideTo","centerOffset","transformOrigin","randomId","shownChildren","lastAutoHide","pendingHide","containsGlobalTarget","isDisposed","mouseDownContains","popperId","shouldMountContent","slotData","onResize","hasPopperShowTriggerHover","dispose","init","$_ensureTeleport","$_computePosition","$_detachPopperNode","$_autoShowHide","skipDelay","lockedChild","$_scheduleShow","$_showFrameLocked","$_hideInProgress","$_isAimingPopper","lockedChildTimer","$_scheduleHide","$_events","$_preventShow","$_referenceNode","$_targetNodes","ELEMENT_NODE","$_popperNode","$_innerNode","$_arrowNode","$_swapTargetAttrs","$_addEventListeners","$_removeEventListeners","$_updateParentShownChildren","middleware","_middlewareData$offse","diffCoords","mainAxisMulti","crossAxisMulti","convertValueToCoords","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","allowedPlacements","autoAlignment","placements$1","getPlacementList","currentIndex","autoPlacement","currentPlacement","alignmentSides","currentOverflows","allOverflows","placementsSortedByMostSpace","placementsThatFitOnEachSide","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","skip","maxWidth","maxHeight","_state$middlewareData","_state$middlewareData2","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","platformWithDetectOverflow","statefulPlacement","resetCount","currentMiddleware","nextX","nextY","$_scheduleTimer","$_applyHide","$_applyShow","$_computeDelay","$_disposeTimer","$_applyShowEffect","$_registerEventListeners","$_applyAttrsToTarget","usedByTooltip","$_registerTriggerListeners","eventType","$_refreshListeners","$_handleGlobalClose","closePopover","ue","fe","Pe","closeAllPopover","et","clientX","clientY","st","X","nt","emitOnMount","ignoreWidth","ignoreHeight","_w","_h","emitSize","_resizeObject","addResizeHandlers","removeResizeHandlers","compareAndNotify","pt","tabindex","at","__file","Z","themeClass","$resetCss","Ze","dt","toPx","lt","ht","ct","ee","onKeyup","onNotify","te","popper","K","Popper","PopperContent","finalTheme","vPopperTheme","getTargetNodes","popperContent","onShow","onHide","onApplyShow","onApplyHide","onCloseGroup","onCloseDirective","onAutoHide","I","V","Ee","Se","asyncContent","isContentAsync","loading","finalContent","fetchContent","$_fetchId","$_isShown","$_loading","onResult","Ht","isRtl","languageCode","_sfc_main$1","triggerAttrs","popupRole","structuredClone","NcPopover","Dropdown","NcPopoverTriggerProvider","closeOnClickOutside","noCloseOnClickOutside","noFocusTrap","popoverBaseClass","popoverTriggers","setReturnFocus","internalShown","internalTriggers","internalPlacement","checkTriggerA11y","clearFocusTrap","clearEscapeStopPropagation","getPopoverTriggerContainerElement","removeFloatingVueAriaDescribedBy","triggerElements","getPopoverContentElement","popover","useFocusTrap","$focusTrap","fallBackFocus","options2","addEscapeStopPropagation","stopKeydownEscapeHandler","afterShow","afterHide","$setup","_component_NcPopoverTriggerProvider","_component_Dropdown","$event","$style","ncPopover","slotProps","NC_ACTIONS_IS_SEMANTIC_MENU","NC_ACTIONS_CLOSE_MENU","IconDotsHorizontal","fillColor","isSlotPopulated","NcActions","actionsMenuSemanticType","closeMenu","manualOpen","forceMenu","forceName","menuName","primary","defaultIcon","boundariesElement","getElementById","opened","focusIndex","triggerButtonVariant","withArrowNavigation","withTabNavigation","withFocusTrap","navigation","dialog","unknown","handleEscapePressed","shouldPause","trapStackController","pausedStack","createTrapStackController","useTrapStackControl","getActionName","isValidSingleAction","isAction","isIconUrl","toggleMenu","openMenu","triggerButton","onOpened","focusFirstAction","onClosed","getCurrentActiveMenuItemElement","getFocusableMenuItemElements","onKeydown","focusList","newFocusIndex","focusAction","focusPreviousAction","focusNextAction","focusLastAction","onTriggerKeydown","removeCurrentActive","currentActiveElement","focusElement","liMenuParent","preventIfEvent","indexLength","firstCheckedIndex","onFocus","onBlur","findActions","actions2","validInlineActions","inlineActions","menuActions","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","buttonText","propsToForward","renderActionsPopover","triggerIcon","triggerRandomId","onAfterShow","onAfterClose","isMac","disableKeyboardShortcuts","OCP","Accessibility","derivedKeysRegex","nonAsciiPrintableRegex","eventHandler","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","allowInModal","getElementsByClassName","shouldIgnoreEvent","useHotKey","keysOrFilter","validateKeyEvent","caseSensitive","stopKeyDown","stopKeyUp","checkIfDarkTheme","backgroundInvertIfDark","getPropertyValue","createSharedComposable","isFullscreen","checkIfIsFullscreen","outerHeight","screen","isLessThanBreakpoint","breakpoint","isMobile","isSmallMobile","MOBILE_BREAKPOINT","getSameNodeParent","_hoisted_6","_hoisted_7","hasPrevious","hasNext","outTransition","enableSlideshow","slideshowDelay","slideshowPaused","disableSwipe","spreadNavigation","noClose","lightBackdrop","closeButtonOutside","additionalTrapElements","labelId","numHeaderActions","cssSlideshowDelay","showModal","scopeIdAttrs","scopeIds","getSameNodeAncestors","instance2","useScopeIdAttrs","modalId","maskElement","focusTrap","isActive","isPlaying","stopSlideshow","startSlideshow","interval","immediateCallback","clean","clearInterval","intervalValue","setInterval","useIntervalFn","nextSlide","toRef","animationKey","runSlideshow","stopSwipe","onSwipe","onSwipeEnd","onSwipeStart","coordsStart","coordsEnd","diffX","diffY","isThresholdExceeded","isSwiping","getTouchEventCoords","touches","updateCoordsEnd","listenerOptions","stops","updateCoordsStart","lengthX","lengthY","useSwipe","previousSlide","restartSlideshow","handleClickModalWrapper","fallbackFocus","stroke","cx","cy","onMousedown","NcModal","buttons","navigationAriaLabel","navigationAriaLabelledby","contentClasses","dialogClasses","navigationClasses","wrapperElement","dialogWidth","isNavigationCollapsed","hasNavigation","navigationId","navigationAriaLabelAttr","navigationAriaLabelledbyAttr","dialogRootElement","dialogTagName","dialogListeners","submit","handleClosing","handleClosed","modalProps","onClose","isCollapsed","reportValidity","handleButtonClose","NcDialog","inputClass","labelOutside","showTrailingButton","trailingButtonLabel","success","helperText","pill","__expose","inputElement","hasTrailingIcon","internalPlaceholder","isValidLabel","isValidLabel2","ariaDescribedby","ariaDescribedby2","handleInput","onInput","NcInputField","checkPasswordStrength","minlength","asText","visible","inputFieldInstance","password_policy","passwordPolicy","getCapabilities","internalHelpMessage","minLengthWithPolicy","minLength","toggleVisibility","function_","wait","storedContext","storedArguments","timeoutId","callContext","callArguments","later","debounced","arguments_","callNow","debounce","ocsVersion","generateOcsUrl","ocs","onTrailingButtonClick","dynamicSlots","createSlots","NcPasswordField","PwdConfirmationMode","PwdConfirmationMode2","PAGE_LOAD_TIME","NC_MAJOR_VERSION","gtBuilder","t2","validate","passwordInput","hasError","hasConfirmationHeader","isConfirmationError","passwordDialog","PasswordDialogVue","_passwordDialog","_dialogCallback","confirmPassword","backendAllowsPasswordConfirmation","Strict","serverTimeDiff","nc_pageLoad","nc_lastLogin","isPasswordConfirmationRequired","Lax","rest","spawnDialog","promptPassword","lastLogin","_confirmPassword","EVENT_READY","generate","div","childNode","QR","confirmation","confirmationCode","onConfirmKeyDown","SetupConfirmation","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_toDisplayString","_createVNode","_component_QR","maxlength","autocomplete","inputmode","autocapitalize","totpStore","loadingConfirmation","toggleEnabled","createTOTP","disableTOTP","Logger","Notification","showTemporary","enableTOTP","_Fragment","onChange","_hoisted_3","_createBlock","_component_SetupConfirmation","onConfirm","toBeInstalled","$pinia","createPinia","PersonalTotpSettings"],"sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9f4c8d1b2..541f15602 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2505,9 +2505,9 @@ } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", - "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz", + "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==", "dev": true, "license": "MIT", "dependencies": { @@ -3791,21 +3791,6 @@ "vue": ">=3.3.0" } }, - "node_modules/@nextcloud/vue/node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", - "license": "MIT", - "dependencies": { - "readdirp": "^5.0.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@nextcloud/vue/node_modules/floating-vue": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/floating-vue/-/floating-vue-5.2.2.tgz", @@ -3852,19 +3837,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@nextcloud/vue/node_modules/readdirp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", - "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@nextcloud/vue/node_modules/splitpanes": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-4.0.4.tgz", @@ -3957,9 +3929,9 @@ } }, "node_modules/@nextcloud/webpack-vue-config": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@nextcloud/webpack-vue-config/-/webpack-vue-config-7.0.2.tgz", - "integrity": "sha512-7pzQptkQ4XEi9hyhLjdJLAyG4ZnnHuDNsOnMBc1RcRniMCTBp8xD5T1H3gCm4lKmB5/pEyuTK52/rj1w/xqmKw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@nextcloud/webpack-vue-config/-/webpack-vue-config-7.0.4.tgz", + "integrity": "sha512-JM4gHZZCLGVtxiILjb0RvQQRjBFbau0hQHQyNrLR+wkY3UaLMXkj9P8dT+w8/d6WIOnwLbQFY2Duox6crbgh5Q==", "dev": true, "hasInstallScript": true, "license": "AGPL-3.0-or-later", @@ -3970,16 +3942,17 @@ "@babel/core": "^7.22.9", "babel-loader": "^10.0.0", "css-loader": "^7.1.1", + "minimizer-webpack-plugin": "^5.6.1", "node-polyfill-webpack-plugin": "4.0.0", "sass": "^1.64.2", - "sass-loader": "^16.0.2", + "sass-loader": "^17.0.0", "style-loader": "^4.0.0", "ts-loader": "^9.4.4", "vue": "^2.7.16 || ^3.5.13", "vue-loader": "^15.11.1 || ^17.4.2", "webpack": "^5.88.2", "webpack-cli": "^6.0.1", - "webpack-dev-server": "^5.0.2" + "webpack-dev-server": "^6.0.0" } }, "node_modules/@noble/hashes": { @@ -4066,17 +4039,19 @@ "license": "MIT" }, "node_modules/@parcel/watcher": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", - "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", "dev": true, + "hasInstallScript": true, "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.3", "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" }, "engines": { "node": ">= 10.0.0" @@ -4086,24 +4061,24 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.4.1", - "@parcel/watcher-darwin-arm64": "2.4.1", - "@parcel/watcher-darwin-x64": "2.4.1", - "@parcel/watcher-freebsd-x64": "2.4.1", - "@parcel/watcher-linux-arm-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-musl": "2.4.1", - "@parcel/watcher-linux-x64-glibc": "2.4.1", - "@parcel/watcher-linux-x64-musl": "2.4.1", - "@parcel/watcher-win32-arm64": "2.4.1", - "@parcel/watcher-win32-ia32": "2.4.1", - "@parcel/watcher-win32-x64": "2.4.1" + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", - "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", "cpu": [ "arm64" ], @@ -4123,9 +4098,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", - "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", "cpu": [ "arm64" ], @@ -4145,9 +4120,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", - "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", "cpu": [ "x64" ], @@ -4167,9 +4142,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", - "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", "cpu": [ "x64" ], @@ -4189,13 +4164,16 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", - "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4210,14 +4188,17 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", - "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", "cpu": [ - "arm64" + "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4232,14 +4213,17 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", - "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4254,14 +4238,17 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", - "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", "cpu": [ - "x64" + "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4276,14 +4263,17 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", - "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4298,18 +4288,21 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", - "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", "cpu": [ - "arm64" + "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ], "peer": true, "engines": { @@ -4320,12 +4313,12 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", - "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", "cpu": [ - "ia32" + "arm64" ], "dev": true, "license": "MIT", @@ -4343,9 +4336,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", - "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", "cpu": [ "x64" ], @@ -4364,19 +4357,37 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@peculiar/asn1-cms": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", - "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.9.4.tgz", + "integrity": "sha512-cben7oxmQsUGZqotus7yt0srYdncOT6RNWcTQ77T2RFOXejYVYkXadrfePdRcrVpO9K95IRLKKglG2k38jKXuw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "@peculiar/asn1-x509-attr": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "@peculiar/asn1-x509-attr": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-cms/node_modules/tslib": { @@ -4388,17 +4399,20 @@ "peer": true }, "node_modules/@peculiar/asn1-csr": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", - "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.9.4.tgz", + "integrity": "sha512-xd4YN4vpRjkDAQWVfZZkeu12IEND7DOpkqaHSIHxZl1uggUNa9Ju0QxY2jHvDAS9pP0zhRBytg8ifsnGo3V0jw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-csr/node_modules/tslib": { @@ -4410,17 +4424,20 @@ "peer": true }, "node_modules/@peculiar/asn1-ecc": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", - "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.9.4.tgz", + "integrity": "sha512-JJXefFshRAuVAjWQo/39bkg1ywc1VaiO44S8RRC+Ykvf/u2KDmYffoDb0ZBPCR5uJy4AGKQhl8mX+Q8ShcWaXQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-ecc/node_modules/tslib": { @@ -4432,19 +4449,22 @@ "peer": true }, "node_modules/@peculiar/asn1-pfx": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", - "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.9.4.tgz", + "integrity": "sha512-khuGzHTzNzk4GDlIBEILyIs6Lce0yn0ZBdoI9v93kmNncfZRhD+AQ5ODFqdhvoE8cMJF/JMTQ8yA+t1D14kqCw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-cms": "^2.6.1", - "@peculiar/asn1-pkcs8": "^2.6.1", - "@peculiar/asn1-rsa": "^2.6.1", - "@peculiar/asn1-schema": "^2.6.0", - "asn1js": "^3.0.6", + "@peculiar/asn1-cms": "^2.9.4", + "@peculiar/asn1-pkcs8": "^2.9.4", + "@peculiar/asn1-rsa": "^2.9.4", + "@peculiar/asn1-schema": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-pfx/node_modules/tslib": { @@ -4456,17 +4476,20 @@ "peer": true }, "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", - "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.9.4.tgz", + "integrity": "sha512-duRdotlUx9eDZe6QrQpQKl61RbWykCHBCkKayP8V8XdEFwlKHZ8qGGDMyS6Pye7OX7nLFttTTpRkJeet78ckwQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-pkcs8/node_modules/tslib": { @@ -4478,21 +4501,24 @@ "peer": true }, "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", - "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.9.4.tgz", + "integrity": "sha512-kaL4cNxBpdQE2dKlyZBqz4ygCrwffO+8wfoxTEqM1Z8RadvCeELBRzcv0dzM8aY9azHMwODO5nxU65zXmhToOQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-cms": "^2.6.1", - "@peculiar/asn1-pfx": "^2.6.1", - "@peculiar/asn1-pkcs8": "^2.6.1", - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "@peculiar/asn1-x509-attr": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-cms": "^2.9.4", + "@peculiar/asn1-pfx": "^2.9.4", + "@peculiar/asn1-pkcs8": "^2.9.4", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "@peculiar/asn1-x509-attr": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-pkcs9/node_modules/tslib": { @@ -4504,17 +4530,20 @@ "peer": true }, "node_modules/@peculiar/asn1-rsa": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", - "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.9.4.tgz", + "integrity": "sha512-pZ96eD1PptovcWQ/GSmuNFXd/7EQJNlKfDaNCyE2rx3W0v6QFelkzquVqRSRyyDXXCYD69ZXJDzZ8GhIiQzKoA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-rsa/node_modules/tslib": { @@ -4526,16 +4555,19 @@ "peer": true }, "node_modules/@peculiar/asn1-schema": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", - "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.9.4.tgz", + "integrity": "sha512-GjzePcT9Iw8NzeOPf73iNS9xM+TBhd/FilAfP+RQGkTMQJTVWtytN3JHJACCjf/ABNau5S7mS3g+DcuxmRgYEg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "asn1js": "^3.0.6", - "pvtsutils": "^1.3.6", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-schema/node_modules/tslib": { @@ -4547,31 +4579,37 @@ "peer": true }, "node_modules/@peculiar/asn1-x509": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", - "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.9.4.tgz", + "integrity": "sha512-CxhBo/RdEbMMob7T31ZdQjGuoyRFLVwrDzTn25bihzBasRg9kRm/0IxIPvhgQtcK/9dNcO1XQL2fuPugwELL0Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "asn1js": "^3.0.6", - "pvtsutils": "^1.3.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", - "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.9.4.tgz", + "integrity": "sha512-ehQXbpQaQYycgu8OrvigwSPTFfVRcu0ECNYCWw+yzBp02Lw5paRqzzhUpfOgO2K38+WfFZuEz/0RPtam5g0OMg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" } }, "node_modules/@peculiar/asn1-x509-attr/node_modules/tslib": { @@ -4590,6 +4628,25 @@ "license": "0BSD", "peer": true }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/utils/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "peer": true + }, "node_modules/@peculiar/x509": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", @@ -4766,9 +4823,9 @@ } }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dev": true, "license": "MIT", "peer": true, @@ -4866,37 +4923,22 @@ } }, "node_modules/@types/express": { - "version": "4.17.25", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", - "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "^1" + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz", - "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz", + "integrity": "sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==", "dev": true, "license": "MIT", "peer": true, @@ -4926,24 +4968,13 @@ } }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "dev": true, "license": "MIT", "peer": true }, - "node_modules/@types/http-proxy": { - "version": "1.17.17", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", - "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -5016,14 +5047,6 @@ "@types/unist": "*" } }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", @@ -5041,9 +5064,9 @@ } }, "node_modules/@types/qs": { - "version": "6.9.16", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", - "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", "dev": true, "license": "MIT", "peer": true @@ -5056,14 +5079,6 @@ "license": "MIT", "peer": true }, - "node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/@types/semver": { "version": "7.7.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", @@ -5071,14 +5086,13 @@ "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -5094,16 +5108,15 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" + "@types/node": "*" } }, "node_modules/@types/sizzle": { @@ -5111,17 +5124,6 @@ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -5166,9 +5168,9 @@ "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.12", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", - "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dev": true, "license": "MIT", "peer": true, @@ -6239,20 +6241,82 @@ } }, "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } }, + "node_modules/accepts/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "content-type": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", @@ -6484,14 +6548,6 @@ "dev": true, "peer": true }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/array-includes": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", @@ -7038,9 +7094,9 @@ "peer": true }, "node_modules/baseline-browser-mapping": { - "version": "2.10.8", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.8.tgz", - "integrity": "sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==", + "version": "2.11.23", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.23.tgz", + "integrity": "sha512-le521dGVfxM7yRX0EikCoSz+rOK+hHzdDt/E7mG1jOJB/6WAAUuwVroLwaB7ApaUsz5Q0kFlDXLSA9MheUIfRQ==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -7058,20 +7114,6 @@ "license": "MIT", "peer": true }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/birpc": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", @@ -7096,54 +7138,50 @@ "peer": true }, "node_modules/body-parser": { - "version": "1.20.6", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.6.tgz", - "integrity": "sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "bytes": "~3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "~1.2.0", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "on-finished": "~2.4.1", - "qs": "~6.15.1", - "raw-body": "~2.5.3", - "type-is": "~1.6.18", - "unpipe": "~1.0.0" + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/body-parser/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "dev": true, "license": "MIT", "peer": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/bonjour-service": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.4.tgz", + "integrity": "sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw==", "dev": true, "license": "MIT", "peer": true, @@ -7328,9 +7366,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.9.tgz", + "integrity": "sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg==", "devOptional": true, "funding": [ { @@ -7348,11 +7386,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.11.20", + "caniuse-lite": "^1.0.30001810", + "electron-to-chromium": "^1.5.420", + "node-releases": "^2.0.54", + "update-browserslist-db": "^1.3.2" }, "bin": { "browserslist": "cli.js" @@ -7589,9 +7627,9 @@ "optional": true }, "node_modules/caniuse-lite": { - "version": "1.0.30001779", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001779.tgz", - "integrity": "sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==", + "version": "1.0.30001810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", + "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", "devOptional": true, "funding": [ { @@ -7703,17 +7741,15 @@ } }, "node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "license": "MIT", - "peer": true, "dependencies": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -7831,9 +7867,9 @@ "dev": true }, "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.10.0.tgz", + "integrity": "sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==", "dev": true, "license": "MIT", "peer": true @@ -7898,9 +7934,9 @@ } }, "node_modules/compression": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", - "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz", + "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==", "dev": true, "license": "MIT", "peer": true, @@ -7908,6 +7944,7 @@ "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", + "destroy": "1.2.0", "negotiator": "~0.6.4", "on-headers": "~1.1.0", "safe-buffer": "5.2.1", @@ -7915,6 +7952,10 @@ }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/compression/node_modules/debug": { @@ -7936,17 +7977,6 @@ "license": "MIT", "peer": true }, - "node_modules/compression/node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -7997,17 +8027,18 @@ "peer": true }, "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", "dev": true, "license": "MIT", "peer": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/content-type": { @@ -8040,12 +8071,15 @@ } }, "node_modules/cookie-signature": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", - "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", "dev": true, "license": "MIT", - "peer": true + "peer": true, + "engines": { + "node": ">=6.6.0" + } }, "node_modules/core-js": { "version": "3.47.0", @@ -8530,9 +8564,9 @@ } }, "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", + "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", "dev": true, "license": "MIT", "peer": true, @@ -8548,9 +8582,9 @@ } }, "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", "dev": true, "license": "MIT", "peer": true, @@ -8664,17 +8698,15 @@ } }, "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", + "optional": true, "peer": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, "node_modules/detect-newline": { @@ -8686,14 +8718,6 @@ "node": ">=8" } }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", @@ -8966,9 +8990,9 @@ "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.5.313", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.313.tgz", - "integrity": "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==", + "version": "1.5.427", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.427.tgz", + "integrity": "sha512-n14zb3FdsChZ2BNobqNHAJMcP3ifFv4paox2LvCrfVAQcqGiSURgbJl+PfMpHVCNFkStnNc+RRVtPBTVW5PDgw==", "devOptional": true, "license": "ISC" }, @@ -10041,14 +10065,6 @@ "node": ">=6" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -10120,71 +10136,78 @@ } }, "node_modules/express": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", - "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "~1.20.5", - "content-disposition": "~0.5.4", - "content-type": "~1.0.4", - "cookie": "~0.7.1", - "cookie-signature": "~1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.3.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "~0.1.12", - "proxy-addr": "~2.0.7", - "qs": "~6.15.1", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "~0.19.0", - "serve-static": "~1.16.2", - "setprototypeof": "1.2.0", - "statuses": "~2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" }, "engines": { - "node": ">= 0.10.0" + "node": ">= 18" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/express" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/express/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, "license": "MIT", "peer": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/express/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, "license": "MIT", - "peer": true + "peer": true, + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } }, "node_modules/exsolve": { "version": "1.1.0", @@ -10237,9 +10260,9 @@ "peer": true }, "node_modules/fast-uri": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", - "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", + "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", "devOptional": true, "funding": [ { @@ -10311,20 +10334,6 @@ "reusify": "^1.0.4" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -10385,44 +10394,28 @@ } }, "node_modules/finalhandler": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "2.0.0" + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -10586,14 +10579,14 @@ } }, "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "dev": true, "license": "MIT", "peer": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/fs.realpath": { @@ -10894,14 +10887,6 @@ "dev": true, "peer": true }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -11137,56 +11122,6 @@ "license": "MIT", "optional": true }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -11240,14 +11175,6 @@ "entities": "^4.4.0" } }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", @@ -11270,30 +11197,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -11309,43 +11212,21 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", - "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-4.2.0.tgz", + "integrity": "sha512-ZA+oNOoM+GLoFTIzhkJptVQov73Srep2LBqhF8hG8CIPKO3nam1jonXVQ/QUH8RbwsmaaVz2SOJdzBNBHNtKbw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "debug": "^4.4.3", + "httpxy": "^0.5.4", + "is-glob": "^4.0.3", + "is-plain-obj": "^4.1.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^22.15.0 || ^24.0.0 || >=26.0.0" } }, "node_modules/https-browserify": { @@ -11368,6 +11249,14 @@ "node": ">= 6" } }, + "node_modules/httpxy": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/httpxy/-/httpxy-0.5.5.tgz", + "integrity": "sha512-uDjmnPyp1q4Sgzf3w+J/Fc6UqcCEj0x4Wjp7OqK5dGhNeDgpyrAmnS6ey8QWrX3SWDon2DMKf9sBa5X9+CVyMA==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -11389,17 +11278,21 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/icss-utils": { @@ -11449,9 +11342,9 @@ } }, "node_modules/immutable": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.9.tgz", - "integrity": "sha512-ObHy4YN7ycwZOUCLI1/6svfyAFu7vL8RhAvVu/bh/RZW9EPlOyDaQ9jDQWCtdqzaXUjgXZCW1migtHE7YI7UGQ==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", "dev": true, "license": "MIT", "peer": true @@ -11579,9 +11472,9 @@ } }, "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz", + "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==", "dev": true, "license": "MIT", "peer": true, @@ -11662,20 +11555,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -11863,6 +11742,20 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -11915,9 +11808,9 @@ } }, "node_modules/is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.2.tgz", + "integrity": "sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==", "dev": true, "license": "MIT", "peer": true, @@ -11996,6 +11889,14 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -12129,9 +12030,9 @@ } }, "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", "dev": true, "license": "MIT", "peer": true, @@ -14082,9 +13983,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", - "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", "dev": true, "funding": [ { @@ -14726,32 +14627,43 @@ "dev": true }, "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", "dev": true, "license": "MIT", "peer": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/memfs": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.12.0.tgz", - "integrity": "sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==", + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.76.0.tgz", + "integrity": "sha512-g2rDa/iTAM+vuzCdFgYy4lRvTLGR3vrrWtyv2971iviMtdCplYaPlwdo/W0VcRjPk6iWxLvTUbM6zvUFDelAVg==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", + "@jsonjoy.com/fs-core": "4.76.0", + "@jsonjoy.com/fs-fsa": "4.76.0", + "@jsonjoy.com/fs-node": "4.76.0", + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-to-fsa": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "@jsonjoy.com/fs-print": "4.76.0", + "@jsonjoy.com/fs-snapshot": "4.76.0", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", "tslib": "^2.0.0" }, - "engines": { - "node": ">= 4.0.0" - }, "funding": { "type": "github", "url": "https://github.com/sponsors/streamich" @@ -14775,18 +14687,388 @@ "tslib": "2" } }, + "node_modules/memfs/node_modules/@jsonjoy.com/buffers": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-core": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.76.0.tgz", + "integrity": "sha512-pXo9gYLUxLQfUDZG40an+VV1DA5hvAsspkfpuTpDTNMR9ZmIUo2QGKRQB5kwWjh5pPIXZXeTvS2au6Vp7DurAg==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-fsa": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.76.0.tgz", + "integrity": "sha512-CTcvtizrAnr0zNkroYRpPoqAHWoNm8WNBVn1LJTdKka4G7Yho8cV1qdQpfSWOVcIcKF7VuOqfNvvMx4YUoeBDQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/fs-core": "4.76.0", + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-node": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.76.0.tgz", + "integrity": "sha512-ongwZm58vGpi1Ibmib4eMsbif6pRvARvdQnnJ0Y8BqnZGNmyoIADoZlAVG3bWz1kAG3cBnYZLiTE9qoXFvkCcg==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/fs-core": "4.76.0", + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "@jsonjoy.com/fs-print": "4.76.0", + "@jsonjoy.com/fs-snapshot": "4.76.0", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-node-builtins": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.76.0.tgz", + "integrity": "sha512-yA+MnjUomZsXL3m4FXeDoS45s58k+3NrxEMYVZaBMnIIqhFs1hdz5+pTTPUPClqSgH87LIGq6nitDZq+T8ImJQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-node-to-fsa": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.76.0.tgz", + "integrity": "sha512-yZhyt2W1DKI+QKv1fN/YsJ36PU9nqfUstU3dRF2BM3jnc9abfT0ri6u+E/r2BdmZ3PyIq9H+b5FDxwST/H3OUw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/fs-fsa": "4.76.0", + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-node-utils": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.76.0.tgz", + "integrity": "sha512-xjxvUNDqklDrGh3bhkVQ/IQZd8+XUYXUU1emRBan+gYvePf+H2mWB33JxKgOQ59x2sJuokjUq7mA4b6PlYwatw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "glob-to-regex.js": "^1.0.1" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-print": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.76.0.tgz", + "integrity": "sha512-zZYQ8XHZs2EqAE4gzvykcxgR1r5DOPwc9bg3j0LKLFeUr7Ak8CJsZXC0zhnxIH14XYZh4WAu+GburaKppKO8fA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/fs-node-utils": "4.76.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.76.0.tgz", + "integrity": "sha512-W0zFE+Cr1JRSIePN6pukCXqtzqu5sCZL4QXLb1FdYxUhqtpkPVXc12gbBlJg5k+bPTHihmCe3LDFu61siD9IBg==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/util": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/memfs/node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" }, "engines": { "node": ">=10.0" @@ -14800,9 +15082,49 @@ } }, "node_modules/memfs/node_modules/@jsonjoy.com/util": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", - "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/memfs/node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -14818,23 +15140,27 @@ } }, "node_modules/memfs/node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.1.tgz", + "integrity": "sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw==", "dev": true, - "license": "Unlicense", + "license": "MIT", "peer": true, "engines": { "node": ">=10.18" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, "peerDependencies": { "tslib": "^2" } }, "node_modules/memfs/node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -14850,9 +15176,9 @@ } }, "node_modules/memfs/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, "license": "0BSD", "peer": true @@ -14872,12 +15198,15 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", "dev": true, "license": "MIT", "peer": true, + "engines": { + "node": ">=18" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -14898,17 +15227,6 @@ "node": ">= 8" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/micromark": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", @@ -15388,20 +15706,6 @@ "license": "MIT", "peer": true }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -15466,6 +15770,80 @@ "dev": true, "peer": true }, + "node_modules/minimizer-webpack-plugin": { + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.10.1.tgz", + "integrity": "sha512-+dsZEyTcy1lkq41lxdiOqvb26gXbYGgwY+30w37f9PqUVkuEBejBLDotsHOTjuga9xJyGLW2DqzKDUyJ4W/PMQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.3", + "terser": "^5.51.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@napi-rs/image": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "imagemin": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "sharp": { + "optional": true + }, + "svgo": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, "node_modules/minipass": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", @@ -15573,9 +15951,9 @@ "dev": true }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "dev": true, "license": "MIT", "peer": true, @@ -15603,6 +15981,7 @@ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, "license": "MIT", + "optional": true, "peer": true }, "node_modules/node-domexception": { @@ -15706,11 +16085,14 @@ } }, "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "version": "2.0.55", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.55.tgz", + "integrity": "sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/nopt": { "version": "7.2.1", @@ -15847,14 +16229,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -15905,20 +16279,22 @@ } }, "node_modules/open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.3.tgz", + "integrity": "sha512-b3souUgU0VaAvMmzA4+9cRgrOgMdE0vc9H9VhQ0FYnjjcyZ8R/f9DiwMU9V8rl+vjf05On9UJhbgb06fsTs87Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "default-browser": "^5.2.1", + "default-browser": "^5.5.1", "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" + "powershell-utils": "^0.2.1", + "wsl-utils": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15998,19 +16374,17 @@ "license": "MIT" }, "node_modules/p-retry": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", - "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-8.0.1.tgz", + "integrity": "sha512-NAigyu8hfvJe7MsS18mnc4is0MZtau3QMdBklaJKK23oBQb6occO3UPM3vHmTckW8KhfyjMZaUOqdTFEYliHgg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" + "is-network-error": "^1.3.0" }, "engines": { - "node": ">=16.17" + "node": ">=22" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16236,12 +16610,16 @@ "license": "ISC" }, "node_modules/path-to-regexp": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", - "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", "dev": true, "license": "MIT", - "peer": true + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } }, "node_modules/path-type": { "version": "4.0.0", @@ -16646,6 +17024,20 @@ "dev": true, "peer": true }, + "node_modules/powershell-utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.1.tgz", + "integrity": "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -16841,9 +17233,9 @@ "peer": true }, "node_modules/pvutils": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", - "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.2.0.tgz", + "integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==", "dev": true, "license": "MIT", "peer": true, @@ -16985,9 +17377,9 @@ } }, "node_modules/qs": { - "version": "6.15.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", - "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", "dev": true, "license": "BSD-3-Clause", "peer": true, @@ -17079,31 +17471,35 @@ } }, "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", "dev": true, "license": "MIT", "peer": true, "engines": { "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/raw-body": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", + "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.10" } }, "node_modules/react-is": { @@ -17131,14 +17527,12 @@ } }, "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "license": "MIT", - "peer": true, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "type": "individual", @@ -17460,17 +17854,6 @@ "node": ">=10" } }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -17574,10 +17957,28 @@ "license": "MIT", "peer": true }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/run-applescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", "dev": true, "license": "MIT", "peer": true, @@ -17641,45 +18042,43 @@ "dev": true }, "node_modules/sass": { - "version": "1.79.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.5.tgz", - "integrity": "sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==", + "version": "1.104.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.104.1.tgz", + "integrity": "sha512-yDA+1aIG3EHgN4V/BvuhCvu61FF6hEd4e+9DxikUm9U0CAGuvdIZ/UYy7qbOxjhbbWQraoyLlMuzdRGOSV5Bmw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@parcel/watcher": "^2.4.1", - "chokidar": "^4.0.0", - "immutable": "^4.0.0", + "chokidar": "^5.0.0", + "immutable": "^5.1.5", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { "sass": "sass.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.19.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/sass-loader": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.2.tgz", - "integrity": "sha512-Ll6iXZ1EYwYT19SqW4mSBb76vSSi8JgzElmzIerhEGgzB5hRjDQIWsPmuk1UrAXkR16KJHqVY0eH+5/uw9Tmfw==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.1.tgz", + "integrity": "sha512-pgJMwCuLjVTSIWsv/2luVRXKlCeaViUGcgSe8dx95zMG4hUwqIMFmjbhq29ypFLflJU0GyiJZeLM9iI1n3KYAA==", "dev": true, "license": "MIT", "peer": true, - "dependencies": { - "neo-async": "^2.6.2" - }, "engines": { - "node": ">= 18.12.0" + "node": ">= 22.11.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" @@ -17688,9 +18087,6 @@ "@rspack/core": { "optional": true }, - "node-sass": { - "optional": true - }, "sass": { "optional": true }, @@ -17790,14 +18186,6 @@ "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", "license": "MIT" }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/selfsigned": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", @@ -17826,97 +18214,99 @@ } }, "node_modules/send": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", - "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, "license": "MIT", "peer": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/send/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/send/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "mime-db": "^1.54.0" }, "engines": { - "node": ">= 0.8" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/serve-index": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", "dev": true, "license": "MIT", "peer": true, + "dependencies": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "node_modules/serve-index/node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/debug": { @@ -17942,30 +18332,23 @@ } }, "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "license": "ISC", - "peer": true - }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -17974,13 +18357,16 @@ "license": "MIT", "peer": true }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "node_modules/serve-index/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "license": "ISC", - "peer": true + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", @@ -17994,105 +18380,24 @@ } }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-static/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/serve-static/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-static/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "node": ">= 18" }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-static/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/set-blocking": { @@ -18194,9 +18499,9 @@ } }, "node_modules/shell-quote": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.9.0.tgz", - "integrity": "sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz", + "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==", "dev": true, "license": "MIT", "peer": true, @@ -18366,19 +18671,6 @@ "license": "MIT", "peer": true }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -18444,56 +18736,6 @@ "dev": true, "peer": true }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -19038,9 +19280,9 @@ "peer": true }, "node_modules/stylelint-scss/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", "dev": true, "license": "MIT", "peer": true, @@ -19276,9 +19518,9 @@ } }, "node_modules/stylelint/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", "dev": true, "license": "MIT", "peer": true, @@ -19516,9 +19758,9 @@ } }, "node_modules/terser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "version": "5.51.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz", + "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", "devOptional": true, "license": "BSD-2-Clause", "peer": true, @@ -20004,20 +20246,69 @@ } }, "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } }, + "node_modules/type-is/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -20409,9 +20700,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", "devOptional": true, "funding": [ { @@ -20514,28 +20805,6 @@ "dev": true, "peer": true }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", @@ -20824,17 +21093,6 @@ "node": ">=10.13.0" } }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/web-streams-polyfill": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", @@ -21081,29 +21339,28 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", - "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-8.3.0.tgz", + "integrity": "sha512-jFNNMB29ugmkEUFW9cpWNqcWFQNwuMTMVoRpKVAiz/5nh3gA4x9x6DRPhNHGc/SLre7pEP9yrAPDAmCvdCblKg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "colorette": "^2.0.10", - "memfs": "^4.6.0", - "mime-types": "^2.1.31", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" + "ansi-html-community": "^0.0.8", + "memfs": "^4.68.2", + "mime-types": "^3.0.2", + "range-parser": "^1.3.0", + "schema-utils": "^4.3.3" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 20.9.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.0.0" + "webpack": "^5.101.0" }, "peerDependenciesMeta": { "webpack": { @@ -21111,55 +21368,81 @@ } } }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/webpack-dev-server": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz", - "integrity": "sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-6.0.0.tgz", + "integrity": "sha512-q9SD4ItOGhZLeU6EGT10caDZdHjF50Pz1DtkRZZOPsfluMXOkacWKKOtSBSLVkPqKiF67eFUC0rI88U/tSFPEw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.25", - "@types/express-serve-static-core": "^4.17.21", + "@types/express": "^5.0.6", + "@types/express-serve-static-core": "^5.1.1", "@types/serve-index": "^1.9.4", - "@types/serve-static": "^1.15.5", - "@types/sockjs": "^0.3.36", - "@types/ws": "^8.5.10", + "@types/serve-static": "^2.2.0", + "@types/ws": "^8.18.1", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.2.1", - "chokidar": "^3.6.0", - "colorette": "^2.0.10", + "bonjour-service": "^1.3.0", + "chokidar": "^5.0.0", "compression": "^1.8.1", "connect-history-api-fallback": "^2.0.0", - "express": "^4.22.1", - "graceful-fs": "^4.2.6", - "http-proxy-middleware": "^2.0.9", - "ipaddr.js": "^2.1.0", + "express": "^5.2.1", + "graceful-fs": "^4.2.11", + "http-proxy-middleware": "^4.1.1", + "ipaddr.js": "^2.3.0", "launch-editor": "^2.14.1", - "open": "^10.0.3", - "p-retry": "^6.2.0", - "schema-utils": "^4.2.0", + "open": "^11.0.0", + "p-retry": "^8.0.0", + "schema-utils": "^4.3.3", "selfsigned": "^5.5.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.4.2", - "ws": "^8.18.0" + "serve-index": "^1.9.2", + "tinyglobby": "^0.2.15", + "webpack-dev-middleware": "^8.0.3", + "ws": "^8.20.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 22.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.0.0" + "webpack": "^5.101.0" }, "peerDependenciesMeta": { "webpack": { @@ -21170,60 +21453,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/@types/express-serve-static-core": { - "version": "4.19.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", - "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/webpack-merge": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", @@ -21257,33 +21486,6 @@ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "license": "MIT" }, - "node_modules/websocket-driver": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", - "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -21545,6 +21747,38 @@ } } }, + "node_modules/wsl-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz", + "integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -23320,9 +23554,9 @@ } }, "js-yaml": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", - "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz", + "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -24252,14 +24486,6 @@ "date-fns": "^4.1.0" } }, - "chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", - "requires": { - "readdirp": "^5.0.0" - } - }, "floating-vue": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/floating-vue/-/floating-vue-5.2.2.tgz", @@ -24289,11 +24515,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==" }, - "readdirp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", - "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==" - }, "splitpanes": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-4.0.4.tgz", @@ -24360,9 +24581,9 @@ "requires": {} }, "@nextcloud/webpack-vue-config": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@nextcloud/webpack-vue-config/-/webpack-vue-config-7.0.2.tgz", - "integrity": "sha512-7pzQptkQ4XEi9hyhLjdJLAyG4ZnnHuDNsOnMBc1RcRniMCTBp8xD5T1H3gCm4lKmB5/pEyuTK52/rj1w/xqmKw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@nextcloud/webpack-vue-config/-/webpack-vue-config-7.0.4.tgz", + "integrity": "sha512-JM4gHZZCLGVtxiILjb0RvQQRjBFbau0hQHQyNrLR+wkY3UaLMXkj9P8dT+w8/d6WIOnwLbQFY2Duox6crbgh5Q==", "dev": true, "requires": {} }, @@ -24422,137 +24643,148 @@ "dev": true }, "@parcel/watcher": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", - "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", - "dev": true, - "peer": true, - "requires": { - "@parcel/watcher-android-arm64": "2.4.1", - "@parcel/watcher-darwin-arm64": "2.4.1", - "@parcel/watcher-darwin-x64": "2.4.1", - "@parcel/watcher-freebsd-x64": "2.4.1", - "@parcel/watcher-linux-arm-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-musl": "2.4.1", - "@parcel/watcher-linux-x64-glibc": "2.4.1", - "@parcel/watcher-linux-x64-musl": "2.4.1", - "@parcel/watcher-win32-arm64": "2.4.1", - "@parcel/watcher-win32-ia32": "2.4.1", - "@parcel/watcher-win32-x64": "2.4.1", - "detect-libc": "^1.0.3", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0", + "detect-libc": "^2.0.3", "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" + }, + "dependencies": { + "picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "optional": true, + "peer": true + } } }, "@parcel/watcher-android-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", - "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-darwin-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", - "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-darwin-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", - "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-freebsd-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", - "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-linux-arm-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", - "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", + "dev": true, + "optional": true, + "peer": true + }, + "@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", - "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-linux-arm64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", - "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-linux-x64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", - "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-linux-x64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", - "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-win32-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", - "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", - "dev": true, - "optional": true, - "peer": true - }, - "@parcel/watcher-win32-ia32": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", - "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", "dev": true, "optional": true, "peer": true }, "@parcel/watcher-win32-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", - "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", "dev": true, "optional": true, "peer": true }, "@peculiar/asn1-cms": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", - "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.9.4.tgz", + "integrity": "sha512-cben7oxmQsUGZqotus7yt0srYdncOT6RNWcTQ77T2RFOXejYVYkXadrfePdRcrVpO9K95IRLKKglG2k38jKXuw==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "@peculiar/asn1-x509-attr": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "@peculiar/asn1-x509-attr": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24566,15 +24798,15 @@ } }, "@peculiar/asn1-csr": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", - "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.9.4.tgz", + "integrity": "sha512-xd4YN4vpRjkDAQWVfZZkeu12IEND7DOpkqaHSIHxZl1uggUNa9Ju0QxY2jHvDAS9pP0zhRBytg8ifsnGo3V0jw==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24588,15 +24820,15 @@ } }, "@peculiar/asn1-ecc": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", - "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.9.4.tgz", + "integrity": "sha512-JJXefFshRAuVAjWQo/39bkg1ywc1VaiO44S8RRC+Ykvf/u2KDmYffoDb0ZBPCR5uJy4AGKQhl8mX+Q8ShcWaXQ==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24610,17 +24842,17 @@ } }, "@peculiar/asn1-pfx": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", - "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.9.4.tgz", + "integrity": "sha512-khuGzHTzNzk4GDlIBEILyIs6Lce0yn0ZBdoI9v93kmNncfZRhD+AQ5ODFqdhvoE8cMJF/JMTQ8yA+t1D14kqCw==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-cms": "^2.6.1", - "@peculiar/asn1-pkcs8": "^2.6.1", - "@peculiar/asn1-rsa": "^2.6.1", - "@peculiar/asn1-schema": "^2.6.0", - "asn1js": "^3.0.6", + "@peculiar/asn1-cms": "^2.9.4", + "@peculiar/asn1-pkcs8": "^2.9.4", + "@peculiar/asn1-rsa": "^2.9.4", + "@peculiar/asn1-schema": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24634,15 +24866,15 @@ } }, "@peculiar/asn1-pkcs8": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", - "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.9.4.tgz", + "integrity": "sha512-duRdotlUx9eDZe6QrQpQKl61RbWykCHBCkKayP8V8XdEFwlKHZ8qGGDMyS6Pye7OX7nLFttTTpRkJeet78ckwQ==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24656,19 +24888,19 @@ } }, "@peculiar/asn1-pkcs9": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", - "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.9.4.tgz", + "integrity": "sha512-kaL4cNxBpdQE2dKlyZBqz4ygCrwffO+8wfoxTEqM1Z8RadvCeELBRzcv0dzM8aY9azHMwODO5nxU65zXmhToOQ==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-cms": "^2.6.1", - "@peculiar/asn1-pfx": "^2.6.1", - "@peculiar/asn1-pkcs8": "^2.6.1", - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "@peculiar/asn1-x509-attr": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-cms": "^2.9.4", + "@peculiar/asn1-pfx": "^2.9.4", + "@peculiar/asn1-pkcs8": "^2.9.4", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "@peculiar/asn1-x509-attr": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24682,15 +24914,15 @@ } }, "@peculiar/asn1-rsa": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", - "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.9.4.tgz", + "integrity": "sha512-pZ96eD1PptovcWQ/GSmuNFXd/7EQJNlKfDaNCyE2rx3W0v6QFelkzquVqRSRyyDXXCYD69ZXJDzZ8GhIiQzKoA==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24704,14 +24936,14 @@ } }, "@peculiar/asn1-schema": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", - "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.9.4.tgz", + "integrity": "sha512-GjzePcT9Iw8NzeOPf73iNS9xM+TBhd/FilAfP+RQGkTMQJTVWtytN3JHJACCjf/ABNau5S7mS3g+DcuxmRgYEg==", "dev": true, "peer": true, "requires": { - "asn1js": "^3.0.6", - "pvtsutils": "^1.3.6", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24725,15 +24957,15 @@ } }, "@peculiar/asn1-x509": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", - "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.9.4.tgz", + "integrity": "sha512-CxhBo/RdEbMMob7T31ZdQjGuoyRFLVwrDzTn25bihzBasRg9kRm/0IxIPvhgQtcK/9dNcO1XQL2fuPugwELL0Q==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-schema": "^2.6.0", - "asn1js": "^3.0.6", - "pvtsutils": "^1.3.6", + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", "tslib": "^2.8.1" }, "dependencies": { @@ -24747,15 +24979,34 @@ } }, "@peculiar/asn1-x509-attr": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", - "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.9.4.tgz", + "integrity": "sha512-ehQXbpQaQYycgu8OrvigwSPTFfVRcu0ECNYCWw+yzBp02Lw5paRqzzhUpfOgO2K38+WfFZuEz/0RPtam5g0OMg==", + "dev": true, + "peer": true, + "requires": { + "@peculiar/asn1-schema": "^2.9.4", + "@peculiar/asn1-x509": "^2.9.4", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, + "dependencies": { + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "peer": true + } + } + }, + "@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", "dev": true, "peer": true, "requires": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", "tslib": "^2.8.1" }, "dependencies": { @@ -24918,9 +25169,9 @@ } }, "@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dev": true, "peer": true, "requires": { @@ -25008,37 +25259,21 @@ } }, "@types/express": { - "version": "4.17.25", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", - "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", "dev": true, "peer": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "^1" - }, - "dependencies": { - "@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "dev": true, - "peer": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - } + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" } }, "@types/express-serve-static-core": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz", - "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz", + "integrity": "sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==", "dev": true, "peer": true, "requires": { @@ -25066,22 +25301,12 @@ } }, "@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "dev": true, "peer": true }, - "@types/http-proxy": { - "version": "1.17.17", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", - "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", - "dev": true, - "peer": true, - "requires": { - "@types/node": "*" - } - }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -25152,13 +25377,6 @@ "@types/unist": "*" } }, - "@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "peer": true - }, "@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", @@ -25174,9 +25392,9 @@ } }, "@types/qs": { - "version": "6.9.16", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", - "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", "dev": true, "peer": true }, @@ -25187,26 +25405,18 @@ "dev": true, "peer": true }, - "@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", - "dev": true, - "peer": true - }, "@types/semver": { "version": "7.7.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==" }, "@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "dev": true, "peer": true, "requires": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -25221,15 +25431,14 @@ } }, "@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", "dev": true, "peer": true, "requires": { "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" + "@types/node": "*" } }, "@types/sizzle": { @@ -25237,16 +25446,6 @@ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" }, - "@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "dev": true, - "peer": true, - "requires": { - "@types/node": "*" - } - }, "@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -25288,9 +25487,9 @@ "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==" }, "@types/ws": { - "version": "8.5.12", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", - "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dev": true, "peer": true, "requires": { @@ -25990,14 +26189,50 @@ } }, "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "dev": true, "peer": true, "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "dependencies": { + "content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "dev": true, + "peer": true + }, + "mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "peer": true + }, + "mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "peer": true, + "requires": { + "mime-db": "^1.54.0" + } + }, + "negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", + "dev": true, + "peer": true, + "requires": { + "content-type": "^2.1.0" + } + } } }, "acorn": { @@ -26158,13 +26393,6 @@ "dev": true, "peer": true }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true, - "peer": true - }, "array-includes": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", @@ -26555,9 +26783,9 @@ "peer": true }, "baseline-browser-mapping": { - "version": "2.10.8", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.8.tgz", - "integrity": "sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==", + "version": "2.11.23", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.23.tgz", + "integrity": "sha512-le521dGVfxM7yRX0EikCoSz+rOK+hHzdDt/E7mG1jOJB/6WAAUuwVroLwaB7ApaUsz5Q0kFlDXLSA9MheUIfRQ==", "devOptional": true }, "batch": { @@ -26567,13 +26795,6 @@ "dev": true, "peer": true }, - "binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "peer": true - }, "birpc": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", @@ -26592,49 +26813,36 @@ "peer": true }, "body-parser": { - "version": "1.20.6", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.6.tgz", - "integrity": "sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", "dev": true, "peer": true, "requires": { - "bytes": "~3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "~1.2.0", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "on-finished": "~2.4.1", - "qs": "~6.15.1", - "raw-body": "~2.5.3", - "type-is": "~1.6.18", - "unpipe": "~1.0.0" + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "dev": true, "peer": true } } }, "bonjour-service": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.4.tgz", + "integrity": "sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw==", "dev": true, "peer": true, "requires": { @@ -26802,16 +27010,16 @@ } }, "browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.9.tgz", + "integrity": "sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg==", "devOptional": true, "requires": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.11.20", + "caniuse-lite": "^1.0.30001810", + "electron-to-chromium": "^1.5.420", + "node-releases": "^2.0.54", + "update-browserslist-db": "^1.3.2" } }, "bser": { @@ -26978,9 +27186,9 @@ "optional": true }, "caniuse-lite": { - "version": "1.0.30001779", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001779.tgz", - "integrity": "sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==", + "version": "1.0.30001810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", + "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", "devOptional": true }, "ccount": { @@ -27038,13 +27246,11 @@ "optional": true }, "chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "peer": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "requires": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" } }, "chrome-trace-event": { @@ -27137,9 +27343,9 @@ "dev": true }, "colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.10.0.tgz", + "integrity": "sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==", "dev": true, "peer": true }, @@ -27188,15 +27394,16 @@ } }, "compression": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", - "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz", + "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==", "dev": true, "peer": true, "requires": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", + "destroy": "1.2.0", "negotiator": "~0.6.4", "on-headers": "~1.1.0", "safe-buffer": "5.2.1", @@ -27219,13 +27426,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, "peer": true - }, - "negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true, - "peer": true } } }, @@ -27272,14 +27472,11 @@ "peer": true }, "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", "dev": true, - "peer": true, - "requires": { - "safe-buffer": "5.2.1" - } + "peer": true }, "content-type": { "version": "1.0.5", @@ -27302,9 +27499,9 @@ "peer": true }, "cookie-signature": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", - "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", "dev": true, "peer": true }, @@ -27641,9 +27838,9 @@ "dev": true }, "default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", + "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", "dev": true, "peer": true, "requires": { @@ -27652,9 +27849,9 @@ } }, "default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", "dev": true, "peer": true }, @@ -27725,10 +27922,11 @@ "peer": true }, "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, + "optional": true, "peer": true }, "detect-newline": { @@ -27737,13 +27935,6 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "peer": true - }, "devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", @@ -27942,9 +28133,9 @@ "peer": true }, "electron-to-chromium": { - "version": "1.5.313", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.313.tgz", - "integrity": "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==", + "version": "1.5.427", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.427.tgz", + "integrity": "sha512-n14zb3FdsChZ2BNobqNHAJMcP3ifFv4paox2LvCrfVAQcqGiSURgbJl+PfMpHVCNFkStnNc+RRVtPBTVW5PDgw==", "devOptional": true }, "elliptic": { @@ -28695,13 +28886,6 @@ "dev": true, "peer": true }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "peer": true - }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -28757,61 +28941,58 @@ } }, "express": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", - "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "dev": true, "peer": true, "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "~1.20.5", - "content-disposition": "~0.5.4", - "content-type": "~1.0.4", - "cookie": "~0.7.1", - "cookie-signature": "~1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.3.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "~0.1.12", - "proxy-addr": "~2.0.7", - "qs": "~6.15.1", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "~0.19.0", - "serve-static": "~1.16.2", - "setprototypeof": "1.2.0", - "statuses": "~2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "peer": true + }, + "mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, "peer": true, "requires": { - "ms": "2.0.0" + "mime-db": "^1.54.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true } } }, @@ -28860,9 +29041,9 @@ "peer": true }, "fast-uri": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", - "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", + "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", "devOptional": true, "peer": true }, @@ -28903,16 +29084,6 @@ "reusify": "^1.0.4" } }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "peer": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, "fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -28952,38 +29123,18 @@ } }, "finalhandler": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", "dev": true, "peer": true, "requires": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - } + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" } }, "find-up": { @@ -29091,9 +29242,9 @@ "peer": true }, "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "dev": true, "peer": true }, @@ -29303,13 +29454,6 @@ "dev": true, "peer": true }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true, - "peer": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -29479,54 +29623,6 @@ "integrity": "sha512-ECg1JFG0YzehicQaogenlcs2qg6WsXQsxtnbr1i696u5tLUjtJdQAh0u2g0Q5YV45f263Ta1GnUJsc8WIfJf4Q==", "optional": true }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "peer": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "peer": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -29562,13 +29658,6 @@ "entities": "^4.4.0" } }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true, - "peer": true - }, "http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", @@ -29583,25 +29672,6 @@ "toidentifier": "~1.0.1" } }, - "http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true, - "peer": true - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "peer": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, "http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -29614,26 +29684,17 @@ } }, "http-proxy-middleware": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", - "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-4.2.0.tgz", + "integrity": "sha512-ZA+oNOoM+GLoFTIzhkJptVQov73Srep2LBqhF8hG8CIPKO3nam1jonXVQ/QUH8RbwsmaaVz2SOJdzBNBHNtKbw==", "dev": true, "peer": true, "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "peer": true - } + "debug": "^4.4.3", + "httpxy": "^0.5.4", + "is-glob": "^4.0.3", + "is-plain-obj": "^4.1.0", + "micromatch": "^4.0.8" } }, "https-browserify": { @@ -29652,6 +29713,13 @@ "debug": "4" } }, + "httpxy": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/httpxy/-/httpxy-0.5.5.tgz", + "integrity": "sha512-uDjmnPyp1q4Sgzf3w+J/Fc6UqcCEj0x4Wjp7OqK5dGhNeDgpyrAmnS6ey8QWrX3SWDon2DMKf9sBa5X9+CVyMA==", + "dev": true, + "peer": true + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -29666,13 +29734,13 @@ "peer": true }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "dev": true, "peer": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "icss-utils": { @@ -29698,9 +29766,9 @@ "peer": true }, "immutable": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.9.tgz", - "integrity": "sha512-ObHy4YN7ycwZOUCLI1/6svfyAFu7vL8RhAvVu/bh/RZW9EPlOyDaQ9jDQWCtdqzaXUjgXZCW1migtHE7YI7UGQ==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", "dev": true, "peer": true }, @@ -29796,9 +29864,9 @@ "peer": true }, "ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz", + "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==", "dev": true, "peer": true }, @@ -29848,16 +29916,6 @@ "has-bigints": "^1.0.1" } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "peer": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, "is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -29976,6 +30034,13 @@ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==" }, + "is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "dev": true, + "peer": true + }, "is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -30005,9 +30070,9 @@ "peer": true }, "is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.2.tgz", + "integrity": "sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==", "dev": true, "peer": true }, @@ -30055,6 +30120,13 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "peer": true + }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -30137,9 +30209,9 @@ } }, "is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", "dev": true, "peer": true, "requires": { @@ -31577,9 +31649,9 @@ "dev": true }, "js-yaml": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", - "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", "dev": true, "peer": true, "requires": { @@ -32043,22 +32115,32 @@ "dev": true }, "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", "dev": true, "peer": true }, "memfs": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.12.0.tgz", - "integrity": "sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==", - "dev": true, - "peer": true, - "requires": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.76.0.tgz", + "integrity": "sha512-g2rDa/iTAM+vuzCdFgYy4lRvTLGR3vrrWtyv2971iviMtdCplYaPlwdo/W0VcRjPk6iWxLvTUbM6zvUFDelAVg==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/fs-core": "4.76.0", + "@jsonjoy.com/fs-fsa": "4.76.0", + "@jsonjoy.com/fs-node": "4.76.0", + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-to-fsa": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "@jsonjoy.com/fs-print": "4.76.0", + "@jsonjoy.com/fs-snapshot": "4.76.0", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", "tslib": "^2.0.0" }, "dependencies": { @@ -32070,47 +32152,261 @@ "peer": true, "requires": {} }, + "@jsonjoy.com/buffers": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", + "dev": true, + "peer": true, + "requires": {} + }, + "@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "dev": true, + "peer": true, + "requires": {} + }, + "@jsonjoy.com/fs-core": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.76.0.tgz", + "integrity": "sha512-pXo9gYLUxLQfUDZG40an+VV1DA5hvAsspkfpuTpDTNMR9ZmIUo2QGKRQB5kwWjh5pPIXZXeTvS2au6Vp7DurAg==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "thingies": "^2.5.0" + } + }, + "@jsonjoy.com/fs-fsa": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.76.0.tgz", + "integrity": "sha512-CTcvtizrAnr0zNkroYRpPoqAHWoNm8WNBVn1LJTdKka4G7Yho8cV1qdQpfSWOVcIcKF7VuOqfNvvMx4YUoeBDQ==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/fs-core": "4.76.0", + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "thingies": "^2.5.0" + } + }, + "@jsonjoy.com/fs-node": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.76.0.tgz", + "integrity": "sha512-ongwZm58vGpi1Ibmib4eMsbif6pRvARvdQnnJ0Y8BqnZGNmyoIADoZlAVG3bWz1kAG3cBnYZLiTE9qoXFvkCcg==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/fs-core": "4.76.0", + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "@jsonjoy.com/fs-print": "4.76.0", + "@jsonjoy.com/fs-snapshot": "4.76.0", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + } + }, + "@jsonjoy.com/fs-node-builtins": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.76.0.tgz", + "integrity": "sha512-yA+MnjUomZsXL3m4FXeDoS45s58k+3NrxEMYVZaBMnIIqhFs1hdz5+pTTPUPClqSgH87LIGq6nitDZq+T8ImJQ==", + "dev": true, + "peer": true, + "requires": {} + }, + "@jsonjoy.com/fs-node-to-fsa": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.76.0.tgz", + "integrity": "sha512-yZhyt2W1DKI+QKv1fN/YsJ36PU9nqfUstU3dRF2BM3jnc9abfT0ri6u+E/r2BdmZ3PyIq9H+b5FDxwST/H3OUw==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/fs-fsa": "4.76.0", + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "@jsonjoy.com/fs-node-utils": "4.76.0" + } + }, + "@jsonjoy.com/fs-node-utils": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.76.0.tgz", + "integrity": "sha512-xjxvUNDqklDrGh3bhkVQ/IQZd8+XUYXUU1emRBan+gYvePf+H2mWB33JxKgOQ59x2sJuokjUq7mA4b6PlYwatw==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/fs-node-builtins": "4.76.0", + "glob-to-regex.js": "^1.0.1" + } + }, + "@jsonjoy.com/fs-print": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.76.0.tgz", + "integrity": "sha512-zZYQ8XHZs2EqAE4gzvykcxgR1r5DOPwc9bg3j0LKLFeUr7Ak8CJsZXC0zhnxIH14XYZh4WAu+GburaKppKO8fA==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/fs-node-utils": "4.76.0", + "tree-dump": "^1.1.0" + } + }, + "@jsonjoy.com/fs-snapshot": { + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.76.0.tgz", + "integrity": "sha512-W0zFE+Cr1JRSIePN6pukCXqtzqu5sCZL4QXLb1FdYxUhqtpkPVXc12gbBlJg5k+bPTHihmCe3LDFu61siD9IBg==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.76.0", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "dependencies": { + "@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "dev": true, + "peer": true, + "requires": {} + }, + "@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "dev": true, + "peer": true, + "requires": {} + }, + "@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + } + }, + "@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/util": "17.67.0" + } + }, + "@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" + } + } + } + }, "@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", "dev": true, "peer": true, "requires": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "dependencies": { + "@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "peer": true, + "requires": {} + } + } + }, + "@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" } }, "@jsonjoy.com/util": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", - "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "dev": true, + "peer": true, + "requires": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "dependencies": { + "@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "peer": true, + "requires": {} + } + } + }, + "glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", "dev": true, "peer": true, "requires": {} }, "thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.1.tgz", + "integrity": "sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw==", "dev": true, "peer": true, "requires": {} }, "tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", "dev": true, "peer": true, "requires": {} }, "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, "peer": true } @@ -32124,9 +32420,9 @@ "peer": true }, "merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", "dev": true, "peer": true }, @@ -32143,13 +32439,6 @@ "dev": true, "peer": true }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "peer": true - }, "micromark": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", @@ -32391,13 +32680,6 @@ } } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "peer": true - }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -32447,6 +32729,19 @@ "dev": true, "peer": true }, + "minimizer-webpack-plugin": { + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.10.1.tgz", + "integrity": "sha512-+dsZEyTcy1lkq41lxdiOqvb26gXbYGgwY+30w37f9PqUVkuEBejBLDotsHOTjuga9xJyGLW2DqzKDUyJ4W/PMQ==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.31", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.3", + "terser": "^5.51.0" + } + }, "minipass": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", @@ -32521,9 +32816,9 @@ "dev": true }, "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "dev": true, "peer": true }, @@ -32545,6 +32840,7 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, + "optional": true, "peer": true }, "node-domexception": { @@ -32613,9 +32909,9 @@ } }, "node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "version": "2.0.55", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.55.tgz", + "integrity": "sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==", "devOptional": true }, "nopt": { @@ -32708,13 +33004,6 @@ "es-abstract": "^1.19.1" } }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true, - "peer": true - }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -32751,16 +33040,18 @@ } }, "open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.3.tgz", + "integrity": "sha512-b3souUgU0VaAvMmzA4+9cRgrOgMdE0vc9H9VhQ0FYnjjcyZ8R/f9DiwMU9V8rl+vjf05On9UJhbgb06fsTs87Q==", "dev": true, "peer": true, "requires": { - "default-browser": "^5.2.1", + "default-browser": "^5.5.1", "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" + "powershell-utils": "^0.2.1", + "wsl-utils": "^1.0.0" } }, "optionator": { @@ -32818,15 +33109,13 @@ } }, "p-retry": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", - "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-8.0.1.tgz", + "integrity": "sha512-NAigyu8hfvJe7MsS18mnc4is0MZtau3QMdBklaJKK23oBQb6occO3UPM3vHmTckW8KhfyjMZaUOqdTFEYliHgg==", "dev": true, "peer": true, "requires": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" + "is-network-error": "^1.3.0" } }, "p-timeout": { @@ -32986,9 +33275,9 @@ } }, "path-to-regexp": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", - "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", "dev": true, "peer": true }, @@ -33236,6 +33525,13 @@ "dev": true, "peer": true }, + "powershell-utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.1.tgz", + "integrity": "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==", + "dev": true, + "peer": true + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -33384,9 +33680,9 @@ } }, "pvutils": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", - "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.2.0.tgz", + "integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==", "dev": true, "peer": true }, @@ -33499,9 +33795,9 @@ } }, "qs": { - "version": "6.15.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", - "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", "dev": true, "peer": true, "requires": { @@ -33556,22 +33852,22 @@ } }, "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", "dev": true, "peer": true }, "raw-body": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", "dev": true, "peer": true, "requires": { "bytes": "~3.1.2", "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", + "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, @@ -33596,11 +33892,9 @@ } }, "readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "peer": true + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==" }, "rechoir": { "version": "0.8.0", @@ -33834,13 +34128,6 @@ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "peer": true - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -33928,10 +34215,24 @@ } } }, + "router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "peer": true, + "requires": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + } + }, "run-applescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", "dev": true, "peer": true }, @@ -33959,27 +34260,25 @@ "dev": true }, "sass": { - "version": "1.79.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.5.tgz", - "integrity": "sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==", + "version": "1.104.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.104.1.tgz", + "integrity": "sha512-yDA+1aIG3EHgN4V/BvuhCvu61FF6hEd4e+9DxikUm9U0CAGuvdIZ/UYy7qbOxjhbbWQraoyLlMuzdRGOSV5Bmw==", "dev": true, "peer": true, "requires": { "@parcel/watcher": "^2.4.1", - "chokidar": "^4.0.0", - "immutable": "^4.0.0", + "chokidar": "^5.0.0", + "immutable": "^5.1.5", "source-map-js": ">=0.6.2 <2.0.0" } }, "sass-loader": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.2.tgz", - "integrity": "sha512-Ll6iXZ1EYwYT19SqW4mSBb76vSSi8JgzElmzIerhEGgzB5hRjDQIWsPmuk1UrAXkR16KJHqVY0eH+5/uw9Tmfw==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.1.tgz", + "integrity": "sha512-pgJMwCuLjVTSIWsv/2luVRXKlCeaViUGcgSe8dx95zMG4hUwqIMFmjbhq29ypFLflJU0GyiJZeLM9iI1n3KYAA==", "dev": true, "peer": true, - "requires": { - "neo-async": "^2.6.2" - } + "requires": {} }, "sax": { "version": "1.6.0", @@ -34045,13 +34344,6 @@ "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==" }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true, - "peer": true - }, "selfsigned": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", @@ -34069,85 +34361,71 @@ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" }, "send": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", - "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", "dev": true, "peer": true, "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, - "peer": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - } - } + "peer": true }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, "peer": true, "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "mime-db": "^1.54.0" } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "peer": true } } }, "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", "dev": true, "peer": true, "requires": { - "accepts": "~1.3.4", + "accepts": "~1.3.8", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" }, "dependencies": { + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "peer": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -34166,25 +34444,19 @@ "peer": true }, "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "peer": true, "requires": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "peer": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -34192,10 +34464,10 @@ "dev": true, "peer": true }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "peer": true }, @@ -34209,89 +34481,16 @@ } }, "serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", "dev": true, "peer": true, "requires": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - } - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "peer": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "peer": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "peer": true - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "peer": true - } + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" } }, "set-blocking": { @@ -34367,9 +34566,9 @@ "dev": true }, "shell-quote": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.9.0.tgz", - "integrity": "sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz", + "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==", "dev": true, "peer": true }, @@ -34484,18 +34683,6 @@ } } }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "peer": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -34548,49 +34735,6 @@ "dev": true, "peer": true }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "peer": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "peer": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -34984,9 +35128,9 @@ "requires": {} }, "postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", "dev": true, "peer": true, "requires": { @@ -35133,9 +35277,9 @@ "peer": true }, "postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", "dev": true, "peer": true, "requires": { @@ -35256,9 +35400,9 @@ "peer": true }, "terser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "version": "5.51.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz", + "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", "devOptional": true, "peer": true, "requires": { @@ -35603,14 +35747,41 @@ "dev": true }, "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", "dev": true, "peer": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "dependencies": { + "content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "dev": true, + "peer": true + }, + "mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "peer": true + }, + "mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "peer": true, + "requires": { + "mime-db": "^1.54.0" + } + } } }, "typed-array-buffer": { @@ -35849,9 +36020,9 @@ } }, "update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", "devOptional": true, "requires": { "escalade": "^3.2.0", @@ -35925,20 +36096,6 @@ "dev": true, "peer": true }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "peer": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "peer": true - }, "v8-to-istanbul": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", @@ -36140,16 +36297,6 @@ "graceful-fs": "^4.1.2" } }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "peer": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, "web-streams-polyfill": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", @@ -36305,97 +36452,70 @@ } }, "webpack-dev-middleware": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", - "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-8.3.0.tgz", + "integrity": "sha512-jFNNMB29ugmkEUFW9cpWNqcWFQNwuMTMVoRpKVAiz/5nh3gA4x9x6DRPhNHGc/SLre7pEP9yrAPDAmCvdCblKg==", "dev": true, "peer": true, "requires": { - "colorette": "^2.0.10", - "memfs": "^4.6.0", - "mime-types": "^2.1.31", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" + "ansi-html-community": "^0.0.8", + "memfs": "^4.68.2", + "mime-types": "^3.0.2", + "range-parser": "^1.3.0", + "schema-utils": "^4.3.3" + }, + "dependencies": { + "mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "peer": true + }, + "mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "peer": true, + "requires": { + "mime-db": "^1.54.0" + } + } } }, "webpack-dev-server": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz", - "integrity": "sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-6.0.0.tgz", + "integrity": "sha512-q9SD4ItOGhZLeU6EGT10caDZdHjF50Pz1DtkRZZOPsfluMXOkacWKKOtSBSLVkPqKiF67eFUC0rI88U/tSFPEw==", "dev": true, "peer": true, "requires": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.25", - "@types/express-serve-static-core": "^4.17.21", + "@types/express": "^5.0.6", + "@types/express-serve-static-core": "^5.1.1", "@types/serve-index": "^1.9.4", - "@types/serve-static": "^1.15.5", - "@types/sockjs": "^0.3.36", - "@types/ws": "^8.5.10", + "@types/serve-static": "^2.2.0", + "@types/ws": "^8.18.1", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.2.1", - "chokidar": "^3.6.0", - "colorette": "^2.0.10", + "bonjour-service": "^1.3.0", + "chokidar": "^5.0.0", "compression": "^1.8.1", "connect-history-api-fallback": "^2.0.0", - "express": "^4.22.1", - "graceful-fs": "^4.2.6", - "http-proxy-middleware": "^2.0.9", - "ipaddr.js": "^2.1.0", + "express": "^5.2.1", + "graceful-fs": "^4.2.11", + "http-proxy-middleware": "^4.1.1", + "ipaddr.js": "^2.3.0", "launch-editor": "^2.14.1", - "open": "^10.0.3", - "p-retry": "^6.2.0", - "schema-utils": "^4.2.0", + "open": "^11.0.0", + "p-retry": "^8.0.0", + "schema-utils": "^4.3.3", "selfsigned": "^5.5.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.4.2", - "ws": "^8.18.0" - }, - "dependencies": { - "@types/express-serve-static-core": { - "version": "4.19.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", - "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", - "dev": true, - "peer": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "peer": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "peer": true, - "requires": { - "picomatch": "^2.2.1" - } - } + "serve-index": "^1.9.2", + "tinyglobby": "^0.2.15", + "webpack-dev-middleware": "^8.0.3", + "ws": "^8.20.0" } }, "webpack-merge": { @@ -36422,25 +36542,6 @@ "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==" }, - "websocket-driver": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", - "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", - "dev": true, - "peer": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "peer": true - }, "whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -36626,6 +36727,26 @@ "dev": true, "requires": {} }, + "wsl-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz", + "integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==", + "dev": true, + "peer": true, + "requires": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "dependencies": { + "powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "dev": true, + "peer": true + } + } + }, "xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",