ddan-js 3.6.4 → 3.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/ddan-js.browser.js +1 -1
- package/bin/ddan-js.js +1 -1
- package/bin/ddan-js.mjs +1 -1
- package/bin/modules/crypto/index.d.ts +1 -0
- package/bin/modules/fetch.d.ts +23 -0
- package/bin/tiny/hook.d.ts +1 -0
- package/bin/tiny/utils.d.ts +1 -0
- package/bin/tiny/web.d.ts +23 -0
- package/package.json +1 -1
package/bin/ddan-js.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("crypto"),require("zlib"),require("net"),require("socks"),require("child_process"),require("fs"),require("path")):"function"==typeof define&&define.amd?define(["exports","crypto","zlib","net","socks","child_process","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ddan=e.ddan||{},e.crypto$1,e.zlib,e.net,e.socks,e.child_process,e.fs,e.path)}(this,(function(e,t,r,n,s,i,o,a){"use strict";function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=c(t),u=c(r),f=c(n),h=c(o),d=c(a);const p="0123456789",g="abcdefghijklmnopqrstuvwxyz",y="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var m={keyNumber:p,keyLower:g,keyUpper:y,keyChars:p+g+y};const w=(e=0,t=0)=>e?_(e,"lower",t):b("lower",t),b=(e="lower",t=0)=>{const r=m.keyChars.split(""),n=[];let s,i;for(t=t||r.length,n[8]=n[13]=n[18]=n[23]="-",n[14]="4",s=0;s<36;s++)n[s]||(i=0|16*Math.random(),n[s]=r[19==s?3&i|8:i]);const o=n.join("");return"upper"===e?o.toUpperCase():o.toLowerCase()},_=(e=32,t="mixin",r=0)=>{const n=m.keyChars.split(""),s=[];let i;for(r=r||n.length,i=0;i<e;i++)s[i]=n[0|Math.random()*r];const o=s.join("");return"lower"===t?o.toLowerCase():"upper"===t?o.toUpperCase():o};class v{__map;__tagList;__eventId="";constructor(){this.__map=new Map,this.__tagList=[],this.__eventId=w()}clear(){return this.__map.clear(),this}on(e,t,r=""){if(!e||!t)return this;let n=this.__map.get(e);return n||(n=new Set,this.__map.set(e,n)),n.add(t),r&&this.__tagList.push({name:e,listener:t,tag:r}),this}emit(e,...t){if(!e)return this;const r=this.__map.get(e);if(!r)return this;return[...r].forEach((e=>e&&e(...t))),this}off(e,t){if(!e||!t)return this;this.__tagList=this.__tagList.filter((r=>r.name!==e||r.listener!==t));const r=this.__map.get(e);return r?(r.delete(t),r.size<=0&&this.__map.delete(e),this):this}remove(e){return e?(this.__tagList=this.__tagList.filter((t=>t.name!==e)),this.__map.delete(e),this):this}removeByTag(e){if(!e)return this;return this.__tagList.filter((t=>t.tag===e)).forEach((e=>{this.off(e.name,e.listener)})),this.__tagList=this.__tagList.filter((t=>t.tag!==e)),this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this.__map.has(e)}}class x{timestamp=0;_key="";_value;constructor(e,t){this._key=e,this._value=t,this.updateAt()}get key(){return this._key}get value(){return this._value}set(e){this._value=e,this.updateAt()}updateAt(){this.timestamp=Date.now()}clear(){this.set(void 0)}}const A="object"==typeof global&&null!==global&&global.Object===Object&&global,S="object"==typeof globalThis&&null!==globalThis&&globalThis.Object===Object&&globalThis,k="object"==typeof self&&null!==self&&self.Object===Object&&self,$=S||A||k||Function("return this")(),O=$.Symbol,{toString:j,hasOwnProperty:C,propertyIsEnumerable:E}=Object.prototype,P=O?O.toStringTag:void 0;function T(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":P&&P in Object(e)?function(e){const t=C.call(e,P),r=e[P];let n=!1;try{e[P]=void 0,n=!0}catch(e){}const s=j.call(e);return n&&(t?e[P]=r:delete e[P]),s}(e):j.call(e)}var q={getTag:T,getType:function(e){return(T(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:j,hasOwnProperty:C,propertyIsEnumerable:E};const B="object"==typeof e&&null!==e&&!e.nodeType&&e,L=B&&"object"==typeof module&&null!==module&&!module.nodeType&&module,R=L&&L.exports===B&&A.process,F=(()=>{try{const e=L&&L.require&&L.require("util").types;return e||R&&R.binding&&R.binding("util")}catch(e){}})();var U="[object Function]",I="[object GeneratorFunction]",D="[object AsyncFunction]",M=9007199254740991;const K=/^(?:0|[1-9]\d*)$/,z=$?.Buffer?.isBuffer,N=/^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)Array\]$/,W=F&&F.isTypedArray;function H(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function V(e){return null!=e&&"object"==typeof e}const Z=Array.isArray;function J(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=M}(e.length)&&!Q(e)}function Y(e){return V(e)&&J(e)}function Q(e){var t=H(e)?q.getTag(e):"";return t===U||t===I||t===D}function G(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)}function X(e){return Y(e)&&q.hasOwnProperty.call(e,"callee")&&(!q.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==q.toString.call(e))}const ee="undefined"!=typeof window&&void 0!==window.document,te="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,re=W?e=>W(e):e=>V(e)&&N.test(q.getTag(e)),ne="function"==typeof z?z:()=>!1;var se={is:function(e,t){return q.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===q.getTag(e)},isString:function(e){return"string"==typeof e||!Z(e)&&V(e)&&"[object String]"==q.getTag(e)},isObject:H,isObjectLike:V,isPlainObject:function(e){if(!V(e)||"[object Object]"!=q.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||V(e)&&"[object Symbol]"===q.getTag(e)},isFunction:Q,isArray:Z,isArrayLikeObject:Y,isIndex:function(e,t){return!!(t=null==t?M:t)&&("number"==typeof e||K.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:J,isPrototype:G,isArguments:X,isPromise:function(e){return"[object Promise]"===(H(e)?q.getTag(e):"")},isBrowser:ee,isNode:te,isBlobOrBuffer:e=>e instanceof Blob||e instanceof ArrayBuffer,isUint8Array:e=>e instanceof Uint8Array,isArrayBuffer:e=>e instanceof ArrayBuffer,isEmpty:e=>{if(null==e)return!0;if(J(e)&&(Array.isArray(e)||"string"==typeof e||"function"==typeof e.splice||ne(e)||re(e)||X(e)))return!e.length;const t=q.getTag(e);if("[object Map]"===t||"[object Set]"===t)return!e.size;if(G(e))return!Object.keys(e).length;for(const t in e)if(q.hasOwnProperty.call(e,t))return!1;return!0},isJSONStr:e=>{try{const t=JSON.parse(e);return"object"==typeof t&&null!==t}catch(e){return!1}}};const ie=NaN,oe=/^\s+|\s+$/g,ae=/^[-+]0x[0-9a-f]+$/i,ce=/^0b[01]+$/i,le=/^0o[0-7]+$/i,ue=parseInt,fe=1/0,he=17976931348623157e292;function de(e){if("number"==typeof e)return e;if(se.isSymbol(e))return ie;if(se.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=se.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(oe,"");const t=ce.test(e);return t||le.test(e)?ue(e.slice(2),t?2:8):ae.test(e)?ie:+e}function pe(e){return e?(e=de(e))===fe||e===-fe?(e<0?-1:1)*he:e==e?e:0:0===e?e:0}var ge={toNumber:de,toFinite:pe,toInteger:function(e){var t=pe(e),r=t%1;return t==t?r?t-r:t:0}};const ye="Expected a function",me=Math.max,we=Math.min;function be(e,t=300,r={}){let n,s,i,o,a,c,l=0,u=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError(ye);function d(t){const r=n,i=s;return n=s=void 0,l=t,o=e.apply(i,r),o}function p(e){const r=e-c;return void 0===c||r>=t||r<0||f&&e-l>=i}function g(){const e=Date.now();if(p(e))return y(e);a=setTimeout(g,function(e){const r=t-(e-c);return f?we(r,i-(e-l)):r}(e))}function y(e){return a=void 0,h&&n?d(e):(n=s=void 0,o)}function m(...e){const r=Date.now(),i=p(r);if(n=e,s=this,c=r,i){if(void 0===a)return function(e){return l=e,a=setTimeout(g,t),u?d(e):o}(c);if(f)return a=setTimeout(g,t),d(c)}return void 0===a&&(a=setTimeout(g,t)),o}return t=ge.toNumber(t)||0,se.isObject(r)&&(u=!!r.leading,f="maxWait"in r,i=f?me(ge.toNumber(r.maxWait)||0,t):i,h="trailing"in r?!!r.trailing:h),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=c=s=a=void 0},m.flush=function(){return void 0===a?o:y(Date.now())},m.pending=function(){return void 0!==a},m}class _e{__list=[];constructor(e){this.push(e)}push(e){return e&&this.__list.push(e),this}clear(){return this.__list=[],this}_exec(e,t){let r;if(se.isFunction(e))r=e(t);else{if(se.isPromise(e))return e.then((e=>({...t,...e})));r=e}return se.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this.__list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}async function ve(e,t,r){return e.then((e=>(r&&r(),[null,e]))).catch((e=>(t&&Object.assign(e,t),r&&r(),[e,void 0])))}const xe=(e,t)=>{try{let r;return r=se.isFunction(e)?e():e,ve(Promise.resolve(r),void 0,t)}catch(e){return t&&t(),Promise.resolve([e,void 0])}},Ae=e=>"string"==typeof(e="function"==typeof e?e():e)?new Error(e):e,Se=e=>"function"==typeof e?e():e;var ke={to:ve,go:(e,t)=>xe(e,t),delay:(e=1e3)=>new Promise((t=>setTimeout(t,e))),safeRun:xe,toError:Ae,timeout:(e,t=0,r="timeout")=>{if(t<=0)return xe(e);let n;function s(){n&&clearTimeout(n)}const i=new Promise((e=>{s(),n=setTimeout((()=>e([Ae(r||"timeout"),void 0])),t)}));return Promise.race([xe(e,s),i])},getValueIf:(e,t,r)=>{const n="function"==typeof e?e():e;return Se(n?t:r)},resolveValue:Se};class $e{__value=void 0;set(e){this.__value=e}get(){return this.__value}}var Oe={singleton:function(){class e{static __instance__;constructor(){}static get Instance(){return e.__instance__||(e.__instance__=new this),e.__instance__}static get I(){return this.Instance}}return e},getset:function(e){const t=new $e;return void 0!==e&&t.set(e),t},singletonFactory:function(e){class t extends e{static __instance__;constructor(...e){super(...e)}static getInstance(){return t.__instance__||(t.__instance__=new t),t.__instance__}static get I(){return this.getInstance()}}return t}};class je{_func;_callback;constructor(e,t){this._func=e,this._callback=t}async run(){return ke.safeRun(this._func).then((e=>{try{this._callback&&this._callback(e)}catch(e){console.log("[ddan] task",e)}finally{return e}}))}}class Ce{__list=[];__count=0;__max=1;constructor(e=1){this.__count=0,this.__max=e>0?e:1,this.clear()}push(e,t){const r=new je(e,t);return this.__list.push(r),this._step(),this}async exec(e){return new Promise((t=>{this.push(e,((...e)=>{t(...e)}))}))}clear(){return this.__list=[],this.__count=0,this}_step(){if(this.__list.length<=0)return;if(this.__count>=this.__max)return;const e=this.__list.shift();e?(this.__count+=1,e?.run().finally((()=>{try{this.__count>0&&(this.__count-=1),this._step()}catch(e){console.error("[ddan] pipepine step finally",e)}}))):this._step()}async whenAll(){for(;;){if(this.__count<=0)break;await ke.delay(100),this._step()}return this.clear()}}class Ee extends(Oe.singleton()){__lockedMap=new Map;pipeline=new Ce;constructor(){super()}lock(e,t){if(!e||!t)return;const r=ke.safeRun(t);return this.__lockedMap.set(e,r),r}unlock(e){e&&this.__lockedMap.has(e)&&this.__lockedMap.delete(e)}async exec(e,t){if(!e||!t)return ke.safeRun(e);const r=this.__lockedMap.get(t);if(r)return r;const n=this.lock(t,e);if(!n)return ke.safeRun(e);const s=await n;return this.unlock(t),s}}var Pe={toUtf8:e=>{if(!e)return"";const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},fromUtf8:e=>{let t="",r=0;if(!e)return"";let n=0,s=0,i=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),i=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i),r+=3);return t},toUtf8Bytes:e=>{if(!e)return new Uint8Array;const t=e.replace(/\r\n/g,"\n"),r=[];for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r.push(n):n<2048?(r.push(n>>6|192),r.push(63&n|128)):(r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128))}return new Uint8Array(r)},fromUtf8Bytes:e=>{let t="",r=0;if(!e||e.length<=0)return"";for(;r<e.length;){let n=e[r];if(n<128)t+=String.fromCharCode(n),r++;else if(n>191&&n<224){const s=e[r+1];t+=String.fromCharCode((31&n)<<6|63&s),r+=2}else{const s=e[r+1],i=e[r+2];t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i),r+=3}}return t}};const Te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var qe={toBase64:(e="")=>{let t,r,n,s,i,o,a,c="",l=0;for(e=Pe.toUtf8(e);l<e.length;)t=e.charCodeAt(l++),r=e.charCodeAt(l++),n=e.charCodeAt(l++),s=t>>2,i=(3&t)<<4|r>>4,o=(15&r)<<2|n>>6,a=63&n,isNaN(r)?o=a=64:isNaN(n)&&(a=64),c=c+Te.charAt(s)+Te.charAt(i)+Te.charAt(o)+Te.charAt(a);return c},fromBase64:(e="")=>{let t,r,n,s,i,o,a,c="",l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=Te.indexOf(e.charAt(l++)),i=Te.indexOf(e.charAt(l++)),o=Te.indexOf(e.charAt(l++)),a=Te.indexOf(e.charAt(l++)),t=s<<2|i>>4,r=(15&i)<<4|o>>2,n=(3&o)<<6|a,c+=String.fromCharCode(t),64!=o&&(c+=String.fromCharCode(r)),64!=a&&(c+=String.fromCharCode(n));return c=Pe.fromUtf8(c),c},bytesToBase64:e=>{let t,r,n,s,i,o,a,c="",l=0;if(!e||!se.isArrayLike(e)||!se.isUint8Array(e))return"";for(;l<e.length;)t=e[l++],r=e[l++],n=e[l++],s=t>>2,i=(3&t)<<4|r>>4,o=(15&r)<<2|n>>6,a=63&n,isNaN(r)?o=a=64:isNaN(n)&&(a=64),c=c+Te.charAt(s)+Te.charAt(i)+Te.charAt(o)+Te.charAt(a);return c},base64ToBytes:(e="")=>{let t,r,n,s,i,o,a,c=[],l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=Te.indexOf(e.charAt(l++)),i=Te.indexOf(e.charAt(l++)),o=Te.indexOf(e.charAt(l++)),a=Te.indexOf(e.charAt(l++)),t=s<<2|i>>4,r=(15&i)<<4|o>>2,n=(3&o)<<6|a,c.push(t),64!=o&&c.push(r),64!=a&&c.push(n);return new Uint8Array(c)}};function Be(e){return Math.floor(Math.random()*e)}function Le(e,t=10){return+parseFloat(Number(e).toExponential(t))}const Re=180/Math.PI;var Fe={random:Be,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=Be(e);r?n.push(s):n.includes(s)||n.push(s)}return n},strip:Le,float:function(e,{digits:t=2,fixed:r=!1}={}){const n=Le(e).toFixed(t);return r||!t?+n:+n.replace(/(\.[1-9]?)0+$/,"$1").replace(/\.$/,"")},radian2degree:function(e){return e*Re},degree2radian:function(e){return e/Re},calcDataSize:function(e){const t={gb:0,mb:0,kb:0,b:0,total:e,desc:""},r=[{name:"gb",divisor:1<<30},{name:"mb",divisor:1<<20},{name:"kb",divisor:1024},{name:"b",divisor:1}];for(const n of r){const r=Math.floor(e/n.divisor);t[n.name]=r,e-=r*n.divisor}return t.gb>0?t.desc=(t.gb+t.mb/1024).toFixed(2)+"GB":t.mb>0?t.desc=(t.mb+t.kb/1024).toFixed(2)+"MB":t.kb>0?t.desc=(t.kb+t.b/1024).toFixed(2)+"KB":t.desc=t.b+"B",t}};var Ue={bytes2str:e=>{if(!e||!se.isArrayLike(e))return"";return e.reduce(((e,t)=>e+String.fromCharCode(t)),"")},str2bytes:(e="")=>{const t=e,r=new Uint8Array(t.length);for(let e=0,n=t.length;e<n;e++)r[e]=t.charCodeAt(e);return r},str2hex:e=>{let t="";for(let r=0;r<e.length;r++)t+=e.charCodeAt(r).toString(16).padStart(2,"0");return t},hex2str:e=>{let t="";for(let r=0;r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t},concatBytes:(...e)=>{const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r},uint32ToBytes:e=>{const t=new Uint8Array(8);return t[0]=e[0]>>>24&255,t[1]=e[0]>>>16&255,t[2]=e[0]>>>8&255,t[3]=255&e[0],t[4]=e[1]>>>24&255,t[5]=e[1]>>>16&255,t[6]=e[1]>>>8&255,t[7]=255&e[1],t},bytesToUint32:e=>{const t=new Uint32Array(2);return t[0]=e[0]<<24|e[1]<<16|e[2]<<8|e[3],t[1]=e[4]<<24|e[5]<<16|e[6]<<8|e[7],t},hex2bytes:e=>{let t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++)t[r]=parseInt(e.substr(2*r,2),16);return t},bytes2hex:e=>Array.from(e).map((e=>e.toString(16).padStart(2,"0"))).join(""),toUint32:e=>{const t=Math.ceil(e.length/4),r=new Uint32Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(4*n)<<24|e.charCodeAt(4*n+1)<<16|e.charCodeAt(4*n+2)<<8|e.charCodeAt(4*n+3);return r},fromUint32:e=>{let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]>>>24&255,e[r]>>>16&255,e[r]>>>8&255,255&e[r]);return t.replace(/\0+$/,"")},flatten:function e(t,r=!1,n=[]){for(let s=0;s<t.length;s+=1){const i=t[s];r&&Array.isArray(i)?e(i,r,n):n.push(i)}return n}};var Ie={pkcs7Padding:(e,t)=>{const r=t-e.length%t,n=new Uint8Array(r).fill(r);return Ue.concatBytes(e,n)},pkcs7Unpadding:e=>{const t=e[e.length-1];return e.slice(0,-t)}};function De(e,t){return e<<t|e>>>32-t}function Me(e,t){let r,n,s,i,o;return s=2147483648&e,i=2147483648&t,r=1073741824&e,n=1073741824&t,o=(1073741823&e)+(1073741823&t),r&n?2147483648^o^s^i:r|n?1073741824&o?3221225472^o^s^i:1073741824^o^s^i:o^s^i}function Ke(e,t,r,n,s,i,o){return e=Me(e,Me(Me(function(e,t,r){return e&t|~e&r}(t,r,n),s),o)),Me(De(e,i),t)}function ze(e,t,r,n,s,i,o){return e=Me(e,Me(Me(function(e,t,r){return e&r|t&~r}(t,r,n),s),o)),Me(De(e,i),t)}function Ne(e,t,r,n,s,i,o){return e=Me(e,Me(Me(function(e,t,r){return e^t^r}(t,r,n),s),o)),Me(De(e,i),t)}function We(e,t,r,n,s,i,o){return e=Me(e,Me(Me(function(e,t,r){return t^(e|~r)}(t,r,n),s),o)),Me(De(e,i),t)}function He(e){let t,r,n="",s="";for(r=0;r<=3;r++)t=e>>>8*r&255,s="0"+t.toString(16),n+=s.substr(s.length-2,2);return n}function Ve(e){let t,r,n,s,i,o,a,c,l,u=[];for(u=function(e){let t;const r=e.length,n=r+8,s=16*((n-n%64)/64+1),i=Array(s-1).fill(0);let o=0,a=0;for(;a<r;)t=(a-a%4)/4,o=a%4*8,i[t]=i[t]|e[a]<<o,a++;return t=(a-a%4)/4,o=a%4*8,i[t]=i[t]|128<<o,i[s-2]=r<<3,i[s-1]=r>>>29,i}(e),o=1732584193,a=4023233417,c=2562383102,l=271733878,t=0;t<u.length;t+=16)r=o,n=a,s=c,i=l,o=Ke(o,a,c,l,u[t+0],7,3614090360),l=Ke(l,o,a,c,u[t+1],12,3905402710),c=Ke(c,l,o,a,u[t+2],17,606105819),a=Ke(a,c,l,o,u[t+3],22,3250441966),o=Ke(o,a,c,l,u[t+4],7,4118548399),l=Ke(l,o,a,c,u[t+5],12,1200080426),c=Ke(c,l,o,a,u[t+6],17,2821735955),a=Ke(a,c,l,o,u[t+7],22,4249261313),o=Ke(o,a,c,l,u[t+8],7,1770035416),l=Ke(l,o,a,c,u[t+9],12,2336552879),c=Ke(c,l,o,a,u[t+10],17,4294925233),a=Ke(a,c,l,o,u[t+11],22,2304563134),o=Ke(o,a,c,l,u[t+12],7,1804603682),l=Ke(l,o,a,c,u[t+13],12,4254626195),c=Ke(c,l,o,a,u[t+14],17,2792965006),a=Ke(a,c,l,o,u[t+15],22,1236535329),o=ze(o,a,c,l,u[t+1],5,4129170786),l=ze(l,o,a,c,u[t+6],9,3225465664),c=ze(c,l,o,a,u[t+11],14,643717713),a=ze(a,c,l,o,u[t+0],20,3921069994),o=ze(o,a,c,l,u[t+5],5,3593408605),l=ze(l,o,a,c,u[t+10],9,38016083),c=ze(c,l,o,a,u[t+15],14,3634488961),a=ze(a,c,l,o,u[t+4],20,3889429448),o=ze(o,a,c,l,u[t+9],5,568446438),l=ze(l,o,a,c,u[t+14],9,3275163606),c=ze(c,l,o,a,u[t+3],14,4107603335),a=ze(a,c,l,o,u[t+8],20,1163531501),o=ze(o,a,c,l,u[t+13],5,2850285829),l=ze(l,o,a,c,u[t+2],9,4243563512),c=ze(c,l,o,a,u[t+7],14,1735328473),a=ze(a,c,l,o,u[t+12],20,2368359562),o=Ne(o,a,c,l,u[t+5],4,4294588738),l=Ne(l,o,a,c,u[t+8],11,2272392833),c=Ne(c,l,o,a,u[t+11],16,1839030562),a=Ne(a,c,l,o,u[t+14],23,4259657740),o=Ne(o,a,c,l,u[t+1],4,2763975236),l=Ne(l,o,a,c,u[t+4],11,1272893353),c=Ne(c,l,o,a,u[t+7],16,4139469664),a=Ne(a,c,l,o,u[t+10],23,3200236656),o=Ne(o,a,c,l,u[t+13],4,681279174),l=Ne(l,o,a,c,u[t+0],11,3936430074),c=Ne(c,l,o,a,u[t+3],16,3572445317),a=Ne(a,c,l,o,u[t+6],23,76029189),o=Ne(o,a,c,l,u[t+9],4,3654602809),l=Ne(l,o,a,c,u[t+12],11,3873151461),c=Ne(c,l,o,a,u[t+15],16,530742520),a=Ne(a,c,l,o,u[t+2],23,3299628645),o=We(o,a,c,l,u[t+0],6,4096336452),l=We(l,o,a,c,u[t+7],10,1126891415),c=We(c,l,o,a,u[t+14],15,2878612391),a=We(a,c,l,o,u[t+5],21,4237533241),o=We(o,a,c,l,u[t+12],6,1700485571),l=We(l,o,a,c,u[t+3],10,2399980690),c=We(c,l,o,a,u[t+10],15,4293915773),a=We(a,c,l,o,u[t+1],21,2240044497),o=We(o,a,c,l,u[t+8],6,1873313359),l=We(l,o,a,c,u[t+15],10,4264355552),c=We(c,l,o,a,u[t+6],15,2734768916),a=We(a,c,l,o,u[t+13],21,1309151649),o=We(o,a,c,l,u[t+4],6,4149444226),l=We(l,o,a,c,u[t+11],10,3174756917),c=We(c,l,o,a,u[t+2],15,718787259),a=We(a,c,l,o,u[t+9],21,3951481745),o=Me(o,r),a=Me(a,n),c=Me(c,s),l=Me(l,i);return He(o)+He(a)+He(c)+He(l)}const Ze=e=>{if("string"!=typeof e&&!(e instanceof Uint8Array))return"";return Ve("string"==typeof e?Pe.toUtf8Bytes(e):e)};var Je={md5:Ze,md5Base64:e=>{const t=Ze(e);if(!t)return"";const r=Ue.hex2bytes(t);return qe.bytesToBase64(r)}};const Ye=(e,t=!1)=>{const r=new Uint8Array(e);return t?qe.bytesToBase64(r):r.reduce(((e,t)=>e+String.fromCharCode(t)),"")};var Qe={...Ue,...Ie,...Pe,...qe,...Je,str2ab:(e="",t=!1)=>{if(t)return qe.base64ToBytes(e).buffer;{const t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return t}},ab2str:Ye,utf8ToBase64:e=>se.isBrowser?btoa(e):Buffer.from(e,"utf-8").toString("base64"),base64ToUtf8:e=>se.isBrowser?atob(e):Buffer.from(e,"base64").toString("utf-8"),getRandomBytes:e=>{const t=new Uint8Array(e);for(let r=0;r<e;r++)t[r]=Fe.random(256);return t},textEncode:e=>Pe.toUtf8Bytes(e),textDecode:e=>Pe.fromUtf8Bytes(new Uint8Array(e)),toDataUrl:(e,t="text/plain")=>e?"string"==typeof e?`data:${t};base64,`+qe.toBase64(e):se.isArrayBuffer(e)?`data:${t};base64,`+Ye(e,!0):"":""};const Ge=e=>{try{const t=Qe.ab2str(e,!0);return t.match(/.{1,64}/g)?.join("\n")||""}catch(e){return""}},Xe=(e="",t="PUBLIC KEY")=>`-----BEGIN ${t}-----\n${e}\n-----END ${t}-----`;var et={RSAPublicKey:"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApiLWsPmoaiGdr02AmPYS\n4/VgxyJNNJSK2VICirXl4P8qAP3b/6GIs7Hwnsmmuj7gledJ0XiZodFjDNgQEZEG\nj4K9KX8NixcrJwnTQV5UebiERdj+64ihwqPVWo9dIOj43ZPJ8f4dritJv5tnQaBb\nb9zTkU3Ofzk1g8RU00Ith6quOGZcU2IWC4OQ+5YiZvzrCBKEvjFwK2OvGq43tI51\nGaZdI9H09jisypqefsMvv6esjEQQOtl+WGlI5fof7KZUt3dppvuDI4CYgeXIoKKL\n9T9qDl8F9aNSs3XHx32YyA7L1FraFD6PjqRjueIFp2emsXQcIMeMqqgVyV+4qb+0\nuwIDAQAB",RSAPrivateKey:"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmItaw+ahqIZ2v\nTYCY9hLj9WDHIk00lIrZUgKKteXg/yoA/dv/oYizsfCeyaa6PuCV50nReJmh0WMM\n2BARkQaPgr0pfw2LFysnCdNBXlR5uIRF2P7riKHCo9Vaj10g6Pjdk8nx/h2uK0m/\nm2dBoFtv3NORTc5/OTWDxFTTQi2Hqq44ZlxTYhYLg5D7liJm/OsIEoS+MXArY68a\nrje0jnUZpl0j0fT2OKzKmp5+wy+/p6yMRBA62X5YaUjl+h/splS3d2mm+4MjgJiB\n5cigoov1P2oOXwX1o1KzdcfHfZjIDsvUWtoUPo+OpGO54gWnZ6axdBwgx4yqqBXJ\nX7ipv7S7AgMBAAECggEAE1kuWLkSsJ2OoDpt9iJ+a7cJmNd5V1zPWOTwr9fkWFJP\nQYNPKlPVOFxKUivY84rcHAkuMyuQ9OQOXZISOQGDWpZW0mzeFmtR1r+Rr2S9gNmI\n6huOAL9OW306HUxiA7GuPhv2omy+Zyjac2q1WVLEI2B78Um2+WEfxuNIH7xu0gRR\nz/wluevMBQlv6hSeMESP6e9s2kB+FuM4bL7+1sexwS1TudKbHybujaiB8un9E2V3\nC9BkE6yf00Rhvii6Q4E4w3PFQfcBEFnjOD0S2Watx8GIbYjlYvtquy8Yj7OtyZB6\nw5sxyaYhKVVnkpGAbOgaCj94ABYF47VuwXr45I4PzQKBgQDp6svzD+QKlARjcWgO\nrH7UEpFX6m49G6Ib4c63xEg9+GesTgfDxoYxtXDKsC7I8OwMrmffJGbyfjaAvzmg\nicM3Y7kF6UPO9+q2mBRsyhoJSNONTeUVyoFSc+QDsVgndlTZIjqC5XLrONGaSPLJ\n7jJzqKhp3NQcpO8+xY0d7Efm1QKBgQC10fCNuF1LUTYgsWvvGxTiCCAIBurZmHU+\nGMb2Okfoco/P+QNl1jEba91AC7FudW3g/lRn0vTnDajlNoz2/CKunrTKN4/9lEBI\ntiwEOvhc5FtapRifSfrrNwFqPM+LijvOkcteWVhAUWCEP1eLmpnXGqfmZxnTaaVe\n5DyDgyAVTwKBgQDhEawfOQEANJ9sV2f6BnsZ7quuXcCoR3hZP5G5O8EO735BSesq\nsk/YcG4QeCjr6vQU15LWH552YH5srpHyJ9uP5gHW8DTwZZaPDhFJA8S9fjcfVP3B\nU9HO1fdknjTl83N8YPTPkZpbPZZfzyTcqrYclwFEqtfkn8YbLdW0Hu6n6QKBgDEv\njvS3uD1ExfDILlurptWSvx+Mx4F/1c+roj8/+u3t9+uaAIpPDE/PuTW3NBOens/r\n3WeM0QWkU1lWjYHPKY61jlDaARDnRxCkf3nRfhibCf+Wg/erar6wzagwtTCZf55d\nIHfwkYgsu4BrJkK02wMuydbxczIW9U6bTaeCFG7PAoGAN3oHYzTEBwZ7ZKv11QiQ\nEp/HeHBvD8fH/e1uVyBel4Co7NO5pV2s8qjS8+3+jxumKLNXCirjqwHo03YCdzxi\ncy4GFDsukHmDQ7FF9VC4QV0fJ0F7jGYE9nNZ+K9qwS5KrihOSBPxj0HptrF6TSOw\nBTSwr0byL3TC0m0StkSNKpo=",generateKeys:async e=>{try{const t=await e.generateKey({name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},!0,["encrypt","decrypt"]),r=await window.crypto.subtle.exportKey("spki",t.publicKey),n=Ge(r),s=Xe(n,"PUBLIC KEY"),i=await window.crypto.subtle.exportKey("pkcs8",t.privateKey),o=Ge(i);return{publicKey:n,publicKeyPem:s,privateKey:o,privateKeyPem:Xe(o,"PRIVATE KEY")}}catch(e){return console.error("generateKeys failed:",e),{publicKey:"",publicKeyPem:"",privateKey:"",privateKeyPem:""}}},format_pem_key:Xe,format_pem_content:Ge,encrypt:async(e,t,r)=>{try{const n=(new TextEncoder).encode(t),s=await e.importKey("spki",Qe.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["encrypt"]),i=[];for(let t=0;t<n.length;t+=190){let r=n.slice(t,t+190),o=await e.encrypt({name:"RSA-OAEP"},s,r);i.push(new Uint8Array(o))}const o=Qe.concatBytes(...i);return Qe.bytesToBase64(o)}catch(e){return console.error("[debug] encrypt",e),""}},decrypt:async(e,t,r)=>{try{const n=Qe.base64ToBytes(t),s=await e.importKey("pkcs8",Qe.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["decrypt"]),i=[],o=256;for(let t=0;t<n.length;t+=o){let r=n.slice(t,t+o),a=await e.decrypt({name:"RSA-OAEP"},s,r);i.push(new Uint8Array(a))}const a=Qe.concatBytes(...i);return(new TextDecoder).decode(a)}catch(e){return console.error("decrypt failed:",e),""}}};const tt=()=>l.default.webcrypto.subtle;var rt={generateKeys:()=>et.generateKeys(tt()),encrypt:async(e,t)=>et.encrypt(tt(),e,t),decrypt:async(e,t)=>et.decrypt(tt(),e,t),encode:async e=>et.encrypt(tt(),e,et.RSAPublicKey),decode:async e=>et.decrypt(tt(),e,et.RSAPrivateKey)};const nt="undefined"!=typeof window?window.crypto.subtle:{};var st={generateKeys:()=>et.generateKeys(nt),encrypt:async(e,t)=>et.encrypt(nt,e,t),decrypt:async(e,t)=>et.decrypt(nt,e,t),encode:async e=>et.encrypt(nt,e,et.RSAPublicKey),decode:async e=>et.decrypt(nt,e,et.RSAPrivateKey)};const it=2654435769,ot=(e,t)=>{let r=0;for(let n=0;n<32;n++)r=r+it>>>0,e[0]=e[0]+((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,e[1]=e[1]+((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0;return e},at=(e,t)=>{let r=3337565984;for(let n=0;n<32;n++)e[1]=e[1]-((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0,e[0]=e[0]-((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,r=r-it>>>0;return e},ct=e=>{const t=Qe.str2bytes(e),r=new Uint32Array(4);return r[0]=t[0]<<24|t[1]<<16|t[2]<<8|t[3],r[1]=t[4]<<24|t[5]<<16|t[6]<<8|t[7],r[2]=t[8]<<24|t[9]<<16|t[10]<<8|t[11],r[3]=t[12]<<24|t[13]<<16|t[14]<<8|t[15],r},lt=(e,t)=>{const r=Qe.pkcs7Padding(e,8),n=ct(t),s=[];for(let e=0;e<r.length;e+=8){const t=Qe.bytesToUint32(r.slice(e,e+8)),i=ot(t,n);s.push(Qe.uint32ToBytes(i))}return Qe.concatBytes(...s)},ut=(e,t)=>{const r=ct(t),n=[];for(let t=0;t<e.length;t+=8){const s=Qe.bytesToUint32(e.slice(t,t+8)),i=at(s,r);n.push(Qe.uint32ToBytes(i))}const s=Qe.concatBytes(...n);return Qe.pkcs7Unpadding(s)};var ft={TEAKey:"33576f37387276645054657a6831686e454664424e5652456f47794835795942",encrypt:ot,decrypt:at,toTeaKey:ct,encode:(e,t)=>{const r=Qe.textEncode(e),n=lt(r,t);return Qe.bytesToBase64(n)},decode:(e,t)=>{const r=Qe.base64ToBytes(e),n=ut(r,t);return Qe.textDecode(n.buffer)},encodeBytes:lt,decodeBytes:ut};function ht(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const i=new Array(n);for(;++s<n;)i[s]=e[s+t];return i}(e,t,r)}const dt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function pt(e){return dt.test(e)}const gt="\\ud800-\\udfff",yt=`[${gt}]`,mt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",wt="\\ud83c[\\udffb-\\udfff]",bt=`[^${gt}]`,_t="(?:\\ud83c[\\udde6-\\uddff]){2}",vt="[\\ud800-\\udbff][\\udc00-\\udfff]",xt=`${`(?:${mt}|${wt})`}?`,At="[\\ufe0e\\ufe0f]?",St=At+xt+`(?:\\u200d(?:${[bt,_t,vt].join("|")})${At+xt})*`,kt=`(?:${[`${bt}${mt}?`,mt,_t,vt,yt].join("|")})`,$t=RegExp(`${wt}(?=${wt})|${kt+St}`,"g");function Ot(e){return pt(e)?function(e){return e.match($t)||[]}(e):function(e){return e.split("")}(e)}function jt(e){return t=>{if(!t)return"";const r=pt(t)?Ot(t):void 0,n=r?r[0]:t[0],s=r?ht(r,1).join(""):t.slice(1);return n[e]()+s}}const Ct="\\ud800-\\udfff",Et="\\u2700-\\u27bf",Pt="a-z\\xdf-\\xf6\\xf8-\\xff",Tt="A-Z\\xc0-\\xd6\\xd8-\\xde",qt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Bt="['’]",Lt=`[${qt}]`,Rt=`[${Et}]`,Ft=`[${Pt}]`,Ut=`[^${Ct}${qt+"\\d"+Et+Pt+Tt}]`,It="(?:\\ud83c[\\udde6-\\uddff]){2}",Dt="[\\ud800-\\udbff][\\udc00-\\udfff]",Mt=`[${Tt}]`,Kt=`(?:${Ft}|${Ut})`,zt=`(?:${Mt}|${Ut})`,Nt=`(?:${Bt}(?:d|ll|m|re|s|t|ve))?`,Wt=`(?:${Bt}(?:D|LL|M|RE|S|T|VE))?`,Ht="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",Vt="[\\ufe0e\\ufe0f]?",Zt=Vt+Ht+`(?:\\u200d(?:${[`[^${Ct}]`,It,Dt].join("|")})${Vt+Ht})*`,Jt=`(?:${[Rt,It,Dt].join("|")})${Zt}`,Yt=RegExp([`${Mt}?${Ft}+${Nt}(?=${[Lt,Mt,"$"].join("|")})`,`${zt}+${Wt}(?=${[Lt,Mt+Kt,"$"].join("|")})`,`${Mt}?${Kt}+${Nt}`,`${Mt}+${Wt}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",Jt].join("|"),"g");const Qt=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),Gt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Xt(e,t){if(void 0===t){const t=Qt(e)?function(e){return e.match(Yt)}(e):function(e){return e.match(Gt)}(e);return t||[]}return e.match(t)||[]}function er(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:er(e)))}`;if(se.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const tr=jt("toUpperCase"),rr=jt("toLowerCase");var nr={toString:er,startCase:e=>Xt(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+tr(t)),""),snakeCase:e=>Xt(er(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>Xt(er(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>Xt(er(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?tr(t):t))),""),upperCase:e=>Xt(er(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:tr,lowerCase:e=>Xt(er(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:rr,splitOnFirst:(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===e||""===t)return[];const r=e.indexOf(t);return-1===r?[]:[e.slice(0,r),e.slice(r+t.length)]},parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{let n=e;return e&&"string"==typeof e?(t&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?n=Number(e):!r||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(n="true"===e.toLowerCase()),n):n},replace:(e,t)=>{if(!e)return e;if(!t)return e;let r=e;return((Array.isArray(t)?t:[t])||[]).forEach((e=>{e.key&&e.value&&(r=r.replace(new RegExp(e.key,e.flag||""),e.value))})),r},jsonFormat:e=>{try{if(!e)return"";const t=JSON.parse(e);return JSON.stringify(t,null,2)}catch(t){return e}},toLines:(e,t="\n")=>e?e.split(t).map((e=>e.trim())).filter((e=>!!e)):[]};var sr={logString:e=>{try{const t=JSON.stringify(e);return void 0===t?"":ft.encode(t,Qe.hex2str(ft.TEAKey))}catch(e){return""}},logParse:e=>{try{if(!e)return"";const t=ft.decode(e,Qe.hex2str(ft.TEAKey));return nr.jsonFormat(t)}catch(e){return""}},logRString:async e=>{try{const t=JSON.stringify(e);if(void 0===t)return"";return se.isBrowser?await st.encode(t):await rt.encode(t)}catch(e){return""}},logRParse:async e=>{try{if(!e)return"";const t=se.isBrowser?await st.decode(e):await rt.decode(e);return nr.jsonFormat(t)}catch(e){return""}}};const ir=(e,t,r)=>e*(1-r)+t*r,or=(e,t,r)=>e===t?0:(r-e)/(t-e),ar=(e,t,r)=>({x:ir(e.x,t.x,r),y:ir(e.y,t.y,r)}),cr=(e,t,r,n)=>{const s=ar(e,t,n),i=ar(t,r,n);return ar(s,i,n)},lr=(e,t)=>{if(1===e.length)return e[0];const r=[];for(let n=0;n<e.length-1;n++)r.push({x:(1-t)*e[n].x+t*e[n+1].x,y:(1-t)*e[n].y+t*e[n+1].y});return lr(r,t)},ur=(e,t)=>{if(0===t||t===e)return 1;let r=1;for(let n=1;n<=t;n++)r=r*(e-n+1)/n;return r};var fr={bezier1:ar,bezier2:cr,bezier3:(e,t,r,n,s)=>{const i=cr(e,t,r,s),o=cr(t,r,n,s);return ar(i,o,s)},bezier:lr,bezierCurve:(e,t)=>{const r=e.length-1;let n=0,s=0;for(let i=0;i<=r;i++){const o=ur(r,i)*Math.pow(1-t,r-i)*Math.pow(t,i);n+=o*e[i].x,s+=o*e[i].y}return{x:n,y:s}},lerp:ir,lerpAverage:(e,t,r="")=>{if(e.length<=0)return 0;if(1===e.length)return e[0].x;if(2===e.length)return ir(e[0].y,e[1].y,.5);const n=[],s=e.slice().sort(((e,t)=>e.x-t.x)),i=s.length,o=s[0].x,a=s[i-1].x;for(let e=o;e<=a;e+=t){let t=0;for(let n=0;n<i-1;n++){const i=s[n],o=s[n+1];if(e>=i.x&&e<=o.x){if("lerp"===r){const r=or(i.x,o.x,e);t=ar(i,o,r).y}else t=i.y;break}}e>s[i-1].x&&(t=s[i-1].y),n.push(t)}return n.reduce(((e,t)=>e+t),0)/n.length},proportion:or};var hr={anySuccess:async e=>await Promise.any(e.map((e=>e?e?.then((e=>!!e||Promise.reject())):Promise.reject()))).catch((()=>!1))};var dr={...ke,...sr,...fr,...hr,sleep:ke.delay,run:async function(e,t=0){if(t<=0)return ke.safeRun(e);const r=t>0?Date.now():0,n=await ke.safeRun(e),s=Date.now()-r;return s<t&&await ke.delay(t-s),n},exec:(e,t="")=>Ee.I.exec(e,t),debounce:be,throttle:function(e,t=300,r={}){let n=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return se.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),be(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new _e(e),mutex:function(e){var t=null;return async function(...r){if((t=this||t||{}).__ddMutex)return!1;t.__ddMutex=!0;try{e&&await Promise.resolve(e.apply(this,r))}catch(e){console.log(e)}finally{t.__ddMutex=!1}}},polling:async function(e={}){const{func:t,interval:r=100,times:n=1e3}=e;let s=n;const i=r<1?100:r;do{if(!t)break;const[e,r]=await ke.to(Promise.resolve(t()));if(e||!1===r)break;s>0&&s--,0!==s&&await ke.delay(i)}while(-1===n||s>0)},pipe:(e,t)=>Ee.I.pipeline.push(e,t),pipeline:(e=1)=>new Ce(e),safeTask:(e,t)=>new je(e,t),pipeAsync:e=>Ee.I.pipeline.exec(e),runAsync:async(e,t={pipe:!1,mutex:""})=>{let r;r=t.pipe?Ee.I.pipeline.exec(e):Ee.I.exec(e,t.mutex||"");const[n,s]=await r;if(!n)return s}};const pr=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=pr(e[r]));return t};const gr=(e,t,r={})=>{const n=e||{},{ignoreUndefined:s=!0,cover:i=!1}=r;if(!t)return n;for(const o in t){if(!t.hasOwnProperty(o))continue;const a=t[o];"object"!=typeof a||"object"!=typeof e[o]||i?s&&void 0===a||r.ignoreNull&&null===a||r.ignoreZero&&0===a||r.ignoreEmptyArray&&Array.isArray(a)&&a.length<=0||r.ignoreEmptyString&&"string"==typeof a&&""===a.trim()||(n[o]=a):n[o]=yr(e[o],a,r)}return n},yr=(e,t,r={})=>{let n={};return n=e&&"object"==typeof e&&!Array.isArray(e)?gr(e,t,r):gr({...e},t,r),n},mr=(e,t,r={})=>gr({...e},t,{cover:!0,...r}),wr=(e,t,r,n,s=!1)=>{if(!e||!t||!r)return;let i=e[t];null!==i&&"object"==typeof i&&s&&Object.keys(i).forEach((e=>{wr(i,e,r,n,s)})),Object.defineProperty(e,t,{configurable:!0,enumerable:!0,set:o=>{r.call(n,o,i),i=o,s&&wr(e,t,r,n,s)},get:()=>i})};var br={copy:(e,t={})=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:i=!0}=t;if((!n||n.length<=0)&&!s)return r;const o={};for(const e in r){if(!r.hasOwnProperty(e))continue;const a=s?i&&e.startsWith("_")?e:nr.camelCase(e):e;if(n.length>0&&!n.includes(e)&&!n.includes(a))continue;const c=r[e];t.ignoreNull&&null===c||(t.ignoreZero&&0===c||t.ignoreEmptyArray&&Array.isArray(c)&&c.length<=0||t.ignoreEmptyString&&"string"==typeof c&&""===c.trim()||(o[a]=c))}return o},clone:pr,merge:yr,isEmpty:e=>0!==e&&(!e||"object"==typeof e&&(Array.isArray(e)?!e.length:Object.keys(e).length<=0)),parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{if(!e&&"object"!=typeof e)return e;for(const[n,s]of Object.entries(e))if("object"==typeof s&&null!==s)for(const[e,n]of Object.entries(s))s[e]=nr.parseValue(n,{number:t,boolean:r});else e[n]=nr.parseValue(s,{number:t,boolean:r});return e},cloneClass:function(e){return e?"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e)):e},combine:mr,combines:(e,t={})=>{let r={};if(!e||e.length<=0)return r;const{ignoreUndefined:n=!0,ignoreNull:s=!0,ignoreZero:i=!0,ignoreEmptyArray:o=!0,ignoreEmptyString:a=!0,cover:c=!0}=t;return e.forEach((e=>r=mr(r,e,{ignoreUndefined:n,ignoreNull:s,ignoreZero:i,ignoreEmptyArray:o,ignoreEmptyString:a,cover:c}))),r},observe:wr,find:(e,t)=>{if(e&&"object"==typeof e)return Object.entries(e||{}).find((([e,r])=>!(!t||!t(e,r))))}};const _r=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!0,uri:i=!0,parseNumber:o=!1,parseBoolean:a=!1}={}){t=t||"&",r=r||"=";const c={};if("string"!=typeof e||0===e.length)return c;const l=/\+/g,u=n||1e3;let f=(e=e.split(t)).length;u>0&&f>u&&(f=u);for(let t=0;t<f;++t){let n,o,a,u,f=e[t].replace(l,"%20"),h=f.indexOf(r);h>=0?(n=f.substr(0,h),o=f.substr(h+1)):(n=f,o=""),a=i?decodeURIComponent(n):n,u=i?decodeURIComponent(o):o,q.hasOwnProperty.call(c,a)&&s?Array.isArray(c[a])?c[a].push(u):c[a]=[c[a],u]:c[a]=u}return br.parseValue(c,{number:o,boolean:a}),c},vr=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},xr=function(e,t=!0){return t?encodeURIComponent(e):e},Ar=function(e,{cleanZero:t=!1,cleanNull:r=!1,cleanWhitespace:n=!1}={}){return!(!t||0!==e)||(!(!r||null!=e)||!(!n||"string"!=typeof e||""!==e.trim()))},Sr=/^(https?):\/\/([\w.\_\-]+)(?::(\d+))?/,kr=e=>{const t=(e||"").replace(/\\/g,"/").split("?")[0],r=t.match(/[\/]?([\w\_\-]+)[.]?[\w]*[?]?$/),n=r?r[1]:"",s=t.lastIndexOf("/")+1,i=t.substring(s),o=i.lastIndexOf("."),a=i.substring(0,o)||"",c=o>=0?i.substring(o):"";return{route:t.substring(0,s)||"",page:n,name:i,withoutExtension:a,extname:c}},$r=e=>{const t={href:e,url:"",origin:"",protocol:"",host:"",port:"",query:""};if(!e)return t;const r=e.match(Sr);if(!r||r.length<4)return t;const n=r[3]||"",s=e.split("?");return t.url=s[0],t.origin=r[0],t.protocol=`${r[1]}:`,t.host=`${r[2]}${n?":"+n:""}`,t.port=n,t.query=s.length>1?s[1]:"",t},Or=(e,t)=>{if(e===t)return!0;if(!e)return!1;if(!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var jr={parse:_r,stringify:function(e,{sep:t="&",eq:r="=",name:n=null,uri:s=!0,cleanZero:i=!1,cleanNull:o=!1,cleanWhitespace:a=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const c=xr(vr(n),s)+r,l=e[n];return Array.isArray(l)?l.map((function(e){return c+xr(vr(e),s)})).join(t):Ar(l,{cleanZero:i,cleanNull:o,cleanWhitespace:a})?"":c+xr(vr(l),s)})).filter(Boolean).join(t):n?xr(vr(n),s)+r+xr(vr(e),s):""},https:e=>e?e.replace(/^http[s]?/,"https"):e,parseUrl:e=>{const t=$r(e),{origin:r="",url:n="",query:s=""}=t,i=kr(n),o=_r(s,{multiple:!0,uri:!1});return{...t,...i,pathname:n.substring(n.indexOf(r||"")+r.length),params:o}},parsePath:kr,parseHost:$r,join:(...e)=>{const t=[];let r=!1;return e.forEach((e=>{const n=e.trim();if(""===n)return;if(/^(\w+):\/\//.test(n))return t.length=0,t.push(n),void(r=!0);n.split("/").forEach((e=>{"."!==e&&""!==e&&(".."===e?t.length>0&&".."!==t[t.length-1]?t.pop():r||t.push(".."):t.push(e))}))})),t.join("/")},urlJoin:(...e)=>{if(0===e.length)return"";const t=e.filter((e=>null!=e&&""!==e)).map((e=>e.trim()));if(0===t.length)return"";if(1===t.length)return t[0];let r="",n="";const s=[];let i=!1,o=!1,a=!1,c=!1,l=!1;for(let e=0;e<t.length;e++){let u=t[e];if(!i){const e=u.match(/^([a-zA_Z][a-zA-Z\d+\-.]*):\/\/([^/#?]+)/i);if(e)r=e[1].toLowerCase(),n=e[2],i=!0,c="file"===r,u=u.slice(e[0].length),u.startsWith("/")&&(o=!0);else{const e=u.match(/^file:(\/\/)?\/?/i);e&&e[0]&&(r="file",i=!0,c=!0,n="",u=u.slice(e[0].length),(u.startsWith("/")||e[0].includes("/"))&&(o=!0))}}if(0!==e||i||(u.startsWith("/")?o=!0:(u.startsWith("./")||u.startsWith("../"))&&(a=!0)),c&&!l){const e=u.match(/^([a-zA-Z]:)/);e&&(l=!0,0===s.length&&(s.push(e[1]),u=u.slice(e[1].length)))}if(!u)continue;const f=u.split("/").filter((e=>""!==e&&"."!==e));for(const e of f)if(c&&!l&&e.match(/^[a-zA-Z]:$/))l=!0,s.push(e);else if(".."===e)if(s.length>0&&".."!==s[s.length-1]){if(s[s.length-1].match(/^[a-zA-Z]:$/))continue;s.pop()}else i||o||s.push("..");else s.push(e)}let u=s.join("/");if(o?u="/"+u:!a||u.startsWith("./")||u.startsWith("../")||(u="./"+u),i){let e=u;return c?(l?(e.match(/^\/?[a-zA-Z]:/)||(e="/"+e),e=e.replace(/^(\/?[a-zA-Z]:)([^/]|$)/,"$1/$2")):e&&!e.startsWith("/")&&(e="/"+e),`file://${e}`):(!e||e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||(e="/"+e),`${r}://${n}${e}`)}return u},shExpMatch:Or,isLocalIPAddress:e=>!!e&&!!(Or(e,"127.0.0.1")||Or(e,"localhost")||Or(e,"192.168.*.*")),parseFileUrl:e=>{const t={href:e,file:"",url:"",protocol:"",host:"",query:"",params:{}};if(!e)return t;let r=e?e.replace(/\\/g,"/"):"";r.startsWith("file://")&&!r.startsWith("file:///")?r="file:///"+r.slice(7):r.startsWith("file:/")&&!r.startsWith("file:///")&&(r="file:///"+r.slice(6));const n=r.match(/^file:\/\/(?:([^\/\\]+))?(\/.*)?$/);if(!n||n.length<3)return t;t.protocol="file:";const s=n[1]||"",i=n[2]||"";t.host=s;const o=i.split("?");return t.url=t.protocol+`//${t.host}`+o[0],t.file=o[0],t.query=o.length>1?o[1]:"",t.params=_r(t.query,{multiple:!0,uri:!1}),t},isPrivateIP:e=>!!e&&!!(Or(e,"localhost")||Or(e,"127.0.0.1")||Or(e,"127.*")||Or(e,"10.*")||Or(e,"172.16.*")||Or(e,"172.17.*")||Or(e,"172.18.*")||Or(e,"172.19.*")||Or(e,"172.2?.*")||Or(e,"172.3[0-1].*")||Or(e,"192.168.*")),isIP:e=>{const t=(e||"").trim();return/^(\d+).(\d+).(\d+).(\d+)$/.test(t)}};class Cr{_loopTimer;_event=new v;started=!1;interval=0;constructor(e=0){this.interval=e||500}start(){return this.started||(this.stop(),this._loopTimer=setInterval((()=>{this._handleLoop()}),this.interval),this.started=!0),this}stop(){return this._loopTimer?(clearInterval(this._loopTimer),this._loopTimer=0,this.started=!1,this):this}restart(){return this.stop(),this.start(),this}on(e){return this._event.on("frame",e),this}off(e){return e?(this._event.off("frame",e),this):this}_handleLoop(){this._event.emit("frame")}}var Er={oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};class Pr{date;timestamp=0;yyyy=0;yy="";M=0;MM="";d=0;dd="";h=0;hh="";m=0;mm="";s=0;ss="";S=0;SS="";SSS="";constructor(e){if(!e)return;const t="string"==typeof e||"number"==typeof e?new Date(e):e;t&&(this.date=t,this.timestamp=t.getTime(),this.toDate())}toDate(){return this.date?(this.yyyy=this.date.getFullYear(),this.yy=`${this.yyyy}`.substr(2),this.M=this.date.getMonth()+1,this.MM=(this.M<10?"0":"")+this.M,this.d=this.date.getDate(),this.dd=(this.d<10?"0":"")+this.d,this.h=this.date.getHours(),this.hh=(this.h<10?"0":"")+this.h,this.m=this.date.getMinutes(),this.mm=(this.m<10?"0":"")+this.m,this.s=this.date.getSeconds(),this.ss=(this.s<10?"0":"")+this.s,this.S=this.date.getMilliseconds(),this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this):this}toCountdown(e=""){const t={countdown:0,timestamp:0,seconds:0,d:0,dd:"",h:0,hh:"",m:0,mm:"",s:0,ss:"",S:0,SS:"",SSS:"",desc:""};if(!this.timestamp)return t;t.timestamp=this.timestamp,t.countdown=Math.max(t.timestamp-Date.now(),0),t.seconds=Math.floor(t.countdown/Er.oneSecond);let r=t.countdown;t.d=Math.floor(r/Er.oneDay),t.dd=(t.d<10?"0":"")+t.d,r%=Er.oneDay,t.h=Math.floor(r/Er.oneHour),t.hh=(t.h<10?"0":"")+t.h,r%=Er.oneHour,t.m=Math.floor(r/Er.oneMinute),t.mm=(t.m<10?"0":"")+t.m,r%=Er.oneMinute,t.s=Math.floor(r/Er.oneSecond),t.ss=(t.s<10?"0":"")+t.s,r%=Er.oneSecond,t.S=r,t.SS=(t.S<10?"0":"")+t.S,t.SSS=t.S.toString().padStart(3,"0");let n=e;return n||(n=t.countdown>Er.oneHour?"hh:mm:ss":t.countdown>Er.oneMinute?"mm:ss":"ss"),t.desc=n.replace(/\bdd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>t[e])),t}add(e=0){return e?(this.timestamp=this.timestamp+e,this.date=new Date(this.timestamp),this.toDate(),this):this}format(e="yyyy-MM-dd hh:mm:ss"){return e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}static get timezoneOffset(){return(new Date).getTimezoneOffset()/60}static getLocalTime(e=0){const t=new Date,r=t.getTime(),n=6e4*t.getTimezoneOffset();return new Date(r+n+36e5*e)}}const Tr=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?Lr(e):e;return r?qr(r).format(t):""},qr=e=>{const t="string"==typeof e||"number"==typeof e?Lr(e):e;return new Pr(t||0)};function Br({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:i=0}){const o=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${i}`;return new Date(Tr(Date.now(),o)).getTime()}function Lr(e){if(!e)return;let t;return"string"==typeof e?t=new Date(e):"number"==typeof e&&(t=10==e.toString().length?new Date(1e3*e):new Date(e)),t}var Rr={...Er,now:function(){return qr(new Date)},isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),parseTimestamp:Br,todayZero:()=>Br({}),format:Tr,countdown:(e,t="")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return qr(r).toCountdown(t)},dtime:qr,loopFrame:(e=500)=>new Cr(e),getTimezoneOffset:()=>Pr.timezoneOffset,getLocalTime:Pr.getLocalTime,toDate:Lr};const Fr=e=>qe.toBase64(e);var Ur={encode:Fr,decode:e=>qe.fromBase64(e),encodeByOss:e=>Fr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};var Ir={...m,base64:Ur,tea:ft,uuid:w,guid:(e=0,t=!1,r="")=>{let n="";return n=e<=0?w():_(e||32,"lower"),t?Rr.now().format("yyyyMMddhhmmss")+r+n:n},UUID:b,randomID:_,getHexString:e=>{const t=m.keyChars;let r="";const n=t.length;for(let s=0;s<e;s++)r+=t.charAt(Math.floor(Math.random()*n));return r}};const Dr=(e,t,r=8)=>{if(e===t)return!0;if(null==e||null==t||"object"!=typeof e||"object"!=typeof t)return!1;if(r<=0)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(t))return!1;switch(n){case"[object Array]":return Mr(e,t,r);case"[object Map]":return Kr(e,t,r);case"[object Set]":return zr(e,t,r);case"[object Object]":return Nr(e,t,r);default:return Wr(e,t,n)}},Mr=(e,t,r=1/0)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Dr(e[n],t[n],r-1))return!1;return!0},Kr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const[n,s]of e)if(!t.has(n)||!Dr(s,t.get(n),r-1))return!1;return!0},zr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const n of e)if(![...t].some((e=>Dr(n,e,r-1))))return!1;return!0},Nr=(e,t,r=1/0)=>{const n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(const i of n)if(!s.includes(i)||!Dr(e[i],t[i],r-1))return!1;const i=Object.getOwnPropertySymbols(e),o=Object.getOwnPropertySymbols(t);if(i.length!==o.length)return!1;for(const n of i)if(!o.includes(n)||!Dr(Reflect.get(e,n),Reflect.get(t,n),r-1))return!1;return!0},Wr=(e,t,r)=>{switch(r){case"[object RegExp]":return String(e)===String(t);case"[object Date]":return e.getTime()===t.getTime();case"[object ArrayBuffer]":return Hr(e,t);default:return e===t}},Hr=(e,t)=>{if(e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e),n=new Uint8Array(t);for(let e=0;e<r.length;e++)if(r[e]!==n[e])return!1;return!0};var Vr={isEqual:Dr,isEqualArray:Mr,isEqualObject:Nr,isEqualValue:Wr,isEqualAB:Hr,isEqualDeep:(e,t)=>Dr(e,t,1/0)};const Zr=(e,t=new WeakMap)=>{if(null===e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);let r;if(Array.isArray(e)){r=[],t.set(e,r);for(const n of e)r.push(Zr(n,t))}else if(e instanceof Date)r=new Date(e);else if(e instanceof RegExp)r=new RegExp(e.source,e.flags);else if(e instanceof Map){r=new Map,t.set(e,r);for(const[n,s]of e.entries())r.set(Zr(n,t),Zr(s,t))}else if(e instanceof Set){r=new Set,t.set(e,r);for(const n of e.values())r.add(Zr(n,t))}else if("object"==typeof e){r={},t.set(e,r);for(const[n,s]of Object.entries(e))r[n]=Zr(s,t)}return r};var Jr={copy:(e,t={})=>{if(null==e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r||null===r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:i=!0,...o}=t,a={},c=[{condition:o.ignoreNull,test:e=>null===e},{condition:o.ignoreZero,test:e=>0===e},{condition:o.ignoreEmptyArray,test:e=>Array.isArray(e)&&0===e.length},{condition:o.ignoreEmptyString,test:e=>"string"==typeof e&&""===e.trim()}].filter((e=>e.condition));for(const[e,t]of Object.entries(r)){const r=!s||i&&e.startsWith("_")?e:nr.camelCase(e);n.length>0&&!n.includes(e)&&!n.includes(r)||(c.some((e=>e.test(t)))||(a[r]=t))}return a},clone:Zr,cloneClass:function(e){return null==e||"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}};const Yr=(e,t)=>{if(e===t)return!0;if(!e||!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var Qr={shExpMatch:Yr,shExpMatchs:(e,t)=>{if(!e||!t)return!1;let r=[];if(Array.isArray(t))r=t;else{if("string"!=typeof t)return!1;r=[t]}for(const t of r){if("*"===t)return!0;if(Yr(e,t))return!0}return!1}};const Gr="[object Object]",Xr="[object Array]",en=q.getTag,tn=e=>{if(en(e)!==Gr)return e;const t={};for(const r in e)if(/\w+\.\w+/g.test(r)&&!r.includes("[")){const n=r.split(".");let s=t;for(let e=0;e<n.length-1;e++){const t=n[e];en(s[t])!==Gr&&(s[t]={}),s=s[t]}s[n[n.length-1]]=e[r]}else t[r]=e[r];return t},rn=(e,t,r=!1)=>{if(e===t)return;const n=en(e);if(n===en(t))if(n===Xr&&e.length>=t.length)for(let r=0;r<t.length;r++)rn(e[r],t[r]);else if(n===Gr&&Object.keys(e).length>=Object.keys(t).length)for(const n in t)r||void 0!==e[n]?rn(e[n],t[n]):e[n]=null},nn=(e,t)=>rn(e,t,!0),sn=(e,t,r={},n="",s=!1)=>{if(e===t)return r;const i=en(e),o=en(t);if(i===Xr&&o===i&&e.length>=t.length){for(let s=0;s<e.length;s++)sn(e[s],t[s],r,`${n}[${s}]`,!1);return r}if(i===Gr&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=en(s),c=en(o);if(s!==o)if(a===Xr&&c===a&&s.length>=o.length)for(let e=0;e<s.length;e++)sn(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`,!1);else if(a===Gr&&c===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)sn(s[e],o[e],r,`${n?n+".":""}${i}.${e}`,!1);else null!==s&&(r[`${n?n+".":""}${i}`]=s)}return r}return r[n]=e,r};var on={...Vr,...Jr,...Qr,...{flattenPath:tn,normalizeStructure:nn,diffPath:(e,t)=>{const r=tn(e),n=tn(t);return nn(r,n),sn(r,n)}}};var an={urlAuthA:(e,t=Date.now()+2*Er.oneDay,r="AM3FUIg6Gh8MAtb3XTHB")=>{const n=/^(http:\/\/|https:\/\/)?([^\/?]+)(\/[^?]*)?(\?.*)?$/.exec(e);if(!n)return"";const s=Math.floor(t/1e3);let[,i,o,a,c]=n;i||(i="http://"),a||(a="/"),c||(c="");const l=((e=0)=>_(32,"lower",e))(),u=`${s}-${l}-0-${Je.md5(`${a}-${s}-${l}-0-${r}`)}`;return c?`${i}${o}${a}${c}&auth_key=${u}`:`${i}${o}${a}${c}?auth_key=${u}`}};const cn={...on,...Qe,...Ir,...dr,...nr,...Fe,...Oe,qs:jr,ali:an};var ln={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};function un(e){return e!=e}function fn(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var hn,dn,pn=(hn=Object.keys,dn=Object,function(e){return hn(dn(e))}),gn=Math.max;function yn(e,t){var r=se.isArray(e)||se.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var i in e)!t&&!q.hasOwnProperty.call(e,i)||s&&("length"==i||se.isIndex(i,n))||r.push(i);return r}var mn={...se,...q,...br,...Oe,includes:function(e,t,r,n){e=se.isArrayLike(e)?e:function(e){return e?fn(e,function(e){return se.isArrayLike(e)?yn(e):function(e){if(!se.isPrototype(e))return pn(e);var t=[];for(var r in Object(e))q.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?ge.toInteger(r):0;var s=e.length;return r<0&&(r=gn(s+r,0)),se.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,i=r+(n?1:-1);n?i--:++i<s;)if(t(e[i],i,e))return i;return-1}(e,un,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},forof:(e,t)=>{if(!e)return;let r;if(se.isObject(e)&&(r=se.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};var wn={...{groupBy:function(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})},first:function(e){if(!e)return;return e.length<=0?void 0:e[0]},last:function(e){if(!e)return;const t=e.length;return t<=0?void 0:e[t-1]},toList:function(e){return Array.isArray(e)?e:e?[e]:[]}},stepAction:function(e,t,r=100){if(!se.isFunction(t))return;if(!se.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,i=e.slice(n,s);t&&t(i),n=s}},skip:function(e,t){if(!se.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:function(e,t,r=0){if(!se.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:function(e){return!se.isArray(e)||e.length<=0?[]:[...new Set(e)]},randoms:function(e,t=1,r=!1){const n=e.length||0;return Fe.randoms(n,t,r).map((t=>e[t]))||[]},toKV:(e,t,r)=>{const n={};return t&&r?((e||[]).forEach((e=>{if(!e||!se.isObject(e))return;const s=e[t];(se.isString(s)&&""!==s||se.isNumber(s))&&(n[s]=e[r])})),n):n}};const bn=/%[sdj%]/g;let _n=()=>{};function vn(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function xn(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(bn,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function An(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function Sn(e,t,r){let n=0;const s=e.length;!function i(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<s?t(e[a],i):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(_n=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class kn extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function $n(e,t,r,n,s){if(t.first){const t=new Promise(((t,i)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);Sn(o,r,(e=>(n(e),e.length?i(new kn(e,vn(e))):t(s))))}));return t.catch((e=>e)),t}const i=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let c=0;const l=[],u=new Promise(((t,u)=>{const f=e=>{if(l.push.apply(l,e),c++,c===a)return n(l),l.length?u(new kn(l,vn(l))):t(s)};o.length||(n(l),t(s)),o.forEach((t=>{const n=e[t];-1!==i.indexOf(t)?Sn(n,r,f):function(e,t,r){const n=[];let s=0;const i=e.length;function o(e){n.push(...e||[]),s++,s===i&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return u.catch((e=>e)),u}function On(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function jn(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const Cn=(e,t,r,n,s,i)=>{!e.required||r.hasOwnProperty(e.field||"")&&!An(t,i||e.type)||n.push(xn(s.messages.required,e.fullField))};let En;const Pn=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,Tn=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,qn={integer:e=>qn.number(e)&&parseInt(e,10)===e,float:e=>qn.number(e)&&!qn.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!qn.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Pn),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(En)return En;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),i=new RegExp(`(?:^${r}$)|(?:^${s}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),c=e=>e&&e.exact?i:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");c.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),c.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const l=c.v4().source,u=c.v6().source;return En=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${u}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),En})()),hex:e=>"string"==typeof e&&!!e.match(Tn)},Bn="enum";var Ln={required:Cn,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(xn(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void Cn(e,t,r,n,s);const i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?qn[i](t)||n.push(xn(s.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&n.push(xn(s.messages.types[i],e.fullField,e.type))},range:(e,t,r,n,s)=>{const i="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,u="";const f="number"==typeof t,h="string"==typeof t,d=Array.isArray(t);if(f?u="number":h?u="string":d&&(u="array"),!u)return!1;d&&(l=t.length),h&&(l=t.replace(c,"_").length),i?l!==e.len&&n.push(xn(s.messages[u].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(xn(s.messages[u].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(xn(s.messages[u].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(xn(s.messages[u].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[Bn]=Array.isArray(e[Bn])?e[Bn]:[],-1===e[Bn].indexOf(t)&&n.push(xn(s.messages[Bn],e.fullField,e[Bn].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(xn(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(xn(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Rn=(e,t,r,n,s)=>{const i=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t,i)&&!e.required)return r();Ln.required(e,t,n,o,s,i),An(t,i)||Ln.type(e,t,n,o,s)}r(o)};var Fn={string:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(An(t,"string")&&!e.required)return r();Ln.required(e,t,n,i,s,"string"),An(t,"string")||(Ln.type(e,t,n,i,s),Ln.range(e,t,n,i,s),Ln.pattern(e,t,n,i,s),!0===e.whitespace&&Ln.whitespace(e,t,n,i,s))}r(i)},method:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t)&&!e.required)return r();Ln.required(e,t,n,i,s),void 0!==t&&Ln.type(e,t,n,i,s)}r(i)},number:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),An(t)&&!e.required)return r();Ln.required(e,t,n,i,s),void 0!==t&&(Ln.type(e,t,n,i,s),Ln.range(e,t,n,i,s))}r(i)},boolean:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t)&&!e.required)return r();Ln.required(e,t,n,i,s),void 0!==t&&Ln.type(e,t,n,i,s)}r(i)},regexp:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t)&&!e.required)return r();Ln.required(e,t,n,i,s),An(t)||Ln.type(e,t,n,i,s)}r(i)},integer:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t)&&!e.required)return r();Ln.required(e,t,n,i,s),void 0!==t&&(Ln.type(e,t,n,i,s),Ln.range(e,t,n,i,s))}r(i)},float:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t)&&!e.required)return r();Ln.required(e,t,n,i,s),void 0!==t&&(Ln.type(e,t,n,i,s),Ln.range(e,t,n,i,s))}r(i)},array:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Ln.required(e,t,n,i,s,"array"),null!=t&&(Ln.type(e,t,n,i,s),Ln.range(e,t,n,i,s))}r(i)},object:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t)&&!e.required)return r();Ln.required(e,t,n,i,s),void 0!==t&&Ln.type(e,t,n,i,s)}r(i)},enum:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t)&&!e.required)return r();Ln.required(e,t,n,i,s),void 0!==t&&Ln.enum(e,t,n,i,s)}r(i)},pattern:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t,"string")&&!e.required)return r();Ln.required(e,t,n,i,s),An(t,"string")||Ln.pattern(e,t,n,i,s)}r(i)},date:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t,"date")&&!e.required)return r();if(Ln.required(e,t,n,i,s),!An(t,"date")){let r;r=t instanceof Date?t:new Date(t),Ln.type(e,r,n,i,s),r&&Ln.range(e,r.getTime(),n,i,s)}}r(i)},url:Rn,hex:Rn,email:Rn,required:(e,t,r,n,s)=>{const i=[],o=Array.isArray(t)?"array":typeof t;Ln.required(e,t,n,i,s,o),r(i)},any:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(An(t)&&!e.required)return r();Ln.required(e,t,n,i,s)}r(i)}};function Un(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const In=Un();class Dn{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Fn[e]=t};static warning=_n;static messages=In;static validators=Fn;rules={};_messages=In;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=jn(Un(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,i=r;if("function"==typeof s&&(i=s,s={}),!this.rules||0===Object.keys(this.rules).length)return i&&i(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===In&&(e=Un()),jn(e,s.messages),s.messages=e}else s.messages=this.messages();const o={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let i=r;"function"==typeof i.transform&&(n===e&&(n={...n}),s=n[t]=i.transform(s)),i="function"==typeof i?{validator:i}:{...i},i.validator=this.getValidationMethod(i),i.validator&&(i.field=t,i.fullField=i.fullField||t,i.type=this.getType(i),o[t]=o[t]||[],o[t].push({rule:i,value:s,source:n,field:t}))}))}));const a={};return $n(o,s,((e,t)=>{const r=e.rule;let i,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function c(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function l(i=[]){let l=Array.isArray(i)?i:[i];!0===s.suppressWarning&&l.length&&Dn.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let u=l.map(On(r,n));if(s.first&&u.length)return a[r.field]=1,t(u);if(o){if(r.required&&!e.value)return void 0!==r.message?u=[].concat(r.message).map(On(r,n)):s.error&&(u=[s.error(r,xn(s.messages.required,r.field))]),t(u);let i={};r.defaultField&&Object.keys(e.value).map((e=>{i[e]=r.defaultField})),i={...i,...e.rule.fields};const o={};Object.keys(i).forEach((e=>{const t=i[e],r=Array.isArray(t)?t:[t];o[e]=r.map(c.bind(null,e))}));const a=new Dn(o);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];u&&u.length&&r.push(...u),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(u)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)i=r.asyncValidator(r,e.value,l,e.source,s);else if(r.validator){try{i=r.validator(r,e.value,l,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===i?l():!1===i?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):i instanceof Array?l(i):i instanceof Error&&l(i.message)}i&&i.then&&i.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=vn(t),i(t,r)):i(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Fn.hasOwnProperty(e.type))throw new Error(xn("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Fn.required:Fn[this.getType(e)]||void 0}}function Mn(e){return new Dn(e)}var Kn={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Mn,validate:function(e,t,r={},n=(()=>{})){return dr.run(Mn(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};var zn={stringify:function(e){try{if(!(e instanceof Map))return;return JSON.stringify([...e.entries()])}catch(e){return}},parse:function(e){try{if("string"!=typeof e)return;const t=JSON.parse(e);if(!Array.isArray(t))return;return new Map(t)}catch(e){return}},deepStringify:function e(t){try{if(!(t instanceof Map))return;const r=[...t.entries()].map((([t,r])=>r instanceof Map?[t,JSON.parse(e(r))]:r instanceof Set?[t,[...r]]:[t,r]));return JSON.stringify(r)}catch(e){return}},deepParse:function e(t){try{if("string"!=typeof t)return;const r=JSON.parse(t);if(!Array.isArray(r))return;return new Map(r.map((([t,r])=>{if(Array.isArray(r)&&r.every((e=>Array.isArray(e)&&2===e.length))){return[t,e(JSON.stringify(r))]}return[t,r]})))}catch(e){return}}};const Nn={gbk:ln,math:Fe,list:wn,string:nr,time:Rr,obj:br,rule:Kn,regex:{pattern:{num:"0-9",zh:"一-龥",en:"A-Za-z"},regex:(e,t)=>new RegExp(e,t),entire:{chinese:/^[\u4E00-\u9FA5]+$/,real:/^(\-|\+)?\d+(\.\d+)?$/,cssReal:/^(\-|\+)?\d*(\.)?\d+$/,id:/^[A-Za-z0-9]+$/,yyyyMMdd:/^(\d{4})-?(\d{2})-?(\d{2})$/}},...Qe,...Ir,...mn,Event:v,map:zn},Wn="[object Object]",Hn="[object Array]",Vn=e=>Object.prototype.toString.call(e),Zn=(e,t,r=!1)=>{if(e===t)return;const n=Vn(e);if(n===Vn(t))if(n===Hn&&e.length>=t.length)for(let r=0;r<t.length;r++)Zn(e[r],t[r]);else if(n===Wn&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?Zn(e[n],t[n]):e[n]=null},Jn=(e,t,r,n="",s=!1)=>{if(e===t)return;const i=Vn(e),o=Vn(t);if(i===Hn&&o===i&&e.length>=t.length)for(let s=0;s<e.length;s++)Jn(e[s],t[s],r,`${n}[${s}]`);else if(i===Wn&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=Vn(s),c=Vn(o);if(s!==o)if(a===Hn&&c===a&&s.length>=o.length)for(let e=0;e<s.length;e++)Jn(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`);else if(a===Wn&&c===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)Jn(s[e],o[e],r,`${n?n+".":""}${i}.${e}`);else r[`${n?n+".":""}${i}`]=s}}else r[n]=e};class Yn{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class Qn{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new Yn,response:new Yn};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:i}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=i}static blockId="blockid";static requestLock={};lockR(e,t){Qn.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete Qn.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=br.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let i;try{if("block"===n.model)this.lockR(Qn.blockId,(()=>this._fetch(s,n.hasEncrypt))),i=await Qn.requestLock[Qn.blockId].request;else if(Qn.requestLock[Qn.blockId]&&Qn.requestLock[Qn.blockId].lock&&await Qn.requestLock[Qn.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),Qn.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),i=await Qn.requestLock[e].request,this.unlockR(e)}else i=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:i,config:r,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const Gn=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var Xn={diff:function(e,t){const r={};return(e=>{if(Vn(e)===Wn)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];Vn(n[t])!==Wn&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),Zn(e,t,!0),Jn(e,t,r,"",!0),r},promixify:Gn,run:(e,t={})=>e?dr.run(Gn(e)(t)):dr.run(e),formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:Qn,setWatcher:e=>{let t=e.data,r=e.watch;Object.keys(r).forEach((n=>{let s=t,i=n.split(".");for(let e=0;e<i.length-1;e++)s=s[i[e]];let o=i[i.length-1],a=r[n].handler||r[n],c=r[n].deep;br.observe(s,o,a,e,c)}))}};const es=e=>{if(!e)return"";if(!mn.isObject(e))return"";let t="";return mn.forof(e,((e,r)=>{r&&(t+=`${nr.kebabCase(e)}:${r};`)})),t},ts=["display","position","top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","fontSize","textAlign","fontFamily","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius","background","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","color","overflow","opacity","flexDirection","justifyContent","alignItems","flexWrap","alignContent","alignSelf","flex","flexBasis","flexFlow","flexShrink","pointerEvents"],rs=["top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius"],ns=(e,t="px")=>e&&t?"0"===e?e:Kn.isFloat(e.toString())?`${e}${t}`:e:e;var ss={stringify:es,parse:(e,{camel:t=!1,pure:r=!0}={})=>{if(!e.trim())return;const n=jr.parse(e,{sep:";",eq:":",uri:!1}),s={};return mn.forof(n,((e,n)=>{if(!n)return;const i=t?r&&e.startsWith("_")?e:nr.camelCase(e):e;Kn.isFloat(n)||n.length>=2&&n.startsWith(".")&&Kn.isNumber(n.substr(1))?s[i]=+n:s[i]=n})),s},fixValue:ns,style:(e,t="px")=>{if(!e)return"";const r=mn.copy(e,{fields:ts});mn.forof(r,((e,n)=>{(rs.includes(e)||rs.includes(nr.camelCase(e)))&&(r[e]=ns(n,t))}));return es(r)},commonFields:ts};const is=(e,t="",r=!1)=>{try{if(!e)return;const n=jr.parseUrl(e),s=t||n.name;if(!t||!r||!n.origin||n.origin===window.location.origin)((e,t)=>{try{const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}catch(t){console.error(`[ddan] _downloadUrl ${e}`,t)}})(e,s);else{const t=n.params;t.t=Date.now();const r=`${n.url}?${jr.stringify(t,{uri:!1})}`,i=new XMLHttpRequest;i.open("GET",r,!0),i.responseType="blob",i.onload=function(){os(i.response,s)},i.onerror=function(t){console.error(`[ddan] downloadUrl ${e}`,t)},i.send()}}catch(t){console.error(`[ddan] downloadUrl ${e}`,t)}},os=(e,t="")=>{try{if(!e)return;const r=URL?.createObjectURL(e);if(!r)return;is(r,t),URL?.revokeObjectURL(r)}catch(e){console.error("[ddan] downloadFile",e)}},as=e=>{try{const t=document.createElement("textarea");document.body.appendChild(t),t.style.position="fixed",t.style.clip="rect(0 0 0 0)",t.style.top="10px",t.style.opacity="0",t.value=e??"",t.select();const r=document.execCommand("copy");return document.body.removeChild(t),r}catch(e){return console.error("[ddan] copyText",e),!1}},cs=(e,t="denied")=>new Promise((r=>{const n=navigator?.permissions;if(!n||!n.query)return r(t);const s={name:e};n.query(s).then((e=>r(e.state))).catch((()=>r(t)))})),ls=(e,t=!0)=>!(!t||"prompt"!==e)||"granted"===e,us=(e,t)=>{if(!e||!t)return[];const r=[];let n;for(;null!==(n=t.exec(e));)r.push(n[1]);return r},fs=(e,t="application/javascript")=>{const r=new Blob([e],{type:t});return URL.createObjectURL(r)};var hs={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),i=s.length,o=new Uint8Array(i);for(;i--;)o[i]=s.charCodeAt(i);return new File([o],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,i=new Uint8Array(s);for(;s--;)i[s]=n.charCodeAt(s);return new Blob([i],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadUrl:is,download:(e,t="")=>{e&&("string"!=typeof e?os(e,t):is(e,t))},downloadFile:os,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();is(s,t)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.error("[ddan] downloadImage",e)}return Promise.resolve()},watermark:(e,{width:t=400,height:r=300,angle:n=0,fillStyle:s="rgba(0, 0, 0, 0.2)",font:i="16px Arial",textAlign:o="left",textBaseline:a="middle"}={})=>{try{if(!e)return"";const c=document.createElement("canvas");c.width=t,c.height=r;const l=c.getContext("2d");return l?(n&&l.rotate(n*Math.PI/180),s&&(l.fillStyle=s),i&&(l.font=i),o&&(l.textAlign=o),a&&(l.textBaseline=a),l.fillText(e,c.width/10,c.height/2),`url(${c.toDataURL()})`):""}catch(e){return console.error("[ddan] watermark",e),""}},copyText:(e,t=!1)=>new Promise((r=>{!t&&navigator.clipboard?cs("clipboard-write").then((t=>{ls(t,!1)?navigator.clipboard.writeText(e).then((()=>r(!0))).catch((()=>r(as(e)))):r(as(e))})).catch((()=>{r(as(e))})):r(as(e))})),queryPermission:cs,isAllowed:ls,legacyCopy:as,takeHtmlLinks:e=>{if(!e)return[];const t=[];return[/<script[^>]+src="([^"]+)"/g,/<link[^>]+rel="stylesheet"[^>]+href="([^"]+)"/g,/<link[^>]+rel="icon"[^>]+href="([^"]+)"/g].forEach((r=>{const n=us(e,r);t.push(n)})),[].concat(...t)},takeHtml:us,toBlobUrl:fs,workerURL:e=>fs(`(${e.toString()})()`,"text/javascript"),getVideoMetadata:(e,t=3e4)=>new Promise(((r,n)=>{let s=null,i=null,o=null;const a=e=>{o&&(clearTimeout(o),o=null),s&&(s.onerror=null,s.onloadedmetadata=null,s.remove(),s=null),i&&(URL.revokeObjectURL(i),i=null),e&&n(e)};try{if(s=document.createElement("video"),o=setTimeout((()=>{a(new Error(`操作超时(${t}ms)`))}),t),e instanceof File||e instanceof Blob||e instanceof MediaSource)i=URL.createObjectURL(e),s.src=i;else{if("string"!=typeof e)throw new Error("无效的视频源类型");s.crossOrigin="anonymous",s.src=e}s.onloadedmetadata=()=>{r({width:s?.videoWidth||0,height:s?.videoHeight||0,duration:s?.duration||0}),a()},s.onerror=()=>{a(new Error(`视频加载失败: ${s?.error?.message||"未知错误"}`))}}catch(e){a(e instanceof Error?e:new Error("未知同步错误"))}})),getImageMetadata:(e,t=5e3)=>new Promise(((r,n)=>{const s=new Image;let i=null,o=null;const a=e=>{o&&(clearTimeout(o),o=null),s.onload=null,s.onerror=null,i&&(URL.revokeObjectURL(i),i=null),e&&n(e)};o=setTimeout((()=>{a(new Error(`图片加载超时(${t}ms)`))}),t),s.onload=()=>{r({width:s.naturalWidth,height:s.naturalHeight}),a()},s.onerror=()=>{a(new Error(`无法加载图片: ${s.src||"未知资源"}`))};try{if(e instanceof File||e instanceof Blob)i=URL.createObjectURL(e),s.src=i;else{if("string"!=typeof e)throw new Error("无效的图片源类型");s.setAttribute("crossOrigin","Anonymous"),s.src=e}}catch(e){e instanceof Error?a(e):a(new Error("未知同步错误"))}}))};const ds=new class{__defStyle="vertical-align: middle; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; -webkit-mask-position: 50% 50%; -webkit-mask-repeat: no-repeat; -webkit-mask-size: 100%; background-color: currentColor;";__map={back:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M609.408 149.376L277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"/></svg>',right:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"/></svg>',home:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 19.8h3.8v-7h3.303L12 4.697 3.897 12.8H7.2v7H11V17h2v2.8zm5 .2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-6H3.414a1 1 0 0 1-.707-1.707l8.586-8.586a1 1 0 0 1 1.414 0l8.586 8.586A1 1 0 0 1 20.586 14H18v6z" fill-rule="evenodd" fill-opacity=".9"/></svg>',close:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M764.288 214.592L512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"/></svg>',close_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M466.752 512l-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',close_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"/></svg>',warning:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M928.99 755.83L574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03 12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49 12.91-20.12 12.92-44.91.01-65.03zM554.67 768h-85.33v-85.33h85.33V768zm0-426.67v298.66h-85.33V341.32l85.33.01z" fill="currentColor"/></svg>',play:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024zm3.008-92.992a416 416 0 1 0 0-832 416 416 0 0 0 0 832zM383.232 287.616l384 224.896-384 223.104v-448z" fill="currentColor"/></svg>',lock:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z"/><path fill="currentColor" d="M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm192-160v-64a192 192 0 1 0-384 0v64h384zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64z"/></svg>',lock_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M467.2 713.92v115.968a44.8 44.8 0 0 0 89.6 0V713.92c26.752-14.72 44.8-42.304 44.8-73.92 0-47.104-40.128-85.312-89.6-85.312-49.472 0-89.6 38.208-89.6 85.312 0 31.616 18.048 59.136 44.8 73.92zM64 384h896v640H64V384zm268.8 0h358.4V256c0-94.272-80.256-170.688-179.2-170.688-98.944 0-179.2 76.416-179.2 170.688v128zM512 0c148.48 0 268.8 114.56 268.8 256v128H243.2V256C243.2 114.56 363.52 0 512 0z" fill="currentColor"/></svg>',plus:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z"/></svg>',plus_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z"/><path fill="currentColor" d="M480 672V352a32 32 0 1 1 64 0v320a32 32 0 0 1-64 0z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',plus_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z"/></svg>',star:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 747.84l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72L512 747.84zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"/></svg>',star_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M283.84 867.84L512 747.776l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z"/></svg>',share:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M679.872 348.8l-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z"/></svg>',love:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M171.712 571.648l.352.32 287.904 252.8a64 64 0 0 0 82.912 1.344l296.832-244.544a215.584 215.584 0 1 0-301.824-300.576L512 316.672l-25.888-35.616a215.584 215.584 0 1 0-314.4 290.624zM32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512l-295.36 243.392a128 128 0 0 1-165.888-2.592L129.984 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>',love_fill:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512L562.592 892.8a96 96 0 0 1-124.416-1.952L130.016 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>'};getBase64=e=>{const t=this.getSVG(e);return t?.url||""};getSVG=e=>{if(!e)return;const t=this.__map[e];if(!t)return;return{url:this.toBase64(t),escape:this.toEscape(t)}};toBase64=e=>{if(!e)return"";const t=this._tiny(e);return`data:image/svg+xml;base64,${Ur.encode(t)}`};_tiny=e=>e?e.replace(/<!--(.*)-->/g,"").replace(/[\r\n]/g," ").replace(/"/g,"'"):"";toEscape=e=>{if(!e)return"";return`data:image/svg+xml,${this._tiny(e).replace(/%/g,"%25").replace(/&/g,"%26").replace(/#/g,"%23").replace(/{/g,"%7B").replace(/}/g,"%7D").replace(/</g,"%3C").replace(/>/g,"%3E")}`};getStyle(e,t={}){if(!e)return"";const r=this.__map[e];return r?this.toStyle(r,t):""}toStyle(e,t={}){if(!e)return"";const r=this.toBase64(e);return r?this.getStyleByUrl(r,t):""}getStyleByUrl(e,t={}){if(!e)return"";const{key:r="mask-image",gradientValue:n="radial-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5))",gradient:s=!1,defStyle:i=this.__defStyle}=t,o=s&&n?`${n}, url("${e}")`:`url("${e}")`;return`${r}:${o};-webkit-${r}:${o};${i}`}},ps={mini:Xn,css:ss,qs:jr,icon:ds,html:hs},gs=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function ys(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function ms(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(mn.isPlainObject(e)){const r=jr.stringify(e),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class ws{host="";reqConfig={};handleError;interceptors={request:new Yn,response:new Yn};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(ms),this.interceptors.response.use(e.handleResponse||ys),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){ws.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete ws.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=mn.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let i;if(delete s.options.plugins,"block"===r.model)this.lockR(ws.blockId,(()=>gs(s))),i=await ws.requestLock[ws.blockId].request;else if(ws.requestLock[ws.blockId]&&ws.requestLock[ws.blockId].lock&&await ws.requestLock[ws.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),ws.requestLock[e]||this.lockR(e,(()=>gs(s))),i=await ws.requestLock[e].request,this.unlockR(e)}else i=await gs(s);return this.interceptors.response.invoke({response:i,config:r,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}var bs={getDataURL:(e,t)=>{const r={contentType:"",dataUrl:""};return ke.to(fetch(e,{cache:t}).then((e=>(r.contentType=e.headers.get("content-type")||"",e.arrayBuffer()))).then((e=>(r.dataUrl=`data:${r.contentType};base64,`+Qe.ab2str(e,!0),r))))},getArrayBuffer:async(e,t)=>ke.to(fetch(e,{cache:t}).then((e=>e.arrayBuffer()))),getJson:async(e,t)=>ke.to(fetch(e,{cache:t}).then((e=>e.json()))),download:(e,t={})=>new Promise((r=>fetch(e).then((async e=>{if(!e.ok||200!==e.status)throw new Error(e.statusText);const n=+(e.headers.get("content-length")||""),s=e.body?.getReader();let i=0;const o=[];for(;;){const{done:e,value:r}=await s.read();if(e)break;o.push(r),i+=r.length;const a=Fe.float(100*i/n,{digits:2});t?.progress&&t?.progress(a,i,n)}const a=new Uint8Array(i);let c=0;for(const e of o)a.set(e,c),c+=e.length;t?.success&&t?.success(a),r(a)})).catch((e=>{t?.fail&&t?.fail(e),r(void 0)})))),getText:async(e,t)=>ke.to(fetch(e,{cache:t}).then((e=>e.text()))),cache:async(e,t="no-cache")=>ke.to(fetch(e,{cache:t}).then((()=>!0)))};class _s{publicKey="";privateKey="";iv="";__privateCryptoKey;__sharedSecret;__curve;__keyFormat;__subtle;constructor(e="P-256",t="raw"){this.__curve=e,this.__keyFormat=t||"raw","undefined"!=typeof window?this.__subtle=window.crypto.subtle:this.__subtle={}}async generateKeys(){const e=await this.__subtle.generateKey({name:"ECDH",namedCurve:this.__curve},!0,["deriveKey","deriveBits"]);return this.__privateCryptoKey=e.privateKey,this.publicKey=await this.exportKey(e.publicKey),this.privateKey=await this.exportKey(e.privateKey,"pkcs8"),this}async exportKey(e,t="raw"){const r=await this.__subtle.exportKey(t||this.__keyFormat,e);return Qe.ab2str(r,!0)}async importKey(e,t="raw",r=[]){const n=Qe.base64ToBytes(e);return await this.__subtle.importKey(t||this.__keyFormat||"raw",n,{name:"ECDH",namedCurve:this.__curve},!0,r)}async setPrivateKey(e){if(!e)return!1;const t=await this.importKey(e,"pkcs8",["deriveKey","deriveBits"]);return this.privateKey=await this.exportKey(t,"pkcs8"),this.__privateCryptoKey=t,!0}async deriveSharedSecret(e,t){if(!this.__privateCryptoKey)return!1;const r=await this.importKey(e),n=await this.__subtle.deriveKey({name:"ECDH",public:r},this.__privateCryptoKey,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]);return this.__sharedSecret=n,this.iv=t||"",!0}async encode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=Qe.base64ToBytes(r),s=Qe.textEncode(e),i=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s);return Qe.ab2str(i,!0)}async encodeiv(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv,n=r?Qe.base64ToBytes(r):Qe.getRandomBytes(12),s=Qe.textEncode(e),i=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s),o=Qe.concatBytes(new Uint8Array(i),n);return Qe.bytesToBase64(o)}async decode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=Qe.base64ToBytes(e),s=Qe.base64ToBytes(r),i=await this.__subtle.decrypt({name:"AES-GCM",iv:s},this.__sharedSecret,n);return Qe.textDecode(i)}async decodeiv(e){if(!this.__sharedSecret)return"";const t=Qe.base64ToBytes(e);if(t.length<12)return"";const r=t.slice(t.length-12),n=t.slice(0,t.length-12),s=await this.__subtle.decrypt({name:"AES-GCM",iv:r},this.__sharedSecret,n);return Qe.textDecode(s)}}const vs={fetch:bs,Http:ws,css:ss,qs:jr,icon:ds,html:hs,rsa:st,...{Ecdh:_s}};var xs={brotliCompress:function(e,t=u.default.constants.BROTLI_DEFAULT_QUALITY){try{if(!e)return"";const r=Qe.toUtf8Bytes(e);return u.default.brotliCompressSync(r,{params:{[u.default.constants.BROTLI_PARAM_QUALITY]:t}}).toString("base64")}catch(t){return e||""}},brotliDecompress:function(e){try{if(!e)return"";const t=Qe.base64ToBytes(e);return u.default.brotliDecompressSync(t).toString("utf-8")}catch(t){return e||""}}};var As={child_exec:e=>new Promise((t=>{if(!e)return t([null,""]);i.exec(e,((e,r)=>{t(e?[e,""]:[null,r||""])}))})),childExec:(e,t=0)=>new Promise((r=>{if(!e)return r({error:null,stdout:"",stderr:""});i.exec(e,{encoding:"utf-8",timeout:t},((e,t,n)=>{r({error:e??null,stdout:t?.trim()||"",stderr:n?.trim()||""})}))}))};const Ss=()=>{try{return"win32"===process.platform?ks():"darwin"===process.platform?$s():"linux"===process.platform?Os():void 0}catch(e){return}},ks=async()=>{do{const[e,t]=await As.child_exec('reg query "HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"');if(e)break;const r=t.split("\n").find((e=>e.includes("ProxyEnable")));if(!(r&&r.trim().endsWith("1")))break;const n=t.split("\n").find((e=>e.includes("ProxyServer"))),s=n?n.split(" ").filter(Boolean).pop():"";if(!s)break;const i=s.split(":");if(i.length<=1)break;const o=i[0],a=+(i[1]||"");if(!o||!a)break;return{ipaddress:o,port:a}}while(0)},$s=async()=>{do{const[e,t]=await As.child_exec('networksetup -getwebproxy "Wi-Fi"');if(e)break;const r=t.split("\n"),n=r.find((e=>e.includes("Enabled")));if(!(n&&n.includes("Yes")))break;const s=r.find((e=>e.includes("Server"))),i=r.find((e=>e.includes("Port"))),o=s?s.split(":")[1]?.trim():null,a=+((i?i.split(":")[1]?.trim():null)||"");if(!o||!a)break;return{ipaddress:o,port:a}}while(0)},Os=async()=>{do{const[e,t]=await As.child_exec("env | grep https_proxy");if(e)break;const r=(t||"").trim();if(!r)return;const n=r.match(/:\/\/([^:]+):(\d+)/);if(!n)break;const s=n[1],i=+(n[2]||"");if(!s||!i)break;return{ipaddress:s,port:i}}while(0)},js=(e,t=["*"],r="DIRECT",n=[])=>{const s=e||r||"DIRECT",i=r||"DIRECT",o=`\n function FindProxyForURL(url, host) {\n if (host === "127.0.0.1" || host === "localhost") {\n return "DIRECT";\n }\n\n if (isInNet(host, "10.0.0.0", "255.0.0.0") ||\n isInNet(host, "172.16.0.0", "255.240.0.0") ||\n isInNet(host, "192.168.0.0", "255.255.0.0")) {\n return "DIRECT";\n }\n\n var _rules = ${JSON.stringify(t)};\n var _proxy = "${s}";\n var _default = "${i}";\n var _directs = ${JSON.stringify(n)};\n\n for (var i = 0; i < _rules.length; i++) {\n if (shExpMatch(host, _rules[i])) {\n return _proxy;\n }\n }\n\n for (var j = 0; j < _directs.length; j++) {\n if (shExpMatch(host, _directs[j])) {\n return "DIRECT";\n }\n }\n\n return _default;\n }\n `;return Qe.toDataUrl(o,"application/x-ns-proxy-autoconfig")},Cs=(e,t,r)=>{if(!e||!t)return"";const{type:n="ALL",direct:s=!1}=r||{};let i="";switch(n?n.toUpperCase():""){case"ALL":i=`SOCKS5 ${e}:${t};PROXY ${e}:${t}`;break;case"PROXY":i=`PROXY ${e}:${t}`;break;case"SOCKS5":i=`SOCKS5 ${e}:${t}`}if(!i&&!s)return"";const o=[];return i&&o.push(i),s&&o.push("DIRECT"),o.join(";")};var Es={getSystemProxy:Ss,toPacScript:js,toPacProxy:Cs,pacScript:async(e,t,r)=>{const{type:n="SOCKS5",rules:s=["*"],useSystem:i}=r||{},o=Cs(e,t,{type:n});if(!o)return"";let a;if(i){const e=await Ss();e&&(a=Cs(e?.ipaddress||"",e?.port||0,{direct:!0}))}return js(o,s||[],a)},getPacScript:async e=>{const{type:t="SOCKS5",rules:r=["*"],useSystem:n,address:s="",port:i=0,directs:o=[]}=e||{},a=Cs(s,i,{type:t});let c;if(n){const e=await Ss();e&&(c=Cs(e?.ipaddress||"",e?.port||0,{direct:!0}))}return js(a,r||[],c,o)}};const Ps=(e,t)=>new Promise(((r,n)=>{h.default.readdir(e,(async(s,i)=>{if(s)return n(s);r(Ts(e,i,t))}))})),Ts=async(e,t,r)=>{for(let n of t){const t=d.default.join(e,n);h.default.lstatSync(t).isDirectory()?await Ps(`${t}`,r):r&&await r(t)}},qs=(e,t=511)=>{new Promise(((r,n)=>{o.chmod(e,t,(async e=>{e?n(e):r(!0)}))}))};var Bs={readDirectory:Ps,readFiles:Ts,access:async(e,t=h.default.constants.F_OK)=>{const r=e?.trim()||"";return!!r&&new Promise((e=>{h.default.access(r,t,(t=>{e(!t)}))}))},chmodFile:qs,chmod755:e=>ke.go((()=>qs(e,511)))};var Ls={findFreePort:async(e,t=200)=>{let r=e,n=0;for(;n<t;)try{return await new Promise(((e,t)=>{const n=f.default.createServer();n.unref(),n.on("error",t),n.listen(r,(()=>{n.close((()=>e()))}))})),r}catch{n++,r++}return 0}},Rs={...Bs,...xs,...As,...Es,...Ls,Ecdh:class{publicKey="";privateKey="";sharedSecret;iv="";__curve;__algorithm;__ecdh;constructor(e="prime256v1",t="aes-256-gcm"){this.__curve=e,this.__algorithm=t,this.generateKeys()}generateKeys(){const e=l.default.createECDH("prime256v1");e.generateKeys(),this.publicKey=e.getPublicKey("base64"),this.privateKey=e.getPrivateKey("base64"),this.__ecdh=e}setPrivateKey(e){return!!e&&(!!this.__ecdh&&(this.__ecdh.setPrivateKey(e,"base64"),this.publicKey=this.__ecdh.getPublicKey("base64"),!0))}setSharedSecret(e){return!!e&&(this.sharedSecret=e,!0)}deriveSharedSecret(e,t){return!!e&&(this.sharedSecret=this.__ecdh.computeSecret(e,"base64").toString("base64"),this.iv=t||"",!0)}encode(e,t){if(!this.sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=Qe.base64ToBytes(r),s=l.default.createCipheriv("aes-256-gcm",Qe.base64ToBytes(this.sharedSecret),n),i=Buffer.concat([new Uint8Array(s.update(e,"utf8")),new Uint8Array(s.final())]),o=s.getAuthTag();return Buffer.concat([new Uint8Array(i),new Uint8Array(o)]).toString("base64")}encodeiv(e,t){if(!this.sharedSecret)return"";const r=t||this.iv,n=r?Qe.base64ToBytes(r):Qe.getRandomBytes(12),s=l.default.createCipheriv("aes-256-gcm",Qe.base64ToBytes(this.sharedSecret),n),i=Buffer.concat([new Uint8Array(s.update(e,"utf8")),new Uint8Array(s.final())]),o=s.getAuthTag();return Buffer.concat([new Uint8Array(i),new Uint8Array(o),n]).toString("base64")}decode(e,t){if(!e||!this.sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=l.default.createDecipheriv("aes-256-gcm",Qe.base64ToBytes(this.sharedSecret),Qe.base64ToBytes(r)),s=Qe.base64ToBytes(e),i=s.slice(s.length-16);n.setAuthTag(i);const o=s.slice(0,s.length-16);return Buffer.concat([new Uint8Array(n.update(o)),new Uint8Array(n.final())]).toString("utf-8")}decodeiv(e){if(!e||!this.sharedSecret)return"";const t=Qe.base64ToBytes(e);if(t.length<28)return"";const r=t.slice(t.length-12),n=t.slice(t.length-28,t.length-12),s=l.default.createDecipheriv("aes-256-gcm",Qe.base64ToBytes(this.sharedSecret),r);s.setAuthTag(n);const i=t.slice(0,t.length-28);return Buffer.concat([new Uint8Array(s.update(i)),new Uint8Array(s.final())]).toString("utf-8")}},EcdhWeb:class extends _s{constructor(e="P-256",t="raw"){super(e,t),this.__subtle=l.default.webcrypto.subtle}},Socks5:class{upstreamProxy;server=null;clientSockets=new Set;systemProxy=null;useSystemProxy=!1;__debug=!1;__uuid;__port=0;__event;__pipeline;__logger;__totalReceived=0;__totalSent=0;__rules=[];constructor(e,t=!1,r){this.__event=new v,this.upstreamProxy=this.filterProxyConfigs(e),this._updateRules(),this.__debug=t,this.__uuid=w(),this.__pipeline=new Ce(1),this.__logger=r||console}get id(){return this.__uuid}get port(){return this.__port}get url(){return this.__port?`socks5://127.0.0.1:${this.__port}`:""}get totalReceived(){return this.__totalReceived}get totalSent(){return this.__totalSent}get rules(){return this.__rules}validateProxyConfig(e){const{ipaddress:t,port:r,userId:n,password:s}=e||{};return t&&"string"==typeof t?r&&"number"==typeof r?n&&"string"==typeof n?s&&"string"==typeof s?"":"无效的上游代理密码":"无效的上游代理用户名":"无效的上游代理端口":"无效的上游代理 IP 地址"}filterProxyConfigs(e){let t=[];t=e&&Array.isArray(e)?e:[e];const r=[];for(const e of t)this.validateProxyConfig(e)||r.push(e);return r}async start(e=8838){if(this.upstreamProxy.length<=0)return 0;if(this.server)return this.__debug&&console.info("[socks5] server is already running"),this.__port;const t=await this.findAvailablePort(e);return t?(this.setupServer(t),t):0}setupServer(e){try{return!!e&&(this.__port=e,this.server=f.default.createServer((e=>this.handleSocksConnection(e))),this.server.listen(e,(()=>{this.__debug&&this.__logger?.info(`[socks5] server is running on port ${e}`)})),this.server.on("error",(e=>{this.__logger?.error("[socks5] server error:",e),this.close()})),this.server.on("close",(()=>{this.__debug&&this.__logger?.info("[socks5] server closed")})),!0)}catch(e){return this.__debug&&this.__logger?.info("[socks5] setupServer error:",e),!1}}restart(){this.__debug&&console.info("[socks5] server restart");const e=this.__port;return!!e&&(this.close(),this.setupServer(e))}setUpstreamProxy(e){if(!e)return!1;const t=this.filterProxyConfigs(e);return!(!t||t.length<=0)&&(this.upstreamProxy=t,this._updateRules(),!0)}setSystemProxy(e,t){this.useSystemProxy=e,e&&t&&t.ipaddress&&t.port&&(this.systemProxy=t)}async findAvailablePort(e,t=200){let r=e,n=0;for(;n<t;)try{return await new Promise(((e,t)=>{const n=f.default.createServer();n.unref(),n.on("error",t),n.listen(r,(()=>{n.close((()=>e()))}))})),r}catch{n++,r++}return this.__debug&&this.__logger?.warn("[socks5] findAvailablePort failed"),0}async handleSocksConnection(e){let t,r="";try{if(!e)return;this.clientSockets.add(e),e.on("close",(()=>{this.clientSockets.delete(e),e?.destroy()})),await this.performHandshake(e);const n=await this.parseClientRequest(e),s=n.addr;if(r=`${s}:${n.port}`,this.__debug&&this.__logger?.info("[socks5] connection",r),t=this.findProxyConfig(s),t){const s=await this.connectToUpstreamProxy(n,t);this.__logger?.info(`[socks5] connection upstream ${r}, use ${t.ipaddress}:${t.port}`),this.setupDataForwarding(e,s,"upstream")}else if(this.useSystemProxy&&this.systemProxy&&!jr.isLocalIPAddress(s)){const t=await this.connectToSystemProxy(n);this.__debug&&console.info("[socks5] connection system",r),this.setupDataForwarding(e,t,"system")}else{this.__debug&&console.info("[socks5] connection local",r);const t=await this.connectToLocal(n);this.setupDataForwarding(e,t,"local")}}catch(n){this.__debug&&this.__logger?.error("[socks5] connection failed:",n),e.end(new Uint8Array([5,1])),this._emit("error",n,r,t)}}performHandshake(e){return new Promise(((t,r)=>{e.once("data",(n=>{if(5!==n[0])return r(new Error("Unsupported SOCKS version"));e.write(new Uint8Array([5,0])),t()}))}))}parseClientRequest(e){return new Promise(((t,r)=>{e.once("data",(e=>{let n,s;if(1!==e[1])return r(new Error("Unsupported command"));if(1===e[3])n=e.slice(4,8).join("."),s=e.readUInt16BE(8);else{if(3!==e[3])return r(new Error("Unsupported address type"));{const t=e[4];n=e.slice(5,5+t).toString(),s=e.readUInt16BE(5+t)}}t({addr:n,port:s})}))}))}async connectToUpstreamProxy(e,t){const r={proxy:{ipaddress:t.ipaddress,port:t.port,type:5,userId:t.userId,password:t.password},command:"connect",destination:{host:e.addr,port:e.port}};try{return await this.connectToProxy(r)}catch(e){throw new Error("Failed to connect to upstream proxy: "+e)}}async connectToSystemProxy(e){const t={proxy:{...this.systemProxy,type:5},command:"connect",destination:{host:e.addr,port:e.port}};try{return await this.connectToProxy(t)}catch(e){throw new Error("Failed to connect to system proxy: "+e)}}async connectToProxy(e){const{socket:t}=await s.SocksClient.createConnection(e);return t}async connectToLocal(e){return new Promise(((t,r)=>{const n=f.default.createConnection(e.port,e.addr,(()=>{t(n)}));n.on("error",(e=>{r(e)}))}))}setupDataForwarding(e,t,r="local"){e.write(new Uint8Array([5,0,0,1,0,0,0,0,0,0])),e.pipe(t),t.pipe(e);const n=`${t.localAddress}:${t.localPort}`;this.__debug&&console.info(`[socks5] setupDataForwarding ${n}`),"upstream"===r&&(t.on("data",(e=>{this.__totalSent+=e.length})),e.on("data",(e=>{this.__totalReceived+=e.length}))),e.on("close",(()=>{this.__debug&&console.info("[socks5] client socket close",n),t.end()})),t.on("close",(()=>{this.__debug&&console.info("[socks5] target socket close",n),e.end()})),e.on("error",(e=>{this.__debug&&console.error("[socks5] client socket error:",e?.message),t.end()})),t.on("error",(t=>{this.__debug&&console.error("[socks5] target socket error:",t?.message),e.end()}))}findProxyConfig(e){if(!jr.isLocalIPAddress(e))for(const t of this.upstreamProxy)if(this.isAllowedDomain(e,t.rules||[]))return t}isAllowedDomain(e,t){if(jr.isLocalIPAddress(e))return!1;if(!t||!Array.isArray(t))return!1;for(const r of t){if("*"===r)return!0;if(jr.shExpMatch(e,r))return!0}return!1}close(){try{if(!this.server)return;this.__debug&&this.__logger?.info("[socks5] closing SOCKS5 proxy server..."),this.server.close((e=>{e&&this.__debug&&this.__logger?.error("[socks5] closing the server failed:",e)})),this.clientSockets.forEach((e=>e?.destroy())),this.clientSockets.clear(),this.server=null,this.__port=0}catch(e){this.__debug&&this.__logger?.error("[socks5] close error:",e)}}on(e,t){e&&t&&(this.__event.off(e,t),this.__event.on(e,t))}off(e,t){e&&this.__event.off(e,t)}resetStatistics(){this.__totalReceived=0,this.__totalSent=0}_emit(e,...t){try{if(!e)return;this.__event.emit(e,...t)}catch(e){}}_updateRules(){this.upstreamProxy&&(this.__rules=wn.distinct(this.upstreamProxy.reduce(((e,t)=>e.concat(t?.rules||[])),[])))}},rsa:rt};const Fs={...Rs};var Us={ossImage:(e,t={})=>{if(!e)return e;const r=jr.parseUrl(e).url;if(t.domain){if(!e.startsWith("http"))return e;const r=wn.toList(t.domain||""),n=e.match(/^http[s]?:\/\/([\w.]+)[\w\W]+/)[1]||"";if(!n||!r.includes(n))return e}const n=[];return t.webp&&!r.endsWith(".gif")&&n.push("format,webp"),t.resize&&n.push(`resize,s_${t.resize}`),t.interlace&&(n.push("interlace,1"),!n.every((e=>!e.startsWith("format")))||r.endsWith(".gif")||r.endsWith(".jpg")||n.push("format,jpg")),n.length<=0?e:`${r}?x-oss-process=image/${n.join("/")}`},ossSnapshot:(e,t={})=>{if(!e)return e;const r=jr.parseUrl(e).url,n=["snapshot"],{m:s="fast",f:i="jpg"}=t;return(t.t||0===t.t)&&n.push(`t_${t.t}`),t.w&&n.push(`w_${t.w}`),t.h&&n.push(`h_${t.h}`),s&&n.push(`m_${s}`),i&&n.push(`f_${i}`),t.ar&&n.push(`ar_${t.ar}`),`${r}?x-oss-process=video/${n.join(",")}`},ossBase64:e=>qe.toBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};const Is={overrode:!1,tag:!1,format:"hh:mm:ss.SSS"},Ds=e=>(...t)=>{const r=console[e];Is.overrode?r(...t):Ms(r,e,...t)},Ms=(e,t,...r)=>{const n=Rr.format(new Date,Is.format),s=Is.tag?`[${t}]`:"";s&&n?e.apply(console,[`${n} ${s}`,...r]):n?e.apply(console,[`${n}`,...r]):s?e.apply(console,[`${s}`,...r]):e.apply(console,[...r])};var Ks={override:()=>{if(Is.overrode)return;Is.overrode=!0;["log","info","warn","error"].forEach((e=>{const t=console[e];console[e]=(...r)=>{Ms(t,e,...r)}}))},log:Ds("log"),info:Ds("info"),warn:Ds("warn"),error:Ds("error"),config:({tag:e=Is.tag,format:t=Is.format}={})=>{Is.tag=e,Is.format=t}};class zs{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=dr.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=br.copy(e,{fields:this.fields});this.save(r)}}class Ns extends v{setters={};getters={};actions={};persist;constructor(){super()}async dispatch(e,t=void 0){const r=this,n=Reflect.get(r.actions,e);if(!se.isFunction(n))return;const[,s]=await dr.run(n({...r,commit:r.commit.bind(r),query:r.query.bind(r),dispatch:r.dispatch.bind(r)},t));return s}async query(e){const t=Reflect.get(this,e);let r;if(null!=t&&""!==t)r=br.copy(t);else{const[,t]=await dr.exec((()=>this.dispatch(e)),`${this.__eventId}_${e}`);r=t}return r}commit(e,t){se.isObject(t)&&(t=br.copy(t)),this[e]=t}}const Ws=(e,t)=>{const r=Object.assign(new Ns,e||{});r.__persist=new zs(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return se.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(se.isFunction(s)&&!s(e,r))return!0;const i=Reflect.set(e,t,r,n);return i&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),i},has:(e,t)=>Reflect.has(e,t)})};class Hs{host="";list=[];constructor(e,t={}){this._parseHost(e);const{width:r=500,height:n=400}=t,s=jr.parseUrl(e)?.params||{};s["x-oss-process"]=`image/resize,w_${r},h_${n},m_fill`;const i=jr.stringify(s,{uri:!1});this.list.push(`${e}?${i}`)}_parseHost(e){e&&!this.host&&/^http[s]?:\/\/([\w.]+)/.test(e)&&(this.host=e.replace(/^http[s]?:\/\/([\w.]+)[\w\W]+/,"$1"))}image(e,t={}){if(!e||!e.includes(this.host))return;if(this.list.length<=0)return;const r={g:"nw",...t},n=e.replace(/^http[s]?:\/\/[\w.]+\/([\w-.,_/?%&=]+)$/,"$1"),s=Ir.base64.encodeByOss(n),i=jr.stringify({image:s,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}text(e,t={},r={}){if(!e)return;const n={g:"nw",...t},s=Ir.base64.encodeByOss(e),i=jr.stringify({text:s,...n,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}result(){return this.list.join("")}}class Vs{__list=[];constructor(){this.clear()}add(e){const t=dr.run(e);return this.__list.push(t),this}clear(){return this.__list=[],this}wait(){const e=this.__list;return this.clear(),Promise.allSettled(e)}}const Zs=new class{state=Ws(new Ns);frame=new Cr;cache=new Map;cacheTime=new Map;setCache=(e,t)=>null!=t&&(!!e&&(this.cache.set(e,t),this.cacheTime.set(e,Date.now()),!0));hasCache=e=>{if(!e)return!1;this.cache.has(e)};getCache=e=>{if(e)return this.cache.get(e)};getCacheTime=e=>e&&this.cacheTime.get(e)||0;removeCache=e=>{e&&(this.cache.delete(e),this.cacheTime.delete(e))};cacheId=e=>`_${e}_cache_`;timesRecord=(e,t={})=>{if(!e)return;const{mode:r="running",cycle:n="day"}=t||{},s=this.cacheId(r),i=this.getCache(s)||{},o=Date.now(),a=i[e],c={time:o,count:1,cycle:n};return a&&("day"!==n||Rr.isToday(a.time||0))&&(c.count=1+(a.count||0)),i[e]=c,this.setCache(s,i),i};timesValid=(e,t={})=>{if(!e)return!1;const{max:r=1,interval:n=0,mode:s="running",cycle:i="day"}=t||{},o=this.cacheId(s);let a=this.getCache(o);if(!a)return!0;const c=a[e];if(!c)return!0;if("day"===i&&!Rr.isToday(c.time||0))return!0;if(r<=(c.count||0))return!1;return!(Date.now()-(c.time||0)<n)};timesClean=(e="running")=>{const t=this.cacheId(e),r=this.getCache(t);if(!r)return;const n=mn.copy(r);mn.forof(n,((e,t)=>{"day"!==t.cycle&&void 0!==t.cycle||Rr.isToday(t.time||0)||delete r[e]})),this.setCache(t,r)};parallel=()=>new Vs};class Js{id="";start=0;end=0;cost=0;name="";type="";desc="";timeStartDesc="";timeEndDesc="";isDone=!1;flag=0;constructor(){this.id=w(),this.start=Date.now(),this.timeStartDesc=Rr.format(this.start,"hh:mm:ss.SSS")}get time(){return this.flag?this.end:this.start}get timeDesc(){return this.flag?this.timeEndDesc:this.timeStartDesc}done=(e=Date.now())=>{this.start&&(this.end=e,this.cost=this.end-this.start,this.timeEndDesc=Rr.format(this.end,"hh:mm:ss.SSS"),this.isDone=!0)}}const Ys=new class{__map=new Map;__trackList=[];opened=!0;clear(){return this.__map.clear(),this.__trackList=[],this}add(e,{desc:t="",type:r=""}={}){if(!e||!this.opened)return"";const n=new Js;return n.name=e,n.type=r,n.desc=t,this.__trackList.push(n),n.id}done(e){if(!e||!this.opened)return;const t=this.__trackList.find((t=>t.id===e));if(!t||t.isDone)return;t.done();const r=br.cloneClass(t);r.id=this._endId(e),r.flag=1,r.desc=`${t.desc} | end`,this.__trackList.push(r)}getTrack(e){return this.__trackList.find((t=>t.id===e))}getLine(e){if(!e||e.endsWith("-end"))return[];const t=this.__trackList.findIndex((t=>t.id===e));if(t<0)return[];const r=this._endId(e),n=this.__trackList.findIndex((e=>e.id===r)),s=n<0?this.__trackList.length-t:n-t+1;return wn.take(this.__trackList,s,t)}getList(e,t=""){if(!e)return[];const r=this.__trackList.filter((t=>t.name===e));if(r.length<=0)return[];if(!t)return r;const n=this._endId(t);return this.__trackList.filter((e=>e.id===t||e.id===n))}get list(){return this.__trackList}get size(){return this.__trackList.length}_endId=e=>`${e}-end`;report(e){const t=this.list;if(!t||t.length<=0)return;const r=t[0].time;t.forEach((t=>e&&e(t,r)))}},Qs={cdn:Us,watermark:(e,t)=>new Hs(e,t)},Gs={Store:Ns,storeRef:Ws,Persist:zs,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})},Xs=Zs,ei=Ys,ti=Ks;e.Event=v,e.KValue=x,e.Mapping=class{_map=new Map;constructor(){this._map.clear()}get keys(){return Array.from(this._map.keys())}get values(){return Array.from(this._map.values())}get(e){if(!e)return;const t=this._map.get(e);return t?t.value:void 0}getKV(e){if(e)return this._map.get(e)}set(e,t){if(!e)return;const r=this._map.get(e);r?(r.set(t),this.clean()):this._map.set(e,new x(e,t))}delete(e,t){if(!e)return;const r=this._map.get(e);t&&t(r?.value),this._map.delete(e)}clear(){this._map.clear()}clean(e=100,t){try{if(this._map.size<=e)return;if(this.keys.filter((e=>{if(!this._map.has(e))return!1;const t=this._map.get(e);return!t||!t.value})).forEach((e=>{this._map.delete(e)})),this._map.size<=e)return;const r=this.values.sort(((e,t)=>e.timestamp-t.timestamp)),n=r.length-e;if(n<=0)return;r.splice(0,n).forEach((e=>{this.delete(e.key,t)}))}catch(e){console.log("mapping clean",e)}}},e.dCdn=Qs,e.dHook=cn,e.dJoker=Xs,e.dLogger=ti,e.dMini=ps,e.dNode=Fs,e.dStore=Gs,e.dTracker=ei,e.dUtil=Nn,e.dWeb=vs,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("crypto"),require("zlib"),require("net"),require("socks"),require("child_process"),require("fs"),require("path")):"function"==typeof define&&define.amd?define(["exports","crypto","zlib","net","socks","child_process","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ddan=e.ddan||{},e.crypto$1,e.zlib,e.net,e.socks,e.child_process,e.fs,e.path)}(this,(function(e,t,r,n,s,i,o,a){"use strict";function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=c(t),u=c(r),f=c(n),h=c(o),d=c(a);const p="0123456789",g="abcdefghijklmnopqrstuvwxyz",y="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var m={keyNumber:p,keyLower:g,keyUpper:y,keyChars:p+g+y};const b=(e=0,t=0)=>e?v(e,"lower",t):_("lower",t),w=(e=0)=>v(32,"lower",e),_=(e="lower",t=0)=>{const r=m.keyChars.split(""),n=[];let s,i;for(t=t||r.length,n[8]=n[13]=n[18]=n[23]="-",n[14]="4",s=0;s<36;s++)n[s]||(i=0|16*Math.random(),n[s]=r[19==s?3&i|8:i]);const o=n.join("");return"upper"===e?o.toUpperCase():o.toLowerCase()},v=(e=32,t="mixin",r=0)=>{const n=m.keyChars.split(""),s=[];let i;for(r=r||n.length,i=0;i<e;i++)s[i]=n[0|Math.random()*r];const o=s.join("");return"lower"===t?o.toLowerCase():"upper"===t?o.toUpperCase():o};class x{__map;__tagList;__eventId="";constructor(){this.__map=new Map,this.__tagList=[],this.__eventId=b()}clear(){return this.__map.clear(),this}on(e,t,r=""){if(!e||!t)return this;let n=this.__map.get(e);return n||(n=new Set,this.__map.set(e,n)),n.add(t),r&&this.__tagList.push({name:e,listener:t,tag:r}),this}emit(e,...t){if(!e)return this;const r=this.__map.get(e);if(!r)return this;return[...r].forEach((e=>e&&e(...t))),this}off(e,t){if(!e||!t)return this;this.__tagList=this.__tagList.filter((r=>r.name!==e||r.listener!==t));const r=this.__map.get(e);return r?(r.delete(t),r.size<=0&&this.__map.delete(e),this):this}remove(e){return e?(this.__tagList=this.__tagList.filter((t=>t.name!==e)),this.__map.delete(e),this):this}removeByTag(e){if(!e)return this;return this.__tagList.filter((t=>t.tag===e)).forEach((e=>{this.off(e.name,e.listener)})),this.__tagList=this.__tagList.filter((t=>t.tag!==e)),this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this.__map.has(e)}}class A{timestamp=0;_key="";_value;constructor(e,t){this._key=e,this._value=t,this.updateAt()}get key(){return this._key}get value(){return this._value}set(e){this._value=e,this.updateAt()}updateAt(){this.timestamp=Date.now()}clear(){this.set(void 0)}}const S="object"==typeof global&&null!==global&&global.Object===Object&&global,k="object"==typeof globalThis&&null!==globalThis&&globalThis.Object===Object&&globalThis,$="object"==typeof self&&null!==self&&self.Object===Object&&self,O=k||S||$||Function("return this")(),C=O.Symbol,{toString:j,hasOwnProperty:E,propertyIsEnumerable:P}=Object.prototype,T=C?C.toStringTag:void 0;function q(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":T&&T in Object(e)?function(e){const t=E.call(e,T),r=e[T];let n=!1;try{e[T]=void 0,n=!0}catch(e){}const s=j.call(e);return n&&(t?e[T]=r:delete e[T]),s}(e):j.call(e)}var B={getTag:q,getType:function(e){return(q(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:j,hasOwnProperty:E,propertyIsEnumerable:P};const L="object"==typeof e&&null!==e&&!e.nodeType&&e,R=L&&"object"==typeof module&&null!==module&&!module.nodeType&&module,U=R&&R.exports===L&&S.process,F=(()=>{try{const e=R&&R.require&&R.require("util").types;return e||U&&U.binding&&U.binding("util")}catch(e){}})();var I="[object Function]",D="[object GeneratorFunction]",M="[object AsyncFunction]",K=9007199254740991;const z=/^(?:0|[1-9]\d*)$/,N=O?.Buffer?.isBuffer,W=/^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)Array\]$/,H=F&&F.isTypedArray;function V(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function Z(e){return null!=e&&"object"==typeof e}const J=Array.isArray;function Y(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=K}(e.length)&&!Q(e)}function G(e){return Z(e)&&Y(e)}function Q(e){var t=V(e)?B.getTag(e):"";return t===I||t===D||t===M}function X(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)}function ee(e){return G(e)&&B.hasOwnProperty.call(e,"callee")&&(!B.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==B.toString.call(e))}const te="undefined"!=typeof window&&void 0!==window.document,re="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,ne=H?e=>H(e):e=>Z(e)&&W.test(B.getTag(e)),se="function"==typeof N?N:()=>!1;var ie={is:function(e,t){return B.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===B.getTag(e)},isString:function(e){return"string"==typeof e||!J(e)&&Z(e)&&"[object String]"==B.getTag(e)},isObject:V,isObjectLike:Z,isPlainObject:function(e){if(!Z(e)||"[object Object]"!=B.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||Z(e)&&"[object Symbol]"===B.getTag(e)},isFunction:Q,isArray:J,isArrayLikeObject:G,isIndex:function(e,t){return!!(t=null==t?K:t)&&("number"==typeof e||z.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:Y,isPrototype:X,isArguments:ee,isPromise:function(e){return"[object Promise]"===(V(e)?B.getTag(e):"")},isBrowser:te,isNode:re,isBlobOrBuffer:e=>e instanceof Blob||e instanceof ArrayBuffer,isUint8Array:e=>e instanceof Uint8Array,isArrayBuffer:e=>e instanceof ArrayBuffer,isEmpty:e=>{if(null==e)return!0;if(Y(e)&&(Array.isArray(e)||"string"==typeof e||"function"==typeof e.splice||se(e)||ne(e)||ee(e)))return!e.length;const t=B.getTag(e);if("[object Map]"===t||"[object Set]"===t)return!e.size;if(X(e))return!Object.keys(e).length;for(const t in e)if(B.hasOwnProperty.call(e,t))return!1;return!0},isJSONStr:e=>{try{const t=JSON.parse(e);return"object"==typeof t&&null!==t}catch(e){return!1}}};const oe=NaN,ae=/^\s+|\s+$/g,ce=/^[-+]0x[0-9a-f]+$/i,le=/^0b[01]+$/i,ue=/^0o[0-7]+$/i,fe=parseInt,he=1/0,de=17976931348623157e292;function pe(e){if("number"==typeof e)return e;if(ie.isSymbol(e))return oe;if(ie.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=ie.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(ae,"");const t=le.test(e);return t||ue.test(e)?fe(e.slice(2),t?2:8):ce.test(e)?oe:+e}function ge(e){return e?(e=pe(e))===he||e===-he?(e<0?-1:1)*de:e==e?e:0:0===e?e:0}var ye={toNumber:pe,toFinite:ge,toInteger:function(e){var t=ge(e),r=t%1;return t==t?r?t-r:t:0}};const me="Expected a function",be=Math.max,we=Math.min;function _e(e,t=300,r={}){let n,s,i,o,a,c,l=0,u=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError(me);function d(t){const r=n,i=s;return n=s=void 0,l=t,o=e.apply(i,r),o}function p(e){const r=e-c;return void 0===c||r>=t||r<0||f&&e-l>=i}function g(){const e=Date.now();if(p(e))return y(e);a=setTimeout(g,function(e){const r=t-(e-c);return f?we(r,i-(e-l)):r}(e))}function y(e){return a=void 0,h&&n?d(e):(n=s=void 0,o)}function m(...e){const r=Date.now(),i=p(r);if(n=e,s=this,c=r,i){if(void 0===a)return function(e){return l=e,a=setTimeout(g,t),u?d(e):o}(c);if(f)return a=setTimeout(g,t),d(c)}return void 0===a&&(a=setTimeout(g,t)),o}return t=ye.toNumber(t)||0,ie.isObject(r)&&(u=!!r.leading,f="maxWait"in r,i=f?be(ye.toNumber(r.maxWait)||0,t):i,h="trailing"in r?!!r.trailing:h),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=c=s=a=void 0},m.flush=function(){return void 0===a?o:y(Date.now())},m.pending=function(){return void 0!==a},m}class ve{__list=[];constructor(e){this.push(e)}push(e){return e&&this.__list.push(e),this}clear(){return this.__list=[],this}_exec(e,t){let r;if(ie.isFunction(e))r=e(t);else{if(ie.isPromise(e))return e.then((e=>({...t,...e})));r=e}return ie.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this.__list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}async function xe(e,t,r){return e.then((e=>(r&&r(),[null,e]))).catch((e=>(t&&Object.assign(e,t),r&&r(),[e,void 0])))}const Ae=(e,t)=>{try{let r;return r=ie.isFunction(e)?e():e,xe(Promise.resolve(r),void 0,t)}catch(e){return t&&t(),Promise.resolve([e,void 0])}},Se=e=>"string"==typeof(e="function"==typeof e?e():e)?new Error(e):e,ke=e=>"function"==typeof e?e():e;var $e={to:xe,go:(e,t)=>Ae(e,t),delay:(e=1e3)=>new Promise((t=>setTimeout(t,e))),safeRun:Ae,toError:Se,timeout:(e,t=0,r="timeout")=>{if(t<=0)return Ae(e);let n;function s(){n&&clearTimeout(n)}const i=new Promise((e=>{s(),n=setTimeout((()=>e([Se(r||"timeout"),void 0])),t)}));return Promise.race([Ae(e,s),i])},getValueIf:(e,t,r)=>{const n="function"==typeof e?e():e;return ke(n?t:r)},resolveValue:ke};class Oe{__value=void 0;set(e){this.__value=e}get(){return this.__value}}var Ce={singleton:function(){class e{static __instance__;constructor(){}static get Instance(){return e.__instance__||(e.__instance__=new this),e.__instance__}static get I(){return this.Instance}}return e},getset:function(e){const t=new Oe;return void 0!==e&&t.set(e),t},singletonFactory:function(e){class t extends e{static __instance__;constructor(...e){super(...e)}static getInstance(){return t.__instance__||(t.__instance__=new t),t.__instance__}static get I(){return this.getInstance()}}return t}};class je{_func;_callback;constructor(e,t){this._func=e,this._callback=t}async run(){return $e.safeRun(this._func).then((e=>{try{this._callback&&this._callback(e)}catch(e){console.log("[ddan] task",e)}finally{return e}}))}}class Ee{__list=[];__count=0;__max=1;constructor(e=1){this.__count=0,this.__max=e>0?e:1,this.clear()}push(e,t){const r=new je(e,t);return this.__list.push(r),this._step(),this}async exec(e){return new Promise((t=>{this.push(e,((...e)=>{t(...e)}))}))}clear(){return this.__list=[],this.__count=0,this}_step(){if(this.__list.length<=0)return;if(this.__count>=this.__max)return;const e=this.__list.shift();e?(this.__count+=1,e?.run().finally((()=>{try{this.__count>0&&(this.__count-=1),this._step()}catch(e){console.error("[ddan] pipepine step finally",e)}}))):this._step()}async whenAll(){for(;;){if(this.__count<=0)break;await $e.delay(100),this._step()}return this.clear()}}class Pe extends(Ce.singleton()){__lockedMap=new Map;pipeline=new Ee;constructor(){super()}lock(e,t){if(!e||!t)return;const r=$e.safeRun(t);return this.__lockedMap.set(e,r),r}unlock(e){e&&this.__lockedMap.has(e)&&this.__lockedMap.delete(e)}async exec(e,t){if(!e||!t)return $e.safeRun(e);const r=this.__lockedMap.get(t);if(r)return r;const n=this.lock(t,e);if(!n)return $e.safeRun(e);const s=await n;return this.unlock(t),s}}var Te={toUtf8:e=>{if(!e)return"";const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},fromUtf8:e=>{let t="",r=0;if(!e)return"";let n=0,s=0,i=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),i=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i),r+=3);return t},toUtf8Bytes:e=>{if(!e)return new Uint8Array;const t=e.replace(/\r\n/g,"\n"),r=[];for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r.push(n):n<2048?(r.push(n>>6|192),r.push(63&n|128)):(r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128))}return new Uint8Array(r)},fromUtf8Bytes:e=>{let t="",r=0;if(!e||e.length<=0)return"";for(;r<e.length;){let n=e[r];if(n<128)t+=String.fromCharCode(n),r++;else if(n>191&&n<224){const s=e[r+1];t+=String.fromCharCode((31&n)<<6|63&s),r+=2}else{const s=e[r+1],i=e[r+2];t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i),r+=3}}return t}};const qe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var Be={toBase64:(e="")=>{let t,r,n,s,i,o,a,c="",l=0;for(e=Te.toUtf8(e);l<e.length;)t=e.charCodeAt(l++),r=e.charCodeAt(l++),n=e.charCodeAt(l++),s=t>>2,i=(3&t)<<4|r>>4,o=(15&r)<<2|n>>6,a=63&n,isNaN(r)?o=a=64:isNaN(n)&&(a=64),c=c+qe.charAt(s)+qe.charAt(i)+qe.charAt(o)+qe.charAt(a);return c},fromBase64:(e="")=>{let t,r,n,s,i,o,a,c="",l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=qe.indexOf(e.charAt(l++)),i=qe.indexOf(e.charAt(l++)),o=qe.indexOf(e.charAt(l++)),a=qe.indexOf(e.charAt(l++)),t=s<<2|i>>4,r=(15&i)<<4|o>>2,n=(3&o)<<6|a,c+=String.fromCharCode(t),64!=o&&(c+=String.fromCharCode(r)),64!=a&&(c+=String.fromCharCode(n));return c=Te.fromUtf8(c),c},bytesToBase64:e=>{let t,r,n,s,i,o,a,c="",l=0;if(!e||!ie.isArrayLike(e)||!ie.isUint8Array(e))return"";for(;l<e.length;)t=e[l++],r=e[l++],n=e[l++],s=t>>2,i=(3&t)<<4|r>>4,o=(15&r)<<2|n>>6,a=63&n,isNaN(r)?o=a=64:isNaN(n)&&(a=64),c=c+qe.charAt(s)+qe.charAt(i)+qe.charAt(o)+qe.charAt(a);return c},base64ToBytes:(e="")=>{let t,r,n,s,i,o,a,c=[],l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=qe.indexOf(e.charAt(l++)),i=qe.indexOf(e.charAt(l++)),o=qe.indexOf(e.charAt(l++)),a=qe.indexOf(e.charAt(l++)),t=s<<2|i>>4,r=(15&i)<<4|o>>2,n=(3&o)<<6|a,c.push(t),64!=o&&c.push(r),64!=a&&c.push(n);return new Uint8Array(c)}};function Le(e){return Math.floor(Math.random()*e)}function Re(e,t=10){return+parseFloat(Number(e).toExponential(t))}const Ue=180/Math.PI;var Fe={random:Le,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=Le(e);r?n.push(s):n.includes(s)||n.push(s)}return n},strip:Re,float:function(e,{digits:t=2,fixed:r=!1}={}){const n=Re(e).toFixed(t);return r||!t?+n:+n.replace(/(\.[1-9]?)0+$/,"$1").replace(/\.$/,"")},radian2degree:function(e){return e*Ue},degree2radian:function(e){return e/Ue},calcDataSize:function(e){const t={gb:0,mb:0,kb:0,b:0,total:e,desc:""},r=[{name:"gb",divisor:1<<30},{name:"mb",divisor:1<<20},{name:"kb",divisor:1024},{name:"b",divisor:1}];for(const n of r){const r=Math.floor(e/n.divisor);t[n.name]=r,e-=r*n.divisor}return t.gb>0?t.desc=(t.gb+t.mb/1024).toFixed(2)+"GB":t.mb>0?t.desc=(t.mb+t.kb/1024).toFixed(2)+"MB":t.kb>0?t.desc=(t.kb+t.b/1024).toFixed(2)+"KB":t.desc=t.b+"B",t}};var Ie={bytes2str:e=>{if(!e||!ie.isArrayLike(e))return"";return e.reduce(((e,t)=>e+String.fromCharCode(t)),"")},str2bytes:(e="")=>{const t=e,r=new Uint8Array(t.length);for(let e=0,n=t.length;e<n;e++)r[e]=t.charCodeAt(e);return r},str2hex:e=>{let t="";for(let r=0;r<e.length;r++)t+=e.charCodeAt(r).toString(16).padStart(2,"0");return t},hex2str:e=>{let t="";for(let r=0;r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t},concatBytes:(...e)=>{const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r},uint32ToBytes:e=>{const t=new Uint8Array(8);return t[0]=e[0]>>>24&255,t[1]=e[0]>>>16&255,t[2]=e[0]>>>8&255,t[3]=255&e[0],t[4]=e[1]>>>24&255,t[5]=e[1]>>>16&255,t[6]=e[1]>>>8&255,t[7]=255&e[1],t},bytesToUint32:e=>{const t=new Uint32Array(2);return t[0]=e[0]<<24|e[1]<<16|e[2]<<8|e[3],t[1]=e[4]<<24|e[5]<<16|e[6]<<8|e[7],t},hex2bytes:e=>{let t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++)t[r]=parseInt(e.substr(2*r,2),16);return t},bytes2hex:e=>Array.from(e).map((e=>e.toString(16).padStart(2,"0"))).join(""),toUint32:e=>{const t=Math.ceil(e.length/4),r=new Uint32Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(4*n)<<24|e.charCodeAt(4*n+1)<<16|e.charCodeAt(4*n+2)<<8|e.charCodeAt(4*n+3);return r},fromUint32:e=>{let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]>>>24&255,e[r]>>>16&255,e[r]>>>8&255,255&e[r]);return t.replace(/\0+$/,"")},flatten:function e(t,r=!1,n=[]){for(let s=0;s<t.length;s+=1){const i=t[s];r&&Array.isArray(i)?e(i,r,n):n.push(i)}return n}};var De={pkcs7Padding:(e,t)=>{const r=t-e.length%t,n=new Uint8Array(r).fill(r);return Ie.concatBytes(e,n)},pkcs7Unpadding:e=>{const t=e[e.length-1];return e.slice(0,-t)}};function Me(e,t){return e<<t|e>>>32-t}function Ke(e,t){let r,n,s,i,o;return s=2147483648&e,i=2147483648&t,r=1073741824&e,n=1073741824&t,o=(1073741823&e)+(1073741823&t),r&n?2147483648^o^s^i:r|n?1073741824&o?3221225472^o^s^i:1073741824^o^s^i:o^s^i}function ze(e,t,r,n,s,i,o){return e=Ke(e,Ke(Ke(function(e,t,r){return e&t|~e&r}(t,r,n),s),o)),Ke(Me(e,i),t)}function Ne(e,t,r,n,s,i,o){return e=Ke(e,Ke(Ke(function(e,t,r){return e&r|t&~r}(t,r,n),s),o)),Ke(Me(e,i),t)}function We(e,t,r,n,s,i,o){return e=Ke(e,Ke(Ke(function(e,t,r){return e^t^r}(t,r,n),s),o)),Ke(Me(e,i),t)}function He(e,t,r,n,s,i,o){return e=Ke(e,Ke(Ke(function(e,t,r){return t^(e|~r)}(t,r,n),s),o)),Ke(Me(e,i),t)}function Ve(e){let t,r,n="",s="";for(r=0;r<=3;r++)t=e>>>8*r&255,s="0"+t.toString(16),n+=s.substr(s.length-2,2);return n}function Ze(e){let t,r,n,s,i,o,a,c,l,u=[];for(u=function(e){let t;const r=e.length,n=r+8,s=16*((n-n%64)/64+1),i=Array(s-1).fill(0);let o=0,a=0;for(;a<r;)t=(a-a%4)/4,o=a%4*8,i[t]=i[t]|e[a]<<o,a++;return t=(a-a%4)/4,o=a%4*8,i[t]=i[t]|128<<o,i[s-2]=r<<3,i[s-1]=r>>>29,i}(e),o=1732584193,a=4023233417,c=2562383102,l=271733878,t=0;t<u.length;t+=16)r=o,n=a,s=c,i=l,o=ze(o,a,c,l,u[t+0],7,3614090360),l=ze(l,o,a,c,u[t+1],12,3905402710),c=ze(c,l,o,a,u[t+2],17,606105819),a=ze(a,c,l,o,u[t+3],22,3250441966),o=ze(o,a,c,l,u[t+4],7,4118548399),l=ze(l,o,a,c,u[t+5],12,1200080426),c=ze(c,l,o,a,u[t+6],17,2821735955),a=ze(a,c,l,o,u[t+7],22,4249261313),o=ze(o,a,c,l,u[t+8],7,1770035416),l=ze(l,o,a,c,u[t+9],12,2336552879),c=ze(c,l,o,a,u[t+10],17,4294925233),a=ze(a,c,l,o,u[t+11],22,2304563134),o=ze(o,a,c,l,u[t+12],7,1804603682),l=ze(l,o,a,c,u[t+13],12,4254626195),c=ze(c,l,o,a,u[t+14],17,2792965006),a=ze(a,c,l,o,u[t+15],22,1236535329),o=Ne(o,a,c,l,u[t+1],5,4129170786),l=Ne(l,o,a,c,u[t+6],9,3225465664),c=Ne(c,l,o,a,u[t+11],14,643717713),a=Ne(a,c,l,o,u[t+0],20,3921069994),o=Ne(o,a,c,l,u[t+5],5,3593408605),l=Ne(l,o,a,c,u[t+10],9,38016083),c=Ne(c,l,o,a,u[t+15],14,3634488961),a=Ne(a,c,l,o,u[t+4],20,3889429448),o=Ne(o,a,c,l,u[t+9],5,568446438),l=Ne(l,o,a,c,u[t+14],9,3275163606),c=Ne(c,l,o,a,u[t+3],14,4107603335),a=Ne(a,c,l,o,u[t+8],20,1163531501),o=Ne(o,a,c,l,u[t+13],5,2850285829),l=Ne(l,o,a,c,u[t+2],9,4243563512),c=Ne(c,l,o,a,u[t+7],14,1735328473),a=Ne(a,c,l,o,u[t+12],20,2368359562),o=We(o,a,c,l,u[t+5],4,4294588738),l=We(l,o,a,c,u[t+8],11,2272392833),c=We(c,l,o,a,u[t+11],16,1839030562),a=We(a,c,l,o,u[t+14],23,4259657740),o=We(o,a,c,l,u[t+1],4,2763975236),l=We(l,o,a,c,u[t+4],11,1272893353),c=We(c,l,o,a,u[t+7],16,4139469664),a=We(a,c,l,o,u[t+10],23,3200236656),o=We(o,a,c,l,u[t+13],4,681279174),l=We(l,o,a,c,u[t+0],11,3936430074),c=We(c,l,o,a,u[t+3],16,3572445317),a=We(a,c,l,o,u[t+6],23,76029189),o=We(o,a,c,l,u[t+9],4,3654602809),l=We(l,o,a,c,u[t+12],11,3873151461),c=We(c,l,o,a,u[t+15],16,530742520),a=We(a,c,l,o,u[t+2],23,3299628645),o=He(o,a,c,l,u[t+0],6,4096336452),l=He(l,o,a,c,u[t+7],10,1126891415),c=He(c,l,o,a,u[t+14],15,2878612391),a=He(a,c,l,o,u[t+5],21,4237533241),o=He(o,a,c,l,u[t+12],6,1700485571),l=He(l,o,a,c,u[t+3],10,2399980690),c=He(c,l,o,a,u[t+10],15,4293915773),a=He(a,c,l,o,u[t+1],21,2240044497),o=He(o,a,c,l,u[t+8],6,1873313359),l=He(l,o,a,c,u[t+15],10,4264355552),c=He(c,l,o,a,u[t+6],15,2734768916),a=He(a,c,l,o,u[t+13],21,1309151649),o=He(o,a,c,l,u[t+4],6,4149444226),l=He(l,o,a,c,u[t+11],10,3174756917),c=He(c,l,o,a,u[t+2],15,718787259),a=He(a,c,l,o,u[t+9],21,3951481745),o=Ke(o,r),a=Ke(a,n),c=Ke(c,s),l=Ke(l,i);return Ve(o)+Ve(a)+Ve(c)+Ve(l)}const Je=e=>{if("string"!=typeof e&&!(e instanceof Uint8Array))return"";return Ze("string"==typeof e?Te.toUtf8Bytes(e):e)};var Ye={md5:Je,md5Base64:e=>{const t=Je(e);if(!t)return"";const r=Ie.hex2bytes(t);return Be.bytesToBase64(r)}};const Ge=(e,t=!1)=>{const r=new Uint8Array(e);return t?Be.bytesToBase64(r):r.reduce(((e,t)=>e+String.fromCharCode(t)),"")};var Qe={...Ie,...De,...Te,...Be,...Ye,str2ab:(e="",t=!1)=>{if(t)return Be.base64ToBytes(e).buffer;{const t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return t}},ab2str:Ge,utf8ToBase64:e=>ie.isBrowser?btoa(e):Buffer.from(e,"utf-8").toString("base64"),base64ToUtf8:e=>ie.isBrowser?atob(e):Buffer.from(e,"base64").toString("utf-8"),getRandomBytes:e=>{const t=new Uint8Array(e);for(let r=0;r<e;r++)t[r]=Fe.random(256);return t},textEncode:e=>Te.toUtf8Bytes(e),textDecode:e=>Te.fromUtf8Bytes(new Uint8Array(e)),toDataUrl:(e,t="text/plain")=>e?"string"==typeof e?`data:${t};base64,`+Be.toBase64(e):ie.isArrayBuffer(e)?`data:${t};base64,`+Ge(e,!0):"":""};const Xe=e=>{try{const t=Qe.ab2str(e,!0);return t.match(/.{1,64}/g)?.join("\n")||""}catch(e){return""}},et=(e="",t="PUBLIC KEY")=>`-----BEGIN ${t}-----\n${e}\n-----END ${t}-----`;var tt={RSAPublicKey:"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApiLWsPmoaiGdr02AmPYS\n4/VgxyJNNJSK2VICirXl4P8qAP3b/6GIs7Hwnsmmuj7gledJ0XiZodFjDNgQEZEG\nj4K9KX8NixcrJwnTQV5UebiERdj+64ihwqPVWo9dIOj43ZPJ8f4dritJv5tnQaBb\nb9zTkU3Ofzk1g8RU00Ith6quOGZcU2IWC4OQ+5YiZvzrCBKEvjFwK2OvGq43tI51\nGaZdI9H09jisypqefsMvv6esjEQQOtl+WGlI5fof7KZUt3dppvuDI4CYgeXIoKKL\n9T9qDl8F9aNSs3XHx32YyA7L1FraFD6PjqRjueIFp2emsXQcIMeMqqgVyV+4qb+0\nuwIDAQAB",RSAPrivateKey:"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmItaw+ahqIZ2v\nTYCY9hLj9WDHIk00lIrZUgKKteXg/yoA/dv/oYizsfCeyaa6PuCV50nReJmh0WMM\n2BARkQaPgr0pfw2LFysnCdNBXlR5uIRF2P7riKHCo9Vaj10g6Pjdk8nx/h2uK0m/\nm2dBoFtv3NORTc5/OTWDxFTTQi2Hqq44ZlxTYhYLg5D7liJm/OsIEoS+MXArY68a\nrje0jnUZpl0j0fT2OKzKmp5+wy+/p6yMRBA62X5YaUjl+h/splS3d2mm+4MjgJiB\n5cigoov1P2oOXwX1o1KzdcfHfZjIDsvUWtoUPo+OpGO54gWnZ6axdBwgx4yqqBXJ\nX7ipv7S7AgMBAAECggEAE1kuWLkSsJ2OoDpt9iJ+a7cJmNd5V1zPWOTwr9fkWFJP\nQYNPKlPVOFxKUivY84rcHAkuMyuQ9OQOXZISOQGDWpZW0mzeFmtR1r+Rr2S9gNmI\n6huOAL9OW306HUxiA7GuPhv2omy+Zyjac2q1WVLEI2B78Um2+WEfxuNIH7xu0gRR\nz/wluevMBQlv6hSeMESP6e9s2kB+FuM4bL7+1sexwS1TudKbHybujaiB8un9E2V3\nC9BkE6yf00Rhvii6Q4E4w3PFQfcBEFnjOD0S2Watx8GIbYjlYvtquy8Yj7OtyZB6\nw5sxyaYhKVVnkpGAbOgaCj94ABYF47VuwXr45I4PzQKBgQDp6svzD+QKlARjcWgO\nrH7UEpFX6m49G6Ib4c63xEg9+GesTgfDxoYxtXDKsC7I8OwMrmffJGbyfjaAvzmg\nicM3Y7kF6UPO9+q2mBRsyhoJSNONTeUVyoFSc+QDsVgndlTZIjqC5XLrONGaSPLJ\n7jJzqKhp3NQcpO8+xY0d7Efm1QKBgQC10fCNuF1LUTYgsWvvGxTiCCAIBurZmHU+\nGMb2Okfoco/P+QNl1jEba91AC7FudW3g/lRn0vTnDajlNoz2/CKunrTKN4/9lEBI\ntiwEOvhc5FtapRifSfrrNwFqPM+LijvOkcteWVhAUWCEP1eLmpnXGqfmZxnTaaVe\n5DyDgyAVTwKBgQDhEawfOQEANJ9sV2f6BnsZ7quuXcCoR3hZP5G5O8EO735BSesq\nsk/YcG4QeCjr6vQU15LWH552YH5srpHyJ9uP5gHW8DTwZZaPDhFJA8S9fjcfVP3B\nU9HO1fdknjTl83N8YPTPkZpbPZZfzyTcqrYclwFEqtfkn8YbLdW0Hu6n6QKBgDEv\njvS3uD1ExfDILlurptWSvx+Mx4F/1c+roj8/+u3t9+uaAIpPDE/PuTW3NBOens/r\n3WeM0QWkU1lWjYHPKY61jlDaARDnRxCkf3nRfhibCf+Wg/erar6wzagwtTCZf55d\nIHfwkYgsu4BrJkK02wMuydbxczIW9U6bTaeCFG7PAoGAN3oHYzTEBwZ7ZKv11QiQ\nEp/HeHBvD8fH/e1uVyBel4Co7NO5pV2s8qjS8+3+jxumKLNXCirjqwHo03YCdzxi\ncy4GFDsukHmDQ7FF9VC4QV0fJ0F7jGYE9nNZ+K9qwS5KrihOSBPxj0HptrF6TSOw\nBTSwr0byL3TC0m0StkSNKpo=",generateKeys:async e=>{try{const t=await e.generateKey({name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},!0,["encrypt","decrypt"]),r=await window.crypto.subtle.exportKey("spki",t.publicKey),n=Xe(r),s=et(n,"PUBLIC KEY"),i=await window.crypto.subtle.exportKey("pkcs8",t.privateKey),o=Xe(i);return{publicKey:n,publicKeyPem:s,privateKey:o,privateKeyPem:et(o,"PRIVATE KEY")}}catch(e){return console.error("generateKeys failed:",e),{publicKey:"",publicKeyPem:"",privateKey:"",privateKeyPem:""}}},format_pem_key:et,format_pem_content:Xe,encrypt:async(e,t,r)=>{try{const n=(new TextEncoder).encode(t),s=await e.importKey("spki",Qe.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["encrypt"]),i=[];for(let t=0;t<n.length;t+=190){let r=n.slice(t,t+190),o=await e.encrypt({name:"RSA-OAEP"},s,r);i.push(new Uint8Array(o))}const o=Qe.concatBytes(...i);return Qe.bytesToBase64(o)}catch(e){return console.error("[debug] encrypt",e),""}},decrypt:async(e,t,r)=>{try{const n=Qe.base64ToBytes(t),s=await e.importKey("pkcs8",Qe.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["decrypt"]),i=[],o=256;for(let t=0;t<n.length;t+=o){let r=n.slice(t,t+o),a=await e.decrypt({name:"RSA-OAEP"},s,r);i.push(new Uint8Array(a))}const a=Qe.concatBytes(...i);return(new TextDecoder).decode(a)}catch(e){return console.error("decrypt failed:",e),""}}};const rt=()=>l.default.webcrypto.subtle;var nt={generateKeys:()=>tt.generateKeys(rt()),encrypt:async(e,t)=>tt.encrypt(rt(),e,t),decrypt:async(e,t)=>tt.decrypt(rt(),e,t),encode:async e=>tt.encrypt(rt(),e,tt.RSAPublicKey),decode:async e=>tt.decrypt(rt(),e,tt.RSAPrivateKey)};const st="undefined"!=typeof window?window.crypto.subtle:{};var it={generateKeys:()=>tt.generateKeys(st),encrypt:async(e,t)=>tt.encrypt(st,e,t),decrypt:async(e,t)=>tt.decrypt(st,e,t),encode:async e=>tt.encrypt(st,e,tt.RSAPublicKey),decode:async e=>tt.decrypt(st,e,tt.RSAPrivateKey)};const ot=2654435769,at=(e,t)=>{let r=0;for(let n=0;n<32;n++)r=r+ot>>>0,e[0]=e[0]+((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,e[1]=e[1]+((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0;return e},ct=(e,t)=>{let r=3337565984;for(let n=0;n<32;n++)e[1]=e[1]-((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0,e[0]=e[0]-((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,r=r-ot>>>0;return e},lt=e=>{const t=Qe.str2bytes(e),r=new Uint32Array(4);return r[0]=t[0]<<24|t[1]<<16|t[2]<<8|t[3],r[1]=t[4]<<24|t[5]<<16|t[6]<<8|t[7],r[2]=t[8]<<24|t[9]<<16|t[10]<<8|t[11],r[3]=t[12]<<24|t[13]<<16|t[14]<<8|t[15],r},ut=(e,t)=>{const r=Qe.pkcs7Padding(e,8),n=lt(t),s=[];for(let e=0;e<r.length;e+=8){const t=Qe.bytesToUint32(r.slice(e,e+8)),i=at(t,n);s.push(Qe.uint32ToBytes(i))}return Qe.concatBytes(...s)},ft=(e,t)=>{const r=lt(t),n=[];for(let t=0;t<e.length;t+=8){const s=Qe.bytesToUint32(e.slice(t,t+8)),i=ct(s,r);n.push(Qe.uint32ToBytes(i))}const s=Qe.concatBytes(...n);return Qe.pkcs7Unpadding(s)};var ht={TEAKey:"33576f37387276645054657a6831686e454664424e5652456f47794835795942",encrypt:at,decrypt:ct,toTeaKey:lt,encode:(e,t)=>{const r=Qe.textEncode(e),n=ut(r,t);return Qe.bytesToBase64(n)},decode:(e,t)=>{const r=Qe.base64ToBytes(e),n=ft(r,t);return Qe.textDecode(n.buffer)},encodeBytes:ut,decodeBytes:ft};function dt(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const i=new Array(n);for(;++s<n;)i[s]=e[s+t];return i}(e,t,r)}const pt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function gt(e){return pt.test(e)}const yt="\\ud800-\\udfff",mt=`[${yt}]`,bt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",wt="\\ud83c[\\udffb-\\udfff]",_t=`[^${yt}]`,vt="(?:\\ud83c[\\udde6-\\uddff]){2}",xt="[\\ud800-\\udbff][\\udc00-\\udfff]",At=`${`(?:${bt}|${wt})`}?`,St="[\\ufe0e\\ufe0f]?",kt=St+At+`(?:\\u200d(?:${[_t,vt,xt].join("|")})${St+At})*`,$t=`(?:${[`${_t}${bt}?`,bt,vt,xt,mt].join("|")})`,Ot=RegExp(`${wt}(?=${wt})|${$t+kt}`,"g");function Ct(e){return gt(e)?function(e){return e.match(Ot)||[]}(e):function(e){return e.split("")}(e)}function jt(e){return t=>{if(!t)return"";const r=gt(t)?Ct(t):void 0,n=r?r[0]:t[0],s=r?dt(r,1).join(""):t.slice(1);return n[e]()+s}}const Et="\\ud800-\\udfff",Pt="\\u2700-\\u27bf",Tt="a-z\\xdf-\\xf6\\xf8-\\xff",qt="A-Z\\xc0-\\xd6\\xd8-\\xde",Bt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Lt="['’]",Rt=`[${Bt}]`,Ut=`[${Pt}]`,Ft=`[${Tt}]`,It=`[^${Et}${Bt+"\\d"+Pt+Tt+qt}]`,Dt="(?:\\ud83c[\\udde6-\\uddff]){2}",Mt="[\\ud800-\\udbff][\\udc00-\\udfff]",Kt=`[${qt}]`,zt=`(?:${Ft}|${It})`,Nt=`(?:${Kt}|${It})`,Wt=`(?:${Lt}(?:d|ll|m|re|s|t|ve))?`,Ht=`(?:${Lt}(?:D|LL|M|RE|S|T|VE))?`,Vt="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",Zt="[\\ufe0e\\ufe0f]?",Jt=Zt+Vt+`(?:\\u200d(?:${[`[^${Et}]`,Dt,Mt].join("|")})${Zt+Vt})*`,Yt=`(?:${[Ut,Dt,Mt].join("|")})${Jt}`,Gt=RegExp([`${Kt}?${Ft}+${Wt}(?=${[Rt,Kt,"$"].join("|")})`,`${Nt}+${Ht}(?=${[Rt,Kt+zt,"$"].join("|")})`,`${Kt}?${zt}+${Wt}`,`${Kt}+${Ht}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",Yt].join("|"),"g");const Qt=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),Xt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function er(e,t){if(void 0===t){const t=Qt(e)?function(e){return e.match(Gt)}(e):function(e){return e.match(Xt)}(e);return t||[]}return e.match(t)||[]}function tr(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:tr(e)))}`;if(ie.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const rr=jt("toUpperCase"),nr=jt("toLowerCase");var sr={toString:tr,startCase:e=>er(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+rr(t)),""),snakeCase:e=>er(tr(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>er(tr(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>er(tr(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?rr(t):t))),""),upperCase:e=>er(tr(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:rr,lowerCase:e=>er(tr(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:nr,splitOnFirst:(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===e||""===t)return[];const r=e.indexOf(t);return-1===r?[]:[e.slice(0,r),e.slice(r+t.length)]},parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{let n=e;return e&&"string"==typeof e?(t&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?n=Number(e):!r||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(n="true"===e.toLowerCase()),n):n},replace:(e,t)=>{if(!e)return e;if(!t)return e;let r=e;return((Array.isArray(t)?t:[t])||[]).forEach((e=>{e.key&&e.value&&(r=r.replace(new RegExp(e.key,e.flag||""),e.value))})),r},jsonFormat:e=>{try{if(!e)return"";const t=JSON.parse(e);return JSON.stringify(t,null,2)}catch(t){return e}},toLines:(e,t="\n")=>e?e.split(t).map((e=>e.trim())).filter((e=>!!e)):[]};var ir={logString:e=>{try{const t=JSON.stringify(e);return void 0===t?"":ht.encode(t,Qe.hex2str(ht.TEAKey))}catch(e){return""}},logParse:e=>{try{if(!e)return"";const t=ht.decode(e,Qe.hex2str(ht.TEAKey));return sr.jsonFormat(t)}catch(e){return""}},logRString:async e=>{try{const t=JSON.stringify(e);if(void 0===t)return"";return ie.isBrowser?await it.encode(t):await nt.encode(t)}catch(e){return""}},logRParse:async e=>{try{if(!e)return"";const t=ie.isBrowser?await it.decode(e):await nt.decode(e);return sr.jsonFormat(t)}catch(e){return""}}};const or=(e,t,r)=>e*(1-r)+t*r,ar=(e,t,r)=>e===t?0:(r-e)/(t-e),cr=(e,t,r)=>({x:or(e.x,t.x,r),y:or(e.y,t.y,r)}),lr=(e,t,r,n)=>{const s=cr(e,t,n),i=cr(t,r,n);return cr(s,i,n)},ur=(e,t)=>{if(1===e.length)return e[0];const r=[];for(let n=0;n<e.length-1;n++)r.push({x:(1-t)*e[n].x+t*e[n+1].x,y:(1-t)*e[n].y+t*e[n+1].y});return ur(r,t)},fr=(e,t)=>{if(0===t||t===e)return 1;let r=1;for(let n=1;n<=t;n++)r=r*(e-n+1)/n;return r};var hr={bezier1:cr,bezier2:lr,bezier3:(e,t,r,n,s)=>{const i=lr(e,t,r,s),o=lr(t,r,n,s);return cr(i,o,s)},bezier:ur,bezierCurve:(e,t)=>{const r=e.length-1;let n=0,s=0;for(let i=0;i<=r;i++){const o=fr(r,i)*Math.pow(1-t,r-i)*Math.pow(t,i);n+=o*e[i].x,s+=o*e[i].y}return{x:n,y:s}},lerp:or,lerpAverage:(e,t,r="")=>{if(e.length<=0)return 0;if(1===e.length)return e[0].x;if(2===e.length)return or(e[0].y,e[1].y,.5);const n=[],s=e.slice().sort(((e,t)=>e.x-t.x)),i=s.length,o=s[0].x,a=s[i-1].x;for(let e=o;e<=a;e+=t){let t=0;for(let n=0;n<i-1;n++){const i=s[n],o=s[n+1];if(e>=i.x&&e<=o.x){if("lerp"===r){const r=ar(i.x,o.x,e);t=cr(i,o,r).y}else t=i.y;break}}e>s[i-1].x&&(t=s[i-1].y),n.push(t)}return n.reduce(((e,t)=>e+t),0)/n.length},proportion:ar};var dr={anySuccess:async e=>await Promise.any(e.map((e=>e?e?.then((e=>!!e||Promise.reject())):Promise.reject()))).catch((()=>!1))};var pr={...$e,...ir,...hr,...dr,sleep:$e.delay,run:async function(e,t=0){if(t<=0)return $e.safeRun(e);const r=t>0?Date.now():0,n=await $e.safeRun(e),s=Date.now()-r;return s<t&&await $e.delay(t-s),n},exec:(e,t="")=>Pe.I.exec(e,t),debounce:_e,throttle:function(e,t=300,r={}){let n=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return ie.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),_e(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new ve(e),mutex:function(e){var t=null;return async function(...r){if((t=this||t||{}).__ddMutex)return!1;t.__ddMutex=!0;try{e&&await Promise.resolve(e.apply(this,r))}catch(e){console.log(e)}finally{t.__ddMutex=!1}}},polling:async function(e={}){const{func:t,interval:r=100,times:n=1e3}=e;let s=n;const i=r<1?100:r;do{if(!t)break;const[e,r]=await $e.to(Promise.resolve(t()));if(e||!1===r)break;s>0&&s--,0!==s&&await $e.delay(i)}while(-1===n||s>0)},pipe:(e,t)=>Pe.I.pipeline.push(e,t),pipeline:(e=1)=>new Ee(e),safeTask:(e,t)=>new je(e,t),pipeAsync:e=>Pe.I.pipeline.exec(e),runAsync:async(e,t={pipe:!1,mutex:""})=>{let r;r=t.pipe?Pe.I.pipeline.exec(e):Pe.I.exec(e,t.mutex||"");const[n,s]=await r;if(!n)return s}};const gr=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=gr(e[r]));return t};const yr=(e,t,r={})=>{const n=e||{},{ignoreUndefined:s=!0,cover:i=!1}=r;if(!t)return n;for(const o in t){if(!t.hasOwnProperty(o))continue;const a=t[o];"object"!=typeof a||"object"!=typeof e[o]||i?s&&void 0===a||r.ignoreNull&&null===a||r.ignoreZero&&0===a||r.ignoreEmptyArray&&Array.isArray(a)&&a.length<=0||r.ignoreEmptyString&&"string"==typeof a&&""===a.trim()||(n[o]=a):n[o]=mr(e[o],a,r)}return n},mr=(e,t,r={})=>{let n={};return n=e&&"object"==typeof e&&!Array.isArray(e)?yr(e,t,r):yr({...e},t,r),n},br=(e,t,r={})=>yr({...e},t,{cover:!0,...r}),wr=(e,t,r,n,s=!1)=>{if(!e||!t||!r)return;let i=e[t];null!==i&&"object"==typeof i&&s&&Object.keys(i).forEach((e=>{wr(i,e,r,n,s)})),Object.defineProperty(e,t,{configurable:!0,enumerable:!0,set:o=>{r.call(n,o,i),i=o,s&&wr(e,t,r,n,s)},get:()=>i})};var _r={copy:(e,t={})=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:i=!0}=t;if((!n||n.length<=0)&&!s)return r;const o={};for(const e in r){if(!r.hasOwnProperty(e))continue;const a=s?i&&e.startsWith("_")?e:sr.camelCase(e):e;if(n.length>0&&!n.includes(e)&&!n.includes(a))continue;const c=r[e];t.ignoreNull&&null===c||(t.ignoreZero&&0===c||t.ignoreEmptyArray&&Array.isArray(c)&&c.length<=0||t.ignoreEmptyString&&"string"==typeof c&&""===c.trim()||(o[a]=c))}return o},clone:gr,merge:mr,isEmpty:e=>0!==e&&(!e||"object"==typeof e&&(Array.isArray(e)?!e.length:Object.keys(e).length<=0)),parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{if(!e&&"object"!=typeof e)return e;for(const[n,s]of Object.entries(e))if("object"==typeof s&&null!==s)for(const[e,n]of Object.entries(s))s[e]=sr.parseValue(n,{number:t,boolean:r});else e[n]=sr.parseValue(s,{number:t,boolean:r});return e},cloneClass:function(e){return e?"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e)):e},combine:br,combines:(e,t={})=>{let r={};if(!e||e.length<=0)return r;const{ignoreUndefined:n=!0,ignoreNull:s=!0,ignoreZero:i=!0,ignoreEmptyArray:o=!0,ignoreEmptyString:a=!0,cover:c=!0}=t;return e.forEach((e=>r=br(r,e,{ignoreUndefined:n,ignoreNull:s,ignoreZero:i,ignoreEmptyArray:o,ignoreEmptyString:a,cover:c}))),r},observe:wr,find:(e,t)=>{if(e&&"object"==typeof e)return Object.entries(e||{}).find((([e,r])=>!(!t||!t(e,r))))}};const vr=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!0,uri:i=!0,parseNumber:o=!1,parseBoolean:a=!1}={}){t=t||"&",r=r||"=";const c={};if("string"!=typeof e||0===e.length)return c;const l=/\+/g,u=n||1e3;let f=(e=e.split(t)).length;u>0&&f>u&&(f=u);for(let t=0;t<f;++t){let n,o,a,u,f=e[t].replace(l,"%20"),h=f.indexOf(r);h>=0?(n=f.substr(0,h),o=f.substr(h+1)):(n=f,o=""),a=i?decodeURIComponent(n):n,u=i?decodeURIComponent(o):o,B.hasOwnProperty.call(c,a)&&s?Array.isArray(c[a])?c[a].push(u):c[a]=[c[a],u]:c[a]=u}return _r.parseValue(c,{number:o,boolean:a}),c},xr=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},Ar=function(e,t=!0){return t?encodeURIComponent(e):e},Sr=function(e,{cleanZero:t=!1,cleanNull:r=!1,cleanWhitespace:n=!1}={}){return!(!t||0!==e)||(!(!r||null!=e)||!(!n||"string"!=typeof e||""!==e.trim()))},kr=/^(https?):\/\/([\w.\_\-]+)(?::(\d+))?/,$r=e=>{const t=(e||"").replace(/\\/g,"/").split("?")[0],r=t.match(/[\/]?([\w\_\-]+)[.]?[\w]*[?]?$/),n=r?r[1]:"",s=t.lastIndexOf("/")+1,i=t.substring(s),o=i.lastIndexOf("."),a=i.substring(0,o)||"",c=o>=0?i.substring(o):"";return{route:t.substring(0,s)||"",page:n,name:i,withoutExtension:a,extname:c}},Or=e=>{const t={href:e,url:"",origin:"",protocol:"",host:"",port:"",query:""};if(!e)return t;const r=e.match(kr);if(!r||r.length<4)return t;const n=r[3]||"",s=e.split("?");return t.url=s[0],t.origin=r[0],t.protocol=`${r[1]}:`,t.host=`${r[2]}${n?":"+n:""}`,t.port=n,t.query=s.length>1?s[1]:"",t},Cr=(e,t)=>{if(e===t)return!0;if(!e)return!1;if(!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var jr={parse:vr,stringify:function(e,{sep:t="&",eq:r="=",name:n=null,uri:s=!0,cleanZero:i=!1,cleanNull:o=!1,cleanWhitespace:a=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const c=Ar(xr(n),s)+r,l=e[n];return Array.isArray(l)?l.map((function(e){return c+Ar(xr(e),s)})).join(t):Sr(l,{cleanZero:i,cleanNull:o,cleanWhitespace:a})?"":c+Ar(xr(l),s)})).filter(Boolean).join(t):n?Ar(xr(n),s)+r+Ar(xr(e),s):""},https:e=>e?e.replace(/^http[s]?/,"https"):e,parseUrl:e=>{const t=Or(e),{origin:r="",url:n="",query:s=""}=t,i=$r(n),o=vr(s,{multiple:!0,uri:!1});return{...t,...i,pathname:n.substring(n.indexOf(r||"")+r.length),params:o}},parsePath:$r,parseHost:Or,join:(...e)=>{const t=[];let r=!1;return e.forEach((e=>{const n=e.trim();if(""===n)return;if(/^(\w+):\/\//.test(n))return t.length=0,t.push(n),void(r=!0);n.split("/").forEach((e=>{"."!==e&&""!==e&&(".."===e?t.length>0&&".."!==t[t.length-1]?t.pop():r||t.push(".."):t.push(e))}))})),t.join("/")},urlJoin:(...e)=>{if(0===e.length)return"";const t=e.filter((e=>null!=e&&""!==e)).map((e=>e.trim()));if(0===t.length)return"";if(1===t.length)return t[0];let r="",n="";const s=[];let i=!1,o=!1,a=!1,c=!1,l=!1;for(let e=0;e<t.length;e++){let u=t[e];if(!i){const e=u.match(/^([a-zA_Z][a-zA-Z\d+\-.]*):\/\/([^/#?]+)/i);if(e)r=e[1].toLowerCase(),n=e[2],i=!0,c="file"===r,u=u.slice(e[0].length),u.startsWith("/")&&(o=!0);else{const e=u.match(/^file:(\/\/)?\/?/i);e&&e[0]&&(r="file",i=!0,c=!0,n="",u=u.slice(e[0].length),(u.startsWith("/")||e[0].includes("/"))&&(o=!0))}}if(0!==e||i||(u.startsWith("/")?o=!0:(u.startsWith("./")||u.startsWith("../"))&&(a=!0)),c&&!l){const e=u.match(/^([a-zA-Z]:)/);e&&(l=!0,0===s.length&&(s.push(e[1]),u=u.slice(e[1].length)))}if(!u)continue;const f=u.split("/").filter((e=>""!==e&&"."!==e));for(const e of f)if(c&&!l&&e.match(/^[a-zA-Z]:$/))l=!0,s.push(e);else if(".."===e)if(s.length>0&&".."!==s[s.length-1]){if(s[s.length-1].match(/^[a-zA-Z]:$/))continue;s.pop()}else i||o||s.push("..");else s.push(e)}let u=s.join("/");if(o?u="/"+u:!a||u.startsWith("./")||u.startsWith("../")||(u="./"+u),i){let e=u;return c?(l?(e.match(/^\/?[a-zA-Z]:/)||(e="/"+e),e=e.replace(/^(\/?[a-zA-Z]:)([^/]|$)/,"$1/$2")):e&&!e.startsWith("/")&&(e="/"+e),`file://${e}`):(!e||e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||(e="/"+e),`${r}://${n}${e}`)}return u},shExpMatch:Cr,isLocalIPAddress:e=>!!e&&!!(Cr(e,"127.0.0.1")||Cr(e,"localhost")||Cr(e,"192.168.*.*")),parseFileUrl:e=>{const t={href:e,file:"",url:"",protocol:"",host:"",query:"",params:{}};if(!e)return t;let r=e?e.replace(/\\/g,"/"):"";r.startsWith("file://")&&!r.startsWith("file:///")?r="file:///"+r.slice(7):r.startsWith("file:/")&&!r.startsWith("file:///")&&(r="file:///"+r.slice(6));const n=r.match(/^file:\/\/(?:([^\/\\]+))?(\/.*)?$/);if(!n||n.length<3)return t;t.protocol="file:";const s=n[1]||"",i=n[2]||"";t.host=s;const o=i.split("?");return t.url=t.protocol+`//${t.host}`+o[0],t.file=o[0],t.query=o.length>1?o[1]:"",t.params=vr(t.query,{multiple:!0,uri:!1}),t},isPrivateIP:e=>!!e&&!!(Cr(e,"localhost")||Cr(e,"127.0.0.1")||Cr(e,"127.*")||Cr(e,"10.*")||Cr(e,"172.16.*")||Cr(e,"172.17.*")||Cr(e,"172.18.*")||Cr(e,"172.19.*")||Cr(e,"172.2?.*")||Cr(e,"172.3[0-1].*")||Cr(e,"192.168.*")),isIP:e=>{const t=(e||"").trim();return/^(\d+).(\d+).(\d+).(\d+)$/.test(t)}};class Er{_loopTimer;_event=new x;started=!1;interval=0;constructor(e=0){this.interval=e||500}start(){return this.started||(this.stop(),this._loopTimer=setInterval((()=>{this._handleLoop()}),this.interval),this.started=!0),this}stop(){return this._loopTimer?(clearInterval(this._loopTimer),this._loopTimer=0,this.started=!1,this):this}restart(){return this.stop(),this.start(),this}on(e){return this._event.on("frame",e),this}off(e){return e?(this._event.off("frame",e),this):this}_handleLoop(){this._event.emit("frame")}}var Pr={oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};class Tr{date;timestamp=0;yyyy=0;yy="";M=0;MM="";d=0;dd="";h=0;hh="";m=0;mm="";s=0;ss="";S=0;SS="";SSS="";constructor(e){if(!e)return;const t="string"==typeof e||"number"==typeof e?new Date(e):e;t&&(this.date=t,this.timestamp=t.getTime(),this.toDate())}toDate(){return this.date?(this.yyyy=this.date.getFullYear(),this.yy=`${this.yyyy}`.substr(2),this.M=this.date.getMonth()+1,this.MM=(this.M<10?"0":"")+this.M,this.d=this.date.getDate(),this.dd=(this.d<10?"0":"")+this.d,this.h=this.date.getHours(),this.hh=(this.h<10?"0":"")+this.h,this.m=this.date.getMinutes(),this.mm=(this.m<10?"0":"")+this.m,this.s=this.date.getSeconds(),this.ss=(this.s<10?"0":"")+this.s,this.S=this.date.getMilliseconds(),this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this):this}toCountdown(e=""){const t={countdown:0,timestamp:0,seconds:0,d:0,dd:"",h:0,hh:"",m:0,mm:"",s:0,ss:"",S:0,SS:"",SSS:"",desc:""};if(!this.timestamp)return t;t.timestamp=this.timestamp,t.countdown=Math.max(t.timestamp-Date.now(),0),t.seconds=Math.floor(t.countdown/Pr.oneSecond);let r=t.countdown;t.d=Math.floor(r/Pr.oneDay),t.dd=(t.d<10?"0":"")+t.d,r%=Pr.oneDay,t.h=Math.floor(r/Pr.oneHour),t.hh=(t.h<10?"0":"")+t.h,r%=Pr.oneHour,t.m=Math.floor(r/Pr.oneMinute),t.mm=(t.m<10?"0":"")+t.m,r%=Pr.oneMinute,t.s=Math.floor(r/Pr.oneSecond),t.ss=(t.s<10?"0":"")+t.s,r%=Pr.oneSecond,t.S=r,t.SS=(t.S<10?"0":"")+t.S,t.SSS=t.S.toString().padStart(3,"0");let n=e;return n||(n=t.countdown>Pr.oneHour?"hh:mm:ss":t.countdown>Pr.oneMinute?"mm:ss":"ss"),t.desc=n.replace(/\bdd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>t[e])),t}add(e=0){return e?(this.timestamp=this.timestamp+e,this.date=new Date(this.timestamp),this.toDate(),this):this}format(e="yyyy-MM-dd hh:mm:ss"){return e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}static get timezoneOffset(){return(new Date).getTimezoneOffset()/60}static getLocalTime(e=0){const t=new Date,r=t.getTime(),n=6e4*t.getTimezoneOffset();return new Date(r+n+36e5*e)}}const qr=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?Rr(e):e;return r?Br(r).format(t):""},Br=e=>{const t="string"==typeof e||"number"==typeof e?Rr(e):e;return new Tr(t||0)};function Lr({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:i=0}){const o=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${i}`;return new Date(qr(Date.now(),o)).getTime()}function Rr(e){if(!e)return;let t;return"string"==typeof e?t=new Date(e):"number"==typeof e&&(t=10==e.toString().length?new Date(1e3*e):new Date(e)),t}var Ur={...Pr,now:function(){return Br(new Date)},isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),parseTimestamp:Lr,todayZero:()=>Lr({}),format:qr,countdown:(e,t="")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return Br(r).toCountdown(t)},dtime:Br,loopFrame:(e=500)=>new Er(e),getTimezoneOffset:()=>Tr.timezoneOffset,getLocalTime:Tr.getLocalTime,toDate:Rr};const Fr=e=>Be.toBase64(e);var Ir={encode:Fr,decode:e=>Be.fromBase64(e),encodeByOss:e=>Fr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};var Dr={...m,base64:Ir,tea:ht,uuid:b,guid:(e=0,t=!1,r="")=>{let n="";return n=e<=0?b():v(e||32,"lower"),t?Ur.now().format("yyyyMMddhhmmss")+r+n:n},UUID:_,uuid32:w,randomID:v,getHexString:e=>{const t=m.keyChars;let r="";const n=t.length;for(let s=0;s<e;s++)r+=t.charAt(Math.floor(Math.random()*n));return r}};const Mr=(e,t,r=8)=>{if(e===t)return!0;if(null==e||null==t||"object"!=typeof e||"object"!=typeof t)return!1;if(r<=0)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(t))return!1;switch(n){case"[object Array]":return Kr(e,t,r);case"[object Map]":return zr(e,t,r);case"[object Set]":return Nr(e,t,r);case"[object Object]":return Wr(e,t,r);default:return Hr(e,t,n)}},Kr=(e,t,r=1/0)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Mr(e[n],t[n],r-1))return!1;return!0},zr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const[n,s]of e)if(!t.has(n)||!Mr(s,t.get(n),r-1))return!1;return!0},Nr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const n of e)if(![...t].some((e=>Mr(n,e,r-1))))return!1;return!0},Wr=(e,t,r=1/0)=>{const n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(const i of n)if(!s.includes(i)||!Mr(e[i],t[i],r-1))return!1;const i=Object.getOwnPropertySymbols(e),o=Object.getOwnPropertySymbols(t);if(i.length!==o.length)return!1;for(const n of i)if(!o.includes(n)||!Mr(Reflect.get(e,n),Reflect.get(t,n),r-1))return!1;return!0},Hr=(e,t,r)=>{switch(r){case"[object RegExp]":return String(e)===String(t);case"[object Date]":return e.getTime()===t.getTime();case"[object ArrayBuffer]":return Vr(e,t);default:return e===t}},Vr=(e,t)=>{if(e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e),n=new Uint8Array(t);for(let e=0;e<r.length;e++)if(r[e]!==n[e])return!1;return!0};var Zr={isEqual:Mr,isEqualArray:Kr,isEqualObject:Wr,isEqualValue:Hr,isEqualAB:Vr,isEqualDeep:(e,t)=>Mr(e,t,1/0)};const Jr=(e,t=new WeakMap)=>{if(null===e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);let r;if(Array.isArray(e)){r=[],t.set(e,r);for(const n of e)r.push(Jr(n,t))}else if(e instanceof Date)r=new Date(e);else if(e instanceof RegExp)r=new RegExp(e.source,e.flags);else if(e instanceof Map){r=new Map,t.set(e,r);for(const[n,s]of e.entries())r.set(Jr(n,t),Jr(s,t))}else if(e instanceof Set){r=new Set,t.set(e,r);for(const n of e.values())r.add(Jr(n,t))}else if("object"==typeof e){r={},t.set(e,r);for(const[n,s]of Object.entries(e))r[n]=Jr(s,t)}return r};var Yr={copy:(e,t={})=>{if(null==e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r||null===r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:i=!0,...o}=t,a={},c=[{condition:o.ignoreNull,test:e=>null===e},{condition:o.ignoreZero,test:e=>0===e},{condition:o.ignoreEmptyArray,test:e=>Array.isArray(e)&&0===e.length},{condition:o.ignoreEmptyString,test:e=>"string"==typeof e&&""===e.trim()}].filter((e=>e.condition));for(const[e,t]of Object.entries(r)){const r=!s||i&&e.startsWith("_")?e:sr.camelCase(e);n.length>0&&!n.includes(e)&&!n.includes(r)||(c.some((e=>e.test(t)))||(a[r]=t))}return a},clone:Jr,cloneClass:function(e){return null==e||"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}};const Gr=(e,t)=>{if(e===t)return!0;if(!e||!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var Qr={shExpMatch:Gr,shExpMatchs:(e,t)=>{if(!e||!t)return!1;let r=[];if(Array.isArray(t))r=t;else{if("string"!=typeof t)return!1;r=[t]}for(const t of r){if("*"===t)return!0;if(Gr(e,t))return!0}return!1}};const Xr="[object Object]",en="[object Array]",tn=B.getTag,rn=e=>{if(tn(e)!==Xr)return e;const t={};for(const r in e)if(/\w+\.\w+/g.test(r)&&!r.includes("[")){const n=r.split(".");let s=t;for(let e=0;e<n.length-1;e++){const t=n[e];tn(s[t])!==Xr&&(s[t]={}),s=s[t]}s[n[n.length-1]]=e[r]}else t[r]=e[r];return t},nn=(e,t,r=!1)=>{if(e===t)return;const n=tn(e);if(n===tn(t))if(n===en&&e.length>=t.length)for(let r=0;r<t.length;r++)nn(e[r],t[r]);else if(n===Xr&&Object.keys(e).length>=Object.keys(t).length)for(const n in t)r||void 0!==e[n]?nn(e[n],t[n]):e[n]=null},sn=(e,t)=>nn(e,t,!0),on=(e,t,r={},n="",s=!1)=>{if(e===t)return r;const i=tn(e),o=tn(t);if(i===en&&o===i&&e.length>=t.length){for(let s=0;s<e.length;s++)on(e[s],t[s],r,`${n}[${s}]`,!1);return r}if(i===Xr&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=tn(s),c=tn(o);if(s!==o)if(a===en&&c===a&&s.length>=o.length)for(let e=0;e<s.length;e++)on(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`,!1);else if(a===Xr&&c===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)on(s[e],o[e],r,`${n?n+".":""}${i}.${e}`,!1);else null!==s&&(r[`${n?n+".":""}${i}`]=s)}return r}return r[n]=e,r};var an={...Zr,...Yr,...Qr,...{flattenPath:rn,normalizeStructure:sn,diffPath:(e,t)=>{const r=rn(e),n=rn(t);return sn(r,n),on(r,n)}}};var cn={urlAuthA:(e,t=Date.now()+2*Pr.oneDay,r="AM3FUIg6Gh8MAtb3XTHB")=>{const n=/^(http:\/\/|https:\/\/)?([^\/?]+)(\/[^?]*)?(\?.*)?$/.exec(e);if(!n)return"";const s=Math.floor(t/1e3);let[,i,o,a,c]=n;i||(i="http://"),a||(a="/"),c||(c="");const l=w(),u=`${s}-${l}-0-${Ye.md5(`${a}-${s}-${l}-0-${r}`)}`;return c?`${i}${o}${a}${c}&auth_key=${u}`:`${i}${o}${a}${c}?auth_key=${u}`}};const ln={...an,...Qe,...Dr,...pr,...sr,...Fe,...Ce,qs:jr,ali:cn};var un={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};function fn(e){return e!=e}function hn(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var dn,pn,gn=(dn=Object.keys,pn=Object,function(e){return dn(pn(e))}),yn=Math.max;function mn(e,t){var r=ie.isArray(e)||ie.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var i in e)!t&&!B.hasOwnProperty.call(e,i)||s&&("length"==i||ie.isIndex(i,n))||r.push(i);return r}var bn={...ie,...B,..._r,...Ce,includes:function(e,t,r,n){e=ie.isArrayLike(e)?e:function(e){return e?hn(e,function(e){return ie.isArrayLike(e)?mn(e):function(e){if(!ie.isPrototype(e))return gn(e);var t=[];for(var r in Object(e))B.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?ye.toInteger(r):0;var s=e.length;return r<0&&(r=yn(s+r,0)),ie.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,i=r+(n?1:-1);n?i--:++i<s;)if(t(e[i],i,e))return i;return-1}(e,fn,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},forof:(e,t)=>{if(!e)return;let r;if(ie.isObject(e)&&(r=ie.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};var wn={...{groupBy:function(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})},first:function(e){if(!e)return;return e.length<=0?void 0:e[0]},last:function(e){if(!e)return;const t=e.length;return t<=0?void 0:e[t-1]},toList:function(e){return Array.isArray(e)?e:e?[e]:[]}},stepAction:function(e,t,r=100){if(!ie.isFunction(t))return;if(!ie.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,i=e.slice(n,s);t&&t(i),n=s}},skip:function(e,t){if(!ie.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:function(e,t,r=0){if(!ie.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:function(e){return!ie.isArray(e)||e.length<=0?[]:[...new Set(e)]},randoms:function(e,t=1,r=!1){const n=e.length||0;return Fe.randoms(n,t,r).map((t=>e[t]))||[]},toKV:(e,t,r)=>{const n={};return t&&r?((e||[]).forEach((e=>{if(!e||!ie.isObject(e))return;const s=e[t];(ie.isString(s)&&""!==s||ie.isNumber(s))&&(n[s]=e[r])})),n):n}};const _n=/%[sdj%]/g;let vn=()=>{};function xn(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function An(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(_n,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function Sn(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function kn(e,t,r){let n=0;const s=e.length;!function i(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<s?t(e[a],i):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(vn=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class $n extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function On(e,t,r,n,s){if(t.first){const t=new Promise(((t,i)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);kn(o,r,(e=>(n(e),e.length?i(new $n(e,xn(e))):t(s))))}));return t.catch((e=>e)),t}const i=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let c=0;const l=[],u=new Promise(((t,u)=>{const f=e=>{if(l.push.apply(l,e),c++,c===a)return n(l),l.length?u(new $n(l,xn(l))):t(s)};o.length||(n(l),t(s)),o.forEach((t=>{const n=e[t];-1!==i.indexOf(t)?kn(n,r,f):function(e,t,r){const n=[];let s=0;const i=e.length;function o(e){n.push(...e||[]),s++,s===i&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return u.catch((e=>e)),u}function Cn(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function jn(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const En=(e,t,r,n,s,i)=>{!e.required||r.hasOwnProperty(e.field||"")&&!Sn(t,i||e.type)||n.push(An(s.messages.required,e.fullField))};let Pn;const Tn=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,qn=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Bn={integer:e=>Bn.number(e)&&parseInt(e,10)===e,float:e=>Bn.number(e)&&!Bn.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Bn.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Tn),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(Pn)return Pn;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),i=new RegExp(`(?:^${r}$)|(?:^${s}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),c=e=>e&&e.exact?i:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");c.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),c.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const l=c.v4().source,u=c.v6().source;return Pn=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${u}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),Pn})()),hex:e=>"string"==typeof e&&!!e.match(qn)},Ln="enum";var Rn={required:En,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(An(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void En(e,t,r,n,s);const i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?Bn[i](t)||n.push(An(s.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&n.push(An(s.messages.types[i],e.fullField,e.type))},range:(e,t,r,n,s)=>{const i="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,u="";const f="number"==typeof t,h="string"==typeof t,d=Array.isArray(t);if(f?u="number":h?u="string":d&&(u="array"),!u)return!1;d&&(l=t.length),h&&(l=t.replace(c,"_").length),i?l!==e.len&&n.push(An(s.messages[u].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(An(s.messages[u].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(An(s.messages[u].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(An(s.messages[u].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[Ln]=Array.isArray(e[Ln])?e[Ln]:[],-1===e[Ln].indexOf(t)&&n.push(An(s.messages[Ln],e.fullField,e[Ln].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(An(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(An(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Un=(e,t,r,n,s)=>{const i=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t,i)&&!e.required)return r();Rn.required(e,t,n,o,s,i),Sn(t,i)||Rn.type(e,t,n,o,s)}r(o)};var Fn={string:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(Sn(t,"string")&&!e.required)return r();Rn.required(e,t,n,i,s,"string"),Sn(t,"string")||(Rn.type(e,t,n,i,s),Rn.range(e,t,n,i,s),Rn.pattern(e,t,n,i,s),!0===e.whitespace&&Rn.whitespace(e,t,n,i,s))}r(i)},method:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s),void 0!==t&&Rn.type(e,t,n,i,s)}r(i)},number:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s),void 0!==t&&(Rn.type(e,t,n,i,s),Rn.range(e,t,n,i,s))}r(i)},boolean:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s),void 0!==t&&Rn.type(e,t,n,i,s)}r(i)},regexp:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s),Sn(t)||Rn.type(e,t,n,i,s)}r(i)},integer:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s),void 0!==t&&(Rn.type(e,t,n,i,s),Rn.range(e,t,n,i,s))}r(i)},float:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s),void 0!==t&&(Rn.type(e,t,n,i,s),Rn.range(e,t,n,i,s))}r(i)},array:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Rn.required(e,t,n,i,s,"array"),null!=t&&(Rn.type(e,t,n,i,s),Rn.range(e,t,n,i,s))}r(i)},object:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s),void 0!==t&&Rn.type(e,t,n,i,s)}r(i)},enum:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s),void 0!==t&&Rn.enum(e,t,n,i,s)}r(i)},pattern:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t,"string")&&!e.required)return r();Rn.required(e,t,n,i,s),Sn(t,"string")||Rn.pattern(e,t,n,i,s)}r(i)},date:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t,"date")&&!e.required)return r();if(Rn.required(e,t,n,i,s),!Sn(t,"date")){let r;r=t instanceof Date?t:new Date(t),Rn.type(e,r,n,i,s),r&&Rn.range(e,r.getTime(),n,i,s)}}r(i)},url:Un,hex:Un,email:Un,required:(e,t,r,n,s)=>{const i=[],o=Array.isArray(t)?"array":typeof t;Rn.required(e,t,n,i,s,o),r(i)},any:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Sn(t)&&!e.required)return r();Rn.required(e,t,n,i,s)}r(i)}};function In(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const Dn=In();class Mn{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Fn[e]=t};static warning=vn;static messages=Dn;static validators=Fn;rules={};_messages=Dn;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=jn(In(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,i=r;if("function"==typeof s&&(i=s,s={}),!this.rules||0===Object.keys(this.rules).length)return i&&i(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===Dn&&(e=In()),jn(e,s.messages),s.messages=e}else s.messages=this.messages();const o={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let i=r;"function"==typeof i.transform&&(n===e&&(n={...n}),s=n[t]=i.transform(s)),i="function"==typeof i?{validator:i}:{...i},i.validator=this.getValidationMethod(i),i.validator&&(i.field=t,i.fullField=i.fullField||t,i.type=this.getType(i),o[t]=o[t]||[],o[t].push({rule:i,value:s,source:n,field:t}))}))}));const a={};return On(o,s,((e,t)=>{const r=e.rule;let i,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function c(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function l(i=[]){let l=Array.isArray(i)?i:[i];!0===s.suppressWarning&&l.length&&Mn.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let u=l.map(Cn(r,n));if(s.first&&u.length)return a[r.field]=1,t(u);if(o){if(r.required&&!e.value)return void 0!==r.message?u=[].concat(r.message).map(Cn(r,n)):s.error&&(u=[s.error(r,An(s.messages.required,r.field))]),t(u);let i={};r.defaultField&&Object.keys(e.value).map((e=>{i[e]=r.defaultField})),i={...i,...e.rule.fields};const o={};Object.keys(i).forEach((e=>{const t=i[e],r=Array.isArray(t)?t:[t];o[e]=r.map(c.bind(null,e))}));const a=new Mn(o);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];u&&u.length&&r.push(...u),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(u)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)i=r.asyncValidator(r,e.value,l,e.source,s);else if(r.validator){try{i=r.validator(r,e.value,l,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===i?l():!1===i?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):i instanceof Array?l(i):i instanceof Error&&l(i.message)}i&&i.then&&i.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=xn(t),i(t,r)):i(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Fn.hasOwnProperty(e.type))throw new Error(An("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Fn.required:Fn[this.getType(e)]||void 0}}function Kn(e){return new Mn(e)}var zn={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Kn,validate:function(e,t,r={},n=(()=>{})){return pr.run(Kn(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};var Nn={stringify:function(e){try{if(!(e instanceof Map))return;return JSON.stringify([...e.entries()])}catch(e){return}},parse:function(e){try{if("string"!=typeof e)return;const t=JSON.parse(e);if(!Array.isArray(t))return;return new Map(t)}catch(e){return}},deepStringify:function e(t){try{if(!(t instanceof Map))return;const r=[...t.entries()].map((([t,r])=>r instanceof Map?[t,JSON.parse(e(r))]:r instanceof Set?[t,[...r]]:[t,r]));return JSON.stringify(r)}catch(e){return}},deepParse:function e(t){try{if("string"!=typeof t)return;const r=JSON.parse(t);if(!Array.isArray(r))return;return new Map(r.map((([t,r])=>{if(Array.isArray(r)&&r.every((e=>Array.isArray(e)&&2===e.length))){return[t,e(JSON.stringify(r))]}return[t,r]})))}catch(e){return}}};const Wn={gbk:un,math:Fe,list:wn,string:sr,time:Ur,obj:_r,rule:zn,regex:{pattern:{num:"0-9",zh:"一-龥",en:"A-Za-z"},regex:(e,t)=>new RegExp(e,t),entire:{chinese:/^[\u4E00-\u9FA5]+$/,real:/^(\-|\+)?\d+(\.\d+)?$/,cssReal:/^(\-|\+)?\d*(\.)?\d+$/,id:/^[A-Za-z0-9]+$/,yyyyMMdd:/^(\d{4})-?(\d{2})-?(\d{2})$/}},...Qe,...Dr,...bn,Event:x,map:Nn},Hn="[object Object]",Vn="[object Array]",Zn=e=>Object.prototype.toString.call(e),Jn=(e,t,r=!1)=>{if(e===t)return;const n=Zn(e);if(n===Zn(t))if(n===Vn&&e.length>=t.length)for(let r=0;r<t.length;r++)Jn(e[r],t[r]);else if(n===Hn&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?Jn(e[n],t[n]):e[n]=null},Yn=(e,t,r,n="",s=!1)=>{if(e===t)return;const i=Zn(e),o=Zn(t);if(i===Vn&&o===i&&e.length>=t.length)for(let s=0;s<e.length;s++)Yn(e[s],t[s],r,`${n}[${s}]`);else if(i===Hn&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=Zn(s),c=Zn(o);if(s!==o)if(a===Vn&&c===a&&s.length>=o.length)for(let e=0;e<s.length;e++)Yn(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`);else if(a===Hn&&c===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)Yn(s[e],o[e],r,`${n?n+".":""}${i}.${e}`);else r[`${n?n+".":""}${i}`]=s}}else r[n]=e};class Gn{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class Qn{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new Gn,response:new Gn};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:i}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=i}static blockId="blockid";static requestLock={};lockR(e,t){Qn.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete Qn.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=_r.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let i;try{if("block"===n.model)this.lockR(Qn.blockId,(()=>this._fetch(s,n.hasEncrypt))),i=await Qn.requestLock[Qn.blockId].request;else if(Qn.requestLock[Qn.blockId]&&Qn.requestLock[Qn.blockId].lock&&await Qn.requestLock[Qn.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),Qn.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),i=await Qn.requestLock[e].request,this.unlockR(e)}else i=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:i,config:r,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const Xn=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var es={diff:function(e,t){const r={};return(e=>{if(Zn(e)===Hn)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];Zn(n[t])!==Hn&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),Jn(e,t,!0),Yn(e,t,r,"",!0),r},promixify:Xn,run:(e,t={})=>e?pr.run(Xn(e)(t)):pr.run(e),formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:Qn,setWatcher:e=>{let t=e.data,r=e.watch;Object.keys(r).forEach((n=>{let s=t,i=n.split(".");for(let e=0;e<i.length-1;e++)s=s[i[e]];let o=i[i.length-1],a=r[n].handler||r[n],c=r[n].deep;_r.observe(s,o,a,e,c)}))}};const ts=e=>{if(!e)return"";if(!bn.isObject(e))return"";let t="";return bn.forof(e,((e,r)=>{r&&(t+=`${sr.kebabCase(e)}:${r};`)})),t},rs=["display","position","top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","fontSize","textAlign","fontFamily","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius","background","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","color","overflow","opacity","flexDirection","justifyContent","alignItems","flexWrap","alignContent","alignSelf","flex","flexBasis","flexFlow","flexShrink","pointerEvents"],ns=["top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius"],ss=(e,t="px")=>e&&t?"0"===e?e:zn.isFloat(e.toString())?`${e}${t}`:e:e;var is={stringify:ts,parse:(e,{camel:t=!1,pure:r=!0}={})=>{if(!e.trim())return;const n=jr.parse(e,{sep:";",eq:":",uri:!1}),s={};return bn.forof(n,((e,n)=>{if(!n)return;const i=t?r&&e.startsWith("_")?e:sr.camelCase(e):e;zn.isFloat(n)||n.length>=2&&n.startsWith(".")&&zn.isNumber(n.substr(1))?s[i]=+n:s[i]=n})),s},fixValue:ss,style:(e,t="px")=>{if(!e)return"";const r=bn.copy(e,{fields:rs});bn.forof(r,((e,n)=>{(ns.includes(e)||ns.includes(sr.camelCase(e)))&&(r[e]=ss(n,t))}));return ts(r)},commonFields:rs};const os=(e,t="",r=!1)=>{try{if(!e)return;const n=jr.parseUrl(e),s=t||n.name;if(!t||!r||!n.origin||n.origin===window.location.origin)((e,t)=>{try{const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}catch(t){console.error(`[ddan] _downloadUrl ${e}`,t)}})(e,s);else{const t=n.params;t.t=Date.now();const r=`${n.url}?${jr.stringify(t,{uri:!1})}`,i=new XMLHttpRequest;i.open("GET",r,!0),i.responseType="blob",i.onload=function(){as(i.response,s)},i.onerror=function(t){console.error(`[ddan] downloadUrl ${e}`,t)},i.send()}}catch(t){console.error(`[ddan] downloadUrl ${e}`,t)}},as=(e,t="")=>{try{if(!e)return;const r=URL?.createObjectURL(e);if(!r)return;os(r,t),URL?.revokeObjectURL(r)}catch(e){console.error("[ddan] downloadFile",e)}},cs=e=>{try{const t=document.createElement("textarea");document.body.appendChild(t),t.style.position="fixed",t.style.clip="rect(0 0 0 0)",t.style.top="10px",t.style.opacity="0",t.value=e??"",t.select();const r=document.execCommand("copy");return document.body.removeChild(t),r}catch(e){return console.error("[ddan] copyText",e),!1}},ls=(e,t="denied")=>new Promise((r=>{const n=navigator?.permissions;if(!n||!n.query)return r(t);const s={name:e};n.query(s).then((e=>r(e.state))).catch((()=>r(t)))})),us=(e,t=!0)=>!(!t||"prompt"!==e)||"granted"===e,fs=(e,t)=>{if(!e||!t)return[];const r=[];let n;for(;null!==(n=t.exec(e));)r.push(n[1]);return r},hs=(e,t="application/javascript")=>{const r=new Blob([e],{type:t});return URL.createObjectURL(r)};var ds={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),i=s.length,o=new Uint8Array(i);for(;i--;)o[i]=s.charCodeAt(i);return new File([o],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,i=new Uint8Array(s);for(;s--;)i[s]=n.charCodeAt(s);return new Blob([i],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadUrl:os,download:(e,t="")=>{e&&("string"!=typeof e?as(e,t):os(e,t))},downloadFile:as,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();os(s,t)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.error("[ddan] downloadImage",e)}return Promise.resolve()},watermark:(e,{width:t=400,height:r=300,angle:n=0,fillStyle:s="rgba(0, 0, 0, 0.2)",font:i="16px Arial",textAlign:o="left",textBaseline:a="middle"}={})=>{try{if(!e)return"";const c=document.createElement("canvas");c.width=t,c.height=r;const l=c.getContext("2d");return l?(n&&l.rotate(n*Math.PI/180),s&&(l.fillStyle=s),i&&(l.font=i),o&&(l.textAlign=o),a&&(l.textBaseline=a),l.fillText(e,c.width/10,c.height/2),`url(${c.toDataURL()})`):""}catch(e){return console.error("[ddan] watermark",e),""}},copyText:(e,t=!1)=>new Promise((r=>{!t&&navigator.clipboard?ls("clipboard-write").then((t=>{us(t,!1)?navigator.clipboard.writeText(e).then((()=>r(!0))).catch((()=>r(cs(e)))):r(cs(e))})).catch((()=>{r(cs(e))})):r(cs(e))})),queryPermission:ls,isAllowed:us,legacyCopy:cs,takeHtmlLinks:e=>{if(!e)return[];const t=[];return[/<script[^>]+src="([^"]+)"/g,/<link[^>]+rel="stylesheet"[^>]+href="([^"]+)"/g,/<link[^>]+rel="icon"[^>]+href="([^"]+)"/g].forEach((r=>{const n=fs(e,r);t.push(n)})),[].concat(...t)},takeHtml:fs,toBlobUrl:hs,workerURL:e=>hs(`(${e.toString()})()`,"text/javascript"),getVideoMetadata:(e,t=3e4)=>new Promise(((r,n)=>{let s=null,i=null,o=null;const a=e=>{o&&(clearTimeout(o),o=null),s&&(s.onerror=null,s.onloadedmetadata=null,s.remove(),s=null),i&&(URL.revokeObjectURL(i),i=null),e&&n(e)};try{if(s=document.createElement("video"),o=setTimeout((()=>{a(new Error(`操作超时(${t}ms)`))}),t),e instanceof File||e instanceof Blob||e instanceof MediaSource)i=URL.createObjectURL(e),s.src=i;else{if("string"!=typeof e)throw new Error("无效的视频源类型");s.crossOrigin="anonymous",s.src=e}s.onloadedmetadata=()=>{r({width:s?.videoWidth||0,height:s?.videoHeight||0,duration:s?.duration||0}),a()},s.onerror=()=>{a(new Error(`视频加载失败: ${s?.error?.message||"未知错误"}`))}}catch(e){a(e instanceof Error?e:new Error("未知同步错误"))}})),getImageMetadata:(e,t=5e3)=>new Promise(((r,n)=>{const s=new Image;let i=null,o=null;const a=e=>{o&&(clearTimeout(o),o=null),s.onload=null,s.onerror=null,i&&(URL.revokeObjectURL(i),i=null),e&&n(e)};o=setTimeout((()=>{a(new Error(`图片加载超时(${t}ms)`))}),t),s.onload=()=>{r({width:s.naturalWidth,height:s.naturalHeight}),a()},s.onerror=()=>{a(new Error(`无法加载图片: ${s.src||"未知资源"}`))};try{if(e instanceof File||e instanceof Blob)i=URL.createObjectURL(e),s.src=i;else{if("string"!=typeof e)throw new Error("无效的图片源类型");s.setAttribute("crossOrigin","Anonymous"),s.src=e}}catch(e){e instanceof Error?a(e):a(new Error("未知同步错误"))}}))};const ps=new class{__defStyle="vertical-align: middle; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; -webkit-mask-position: 50% 50%; -webkit-mask-repeat: no-repeat; -webkit-mask-size: 100%; background-color: currentColor;";__map={back:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M609.408 149.376L277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"/></svg>',right:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"/></svg>',home:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 19.8h3.8v-7h3.303L12 4.697 3.897 12.8H7.2v7H11V17h2v2.8zm5 .2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-6H3.414a1 1 0 0 1-.707-1.707l8.586-8.586a1 1 0 0 1 1.414 0l8.586 8.586A1 1 0 0 1 20.586 14H18v6z" fill-rule="evenodd" fill-opacity=".9"/></svg>',close:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M764.288 214.592L512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"/></svg>',close_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M466.752 512l-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',close_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"/></svg>',warning:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M928.99 755.83L574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03 12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49 12.91-20.12 12.92-44.91.01-65.03zM554.67 768h-85.33v-85.33h85.33V768zm0-426.67v298.66h-85.33V341.32l85.33.01z" fill="currentColor"/></svg>',play:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024zm3.008-92.992a416 416 0 1 0 0-832 416 416 0 0 0 0 832zM383.232 287.616l384 224.896-384 223.104v-448z" fill="currentColor"/></svg>',lock:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z"/><path fill="currentColor" d="M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm192-160v-64a192 192 0 1 0-384 0v64h384zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64z"/></svg>',lock_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M467.2 713.92v115.968a44.8 44.8 0 0 0 89.6 0V713.92c26.752-14.72 44.8-42.304 44.8-73.92 0-47.104-40.128-85.312-89.6-85.312-49.472 0-89.6 38.208-89.6 85.312 0 31.616 18.048 59.136 44.8 73.92zM64 384h896v640H64V384zm268.8 0h358.4V256c0-94.272-80.256-170.688-179.2-170.688-98.944 0-179.2 76.416-179.2 170.688v128zM512 0c148.48 0 268.8 114.56 268.8 256v128H243.2V256C243.2 114.56 363.52 0 512 0z" fill="currentColor"/></svg>',plus:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z"/></svg>',plus_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z"/><path fill="currentColor" d="M480 672V352a32 32 0 1 1 64 0v320a32 32 0 0 1-64 0z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',plus_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z"/></svg>',star:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 747.84l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72L512 747.84zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"/></svg>',star_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M283.84 867.84L512 747.776l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z"/></svg>',share:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M679.872 348.8l-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z"/></svg>',love:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M171.712 571.648l.352.32 287.904 252.8a64 64 0 0 0 82.912 1.344l296.832-244.544a215.584 215.584 0 1 0-301.824-300.576L512 316.672l-25.888-35.616a215.584 215.584 0 1 0-314.4 290.624zM32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512l-295.36 243.392a128 128 0 0 1-165.888-2.592L129.984 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>',love_fill:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512L562.592 892.8a96 96 0 0 1-124.416-1.952L130.016 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>'};getBase64=e=>{const t=this.getSVG(e);return t?.url||""};getSVG=e=>{if(!e)return;const t=this.__map[e];if(!t)return;return{url:this.toBase64(t),escape:this.toEscape(t)}};toBase64=e=>{if(!e)return"";const t=this._tiny(e);return`data:image/svg+xml;base64,${Ir.encode(t)}`};_tiny=e=>e?e.replace(/<!--(.*)-->/g,"").replace(/[\r\n]/g," ").replace(/"/g,"'"):"";toEscape=e=>{if(!e)return"";return`data:image/svg+xml,${this._tiny(e).replace(/%/g,"%25").replace(/&/g,"%26").replace(/#/g,"%23").replace(/{/g,"%7B").replace(/}/g,"%7D").replace(/</g,"%3C").replace(/>/g,"%3E")}`};getStyle(e,t={}){if(!e)return"";const r=this.__map[e];return r?this.toStyle(r,t):""}toStyle(e,t={}){if(!e)return"";const r=this.toBase64(e);return r?this.getStyleByUrl(r,t):""}getStyleByUrl(e,t={}){if(!e)return"";const{key:r="mask-image",gradientValue:n="radial-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5))",gradient:s=!1,defStyle:i=this.__defStyle}=t,o=s&&n?`${n}, url("${e}")`:`url("${e}")`;return`${r}:${o};-webkit-${r}:${o};${i}`}},gs={mini:es,css:is,qs:jr,icon:ps,html:ds},ys=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function ms(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function bs(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(bn.isPlainObject(e)){const r=jr.stringify(e),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class ws{host="";reqConfig={};handleError;interceptors={request:new Gn,response:new Gn};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(bs),this.interceptors.response.use(e.handleResponse||ms),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){ws.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete ws.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=bn.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let i;if(delete s.options.plugins,"block"===r.model)this.lockR(ws.blockId,(()=>ys(s))),i=await ws.requestLock[ws.blockId].request;else if(ws.requestLock[ws.blockId]&&ws.requestLock[ws.blockId].lock&&await ws.requestLock[ws.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),ws.requestLock[e]||this.lockR(e,(()=>ys(s))),i=await ws.requestLock[e].request,this.unlockR(e)}else i=await ys(s);return this.interceptors.response.invoke({response:i,config:r,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}var _s={getDataURL:(e,t)=>{const r={contentType:"",dataUrl:""};return $e.to(fetch(e,{cache:t}).then((e=>(r.contentType=e.headers.get("content-type")||"",e.arrayBuffer()))).then((e=>(r.dataUrl=`data:${r.contentType};base64,`+Qe.ab2str(e,!0),r))))},getArrayBuffer:async(e,t)=>$e.to(fetch(e,{cache:t}).then((e=>e.arrayBuffer()))),getJson:async(e,t)=>$e.to(fetch(e,{cache:t}).then((e=>e.json()))),download:(e,t={})=>new Promise((r=>fetch(e).then((async e=>{if(!e.ok||200!==e.status)throw new Error(e.statusText);const n=+(e.headers.get("content-length")||""),s=e.body?.getReader();let i=0;const o=[];for(;;){const{done:e,value:r}=await s.read();if(e)break;o.push(r),i+=r.length;const a=Fe.float(100*i/n,{digits:2});t?.progress&&t?.progress(a,i,n)}const a=new Uint8Array(i);let c=0;for(const e of o)a.set(e,c),c+=e.length;t?.success&&t?.success(a),r(a)})).catch((e=>{t?.fail&&t?.fail(e),r(void 0)})))),getText:async(e,t)=>$e.to(fetch(e,{cache:t}).then((e=>e.text()))),cache:async(e,t="no-cache")=>$e.to(fetch(e,{cache:t}).then((()=>!0))),Fetch:class{baseURL;defaultHeaders;constructor(e={}){this.baseURL=e.baseURL||"",this.defaultHeaders=e.headers||{}}query(e,t={}){return new Promise(((r,n)=>{let s=e.url||"";const i={...this.defaultHeaders,...e?.headers||{}},o={method:e?.method||"GET",headers:i,cache:e?.cache},a=o.method?.toUpperCase();"POST"===a&&(o.body=JSON.stringify(t||{}),i["Content-Type"]||(i["Content-Type"]="application/json"),o.headers=i),fetch(s,o).then((async e=>{const t=await e.text();e.ok?r(t):n(this.formatError(e,t))})).catch((e=>{n(this.formatError(null,null,e))}))}))}request(e,t={}){const{method:r="GET",baseURL:n=this.baseURL,headers:s,params:i,cache:o}=t,a="GET"===r.toUpperCase(),c=a&&i?`?${jr.stringify(i)}`:"",l={url:`${jr.urlJoin(n,e)}${c}`,method:r,headers:{"Content-Type":"application/json",...s},cache:o};return this.query(l,a?void 0:i)}formatError(e,t,r){const n={timestamp:(new Date).toISOString(),type:r?"NetworkError":"HttpError",message:r?r.message:`HTTP ${e?.status}: ${e?.statusText}`};return e&&(n.status=e.status,n.statusText=e.statusText,n.url=e.url,n.data=t,n.response={status:e.status,statusText:e.statusText,data:t,headers:Object.fromEntries(e.headers.entries())}),r&&(n.originalError=r,n.code=r.code),n}}};class vs{publicKey="";privateKey="";iv="";__privateCryptoKey;__sharedSecret;__curve;__keyFormat;__subtle;constructor(e="P-256",t="raw"){this.__curve=e,this.__keyFormat=t||"raw","undefined"!=typeof window?this.__subtle=window.crypto.subtle:this.__subtle={}}async generateKeys(){const e=await this.__subtle.generateKey({name:"ECDH",namedCurve:this.__curve},!0,["deriveKey","deriveBits"]);return this.__privateCryptoKey=e.privateKey,this.publicKey=await this.exportKey(e.publicKey),this.privateKey=await this.exportKey(e.privateKey,"pkcs8"),this}async exportKey(e,t="raw"){const r=await this.__subtle.exportKey(t||this.__keyFormat,e);return Qe.ab2str(r,!0)}async importKey(e,t="raw",r=[]){const n=Qe.base64ToBytes(e);return await this.__subtle.importKey(t||this.__keyFormat||"raw",n,{name:"ECDH",namedCurve:this.__curve},!0,r)}async setPrivateKey(e){if(!e)return!1;const t=await this.importKey(e,"pkcs8",["deriveKey","deriveBits"]);return this.privateKey=await this.exportKey(t,"pkcs8"),this.__privateCryptoKey=t,!0}async deriveSharedSecret(e,t){if(!this.__privateCryptoKey)return!1;const r=await this.importKey(e),n=await this.__subtle.deriveKey({name:"ECDH",public:r},this.__privateCryptoKey,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]);return this.__sharedSecret=n,this.iv=t||"",!0}async encode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=Qe.base64ToBytes(r),s=Qe.textEncode(e),i=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s);return Qe.ab2str(i,!0)}async encodeiv(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv,n=r?Qe.base64ToBytes(r):Qe.getRandomBytes(12),s=Qe.textEncode(e),i=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s),o=Qe.concatBytes(new Uint8Array(i),n);return Qe.bytesToBase64(o)}async decode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=Qe.base64ToBytes(e),s=Qe.base64ToBytes(r),i=await this.__subtle.decrypt({name:"AES-GCM",iv:s},this.__sharedSecret,n);return Qe.textDecode(i)}async decodeiv(e){if(!this.__sharedSecret)return"";const t=Qe.base64ToBytes(e);if(t.length<12)return"";const r=t.slice(t.length-12),n=t.slice(0,t.length-12),s=await this.__subtle.decrypt({name:"AES-GCM",iv:r},this.__sharedSecret,n);return Qe.textDecode(s)}}const xs={fetch:_s,Http:ws,css:is,qs:jr,icon:ps,html:ds,rsa:it,...{Ecdh:vs}};var As={brotliCompress:function(e,t=u.default.constants.BROTLI_DEFAULT_QUALITY){try{if(!e)return"";const r=Qe.toUtf8Bytes(e);return u.default.brotliCompressSync(r,{params:{[u.default.constants.BROTLI_PARAM_QUALITY]:t}}).toString("base64")}catch(t){return e||""}},brotliDecompress:function(e){try{if(!e)return"";const t=Qe.base64ToBytes(e);return u.default.brotliDecompressSync(t).toString("utf-8")}catch(t){return e||""}}};var Ss={child_exec:e=>new Promise((t=>{if(!e)return t([null,""]);i.exec(e,((e,r)=>{t(e?[e,""]:[null,r||""])}))})),childExec:(e,t=0)=>new Promise((r=>{if(!e)return r({error:null,stdout:"",stderr:""});i.exec(e,{encoding:"utf-8",timeout:t},((e,t,n)=>{r({error:e??null,stdout:t?.trim()||"",stderr:n?.trim()||""})}))}))};const ks=()=>{try{return"win32"===process.platform?$s():"darwin"===process.platform?Os():"linux"===process.platform?Cs():void 0}catch(e){return}},$s=async()=>{do{const[e,t]=await Ss.child_exec('reg query "HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"');if(e)break;const r=t.split("\n").find((e=>e.includes("ProxyEnable")));if(!(r&&r.trim().endsWith("1")))break;const n=t.split("\n").find((e=>e.includes("ProxyServer"))),s=n?n.split(" ").filter(Boolean).pop():"";if(!s)break;const i=s.split(":");if(i.length<=1)break;const o=i[0],a=+(i[1]||"");if(!o||!a)break;return{ipaddress:o,port:a}}while(0)},Os=async()=>{do{const[e,t]=await Ss.child_exec('networksetup -getwebproxy "Wi-Fi"');if(e)break;const r=t.split("\n"),n=r.find((e=>e.includes("Enabled")));if(!(n&&n.includes("Yes")))break;const s=r.find((e=>e.includes("Server"))),i=r.find((e=>e.includes("Port"))),o=s?s.split(":")[1]?.trim():null,a=+((i?i.split(":")[1]?.trim():null)||"");if(!o||!a)break;return{ipaddress:o,port:a}}while(0)},Cs=async()=>{do{const[e,t]=await Ss.child_exec("env | grep https_proxy");if(e)break;const r=(t||"").trim();if(!r)return;const n=r.match(/:\/\/([^:]+):(\d+)/);if(!n)break;const s=n[1],i=+(n[2]||"");if(!s||!i)break;return{ipaddress:s,port:i}}while(0)},js=(e,t=["*"],r="DIRECT",n=[])=>{const s=e||r||"DIRECT",i=r||"DIRECT",o=`\n function FindProxyForURL(url, host) {\n if (host === "127.0.0.1" || host === "localhost") {\n return "DIRECT";\n }\n\n if (isInNet(host, "10.0.0.0", "255.0.0.0") ||\n isInNet(host, "172.16.0.0", "255.240.0.0") ||\n isInNet(host, "192.168.0.0", "255.255.0.0")) {\n return "DIRECT";\n }\n\n var _rules = ${JSON.stringify(t)};\n var _proxy = "${s}";\n var _default = "${i}";\n var _directs = ${JSON.stringify(n)};\n\n for (var i = 0; i < _rules.length; i++) {\n if (shExpMatch(host, _rules[i])) {\n return _proxy;\n }\n }\n\n for (var j = 0; j < _directs.length; j++) {\n if (shExpMatch(host, _directs[j])) {\n return "DIRECT";\n }\n }\n\n return _default;\n }\n `;return Qe.toDataUrl(o,"application/x-ns-proxy-autoconfig")},Es=(e,t,r)=>{if(!e||!t)return"";const{type:n="ALL",direct:s=!1}=r||{};let i="";switch(n?n.toUpperCase():""){case"ALL":i=`SOCKS5 ${e}:${t};PROXY ${e}:${t}`;break;case"PROXY":i=`PROXY ${e}:${t}`;break;case"SOCKS5":i=`SOCKS5 ${e}:${t}`}if(!i&&!s)return"";const o=[];return i&&o.push(i),s&&o.push("DIRECT"),o.join(";")};var Ps={getSystemProxy:ks,toPacScript:js,toPacProxy:Es,pacScript:async(e,t,r)=>{const{type:n="SOCKS5",rules:s=["*"],useSystem:i}=r||{},o=Es(e,t,{type:n});if(!o)return"";let a;if(i){const e=await ks();e&&(a=Es(e?.ipaddress||"",e?.port||0,{direct:!0}))}return js(o,s||[],a)},getPacScript:async e=>{const{type:t="SOCKS5",rules:r=["*"],useSystem:n,address:s="",port:i=0,directs:o=[]}=e||{},a=Es(s,i,{type:t});let c;if(n){const e=await ks();e&&(c=Es(e?.ipaddress||"",e?.port||0,{direct:!0}))}return js(a,r||[],c,o)}};const Ts=(e,t)=>new Promise(((r,n)=>{h.default.readdir(e,(async(s,i)=>{if(s)return n(s);r(qs(e,i,t))}))})),qs=async(e,t,r)=>{for(let n of t){const t=d.default.join(e,n);h.default.lstatSync(t).isDirectory()?await Ts(`${t}`,r):r&&await r(t)}},Bs=(e,t=511)=>{new Promise(((r,n)=>{o.chmod(e,t,(async e=>{e?n(e):r(!0)}))}))};var Ls={readDirectory:Ts,readFiles:qs,access:async(e,t=h.default.constants.F_OK)=>{const r=e?.trim()||"";return!!r&&new Promise((e=>{h.default.access(r,t,(t=>{e(!t)}))}))},chmodFile:Bs,chmod755:e=>$e.go((()=>Bs(e,511)))};var Rs={findFreePort:async(e,t=200)=>{let r=e,n=0;for(;n<t;)try{return await new Promise(((e,t)=>{const n=f.default.createServer();n.unref(),n.on("error",t),n.listen(r,(()=>{n.close((()=>e()))}))})),r}catch{n++,r++}return 0}},Us={...Ls,...As,...Ss,...Ps,...Rs,Ecdh:class{publicKey="";privateKey="";sharedSecret;iv="";__curve;__algorithm;__ecdh;constructor(e="prime256v1",t="aes-256-gcm"){this.__curve=e,this.__algorithm=t,this.generateKeys()}generateKeys(){const e=l.default.createECDH("prime256v1");e.generateKeys(),this.publicKey=e.getPublicKey("base64"),this.privateKey=e.getPrivateKey("base64"),this.__ecdh=e}setPrivateKey(e){return!!e&&(!!this.__ecdh&&(this.__ecdh.setPrivateKey(e,"base64"),this.publicKey=this.__ecdh.getPublicKey("base64"),!0))}setSharedSecret(e){return!!e&&(this.sharedSecret=e,!0)}deriveSharedSecret(e,t){return!!e&&(this.sharedSecret=this.__ecdh.computeSecret(e,"base64").toString("base64"),this.iv=t||"",!0)}encode(e,t){if(!this.sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=Qe.base64ToBytes(r),s=l.default.createCipheriv("aes-256-gcm",Qe.base64ToBytes(this.sharedSecret),n),i=Buffer.concat([new Uint8Array(s.update(e,"utf8")),new Uint8Array(s.final())]),o=s.getAuthTag();return Buffer.concat([new Uint8Array(i),new Uint8Array(o)]).toString("base64")}encodeiv(e,t){if(!this.sharedSecret)return"";const r=t||this.iv,n=r?Qe.base64ToBytes(r):Qe.getRandomBytes(12),s=l.default.createCipheriv("aes-256-gcm",Qe.base64ToBytes(this.sharedSecret),n),i=Buffer.concat([new Uint8Array(s.update(e,"utf8")),new Uint8Array(s.final())]),o=s.getAuthTag();return Buffer.concat([new Uint8Array(i),new Uint8Array(o),n]).toString("base64")}decode(e,t){if(!e||!this.sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=l.default.createDecipheriv("aes-256-gcm",Qe.base64ToBytes(this.sharedSecret),Qe.base64ToBytes(r)),s=Qe.base64ToBytes(e),i=s.slice(s.length-16);n.setAuthTag(i);const o=s.slice(0,s.length-16);return Buffer.concat([new Uint8Array(n.update(o)),new Uint8Array(n.final())]).toString("utf-8")}decodeiv(e){if(!e||!this.sharedSecret)return"";const t=Qe.base64ToBytes(e);if(t.length<28)return"";const r=t.slice(t.length-12),n=t.slice(t.length-28,t.length-12),s=l.default.createDecipheriv("aes-256-gcm",Qe.base64ToBytes(this.sharedSecret),r);s.setAuthTag(n);const i=t.slice(0,t.length-28);return Buffer.concat([new Uint8Array(s.update(i)),new Uint8Array(s.final())]).toString("utf-8")}},EcdhWeb:class extends vs{constructor(e="P-256",t="raw"){super(e,t),this.__subtle=l.default.webcrypto.subtle}},Socks5:class{upstreamProxy;server=null;clientSockets=new Set;systemProxy=null;useSystemProxy=!1;__debug=!1;__uuid;__port=0;__event;__pipeline;__logger;__totalReceived=0;__totalSent=0;__rules=[];constructor(e,t=!1,r){this.__event=new x,this.upstreamProxy=this.filterProxyConfigs(e),this._updateRules(),this.__debug=t,this.__uuid=b(),this.__pipeline=new Ee(1),this.__logger=r||console}get id(){return this.__uuid}get port(){return this.__port}get url(){return this.__port?`socks5://127.0.0.1:${this.__port}`:""}get totalReceived(){return this.__totalReceived}get totalSent(){return this.__totalSent}get rules(){return this.__rules}validateProxyConfig(e){const{ipaddress:t,port:r,userId:n,password:s}=e||{};return t&&"string"==typeof t?r&&"number"==typeof r?n&&"string"==typeof n?s&&"string"==typeof s?"":"无效的上游代理密码":"无效的上游代理用户名":"无效的上游代理端口":"无效的上游代理 IP 地址"}filterProxyConfigs(e){let t=[];t=e&&Array.isArray(e)?e:[e];const r=[];for(const e of t)this.validateProxyConfig(e)||r.push(e);return r}async start(e=8838){if(this.upstreamProxy.length<=0)return 0;if(this.server)return this.__debug&&console.info("[socks5] server is already running"),this.__port;const t=await this.findAvailablePort(e);return t?(this.setupServer(t),t):0}setupServer(e){try{return!!e&&(this.__port=e,this.server=f.default.createServer((e=>this.handleSocksConnection(e))),this.server.listen(e,(()=>{this.__debug&&this.__logger?.info(`[socks5] server is running on port ${e}`)})),this.server.on("error",(e=>{this.__logger?.error("[socks5] server error:",e),this.close()})),this.server.on("close",(()=>{this.__debug&&this.__logger?.info("[socks5] server closed")})),!0)}catch(e){return this.__debug&&this.__logger?.info("[socks5] setupServer error:",e),!1}}restart(){this.__debug&&console.info("[socks5] server restart");const e=this.__port;return!!e&&(this.close(),this.setupServer(e))}setUpstreamProxy(e){if(!e)return!1;const t=this.filterProxyConfigs(e);return!(!t||t.length<=0)&&(this.upstreamProxy=t,this._updateRules(),!0)}setSystemProxy(e,t){this.useSystemProxy=e,e&&t&&t.ipaddress&&t.port&&(this.systemProxy=t)}async findAvailablePort(e,t=200){let r=e,n=0;for(;n<t;)try{return await new Promise(((e,t)=>{const n=f.default.createServer();n.unref(),n.on("error",t),n.listen(r,(()=>{n.close((()=>e()))}))})),r}catch{n++,r++}return this.__debug&&this.__logger?.warn("[socks5] findAvailablePort failed"),0}async handleSocksConnection(e){let t,r="";try{if(!e)return;this.clientSockets.add(e),e.on("close",(()=>{this.clientSockets.delete(e),e?.destroy()})),await this.performHandshake(e);const n=await this.parseClientRequest(e),s=n.addr;if(r=`${s}:${n.port}`,this.__debug&&this.__logger?.info("[socks5] connection",r),t=this.findProxyConfig(s),t){const s=await this.connectToUpstreamProxy(n,t);this.__logger?.info(`[socks5] connection upstream ${r}, use ${t.ipaddress}:${t.port}`),this.setupDataForwarding(e,s,"upstream")}else if(this.useSystemProxy&&this.systemProxy&&!jr.isLocalIPAddress(s)){const t=await this.connectToSystemProxy(n);this.__debug&&console.info("[socks5] connection system",r),this.setupDataForwarding(e,t,"system")}else{this.__debug&&console.info("[socks5] connection local",r);const t=await this.connectToLocal(n);this.setupDataForwarding(e,t,"local")}}catch(n){this.__debug&&this.__logger?.error("[socks5] connection failed:",n),e.end(new Uint8Array([5,1])),this._emit("error",n,r,t)}}performHandshake(e){return new Promise(((t,r)=>{e.once("data",(n=>{if(5!==n[0])return r(new Error("Unsupported SOCKS version"));e.write(new Uint8Array([5,0])),t()}))}))}parseClientRequest(e){return new Promise(((t,r)=>{e.once("data",(e=>{let n,s;if(1!==e[1])return r(new Error("Unsupported command"));if(1===e[3])n=e.slice(4,8).join("."),s=e.readUInt16BE(8);else{if(3!==e[3])return r(new Error("Unsupported address type"));{const t=e[4];n=e.slice(5,5+t).toString(),s=e.readUInt16BE(5+t)}}t({addr:n,port:s})}))}))}async connectToUpstreamProxy(e,t){const r={proxy:{ipaddress:t.ipaddress,port:t.port,type:5,userId:t.userId,password:t.password},command:"connect",destination:{host:e.addr,port:e.port}};try{return await this.connectToProxy(r)}catch(e){throw new Error("Failed to connect to upstream proxy: "+e)}}async connectToSystemProxy(e){const t={proxy:{...this.systemProxy,type:5},command:"connect",destination:{host:e.addr,port:e.port}};try{return await this.connectToProxy(t)}catch(e){throw new Error("Failed to connect to system proxy: "+e)}}async connectToProxy(e){const{socket:t}=await s.SocksClient.createConnection(e);return t}async connectToLocal(e){return new Promise(((t,r)=>{const n=f.default.createConnection(e.port,e.addr,(()=>{t(n)}));n.on("error",(e=>{r(e)}))}))}setupDataForwarding(e,t,r="local"){e.write(new Uint8Array([5,0,0,1,0,0,0,0,0,0])),e.pipe(t),t.pipe(e);const n=`${t.localAddress}:${t.localPort}`;this.__debug&&console.info(`[socks5] setupDataForwarding ${n}`),"upstream"===r&&(t.on("data",(e=>{this.__totalSent+=e.length})),e.on("data",(e=>{this.__totalReceived+=e.length}))),e.on("close",(()=>{this.__debug&&console.info("[socks5] client socket close",n),t.end()})),t.on("close",(()=>{this.__debug&&console.info("[socks5] target socket close",n),e.end()})),e.on("error",(e=>{this.__debug&&console.error("[socks5] client socket error:",e?.message),t.end()})),t.on("error",(t=>{this.__debug&&console.error("[socks5] target socket error:",t?.message),e.end()}))}findProxyConfig(e){if(!jr.isLocalIPAddress(e))for(const t of this.upstreamProxy)if(this.isAllowedDomain(e,t.rules||[]))return t}isAllowedDomain(e,t){if(jr.isLocalIPAddress(e))return!1;if(!t||!Array.isArray(t))return!1;for(const r of t){if("*"===r)return!0;if(jr.shExpMatch(e,r))return!0}return!1}close(){try{if(!this.server)return;this.__debug&&this.__logger?.info("[socks5] closing SOCKS5 proxy server..."),this.server.close((e=>{e&&this.__debug&&this.__logger?.error("[socks5] closing the server failed:",e)})),this.clientSockets.forEach((e=>e?.destroy())),this.clientSockets.clear(),this.server=null,this.__port=0}catch(e){this.__debug&&this.__logger?.error("[socks5] close error:",e)}}on(e,t){e&&t&&(this.__event.off(e,t),this.__event.on(e,t))}off(e,t){e&&this.__event.off(e,t)}resetStatistics(){this.__totalReceived=0,this.__totalSent=0}_emit(e,...t){try{if(!e)return;this.__event.emit(e,...t)}catch(e){}}_updateRules(){this.upstreamProxy&&(this.__rules=wn.distinct(this.upstreamProxy.reduce(((e,t)=>e.concat(t?.rules||[])),[])))}},rsa:nt};const Fs={...Us};var Is={ossImage:(e,t={})=>{if(!e)return e;const r=jr.parseUrl(e).url;if(t.domain){if(!e.startsWith("http"))return e;const r=wn.toList(t.domain||""),n=e.match(/^http[s]?:\/\/([\w.]+)[\w\W]+/)[1]||"";if(!n||!r.includes(n))return e}const n=[];return t.webp&&!r.endsWith(".gif")&&n.push("format,webp"),t.resize&&n.push(`resize,s_${t.resize}`),t.interlace&&(n.push("interlace,1"),!n.every((e=>!e.startsWith("format")))||r.endsWith(".gif")||r.endsWith(".jpg")||n.push("format,jpg")),n.length<=0?e:`${r}?x-oss-process=image/${n.join("/")}`},ossSnapshot:(e,t={})=>{if(!e)return e;const r=jr.parseUrl(e).url,n=["snapshot"],{m:s="fast",f:i="jpg"}=t;return(t.t||0===t.t)&&n.push(`t_${t.t}`),t.w&&n.push(`w_${t.w}`),t.h&&n.push(`h_${t.h}`),s&&n.push(`m_${s}`),i&&n.push(`f_${i}`),t.ar&&n.push(`ar_${t.ar}`),`${r}?x-oss-process=video/${n.join(",")}`},ossBase64:e=>Be.toBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};const Ds={overrode:!1,tag:!1,format:"hh:mm:ss.SSS"},Ms=e=>(...t)=>{const r=console[e];Ds.overrode?r(...t):Ks(r,e,...t)},Ks=(e,t,...r)=>{const n=Ur.format(new Date,Ds.format),s=Ds.tag?`[${t}]`:"";s&&n?e.apply(console,[`${n} ${s}`,...r]):n?e.apply(console,[`${n}`,...r]):s?e.apply(console,[`${s}`,...r]):e.apply(console,[...r])};var zs={override:()=>{if(Ds.overrode)return;Ds.overrode=!0;["log","info","warn","error"].forEach((e=>{const t=console[e];console[e]=(...r)=>{Ks(t,e,...r)}}))},log:Ms("log"),info:Ms("info"),warn:Ms("warn"),error:Ms("error"),config:({tag:e=Ds.tag,format:t=Ds.format}={})=>{Ds.tag=e,Ds.format=t}};class Ns{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=pr.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=_r.copy(e,{fields:this.fields});this.save(r)}}class Ws extends x{setters={};getters={};actions={};persist;constructor(){super()}async dispatch(e,t=void 0){const r=this,n=Reflect.get(r.actions,e);if(!ie.isFunction(n))return;const[,s]=await pr.run(n({...r,commit:r.commit.bind(r),query:r.query.bind(r),dispatch:r.dispatch.bind(r)},t));return s}async query(e){const t=Reflect.get(this,e);let r;if(null!=t&&""!==t)r=_r.copy(t);else{const[,t]=await pr.exec((()=>this.dispatch(e)),`${this.__eventId}_${e}`);r=t}return r}commit(e,t){ie.isObject(t)&&(t=_r.copy(t)),this[e]=t}}const Hs=(e,t)=>{const r=Object.assign(new Ws,e||{});r.__persist=new Ns(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return ie.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(ie.isFunction(s)&&!s(e,r))return!0;const i=Reflect.set(e,t,r,n);return i&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),i},has:(e,t)=>Reflect.has(e,t)})};class Vs{host="";list=[];constructor(e,t={}){this._parseHost(e);const{width:r=500,height:n=400}=t,s=jr.parseUrl(e)?.params||{};s["x-oss-process"]=`image/resize,w_${r},h_${n},m_fill`;const i=jr.stringify(s,{uri:!1});this.list.push(`${e}?${i}`)}_parseHost(e){e&&!this.host&&/^http[s]?:\/\/([\w.]+)/.test(e)&&(this.host=e.replace(/^http[s]?:\/\/([\w.]+)[\w\W]+/,"$1"))}image(e,t={}){if(!e||!e.includes(this.host))return;if(this.list.length<=0)return;const r={g:"nw",...t},n=e.replace(/^http[s]?:\/\/[\w.]+\/([\w-.,_/?%&=]+)$/,"$1"),s=Dr.base64.encodeByOss(n),i=jr.stringify({image:s,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}text(e,t={},r={}){if(!e)return;const n={g:"nw",...t},s=Dr.base64.encodeByOss(e),i=jr.stringify({text:s,...n,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}result(){return this.list.join("")}}class Zs{__list=[];constructor(){this.clear()}add(e){const t=pr.run(e);return this.__list.push(t),this}clear(){return this.__list=[],this}wait(){const e=this.__list;return this.clear(),Promise.allSettled(e)}}const Js=new class{state=Hs(new Ws);frame=new Er;cache=new Map;cacheTime=new Map;setCache=(e,t)=>null!=t&&(!!e&&(this.cache.set(e,t),this.cacheTime.set(e,Date.now()),!0));hasCache=e=>{if(!e)return!1;this.cache.has(e)};getCache=e=>{if(e)return this.cache.get(e)};getCacheTime=e=>e&&this.cacheTime.get(e)||0;removeCache=e=>{e&&(this.cache.delete(e),this.cacheTime.delete(e))};cacheId=e=>`_${e}_cache_`;timesRecord=(e,t={})=>{if(!e)return;const{mode:r="running",cycle:n="day"}=t||{},s=this.cacheId(r),i=this.getCache(s)||{},o=Date.now(),a=i[e],c={time:o,count:1,cycle:n};return a&&("day"!==n||Ur.isToday(a.time||0))&&(c.count=1+(a.count||0)),i[e]=c,this.setCache(s,i),i};timesValid=(e,t={})=>{if(!e)return!1;const{max:r=1,interval:n=0,mode:s="running",cycle:i="day"}=t||{},o=this.cacheId(s);let a=this.getCache(o);if(!a)return!0;const c=a[e];if(!c)return!0;if("day"===i&&!Ur.isToday(c.time||0))return!0;if(r<=(c.count||0))return!1;return!(Date.now()-(c.time||0)<n)};timesClean=(e="running")=>{const t=this.cacheId(e),r=this.getCache(t);if(!r)return;const n=bn.copy(r);bn.forof(n,((e,t)=>{"day"!==t.cycle&&void 0!==t.cycle||Ur.isToday(t.time||0)||delete r[e]})),this.setCache(t,r)};parallel=()=>new Zs};class Ys{id="";start=0;end=0;cost=0;name="";type="";desc="";timeStartDesc="";timeEndDesc="";isDone=!1;flag=0;constructor(){this.id=b(),this.start=Date.now(),this.timeStartDesc=Ur.format(this.start,"hh:mm:ss.SSS")}get time(){return this.flag?this.end:this.start}get timeDesc(){return this.flag?this.timeEndDesc:this.timeStartDesc}done=(e=Date.now())=>{this.start&&(this.end=e,this.cost=this.end-this.start,this.timeEndDesc=Ur.format(this.end,"hh:mm:ss.SSS"),this.isDone=!0)}}const Gs=new class{__map=new Map;__trackList=[];opened=!0;clear(){return this.__map.clear(),this.__trackList=[],this}add(e,{desc:t="",type:r=""}={}){if(!e||!this.opened)return"";const n=new Ys;return n.name=e,n.type=r,n.desc=t,this.__trackList.push(n),n.id}done(e){if(!e||!this.opened)return;const t=this.__trackList.find((t=>t.id===e));if(!t||t.isDone)return;t.done();const r=_r.cloneClass(t);r.id=this._endId(e),r.flag=1,r.desc=`${t.desc} | end`,this.__trackList.push(r)}getTrack(e){return this.__trackList.find((t=>t.id===e))}getLine(e){if(!e||e.endsWith("-end"))return[];const t=this.__trackList.findIndex((t=>t.id===e));if(t<0)return[];const r=this._endId(e),n=this.__trackList.findIndex((e=>e.id===r)),s=n<0?this.__trackList.length-t:n-t+1;return wn.take(this.__trackList,s,t)}getList(e,t=""){if(!e)return[];const r=this.__trackList.filter((t=>t.name===e));if(r.length<=0)return[];if(!t)return r;const n=this._endId(t);return this.__trackList.filter((e=>e.id===t||e.id===n))}get list(){return this.__trackList}get size(){return this.__trackList.length}_endId=e=>`${e}-end`;report(e){const t=this.list;if(!t||t.length<=0)return;const r=t[0].time;t.forEach((t=>e&&e(t,r)))}},Qs={cdn:Is,watermark:(e,t)=>new Vs(e,t)},Xs={Store:Ws,storeRef:Hs,Persist:Ns,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})},ei=Js,ti=Gs,ri=zs;e.Event=x,e.KValue=A,e.Mapping=class{_map=new Map;constructor(){this._map.clear()}get keys(){return Array.from(this._map.keys())}get values(){return Array.from(this._map.values())}get(e){if(!e)return;const t=this._map.get(e);return t?t.value:void 0}getKV(e){if(e)return this._map.get(e)}set(e,t){if(!e)return;const r=this._map.get(e);r?(r.set(t),this.clean()):this._map.set(e,new A(e,t))}delete(e,t){if(!e)return;const r=this._map.get(e);t&&t(r?.value),this._map.delete(e)}clear(){this._map.clear()}clean(e=100,t){try{if(this._map.size<=e)return;if(this.keys.filter((e=>{if(!this._map.has(e))return!1;const t=this._map.get(e);return!t||!t.value})).forEach((e=>{this._map.delete(e)})),this._map.size<=e)return;const r=this.values.sort(((e,t)=>e.timestamp-t.timestamp)),n=r.length-e;if(n<=0)return;r.splice(0,n).forEach((e=>{this.delete(e.key,t)}))}catch(e){console.log("mapping clean",e)}}},e.dCdn=Qs,e.dHook=ln,e.dJoker=ei,e.dLogger=ri,e.dMini=gs,e.dNode=Fs,e.dStore=Xs,e.dTracker=ti,e.dUtil=Wn,e.dWeb=xs,Object.defineProperty(e,"__esModule",{value:!0})}));
|