w-web-api 1.0.66 → 1.0.67
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/dist/w-web-api.umd.js +2 -2
- package/dist/w-web-api.umd.js.map +1 -1
- package/docs/WWebApi.html +1 -1
- package/docs/index.html +1 -1
- package/docs/server_WWebApi.mjs.html +1 -1
- package/docs/src_components_Common_CheckYesNo.vue.html +1 -1
- package/package.json +2 -2
- package/toolg/gDistRollup.mjs +6 -2
package/dist/w-web-api.umd.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* w-web-api v1.0.
|
|
2
|
+
* w-web-api v1.0.67
|
|
3
3
|
* (c) 2018-2021 yuda-lyu(semisphere)
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("path"),require("fs"),require("@hapi/hapi"),require("@hapi/inert"),require("stream"),require("worker_threads"),require("readline"),require("url")):"function"==typeof define&&define.amd?define(["path","fs","@hapi/hapi","@hapi/inert","stream","worker_threads","readline","url"],t):(e="undefined"!=typeof globalThis?globalThis:e||self)["w-web-api"]=t(e.path,e.fs,e["@hapi/hapi"],e["@hapi/inert"],e.stream,e.require$$0,e.readline,e.url)}(this,function(e,t,n,r,i,s,o,a){"use strict";var l="undefined"!=typeof document?document.currentScript:null,c=Array.isArray,u="object"==typeof global&&global&&global.Object===Object&&global,d="object"==typeof self&&self&&self.Object===Object&&self,p=u||d||Function("return this")(),w=p.Symbol,M=Object.prototype,y=M.hasOwnProperty,m=M.toString,f=w?w.toStringTag:void 0;var I=Object.prototype.toString;var g=w?w.toStringTag:void 0;function h(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":g&&g in Object(e)?function(e){var t=y.call(e,f),n=e[f];try{e[f]=void 0;var r=!0}catch(e){}var i=m.call(e);return r&&(t?e[f]=n:delete e[f]),i}(e):function(e){return I.call(e)}(e)}function L(e){return null!=e&&"object"==typeof e}function b(e){return"symbol"==typeof e||L(e)&&"[object Symbol]"==h(e)}var D=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,C=/^\w*$/;function N(e,t){if(c(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!b(e))||(C.test(e)||!D.test(e)||null!=t&&e in Object(t))}function x(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function T(e){if(!x(e))return!1;var t=h(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var S,Z=p["__core-js_shared__"],A=(S=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+S:"";var X=Function.prototype.toString;function v(e){if(null!=e){try{return X.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var E=/^\[object .+?Constructor\]$/,j=Function.prototype,Y=Object.prototype,G=j.toString,z=Y.hasOwnProperty,K=RegExp("^"+G.call(z).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function W(e){return!(!x(e)||(t=e,A&&A in t))&&(T(e)?K:E).test(v(e));var t}function R(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return W(n)?n:void 0}var U=R(Object,"create");var V=Object.prototype.hasOwnProperty;var H=Object.prototype.hasOwnProperty;function k(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function P(e,t){return e===t||e!=e&&t!=t}function Q(e,t){for(var n=e.length;n--;)if(P(e[n][0],t))return n;return-1}k.prototype.clear=function(){this.__data__=U?U(null):{},this.size=0},k.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},k.prototype.get=function(e){var t=this.__data__;if(U){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return V.call(t,e)?t[e]:void 0},k.prototype.has=function(e){var t=this.__data__;return U?void 0!==t[e]:H.call(t,e)},k.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=U&&void 0===t?"__lodash_hash_undefined__":t,this};var O=Array.prototype.splice;function J(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}J.prototype.clear=function(){this.__data__=[],this.size=0},J.prototype.delete=function(e){var t=this.__data__,n=Q(t,e);return!(n<0)&&(n==t.length-1?t.pop():O.call(t,n,1),--this.size,!0)},J.prototype.get=function(e){var t=this.__data__,n=Q(t,e);return n<0?void 0:t[n][1]},J.prototype.has=function(e){return Q(this.__data__,e)>-1},J.prototype.set=function(e,t){var n=this.__data__,r=Q(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var B=R(p,"Map");function F(e,t){var n,r,i=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof t?"string":"hash"]:i.map}function _(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}_.prototype.clear=function(){this.size=0,this.__data__={hash:new k,map:new(B||J),string:new k}},_.prototype.delete=function(e){var t=F(this,e).delete(e);return this.size-=t?1:0,t},_.prototype.get=function(e){return F(this,e).get(e)},_.prototype.has=function(e){return F(this,e).has(e)},_.prototype.set=function(e,t){var n=F(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function q(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var o=e.apply(this,r);return n.cache=s.set(i,o)||s,o};return n.cache=new(q.Cache||_),n}q.Cache=_;var $,ee,te,ne=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,re=/\\(\\)?/g,ie=($=function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ne,function(e,n,r,i){t.push(r?i.replace(re,"$1"):n||e)}),t},ee=q($,function(e){return 500===te.size&&te.clear(),e}),te=ee.cache,ee),se=ie;function oe(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var ae=w?w.prototype:void 0,le=ae?ae.toString:void 0;function ce(e){if("string"==typeof e)return e;if(c(e))return oe(e,ce)+"";if(b(e))return le?le.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ue(e){return null==e?"":ce(e)}function de(e,t){return c(e)?e:N(e,t)?[e]:se(ue(e))}function pe(e){if("string"==typeof e||b(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function we(e,t){for(var n=0,r=(t=de(t,e)).length;null!=e&&n<r;)e=e[pe(t[n++])];return n&&n==r?e:void 0}function Me(e,t,n){var r=null==e?void 0:we(e,t);return void 0===r?n:r}function ye(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}var me,fe=function(e,t,n){for(var r=-1,i=Object(e),s=n(e),o=s.length;o--;){var a=s[me?o:++r];if(!1===t(i[a],a,i))break}return e};function Ie(e){return L(e)&&"[object Arguments]"==h(e)}var ge=Object.prototype,he=ge.hasOwnProperty,Le=ge.propertyIsEnumerable,be=Ie(function(){return arguments}())?Ie:function(e){return L(e)&&he.call(e,"callee")&&!Le.call(e,"callee")},De=be;var Ce="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ne=Ce&&"object"==typeof module&&module&&!module.nodeType&&module,xe=Ne&&Ne.exports===Ce?p.Buffer:void 0,Te=(xe?xe.isBuffer:void 0)||function(){return!1},Se=/^(?:0|[1-9]\d*)$/;function Ze(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Se.test(e))&&e>-1&&e%1==0&&e<t}function Ae(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var Xe={};function ve(e){return function(t){return e(t)}}Xe["[object Float32Array]"]=Xe["[object Float64Array]"]=Xe["[object Int8Array]"]=Xe["[object Int16Array]"]=Xe["[object Int32Array]"]=Xe["[object Uint8Array]"]=Xe["[object Uint8ClampedArray]"]=Xe["[object Uint16Array]"]=Xe["[object Uint32Array]"]=!0,Xe["[object Arguments]"]=Xe["[object Array]"]=Xe["[object ArrayBuffer]"]=Xe["[object Boolean]"]=Xe["[object DataView]"]=Xe["[object Date]"]=Xe["[object Error]"]=Xe["[object Function]"]=Xe["[object Map]"]=Xe["[object Number]"]=Xe["[object Object]"]=Xe["[object RegExp]"]=Xe["[object Set]"]=Xe["[object String]"]=Xe["[object WeakMap]"]=!1;var Ee="object"==typeof exports&&exports&&!exports.nodeType&&exports,je=Ee&&"object"==typeof module&&module&&!module.nodeType&&module,Ye=je&&je.exports===Ee&&u.process,Ge=function(){try{var e=je&&je.require&&je.require("util").types;return e||Ye&&Ye.binding&&Ye.binding("util")}catch(e){}}(),ze=Ge&&Ge.isTypedArray,Ke=ze?ve(ze):function(e){return L(e)&&Ae(e.length)&&!!Xe[h(e)]},We=Object.prototype.hasOwnProperty;function Re(e,t){var n=c(e),r=!n&&De(e),i=!n&&!r&&Te(e),s=!n&&!r&&!i&&Ke(e),o=n||r||i||s,a=o?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=a.length;for(var u in e)!t&&!We.call(e,u)||o&&("length"==u||i&&("offset"==u||"parent"==u)||s&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Ze(u,l))||a.push(u);return a}var Ue=Object.prototype;function Ve(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ue)}function He(e,t){return function(n){return e(t(n))}}var ke=He(Object.keys,Object),Pe=Object.prototype.hasOwnProperty;function Qe(e){if(!Ve(e))return ke(e);var t=[];for(var n in Object(e))Pe.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Oe(e){return null!=e&&Ae(e.length)&&!T(e)}function Je(e){return Oe(e)?Re(e):Qe(e)}function Be(e,t){return e&&fe(e,t,Je)}var Fe=function(e,t){return function(n,r){if(null==n)return n;if(!Oe(n))return e(n,r);for(var i=n.length,s=t?i:-1,o=Object(n);(t?s--:++s<i)&&!1!==r(o[s],s,o););return n}}(Be),_e=Fe;function qe(e){return e}function $e(e,t){var n;return(c(e)?ye:_e)(e,"function"==typeof(n=t)?n:qe)}function et(e){var t=this.__data__=new J(e);this.size=t.size}et.prototype.clear=function(){this.__data__=new J,this.size=0},et.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},et.prototype.get=function(e){return this.__data__.get(e)},et.prototype.has=function(e){return this.__data__.has(e)},et.prototype.set=function(e,t){var n=this.__data__;if(n instanceof J){var r=n.__data__;if(!B||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new _(r)}return n.set(e,t),this.size=n.size,this};function tt(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new _;++t<n;)this.add(e[t])}function nt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function rt(e,t){return e.has(t)}tt.prototype.add=tt.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},tt.prototype.has=function(e){return this.__data__.has(e)};function it(e,t,n,r,i,s){var o=1&n,a=e.length,l=t.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(e),u=s.get(t);if(c&&u)return c==t&&u==e;var d=-1,p=!0,w=2&n?new tt:void 0;for(s.set(e,t),s.set(t,e);++d<a;){var M=e[d],y=t[d];if(r)var m=o?r(y,M,d,t,e,s):r(M,y,d,e,t,s);if(void 0!==m){if(m)continue;p=!1;break}if(w){if(!nt(t,function(e,t){if(!rt(w,t)&&(M===e||i(M,e,n,r,s)))return w.push(t)})){p=!1;break}}else if(M!==y&&!i(M,y,n,r,s)){p=!1;break}}return s.delete(e),s.delete(t),p}var st=p.Uint8Array;function ot(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function at(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var lt=w?w.prototype:void 0,ct=lt?lt.valueOf:void 0;function ut(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}function dt(e,t,n){var r=t(e);return c(e)?r:ut(r,n(e))}function pt(e,t){for(var n=-1,r=null==e?0:e.length,i=0,s=[];++n<r;){var o=e[n];t(o,n,e)&&(s[i++]=o)}return s}function wt(){return[]}var Mt=Object.prototype.propertyIsEnumerable,yt=Object.getOwnPropertySymbols,mt=yt?function(e){return null==e?[]:(e=Object(e),pt(yt(e),function(t){return Mt.call(e,t)}))}:wt;function ft(e){return dt(e,Je,mt)}var It=Object.prototype.hasOwnProperty;var gt=R(p,"DataView"),ht=R(p,"Promise"),Lt=R(p,"Set"),bt=R(p,"WeakMap"),Dt="[object Map]",Ct="[object Promise]",Nt="[object Set]",xt="[object WeakMap]",Tt="[object DataView]",St=v(gt),Zt=v(B),At=v(ht),Xt=v(Lt),vt=v(bt),Et=h;(gt&&Et(new gt(new ArrayBuffer(1)))!=Tt||B&&Et(new B)!=Dt||ht&&Et(ht.resolve())!=Ct||Lt&&Et(new Lt)!=Nt||bt&&Et(new bt)!=xt)&&(Et=function(e){var t=h(e),n="[object Object]"==t?e.constructor:void 0,r=n?v(n):"";if(r)switch(r){case St:return Tt;case Zt:return Dt;case At:return Ct;case Xt:return Nt;case vt:return xt}return t});var jt=Et,Yt="[object Arguments]",Gt="[object Array]",zt="[object Object]",Kt=Object.prototype.hasOwnProperty;function Wt(e,t,n,r,i,s){var o=c(e),a=c(t),l=o?Gt:jt(e),u=a?Gt:jt(t),d=(l=l==Yt?zt:l)==zt,p=(u=u==Yt?zt:u)==zt,w=l==u;if(w&&Te(e)){if(!Te(t))return!1;o=!0,d=!1}if(w&&!d)return s||(s=new et),o||Ke(e)?it(e,t,n,r,i,s):function(e,t,n,r,i,s,o){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!s(new st(e),new st(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return P(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var a=ot;case"[object Set]":var l=1&r;if(a||(a=at),e.size!=t.size&&!l)return!1;var c=o.get(e);if(c)return c==t;r|=2,o.set(e,t);var u=it(a(e),a(t),r,i,s,o);return o.delete(e),u;case"[object Symbol]":if(ct)return ct.call(e)==ct.call(t)}return!1}(e,t,l,n,r,i,s);if(!(1&n)){var M=d&&Kt.call(e,"__wrapped__"),y=p&&Kt.call(t,"__wrapped__");if(M||y){var m=M?e.value():e,f=y?t.value():t;return s||(s=new et),i(m,f,n,r,s)}}return!!w&&(s||(s=new et),function(e,t,n,r,i,s){var o=1&n,a=ft(e),l=a.length;if(l!=ft(t).length&&!o)return!1;for(var c=l;c--;){var u=a[c];if(!(o?u in t:It.call(t,u)))return!1}var d=s.get(e),p=s.get(t);if(d&&p)return d==t&&p==e;var w=!0;s.set(e,t),s.set(t,e);for(var M=o;++c<l;){var y=e[u=a[c]],m=t[u];if(r)var f=o?r(m,y,u,t,e,s):r(y,m,u,e,t,s);if(!(void 0===f?y===m||i(y,m,n,r,s):f)){w=!1;break}M||(M="constructor"==u)}if(w&&!M){var I=e.constructor,g=t.constructor;I==g||!("constructor"in e)||!("constructor"in t)||"function"==typeof I&&I instanceof I&&"function"==typeof g&&g instanceof g||(w=!1)}return s.delete(e),s.delete(t),w}(e,t,n,r,i,s))}function Rt(e,t,n,r,i){return e===t||(null==e||null==t||!L(e)&&!L(t)?e!=e&&t!=t:Wt(e,t,n,r,Rt,i))}function Ut(e){return e==e&&!x(e)}function Vt(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}function Ht(e){var t=function(e){for(var t=Je(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,Ut(i)]}return t}(e);return 1==t.length&&t[0][2]?Vt(t[0][0],t[0][1]):function(n){return n===e||function(e,t,n,r){var i=n.length,s=i,o=!r;if(null==e)return!s;for(e=Object(e);i--;){var a=n[i];if(o&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++i<s;){var l=(a=n[i])[0],c=e[l],u=a[1];if(o&&a[2]){if(void 0===c&&!(l in e))return!1}else{var d=new et;if(r)var p=r(c,u,l,e,t,d);if(!(void 0===p?Rt(u,c,3,r,d):p))return!1}}return!0}(n,e,t)}}function kt(e,t){return null!=e&&t in Object(e)}function Pt(e,t){return null!=e&&function(e,t,n){for(var r=-1,i=(t=de(t,e)).length,s=!1;++r<i;){var o=pe(t[r]);if(!(s=null!=e&&n(e,o)))break;e=e[o]}return s||++r!=i?s:!!(i=null==e?0:e.length)&&Ae(i)&&Ze(o,i)&&(c(e)||De(e))}(e,t,kt)}function Qt(e){return function(t){return null==t?void 0:t[e]}}function Ot(e){return N(e)?Qt(pe(e)):function(e){return function(t){return we(t,e)}}(e)}function Jt(e){return"function"==typeof e?e:null==e?qe:"object"==typeof e?c(e)?function(e,t){return N(e)&&Ut(t)?Vt(pe(e),t):function(n){var r=Me(n,e);return void 0===r&&r===t?Pt(n,e):Rt(t,r,3)}}(e[0],e[1]):Ht(e):Ot(e)}function Bt(e,t){var n=-1,r=Oe(e)?Array(e.length):[];return _e(e,function(e,i,s){r[++n]=t(e,i,s)}),r}function Ft(e,t){return(c(e)?oe:Bt)(e,Jt(t))}function _t(e){return"[object String]"===Object.prototype.toString.call(e)}function qt(e){return!(!_t(e)||""===e)}function $t(e){if(!qt(e))return{};let t={};try{t=JSON.parse(e)}catch(e){t={}}return t}function en(e){return"[object Object]"===Object.prototype.toString.call(e)}function tn(e){if(en(e)){for(let t in e)return!0;return!1}return!1}function nn(e){return"[object Array]"===Object.prototype.toString.call(e)}function rn(e){return"[object Undefined]"===Object.prototype.toString.call(e)}function sn(e){if(en(e)){for(let t in e)return!1;return!0}return!1}function on(e){return e!=e}function an(e){return!!rn(e)||(!!function(e){return"[object Null]"===Object.prototype.toString.call(e)}(e)||(!!sn(e)||(!!function(e){return!(!_t(e)||""!==e)}(e)||(!!function(e){return!!nn(e)&&0===e.length}(e)||!!on(e)))))}function ln(e){return!!nn(e)&&(0!==e.length&&(1!==e.length||!an(e[0])))}var cn=/\s/;var un=/^\s+/;function dn(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&cn.test(e.charAt(t)););return t}(e)+1).replace(un,""):e}var pn=/^[-+]0x[0-9a-f]+$/i,wn=/^0b[01]+$/i,Mn=/^0o[0-7]+$/i,yn=parseInt;function mn(e){if("number"==typeof e)return e;if(b(e))return NaN;if(x(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=x(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=dn(e);var n=wn.test(e);return n||Mn.test(e)?yn(e.slice(2),n?2:8):pn.test(e)?NaN:+e}var fn=1/0;function In(e){return e?(e=mn(e))===fn||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function gn(e){var t=In(e),n=t%1;return t==t?n?t-n:t:0}function hn(e){let t=!1;if(qt(e))t=!isNaN(Number(e));else if(function(e){return"[object Number]"===Object.prototype.toString.call(e)}(e)){if(on(e))return!1;t=!0}return t}function Ln(e){if(!hn(e))return 0;return In(e)}function bn(e){return!!hn(e)&&(e=Ln(e),"number"==typeof(t=e)&&t==gn(t));var t}var Dn=p.isFinite,Cn=Math.min;var Nn=function(e){var t=Math[e];return function(e,n){if(e=mn(e),(n=null==n?0:Cn(gn(n),292))&&Dn(e)){var r=(ue(e)+"e").split("e");return+((r=(ue(t(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return t(e)}}("round"),xn=Nn;function Tn(e){if(!hn(e))return 0;e=Ln(e);let t=xn(e);return"0"===String(t)?0:t}function Sn(e){if(!bn(e))return!1;return Tn(e)>0}var Zn=He(Object.getPrototypeOf,Object),An=Function.prototype,Xn=Object.prototype,vn=An.toString,En=Xn.hasOwnProperty,jn=vn.call(Object);function Yn(e){if(!L(e)||"[object Object]"!=h(e))return!1;var t=Zn(e);if(null===t)return!0;var n=En.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&vn.call(n)==jn}function Gn(e){if(!L(e))return!1;var t=h(e);return"[object Error]"==t||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Yn(e)}function zn(e){return Gn(e)}function Kn(e){let t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t}function Wn(e){let t,n=Object.prototype.toString.call(e);if(t="[object Promise]"===n,t)return!0;if("[object Function]"!==n)return!1;try{t="function"!=typeof e.subscribe&&"function"==typeof e.then}catch(e){}return t}function Rn(e){if(!bn(e))return!1;return Tn(e)>=0}function Un(e,t){return qt(e)&&Rn(t)?0===(t=Tn(t))?"":e.substring(0,t):""}function Vn(e,t){if(!qt(e))return"";if(!Rn(t))return"";if(0===(t=Tn(t)))return"";let n=e.length-t;return n<0&&(n=0),e.substring(n,n+t)}function Hn(e,t){return qt(e)&&Rn(t)?0===(t=Tn(t))?e:Vn(e,e.length-t):""}function kn(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}let Pn=function(e){if(!Kn(e))throw new Error("fn is not a function");return function(){let t=kn(),n=null,r=null;try{n=e.apply(this,arguments)}catch(e){r=e}return null!==r?t.resolve({state:"error",msg:r}):Wn(n)?n.then(e=>{t.resolve({state:"success",msg:e})}).catch(e=>{"cancelled"===Me(e,"reason")?t.resolve({state:"cancelled",msg:""}):t.resolve({state:"error",msg:e})}):t.resolve({state:"success",msg:n}),t}};var Qn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function On(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Jn={exports:{}};var Bn,Fn={exports:{}};function _n(){return Bn||(Bn=1,function(e){var t;e.exports=(t=t||function(e,t){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==Qn&&Qn.crypto&&(n=Qn.crypto),!n)try{n=require("crypto")}catch(e){}var r=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s={},o=s.lib={},a=o.Base={extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},l=o.WordArray=a.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var s=0;s<i;s++){var o=n[s>>>2]>>>24-s%4*8&255;t[r+s>>>2]|=o<<24-(r+s)%4*8}else for(var a=0;a<i;a+=4)t[r+a>>>2]=n[a>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(r());return new l.init(t,e)}}),c=s.enc={},u=c.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((15&s).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new l.init(n,t/2)}},d=c.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(s))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new l.init(n,t)}},p=c.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},w=o.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,s=r.sigBytes,o=this.blockSize,a=s/(4*o),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,u=e.min(4*c,s);if(c){for(var d=0;d<c;d+=o)this._doProcessBlock(i,d);n=i.splice(0,c),r.sigBytes-=u}return new l.init(n,u)},clone:function(){var e=a.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});o.Hasher=w.extend({cfg:a.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){w.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new M.HMAC.init(e,n).finalize(t)}}});var M=s.algo={};return s}(Math),t)}(Fn)),Fn.exports}!function(e){e.exports=_n().enc.Utf8}(Jn);var qn=On(Jn.exports),$n={exports:{}};!function(e){var t;e.exports=(t=_n(),function(){var e=t,n=e.lib.WordArray;function r(e,t,r){for(var i=[],s=0,o=0;o<t;o++)if(o%4){var a=r[e.charCodeAt(o-1)]<<o%4*2|r[e.charCodeAt(o)]>>>6-o%4*2;i[s>>>2]|=a<<24-s%4*8,s++}return n.create(i,s)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],s=0;s<n;s+=3)for(var o=(t[s>>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a<n;a++)i.push(r.charAt(o>>>6*(3-a)&63));var l=r.charAt(64);if(l)for(;i.length%4;)i.push(l);return i.join("")},parse:function(e){var t=e.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var s=0;s<n.length;s++)i[n.charCodeAt(s)]=s}var o=n.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return r(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),t.enc.Base64)}($n);var er=On($n.exports);function tr(e){if(!qt(e))return"";return er.parse(e).toString(qn)}function nr(e,t,n=""){if(!ln(t))return{};let r={};return $e(t,function(t){r[t]=Me(e,t,n)}),r}function rr(e,t={}){let n=Me(t,"fs"),r=!1;try{n.statSync(e),r=!0}catch{r=!1}return r}function ir(e,t={}){let n=Me(t,"fs");if(!rr(e,{fs:n}))return!1;let r=n.lstatSync(e);return!r.isFile()&&!r.isSymbolicLink()}function sr(e){return ir(e,{fs:t})}function or(e,t={}){let n=Me(t,"fs");return!!rr(e,{fs:n})&&(!n.lstatSync(e).isDirectory()&&!n.lstatSync(e).isSymbolicLink())}function ar(e){return or(e,{fs:t})}function lr(e,t,n){if(!qt(e))return"";if(!qt(t))return"";if(!_t(n))return"";return String(e).replaceAll(t,n)}var cr={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",i="second",s="minute",o="hour",a="day",l="week",c="month",u="quarter",d="year",p="date",w="Invalid Date",M=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},f=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},I={s:f,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+f(r,2,"0")+":"+f(i,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,c),s=n-i<0,o=t.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:c,y:d,w:l,d:a,D:p,h:o,m:s,s:i,ms:r,Q:u}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},g="en",h={};h[g]=m;var L="$isDayjsObject",b=function(e){return e instanceof x||!(!e||!e[L])},D=function e(t,n,r){var i;if(!t)return g;if("string"==typeof t){var s=t.toLowerCase();h[s]&&(i=s),n&&(h[s]=n,i=s);var o=t.split("-");if(!i&&o.length>1)return e(o[0])}else{var a=t.name;h[a]=t,i=a}return!r&&i&&(g=i),i||!r&&g},C=function(e,t){if(b(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new x(n)},N=I;N.l=D,N.i=b,N.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var x=function(){function m(e){this.$L=D(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[L]=!0}var f=m.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(N.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(M);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(t)}(e),this.init()},f.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},f.$utils=function(){return N},f.isValid=function(){return!(this.$d.toString()===w)},f.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},f.isAfter=function(e,t){return C(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<C(e)},f.$g=function(e,t,n){return N.u(e)?this[t]:this.set(n,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,t){var n=this,r=!!N.u(t)||t,u=N.p(e),w=function(e,t){var i=N.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(a)},M=function(e,t){return N.w(n.toDate()[e].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},y=this.$W,m=this.$M,f=this.$D,I="set"+(this.$u?"UTC":"");switch(u){case d:return r?w(1,0):w(31,11);case c:return r?w(1,m):w(0,m+1);case l:var g=this.$locale().weekStart||0,h=(y<g?y+7:y)-g;return w(r?f-h:f+(6-h),m);case a:case p:return M(I+"Hours",0);case o:return M(I+"Minutes",1);case s:return M(I+"Seconds",2);case i:return M(I+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(e,t){var n,l=N.p(e),u="set"+(this.$u?"UTC":""),w=(n={},n[a]=u+"Date",n[p]=u+"Date",n[c]=u+"Month",n[d]=u+"FullYear",n[o]=u+"Hours",n[s]=u+"Minutes",n[i]=u+"Seconds",n[r]=u+"Milliseconds",n)[l],M=l===a?this.$D+(t-this.$W):t;if(l===c||l===d){var y=this.clone().set(p,1);y.$d[w](M),y.init(),this.$d=y.set(p,Math.min(this.$D,y.daysInMonth())).$d}else w&&this.$d[w](M);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[N.p(e)]()},f.add=function(r,u){var p,w=this;r=Number(r);var M=N.p(u),y=function(e){var t=C(w);return N.w(t.date(t.date()+Math.round(e*r)),w)};if(M===c)return this.set(c,this.$M+r);if(M===d)return this.set(d,this.$y+r);if(M===a)return y(1);if(M===l)return y(7);var m=(p={},p[s]=t,p[o]=n,p[i]=e,p)[M]||1,f=this.$d.getTime()+r*m;return N.w(f,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||w;var r=e||"YYYY-MM-DDTHH:mm:ssZ",i=N.z(this),s=this.$H,o=this.$m,a=this.$M,l=n.weekdays,c=n.months,u=n.meridiem,d=function(e,n,i,s){return e&&(e[n]||e(t,r))||i[n].slice(0,s)},p=function(e){return N.s(s%12||12,e,"0")},M=u||function(e,t,n){var r=e<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,function(e,r){return r||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return N.s(t.$y,4,"0");case"M":return a+1;case"MM":return N.s(a+1,2,"0");case"MMM":return d(n.monthsShort,a,c,3);case"MMMM":return d(c,a);case"D":return t.$D;case"DD":return N.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return d(n.weekdaysMin,t.$W,l,2);case"ddd":return d(n.weekdaysShort,t.$W,l,3);case"dddd":return l[t.$W];case"H":return String(s);case"HH":return N.s(s,2,"0");case"h":return p(1);case"hh":return p(2);case"a":return M(s,o,!0);case"A":return M(s,o,!1);case"m":return String(o);case"mm":return N.s(o,2,"0");case"s":return String(t.$s);case"ss":return N.s(t.$s,2,"0");case"SSS":return N.s(t.$ms,3,"0");case"Z":return i}return null}(e)||i.replace(":","")})},f.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},f.diff=function(r,p,w){var M,y=this,m=N.p(p),f=C(r),I=(f.utcOffset()-this.utcOffset())*t,g=this-f,h=function(){return N.m(y,f)};switch(m){case d:M=h()/12;break;case c:M=h();break;case u:M=h()/3;break;case l:M=(g-I)/6048e5;break;case a:M=(g-I)/864e5;break;case o:M=g/n;break;case s:M=g/t;break;case i:M=g/e;break;default:M=g}return w?M:N.a(M)},f.daysInMonth=function(){return this.endOf(c).$D},f.$locale=function(){return h[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=D(e,t,!0);return r&&(n.$L=r),n},f.clone=function(){return N.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},m}(),T=x.prototype;return C.prototype=T,[["$ms",r],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",p]].forEach(function(e){T[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),C.extend=function(e,t){return e.$i||(e(t,x,C),e.$i=!0),C},C.locale=D,C.isDayjs=b,C.unix=function(e){return C(1e3*e)},C.en=h[g],C.Ls=h,C.p={},C}()}(cr);var ur=On(cr.exports);function dr(){if(!Kn(ur))throw new Error("invalid dayjs");return ur().format("YYYY-MM-DDTHH:mm:ssZ")}let pr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),wr=pr.length;function Mr(e=32){let t=[];e=Sn(e)?Tn(e):32;for(let n=0;n<e;n++)t[n]=pr[0|Math.random()*wr];return t.join("")}function yr(e){return!0===(t=e)||!1===t||L(t)&&"[object Boolean]"==h(t);var t}var mr={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new i(r,s||e,o),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],a]:e._events[l].push(a):(e._events[l]=a,e._eventsCount++),e}function o(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,o=new Array(s);i<s;i++)o[i]=r[i].fn;return o},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,i,s,o){var a=n?n+e:e;if(!this._events[a])return!1;var l,c,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,i),!0;case 5:return u.fn.call(u.context,t,r,i,s),!0;case 6:return u.fn.call(u.context,t,r,i,s,o),!0}for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];u.fn.apply(u.context,l)}else{var p,w=u.length;for(c=0;c<w;c++)switch(u[c].once&&this.removeListener(e,u[c].fn,void 0,!0),d){case 1:u[c].fn.call(u[c].context);break;case 2:u[c].fn.call(u[c].context,t);break;case 3:u[c].fn.call(u[c].context,t,r);break;case 4:u[c].fn.call(u[c].context,t,r,i);break;default:if(!l)for(p=1,l=new Array(d-1);p<d;p++)l[p-1]=arguments[p];u[c].fn.apply(u[c].context,l)}}return!0},a.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return o(this,s),this;var a=this._events[s];if(a.fn)a.fn!==t||i&&!a.once||r&&a.context!==r||o(this,s);else{for(var l=0,c=[],u=a.length;l<u;l++)(a[l].fn!==t||i&&!a[l].once||r&&a[l].context!==r)&&c.push(a[l]);c.length?this._events[s]=1===c.length?c[0]:c:o(this,s)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a}(mr);var fr=On(mr.exports);function Ir(){return new fr}async function gr(e,t={}){let n=null,r=kn();if(!Kn(e))return r.reject("waitfunction需輸入函數f"),r;let i=async()=>{let t=e();return Wn(t)&&(t=await t),t};if(n=await i(),!0===n)return r.resolve(),r;let s=Me(t,"attemptNum",null);Sn(s)||(s=200);let o=Me(t,"timeInterval",null);Sn(o)||(o=1e3);let a=0,l=setInterval(async()=>{a+=1,n=await i(),!0===n&&(clearInterval(l),r.resolve()),a>s&&(clearInterval(l),r.reject(`exceeded attemptNum[${s}]`))},o);return r}function hr(e){return function(e,t={}){let n=Me(t,"fs");if(ir(e,{fs:n}))return{success:"input folder is already exists: "+e};if(rr(e,{fs:n}))return{error:"input path already exists: "+e};try{n.mkdirSync(e,{recursive:!0})}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:t})}function Lr(e){return"number"==typeof e||L(e)&&"[object Number]"==h(e)}function br(e){if(!(qt(e)||hn(e)||b(e)||function(e){return"[object BigInt]"===Object.prototype.toString.call(e)}(e)))return"";let t="";try{t=String(e)}catch(e){}try{t=e.toString()}catch(e){}return t}function Dr(e){if(!qt(e))return"";let t=qn.parse(e);return er.stringify(t)}function Cr(e,t){return!!en(e)&&(!(!qt(t)&&!hn(t))&&t in e)}function Nr(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)}function xr(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}function Tr(e){return"[object Uint16Array]"===Object.prototype.toString.call(e)}function Sr(e){if(!(Nr(e)||(t=e,"[object Blob]"===Object.prototype.toString.call(t))||xr(e)||Tr(e)))return null;var t;try{if(e.byteLength)return e.byteLength}catch(e){}try{if(e.length)return e.length}catch(e){}try{if(e.size)return e.size}catch(e){}return null}function Zr(e){if(!qt(e))return new Uint8Array;let t;try{t=function(e){if(!_t(e))return new Uint8Array;let t=er.parse(e),n=t.words,r=t.sigBytes,i=new Uint8Array(r);for(let e=0;e<r;e++){let t=n[e>>>2]>>>24-e%4*8&255;i[e]=t}return i}(Dr(e))}catch(e){return new Uint8Array}return t}function Ar(e,t,n=0,r=!0,i=52,s=8){return function(e,t,n,r,i,s){if(!hn(e))return null;if(!xr(t))return null;if(!bn(n))return null;if(!yr(r))return null;if(!bn(i))return null;if(!bn(s))return null;let o,a,l;e=Ln(e);let c=8*s-i-1,u=(1<<c)-1,d=u>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?s-1:0,M=r?-1:1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+d>=1?p/l:p*Math.pow(2,1-d))*l>=2&&(o++,l/=2),o+d>=u?(a=0,o=u):o+d>=1?(a=(e*l-1)*Math.pow(2,i),o+=d):(a=e*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;t[n+w]=255&a,w+=M,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;t[n+w]=255&o,w+=M,o/=256,c-=8);return t[n+w-M]|=128*y,null}(e,t,n,r,i,s)}function Xr(e){let t=[],n=[];if(!ln(e)&&!tn(e))return null;let r=[],i=[];function s(e){r.push(Sr(e)),i.push(e)}try{let o=function(e){if(!en(e))return{results:"",binarys:[]};if(sn(e))return{results:"",binarys:[]};let t="",n=[];try{let r=-1;t=JSON.stringify(e,function(e,t){if(xr(t)){r+=1;let e=`[Uint8Array]::${r}`;return n.push(t),e}if(Tr(t)){r+=1;let e=`[Uint16Array]::${r}`;return n.push(t),e}if(Nr(t)){r+=1;let e=`[ArrayBuffer]::${r}`;return n.push(t),e}return Gn(t)&&(t=t.toString()),t})}catch(e){}return{results:t,binarys:n}}(e);s(Zr(o.results)),$e(o.binarys,e=>{s(e)});let a=r,l=Zr(JSON.stringify(a)),c=new Uint8Array(8);Ar(Sr(l),c),t.push(c),t.push(l),$e(i,e=>{t.push(e)}),$e(t,e=>{n=function(e,t){let n=Sr(e),r=Sr(t),i=new Uint8Array(n+r);return i.set(new Uint8Array(e),0),i.set(new Uint8Array(t),n),i}(n,e)})}catch(e){return null}return n}function vr(e,t=0,n=!0,r=52,i=8){return function(e,t,n,r,i){if(!xr(e))return null;if(!bn(t))return null;if(!yr(n))return null;if(!bn(r))return null;if(!bn(i))return null;let s,o,a=8*i-r-1,l=(1<<a)-1,c=l>>1,u=-7,d=n?0:i-1,p=n?1:-1,w=e[t+d];for(d+=p,s=w&(1<<-u)-1,w>>=-u,u+=a;u>0;s=256*s+e[t+d],d+=p,u-=8);for(o=s&(1<<-u)-1,s>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=p,u-=8);if(0===s)s=1-c;else{if(s===l)return o?NaN:1/0*(w?-1:1);o+=Math.pow(2,r),s-=c}return(w?-1:1)*o*Math.pow(2,s-r)}(e,t,n,r,i)}var Er={exports:{}};!function(e){var t;e.exports=(t=_n(),function(){if("function"==typeof ArrayBuffer){var e=t.lib.WordArray,n=e.init,r=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var t=e.byteLength,r=[],i=0;i<t;i++)r[i>>>2]|=e[i]<<24-i%4*8;n.call(this,r,t)}else n.apply(this,arguments)};r.prototype=e}}(),t.lib.WordArray)}(Er);var jr=On(Er.exports);function Yr(e){if(!xr(e))return"";let t;try{t=tr(function(e){return xr(e)?jr.create(e).toString(er):""}(e))}catch(e){return""}return t}function Gr(e){let t=null;if(!xr(e))return null;try{let n=8,r=e.slice(0,n),i=e.slice(n,Sr(e)),s=vr(r),o=i.slice(0,s),a=i.slice(s,Sr(i)),l=Yr(o),c=function(e,t){let n=0,r=0,i=[];return $e(t,t=>{r=n+t;let s=e.slice(n,r);n=r,i.push(s)}),i}(a,JSON.parse(l));t=function(e){if(!tn(e))return{};let{results:t,binarys:n}=e;if(!qt(t))return{};if(!nn(n))return{};let r={};try{r=JSON.parse(t,function(e,t){if(qt(t)){if(t.indexOf("[Uint8Array]::")>=0){let e=Tn(t.replace("[Uint8Array]::",""));return n[e]}if(t.indexOf("[Uint16Array]::")>=0){let e=Tn(t.replace("[Uint16Array]::",""));return n[e]}if(t.indexOf("[ArrayBuffer]::")>=0){let e=Tn(t.replace("[ArrayBuffer]::",""));return n[e]}}return t})}catch(e){}return r}({results:Yr(c.shift()),binarys:c})}catch(e){}return t}function zr(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(i);++r<i;)s[r]=e[r+t];return s}function Kr(e){return e!=e}function Wr(e,t,n){return t==t?function(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}(e,t,n):function(e,t,n,r){for(var i=e.length,s=n+(r?1:-1);r?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,Kr,n)}var Rr=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Ur(e){return Rr.test(e)}var Vr="\\ud800-\\udfff",Hr="["+Vr+"]",kr="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Pr="\\ud83c[\\udffb-\\udfff]",Qr="[^"+Vr+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Jr="[\\ud800-\\udbff][\\udc00-\\udfff]",Br="(?:"+kr+"|"+Pr+")"+"?",Fr="[\\ufe0e\\ufe0f]?",_r=Fr+Br+("(?:\\u200d(?:"+[Qr,Or,Jr].join("|")+")"+Fr+Br+")*"),qr="(?:"+[Qr+kr+"?",kr,Or,Jr,Hr].join("|")+")",$r=RegExp(Pr+"(?="+Pr+")|"+qr+_r,"g");function ei(e){return Ur(e)?function(e){return e.match($r)||[]}(e):function(e){return e.split("")}(e)}function ti(e,t,n){if((e=ue(e))&&(n||void 0===t))return dn(e);if(!e||!(t=ce(t)))return e;var r=ei(e),i=ei(t),s=function(e,t){for(var n=-1,r=e.length;++n<r&&Wr(t,e[n],0)>-1;);return n}(r,i),o=function(e,t){for(var n=e.length;n--&&Wr(t,e[n],0)>-1;);return n}(r,i)+1;return function(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:zr(e,t,n)}(r,s,o).join("")}function ni(e,t){if(!qt(e))return[];if(!qt(t))return[];let n=function(e,t){return qt(e)&&qt(t)?e.split(t):[]}(e,t);n=Ft(n,ti);let r=[];return $e(n,function(e){qt(e)&&r.push(e)}),r}function ri(e){return function(e,t={}){let n=Me(t,"fs");if(!rr(e,{fs:n}))return{success:"file does not exist: "+e};if(!or(e,{fs:n}))return{error:"input path is not a file: "+e};try{n.unlinkSync(e)}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:t})}var ii={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new i(r,s||e,o),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],a]:e._events[l].push(a):(e._events[l]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,o=new Array(s);i<s;i++)o[i]=r[i].fn;return o},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,i,s,o){var a=n?n+e:e;if(!this._events[a])return!1;var l,c,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,i),!0;case 5:return u.fn.call(u.context,t,r,i,s),!0;case 6:return u.fn.call(u.context,t,r,i,s,o),!0}for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];u.fn.apply(u.context,l)}else{var p,w=u.length;for(c=0;c<w;c++)switch(u[c].once&&this.removeListener(e,u[c].fn,void 0,!0),d){case 1:u[c].fn.call(u[c].context);break;case 2:u[c].fn.call(u[c].context,t);break;case 3:u[c].fn.call(u[c].context,t,r);break;case 4:u[c].fn.call(u[c].context,t,r,i);break;default:if(!l)for(p=1,l=new Array(d-1);p<d;p++)l[p-1]=arguments[p];u[c].fn.apply(u[c].context,l)}}return!0},a.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return o(this,s),this;var a=this._events[s];if(a.fn)a.fn!==t||i&&!a.once||r&&a.context!==r||o(this,s);else{for(var l=0,c=[],u=a.length;l<u;l++)(a[l].fn!==t||i&&!a[l].once||r&&a[l].context!==r)&&c.push(a[l]);c.length?this._events[s]=1===c.length?c[0]:c:o(this,s)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIikscj1yZXF1aXJlKCJmcyIpLGU9QXJyYXkuaXNBcnJheSxuPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1ufHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHU9aS5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGM9YS5oYXNPd25Qcm9wZXJ0eSxmPWEudG9TdHJpbmcscz11P3UudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBsPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIHA9IltvYmplY3QgTnVsbF0iLGg9IltvYmplY3QgVW5kZWZpbmVkXSIseT11P3UudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9oOnA6eSYmeSBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Yy5jYWxsKHQscyksZT10W3NdO3RyeXt0W3NdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89Zi5jYWxsKHQpO3JldHVybiBuJiYocj90W3NdPWU6ZGVsZXRlIHRbc10pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCl9KHQpfXZhciBfPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fSh0KSYmdih0KT09X312YXIgYj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxnPS9eXHcqJC87ZnVuY3Rpb24gaih0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgTz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsUz0iW29iamVjdCBGdW5jdGlvbl0iLG09IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix3PSJbb2JqZWN0IFByb3h5XSI7dmFyICQsUj1pWyJfX2NvcmUtanNfc2hhcmVkX18iXSx6PSgkPS9bXi5dKyQvLmV4ZWMoUiYmUi5rZXlzJiZSLmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIiskOiIiO3ZhciB4PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxBPUZ1bmN0aW9uLnByb3RvdHlwZSxOPU9iamVjdC5wcm90b3R5cGUsUD1BLnRvU3RyaW5nLGs9Ti5oYXNPd25Qcm9wZXJ0eSxFPVJlZ0V4cCgiXiIrUC5jYWxsKGspLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7aWYoIWoodCl8fChyPXQseiYmeiBpbiByKSlyZXR1cm4hMTt2YXIgcixlPWZ1bmN0aW9uKHQpe2lmKCFqKHQpKXJldHVybiExO3ZhciByPXYodCk7cmV0dXJuIHI9PVN8fHI9PW18fHI9PU98fHI9PXd9KHQpP0U6RjtyZXR1cm4gZS50ZXN0KGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4geC5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0odCkpfWZ1bmN0aW9uIEkodCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBUPUkoT2JqZWN0LCJjcmVhdGUiKTt2YXIgTT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBVKHQscil7Zm9yKHZhciBlLG4sbz10Lmxlbmd0aDtvLS07KWlmKChlPXRbb11bMF0pPT09KG49cil8fGUhPWUmJm4hPW4pcmV0dXJuIG87cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVQ/VChudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihUKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIE0uY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gVD92b2lkIDAhPT1yW3RdOnEuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVQmJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBHKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sRy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1VKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOkQuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxHLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxHLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcy5fX2RhdGFfXyx0KT4tMX0sRy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVUoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIFc9SShpLCJNYXAiKTtmdW5jdGlvbiBCKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KFd8fEcpLHN0cmluZzpuZXcgTH19LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1CKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gQih0aGlzLHQpLmdldCh0KX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuaGFzKHQpfSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1CKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBKPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBLKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoSik7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLGk9ZS5jYWNoZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5nZXQobyk7dmFyIHU9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPWkuc2V0KG8sdSl8fGksdX07cmV0dXJuIGUuY2FjaGU9bmV3KEsuQ2FjaGV8fEgpLGV9Sy5DYWNoZT1IO3ZhciBRLFYsWCxZPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFo9L1xcKFxcKT8vZyx0dD0oUT1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKFksKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShaLCIkMSIpOmV8fHQpfSkpLHJ9LFY9SyhRLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09WC5zaXplJiZYLmNsZWFyKCksdH0pKSxYPVYuY2FjaGUsVikscnQ9dHQ7dmFyIGV0PTEvMCxudD11P3UucHJvdG90eXBlOnZvaWQgMCxvdD1udD9udC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gaXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGUodCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsaXQpKyIiO2lmKGQodCkpcmV0dXJuIG90P290LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWV0PyItMCI6cn1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gbnVsbD09dD8iIjppdCh0KX1mdW5jdGlvbiBhdCh0LHIpe3JldHVybiBlKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihlKHQpKXJldHVybiExO3ZhciBuPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiFkKHQpKXx8Zy50ZXN0KHQpfHwhYi50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06cnQodXQodCkpfXZhciBjdD0xLzA7ZnVuY3Rpb24gZnQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxkKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1jdD8iLTAiOnJ9ZnVuY3Rpb24gc3QodCxyLGUpe3ZhciBuPW51bGw9PXQ/dm9pZCAwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1hdChyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbZnQocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9KHQscik7cmV0dXJuIHZvaWQgMD09PW4/ZTpufWZ1bmN0aW9uIGx0KCl7bGV0IHQscixlPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdfSkpO3JldHVybiBlLnJlc29sdmU9dCxlLnJlamVjdD1yLGV9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHl0KHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0IT10fWZ1bmN0aW9uIF90KHQpe3JldHVybiEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgVW5kZWZpbmVkXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdWxsXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFodCh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIXB0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIXZ0KHQpKSkpKX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX12YXIgYnQ9L1xzLzt2YXIgZ3Q9L15ccysvO2Z1bmN0aW9uIGp0KHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZidC50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKGd0LCIiKTp0fXZhciBPdD1OYU4sU3Q9L15bLStdMHhbMC05YS1mXSskL2ksbXQ9L14wYlswMV0rJC9pLHd0PS9eMG9bMC03XSskL2ksJHQ9cGFyc2VJbnQ7ZnVuY3Rpb24gUnQodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGQodCkpcmV0dXJuIE90O2lmKGoodCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWoocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWp0KHQpO3ZhciBlPW10LnRlc3QodCk7cmV0dXJuIGV8fHd0LnRlc3QodCk/JHQodC5zbGljZSgyKSxlPzI6OCk6U3QudGVzdCh0KT9PdDordH12YXIgenQ9MS8wLHh0PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBGdCh0KXtyZXR1cm4gdD8odD1SdCh0KSk9PT16dHx8dD09PS16dD8odDwwPy0xOjEpKnh0OnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBBdCh0KXt2YXIgcj1GdCh0KSxlPXIlMTtyZXR1cm4gcj09cj9lP3ItZTpyOjB9ZnVuY3Rpb24gTnQodCl7bGV0IHI9ITE7aWYoZHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYodnQodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBQdCh0KXtpZighTnQodCkpcmV0dXJuIDA7cmV0dXJuIEZ0KHQpfWZ1bmN0aW9uIGt0KHQpe3JldHVybiEhTnQodCkmJih0PVB0KHQpLCJudW1iZXIiPT10eXBlb2Yocj10KSYmcj09QXQocikpO3ZhciByfXZhciBFdD1pLmlzRmluaXRlLEN0PU1hdGgubWluO3ZhciBJdD1mdW5jdGlvbih0KXt2YXIgcj1NYXRoW3RdO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKHQ9UnQodCksKGU9bnVsbD09ZT8wOkN0KEF0KGUpLDI5MikpJiZFdCh0KSl7dmFyIG49KHV0KHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChuPSh1dChyKG5bMF0rImUiKygrblsxXStlKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygrblsxXS1lKSl9cmV0dXJuIHIodCl9fSgicm91bmQiKSxUdD1JdDtmdW5jdGlvbiBNdCh0KXtpZighTnQodCkpcmV0dXJuIDA7dD1QdCh0KTtsZXQgcj1UdCh0KTtyZXR1cm4iMCI9PT1TdHJpbmcocik/MDpyfWZ1bmN0aW9uIHF0KHQpe2lmKCFrdCh0KSlyZXR1cm4hMTtyZXR1cm4gTXQodCk+PTB9ZnVuY3Rpb24gTHQodCxyKXtpZighZHQodCkpcmV0dXJuIiI7aWYoIXF0KHIpKXJldHVybiIiO2lmKDA9PT0ocj1NdChyKSkpcmV0dXJuIiI7bGV0IGU9dC5sZW5ndGgtcjtyZXR1cm4gZTwwJiYoZT0wKSx0LnN1YnN0cmluZyhlLGUrcil9ZnVuY3Rpb24gVXQodCxyKXtyZXR1cm4gZHQodCkmJnF0KHIpPzA9PT0ocj1NdChyKSk/dDpmdW5jdGlvbih0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT8iIjp0LnN1YnN0cmluZygwLHIpOiIifSh0LHQubGVuZ3RoLXIpOiIifWZ1bmN0aW9uIER0KHQpe2lmKCFkdCh0KSlyZXR1cm57cGF0aDoiIixpc1Jvb3Q6ITF9O2Zvcig7dC5pbmRleE9mKCJcXFxcIik+PTA7KXQ9dC5yZXBsYWNlKCJcXFxcIiwiXFwiKTtmb3IoO3QuaW5kZXhPZigiLy8iKT49MDspdD10LnJlcGxhY2UoIi8vIiwiLyIpO2lmKCI6Ij09PUx0KHQsMSkpcmV0dXJue3BhdGg6YCR7dH1cXGAsaXNSb290OiEwfTtpZigiXFwiPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4iOiI9PT1MdChyLDEpP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19aWYoIi8iPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4gMD09PXIubGVuZ3RoP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19cmV0dXJue3BhdGg6dCxpc1Jvb3Q6ITF9fWZ1bmN0aW9uIEd0KHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPXIucGF0aDt0cnl7ZT1lLnNwbGl0KCJcXCIpLnBvcCgpLnNwbGl0KCIvIikucG9wKCl9Y2F0Y2godCl7fXJldHVybiBlfWZ1bmN0aW9uIFd0KHQscj17fSl7bGV0IGU9c3QociwiZnMiKSxuPSExO3RyeXtlLnN0YXRTeW5jKHQpLG49ITB9Y2F0Y2h7bj0hMX1yZXR1cm4gbn1mdW5jdGlvbiBCdCh0LHI9e30pe2xldCBlPXN0KHIsImZzIik7aWYoIVd0KHQse2ZzOmV9KSlyZXR1cm4hMTtsZXQgbj1lLmxzdGF0U3luYyh0KTtyZXR1cm4hbi5pc0ZpbGUoKSYmIW4uaXNTeW1ib2xpY0xpbmsoKX1mdW5jdGlvbiBIdCh0LHI9e30pe2xldCBlPXN0KHIsImZzIik7cmV0dXJuISFXdCh0LHtmczplfSkmJighZS5sc3RhdFN5bmModCkuaXNEaXJlY3RvcnkoKSYmIWUubHN0YXRTeW5jKHQpLmlzU3ltYm9saWNMaW5rKCkpfWZ1bmN0aW9uIEp0KHQscj17fSl7bGV0IGU9c3QociwiZnMiKTtpZighV3QodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJmaWxlIGRvZXMgbm90IGV4aXN0OiAiK3R9O2lmKCFIdCh0LHtmczplfSkpcmV0dXJue2Vycm9yOiJpbnB1dCBwYXRoIGlzIG5vdCBhIGZpbGU6ICIrdH07dHJ5e2UudW5saW5rU3luYyh0KX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6dH19cmV0dXJue3N1Y2Nlc3M6ImRvbmU6ICIrdH19YXN5bmMgZnVuY3Rpb24gS3QodCxyLGU9e30pe2xldCBuPSIiLG89c3QoZSwiZnMiKTtpZighcHQoaT10KXx8MD09PWkubGVuZ3RofHwxPT09aS5sZW5ndGgmJl90KGlbMF0pKXRocm93IG5ldyBFcnJvcigiZnBzSW4gaW4gbm90IGFuIGVmZmVjdGl2ZSBhcnJheSIpO3ZhciBpO2xldCB1PWZ1bmN0aW9uKHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPUd0KHQ9ci5wYXRoKTtpZighZHQoZSkpcmV0dXJuIHQ7bGV0IG49RHQodD1VdCh0LGUubGVuZ3RoKSk7cmV0dXJuIG4uaXNSb290LG4ucGF0aH0ociksYT1zdChlLCJmbk91dCIsIiIpO2R0KGEpfHwoYT1HdChyKSksQnQodSx7ZnM6b30pfHxmdW5jdGlvbih0LHI9e30pe2xldCBlPXN0KHIsImZzIik7aWYoQnQodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJpbnB1dCBmb2xkZXIgaXMgYWxyZWFkeSBleGlzdHM6ICIrdH07aWYoV3QodCx7ZnM6ZX0pKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBhbHJlYWR5IGV4aXN0czogIit0fTt0cnl7ZS5ta2RpclN5bmModCx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX0odSx7ZnM6b30pO2xldCBjPWx0KCk7dHJ5e2xldCBlPW8uY3JlYXRlV3JpdGVTdHJlYW0ocik7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2xldCBpPXRbcl07aWYoIUh0KGkse2ZzOm99KSl0aHJvdyBuZXcgRXJyb3IoYGZwSW5bJHtpfV0gaXMgbm90IGEgZmlsZWApO2xldCB1PSgpPT57bGV0IHQ9bHQoKSxyPW8uY3JlYXRlUmVhZFN0cmVhbShpKTtyZXR1cm4gci5vbigiZXJyb3IiLChyPT57bj1yLm1lc3NhZ2UsdC5yZWplY3Qocil9KSksci5vbigiZW5kIiwoKCk9PntKdChpLHtmczpvfSksdC5yZXNvbHZlKCl9KSksci5waXBlKGUse2VuZDohMX0pLHR9O2F3YWl0IHUoKX1lLmVuZCgpLGUub24oImVycm9yIiwodD0+e249dC5tZXNzYWdlLGMucmVqZWN0KG4pfSkpLGUub24oImZpbmlzaCIsKCgpPT57bGV0IHQ9e2ZpbGVuYW1lOmEscGF0aDpyfTtjLnJlc29sdmUodCl9KSl9Y2F0Y2godCl7bj10Lm1lc3NhZ2UsYy5yZWplY3Qobil9cmV0dXJuIGN9bGV0IG1lcmdlU2xpY2VzPWFzeW5jKGUsbixvKT0+e2xldCBpPVtdO2ZvcihsZXQgcj0wO3I8bjtyKyspe2xldCBuPXQucmVzb2x2ZShvLGAke2V9XyR7cn1gKTtpLnB1c2gobil9bGV0IHU9dC5yZXNvbHZlKG8sZSksYT1hd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsbj17fSl7cmV0dXJuIEt0KHQsZSx7ZnM6ciwuLi5ufSl9KGksdSk7cmV0dXJuIHIud3JpdGVGaWxlU3luYyhgJHt1fS5kb25lYCwiIiwidXRmOCIpLGF9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogbWVyZ2VTbGljZXMKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbWVyZ2VTbGljZXMKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAKICAgICAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICAgICAgbW9kZTogJ2VtaXQnLAogICAgICAgICAgICAgICAgZXZOYW1lOiAnZXJyb3InLAogICAgICAgICAgICAgICAgbXNnOiBlcnIsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgICAgICB9CiAgICAgICAgICAgIAogICAgfQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgPT09ICdjYWxsJyl7CiAgICAgICAgbGV0IHN0YXRlID0gJycKICAgICAgICBsZXQgbXNnID0gbnVsbAoKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL2Z1bgogICAgICAgICAgICBsZXQgZnVuID0gaW5zdGFuY2VbZGF0YS5mdW5dCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKCiAgICAgICAgICAgIC8vZXhlYwogICAgICAgICAgICBhd2FpdCBmdW4oLi4uaW5wdXQpCiAgICAgICAgICAgICAgICAudGhlbigoc3VjKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J3N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgbXNnPXN1YwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J2Vycm9yJwogICAgICAgICAgICAgICAgICAgIG1zZz1lcnIKICAgICAgICAgICAgICAgIH0pCgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgICAgICBzdGF0ZSA9ICdlcnJvcicKICAgICAgICAgICAgbXNnID0gZXJyCiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICBtb2RlOiAncmV0dXJuJywKICAgICAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIGZ1bjogZGF0YS5mdW4sCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBtc2csCiAgICAgICAgfQogICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICB9Cgp9CgpmdW5jdGlvbiByZWN2TWVzc2FnZShkYXRhKSB7CiAgICAvLyBjb25zb2xlLmxvZygnaW5uZXIgd29ya2VyIHJlY3Y6JywgZGF0YSkKCiAgICAvL2RhdGFSZWN2CiAgICBsZXQgZGF0YVJlY3YgPSBkYXRhCgogICAgLy9ydW4KICAgIHJ1bihkYXRhUmVjdikKCn0KCgogICAgICAgIHBhcmVudFBvcnQub24oJ21lc3NhZ2UnLCByZWN2TWVzc2FnZSkKICAgICAgICAKCnRyeXsKICAgIHByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIGVycikKICAgIH0pCn0KY2F0Y2goZXJyKXt9Cgo=",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){o(e)}}(t);if(!i)return o("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function o(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",o),i.on("exit",e=>{1!==e&&o("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):o("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(ii);var si=On(ii.exports);let oi=(e,t,n)=>{let r=`${function(){if(!Kn(ur))throw new Error("invalid dayjs");return ur().format("YYYYMMDDHHmmss")}()}|${Mr(6)}|${e}`;return setTimeout(()=>{si(e,t,n).catch(e=>{console.log(e)})},1),r},ai=(t,n)=>{let r="";if(!qt(t))return r=`invalid id[${t}]`,console.log(r),{state:"error",msg:r,path:""};let i=Me(ni(t,"|"),2,"");if(!qt(i))return r=`can not find fileHash in id[${t}]`,console.log(r),{state:"error",msg:r,path:""};let s=e.resolve(n,i),o=e.resolve(n,`${i}.done`),a=ar(s),l=ar(o),c=a&&l;return!a&&l&&ri(o),{state:c?"success":"merging",msg:"",path:s}};var li={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new i(r,s||e,o),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],a]:e._events[l].push(a):(e._events[l]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,o=new Array(s);i<s;i++)o[i]=r[i].fn;return o},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,i,s,o){var a=n?n+e:e;if(!this._events[a])return!1;var l,c,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,i),!0;case 5:return u.fn.call(u.context,t,r,i,s),!0;case 6:return u.fn.call(u.context,t,r,i,s,o),!0}for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];u.fn.apply(u.context,l)}else{var p,w=u.length;for(c=0;c<w;c++)switch(u[c].once&&this.removeListener(e,u[c].fn,void 0,!0),d){case 1:u[c].fn.call(u[c].context);break;case 2:u[c].fn.call(u[c].context,t);break;case 3:u[c].fn.call(u[c].context,t,r);break;case 4:u[c].fn.call(u[c].context,t,r,i);break;default:if(!l)for(p=1,l=new Array(d-1);p<d;p++)l[p-1]=arguments[p];u[c].fn.apply(u[c].context,l)}}return!0},a.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return o(this,s),this;var a=this._events[s];if(a.fn)a.fn!==t||i&&!a.once||r&&a.context!==r||o(this,s);else{for(var l=0,c=[],u=a.length;l<u;l++)(a[l].fn!==t||i&&!a[l].once||r&&a[l].context!==r)&&c.push(a[l]);c.length?this._events[s]=1===c.length?c[0]:c:o(this,s)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIiksZT1yZXF1aXJlKCJmcyIpO2Z1bmN0aW9uIHIodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytyPG4mJiExIT09ZSh0W3JdLHIsdCk7KTtyZXR1cm4gdH12YXIgbixvPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG89LTEsdT1PYmplY3QodCksaT1yKHQpLGE9aS5sZW5ndGg7YS0tOyl7dmFyIGM9aVtuP2E6KytvXTtpZighMT09PWUodVtjXSxjLHUpKWJyZWFrfXJldHVybiB0fTt2YXIgdT0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsaT0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLGE9dXx8aXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxjPWEuU3ltYm9sLGY9T2JqZWN0LnByb3RvdHlwZSxzPWYuaGFzT3duUHJvcGVydHksbD1mLnRvU3RyaW5nLHA9Yz9jLnRvU3RyaW5nVGFnOnZvaWQgMDt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciB2PSJbb2JqZWN0IE51bGxdIix5PSJbb2JqZWN0IFVuZGVmaW5lZF0iLGQ9Yz9jLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiBiKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/eTp2OmQmJmQgaW4gT2JqZWN0KHQpP2Z1bmN0aW9uKHQpe3ZhciBlPXMuY2FsbCh0LHApLHI9dFtwXTt0cnl7dFtwXT12b2lkIDA7dmFyIG49ITB9Y2F0Y2godCl7fXZhciBvPWwuY2FsbCh0KTtyZXR1cm4gbiYmKGU/dFtwXT1yOmRlbGV0ZSB0W3BdKSxvfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gaC5jYWxsKHQpfSh0KX1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9ZnVuY3Rpb24gXyh0KXtyZXR1cm4gZyh0KSYmIltvYmplY3QgQXJndW1lbnRzXSI9PWIodCl9dmFyIGo9T2JqZWN0LnByb3RvdHlwZSx3PWouaGFzT3duUHJvcGVydHksbT1qLnByb3BlcnR5SXNFbnVtZXJhYmxlLE89XyhmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP186ZnVuY3Rpb24odCl7cmV0dXJuIGcodCkmJncuY2FsbCh0LCJjYWxsZWUiKSYmIW0uY2FsbCh0LCJjYWxsZWUiKX0sUz1BcnJheS5pc0FycmF5O3ZhciBBPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsej1BJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUseD16JiZ6LmV4cG9ydHM9PT1BP2EuQnVmZmVyOnZvaWQgMCxFPSh4P3guaXNCdWZmZXI6dm9pZCAwKXx8ZnVuY3Rpb24oKXtyZXR1cm4hMX0saz05MDA3MTk5MjU0NzQwOTkxLEY9L14oPzowfFsxLTldXGQqKSQvO2Z1bmN0aW9uICQodCxlKXt2YXIgcj10eXBlb2YgdDtyZXR1cm4hIShlPW51bGw9PWU/azplKSYmKCJudW1iZXIiPT1yfHwic3ltYm9sIiE9ciYmRi50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9dmFyIFA9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBMKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4tMSYmdCUxPT0wJiZ0PD1QfXZhciBJPXt9O0lbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPUlbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPUlbIltvYmplY3QgSW50OEFycmF5XSJdPUlbIltvYmplY3QgSW50MTZBcnJheV0iXT1JWyJbb2JqZWN0IEludDMyQXJyYXldIl09SVsiW29iamVjdCBVaW50OEFycmF5XSJdPUlbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09SVsiW29iamVjdCBVaW50MTZBcnJheV0iXT1JWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLElbIltvYmplY3QgQXJndW1lbnRzXSJdPUlbIltvYmplY3QgQXJyYXldIl09SVsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1JWyJbb2JqZWN0IEJvb2xlYW5dIl09SVsiW29iamVjdCBEYXRhVmlld10iXT1JWyJbb2JqZWN0IERhdGVdIl09SVsiW29iamVjdCBFcnJvcl0iXT1JWyJbb2JqZWN0IEZ1bmN0aW9uXSJdPUlbIltvYmplY3QgTWFwXSJdPUlbIltvYmplY3QgTnVtYmVyXSJdPUlbIltvYmplY3QgT2JqZWN0XSJdPUlbIltvYmplY3QgUmVnRXhwXSJdPUlbIltvYmplY3QgU2V0XSJdPUlbIltvYmplY3QgU3RyaW5nXSJdPUlbIltvYmplY3QgV2Vha01hcF0iXT0hMTt2YXIgTSxUPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsUj1UJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsVT1SJiZSLmV4cG9ydHM9PT1UJiZ1LnByb2Nlc3MsTj1mdW5jdGlvbigpe3RyeXt2YXIgdD1SJiZSLnJlcXVpcmUmJlIucmVxdWlyZSgidXRpbCIpLnR5cGVzO3JldHVybiB0fHxVJiZVLmJpbmRpbmcmJlUuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KCksRD1OJiZOLmlzVHlwZWRBcnJheSxCPUQ/KE09RCxmdW5jdGlvbih0KXtyZXR1cm4gTSh0KX0pOmZ1bmN0aW9uKHQpe3JldHVybiBnKHQpJiZMKHQubGVuZ3RoKSYmISFJW2IodCldfSxDPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gVyh0LGUpe3ZhciByPVModCksbj0hciYmTyh0KSxvPSFyJiYhbiYmRSh0KSx1PSFyJiYhbiYmIW8mJkIodCksaT1yfHxufHxvfHx1LGE9aT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPUFycmF5KHQpOysrcjx0OyluW3JdPWUocik7cmV0dXJuIG59KHQubGVuZ3RoLFN0cmluZyk6W10sYz1hLmxlbmd0aDtmb3IodmFyIGYgaW4gdCkhZSYmIUMuY2FsbCh0LGYpfHxpJiYoImxlbmd0aCI9PWZ8fG8mJigib2Zmc2V0Ij09Znx8InBhcmVudCI9PWYpfHx1JiYoImJ1ZmZlciI9PWZ8fCJieXRlTGVuZ3RoIj09Znx8ImJ5dGVPZmZzZXQiPT1mKXx8JChmLGMpKXx8YS5wdXNoKGYpO3JldHVybiBhfXZhciBxPU9iamVjdC5wcm90b3R5cGU7dmFyIFY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQoZShyKSl9fShPYmplY3Qua2V5cyxPYmplY3QpLEc9VixIPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gSih0KXtpZihyPShlPXQpJiZlLmNvbnN0cnVjdG9yLGUhPT0oImZ1bmN0aW9uIj09dHlwZW9mIHImJnIucHJvdG90eXBlfHxxKSlyZXR1cm4gRyh0KTt2YXIgZSxyLG49W107Zm9yKHZhciBvIGluIE9iamVjdCh0KSlILmNhbGwodCxvKSYmImNvbnN0cnVjdG9yIiE9byYmbi5wdXNoKG8pO3JldHVybiBufWZ1bmN0aW9uIEsodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9dmFyIFE9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLFg9IltvYmplY3QgRnVuY3Rpb25dIixZPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsWj0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHR0KHQpe2lmKCFLKHQpKXJldHVybiExO3ZhciBlPWIodCk7cmV0dXJuIGU9PVh8fGU9PVl8fGU9PVF8fGU9PVp9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIG51bGwhPXQmJkwodC5sZW5ndGgpJiYhdHQodCl9ZnVuY3Rpb24gcnQodCl7cmV0dXJuIGV0KHQpP1codCk6Sih0KX12YXIgbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixuKXtpZihudWxsPT1yKXJldHVybiByO2lmKCFldChyKSlyZXR1cm4gdChyLG4pO2Zvcih2YXIgbz1yLmxlbmd0aCx1PWU/bzotMSxpPU9iamVjdChyKTsoZT91LS06Kyt1PG8pJiYhMSE9PW4oaVt1XSx1LGkpOyk7cmV0dXJuIHJ9fSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmbyh0LGUscnQpfSkpLG90PW50O2Z1bmN0aW9uIHV0KHQpe3JldHVybiB0fWZ1bmN0aW9uIGl0KHQsZSl7dmFyIG47cmV0dXJuKFModCk/cjpvdCkodCwiZnVuY3Rpb24iPT10eXBlb2Yobj1lKT9uOnV0KX12YXIgYXQsY3Q9YVsiX19jb3JlLWpzX3NoYXJlZF9fIl0sZnQ9KGF0PS9bXi5dKyQvLmV4ZWMoY3QmJmN0LmtleXMmJmN0LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIithdDoiIjt2YXIgc3Q9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIGx0KHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gc3QuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9dmFyIHB0PS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLGh0PUZ1bmN0aW9uLnByb3RvdHlwZSx2dD1PYmplY3QucHJvdG90eXBlLHl0PWh0LnRvU3RyaW5nLGR0PXZ0Lmhhc093blByb3BlcnR5LGJ0PVJlZ0V4cCgiXiIreXQuY2FsbChkdCkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gZ3QodCl7cmV0dXJuISghSyh0KXx8ZnVuY3Rpb24odCl7cmV0dXJuISFmdCYmZnQgaW4gdH0odCkpJiYodHQodCk/YnQ6cHQpLnRlc3QobHQodCkpfWZ1bmN0aW9uIF90KHQsZSl7dmFyIHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX0odCxlKTtyZXR1cm4gZ3Qocik/cjp2b2lkIDB9dmFyIGp0PV90KGEsIkRhdGFWaWV3Iiksd3Q9X3QoYSwiTWFwIiksbXQ9X3QoYSwiUHJvbWlzZSIpLE90PV90KGEsIlNldCIpLFN0PV90KGEsIldlYWtNYXAiKSxBdD0iW29iamVjdCBNYXBdIix6dD0iW29iamVjdCBQcm9taXNlXSIseHQ9IltvYmplY3QgU2V0XSIsRXQ9IltvYmplY3QgV2Vha01hcF0iLGt0PSJbb2JqZWN0IERhdGFWaWV3XSIsRnQ9bHQoanQpLCR0PWx0KHd0KSxQdD1sdChtdCksTHQ9bHQoT3QpLEl0PWx0KFN0KSxNdD1iOyhqdCYmTXQobmV3IGp0KG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1rdHx8d3QmJk10KG5ldyB3dCkhPUF0fHxtdCYmTXQobXQucmVzb2x2ZSgpKSE9enR8fE90JiZNdChuZXcgT3QpIT14dHx8U3QmJk10KG5ldyBTdCkhPUV0KSYmKE10PWZ1bmN0aW9uKHQpe3ZhciBlPWIodCkscj0iW29iamVjdCBPYmplY3RdIj09ZT90LmNvbnN0cnVjdG9yOnZvaWQgMCxuPXI/bHQocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBGdDpyZXR1cm4ga3Q7Y2FzZSAkdDpyZXR1cm4gQXQ7Y2FzZSBQdDpyZXR1cm4genQ7Y2FzZSBMdDpyZXR1cm4geHQ7Y2FzZSBJdDpyZXR1cm4gRXR9cmV0dXJuIGV9KTt2YXIgVHQ9TXQsUnQ9IltvYmplY3QgU3RyaW5nXSI7ZnVuY3Rpb24gVXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3ZvaWQgMDplW3RdfX12YXIgTnQ9VXQoImxlbmd0aCIpLER0PVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTtmdW5jdGlvbiBCdCh0KXtyZXR1cm4gRHQudGVzdCh0KX12YXIgQ3Q9IlxcdWQ4MDAtXFx1ZGZmZiIsV3Q9IlsiK0N0KyJdIixxdD0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLFZ0PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLEd0PSJbXiIrQ3QrIl0iLEh0PSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixKdD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsS3Q9Iig/OiIrcXQrInwiK1Z0KyIpIisiPyIsUXQ9IltcXHVmZTBlXFx1ZmUwZl0/IixYdD1RdCtLdCsoIig/OlxcdTIwMGQoPzoiK1tHdCxIdCxKdF0uam9pbigifCIpKyIpIitRdCtLdCsiKSoiKSxZdD0iKD86IitbR3QrcXQrIj8iLHF0LEh0LEp0LFd0XS5qb2luKCJ8IikrIikiLFp0PVJlZ0V4cChWdCsiKD89IitWdCsiKXwiK1l0K1h0LCJnIik7ZnVuY3Rpb24gdGUodCl7cmV0dXJuIEJ0KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1adC5sYXN0SW5kZXg9MDtadC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9KHQpOk50KHQpfWZ1bmN0aW9uIGVlKHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYoZXQodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihlPXQpfHwhUyhlKSYmZyhlKSYmYihlKT09UnQ/dGUodCk6dC5sZW5ndGg7dmFyIGUscj1UdCh0KTtyZXR1cm4iW29iamVjdCBNYXBdIj09cnx8IltvYmplY3QgU2V0XSI9PXI/dC5zaXplOkoodCkubGVuZ3RofWZ1bmN0aW9uIHJlKHQsZSl7Zm9yKHZhciByPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytyPG47KW9bcl09ZSh0W3JdLHIsdCk7cmV0dXJuIG99ZnVuY3Rpb24gbmUodCxlKXtyZXR1cm4gdD09PWV8fHQhPXQmJmUhPWV9ZnVuY3Rpb24gb2UodCxlKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tOylpZihuZSh0W3JdWzBdLGUpKXJldHVybiByO3JldHVybi0xfXZhciB1ZT1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIGllKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgbj10W2VdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWllLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LGllLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxyPW9lKGUsdCk7cmV0dXJuIShyPDApJiYocj09ZS5sZW5ndGgtMT9lLnBvcCgpOnVlLmNhbGwoZSxyLDEpLC0tdGhpcy5zaXplLCEwKX0saWUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9b2UoZSx0KTtyZXR1cm4gcjwwP3ZvaWQgMDplW3JdWzFdfSxpZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBvZSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxpZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXyxuPW9lKHIsdCk7cmV0dXJuIG48MD8oKyt0aGlzLnNpemUsci5wdXNoKFt0LGVdKSk6cltuXVsxXT1lLHRoaXN9O3ZhciBhZT1fdChPYmplY3QsImNyZWF0ZSIpO3ZhciBjZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBmZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHNlKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgbj10W2VdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIGxlKHQsZSl7dmFyIHIsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2Yocj1lKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09cjpudWxsPT09cik/b1sic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBwZSh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1zZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPWFlP2FlKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxzZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxzZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoYWUpe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gY2UuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxzZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIGFlP3ZvaWQgMCE9PWVbdF06ZmUuY2FsbChlLHQpfSxzZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1hZSYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfSxwZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBzZSxtYXA6bmV3KHd0fHxpZSksc3RyaW5nOm5ldyBzZX19LHBlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9bGUodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0scGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gbGUodGhpcyx0KS5nZXQodCl9LHBlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIGxlKHRoaXMsdCkuaGFzKHQpfSxwZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9bGUodGhpcyx0KSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc307ZnVuY3Rpb24gaGUodCl7dmFyIGU9dGhpcy5fX2RhdGFfXz1uZXcgaWUodCk7dGhpcy5zaXplPWUuc2l6ZX1oZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBpZSx0aGlzLnNpemU9MH0saGUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9ZS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT1lLnNpemUscn0saGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9LGhlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxoZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgaWUpe3ZhciBuPXIuX19kYXRhX187aWYoIXd0fHxuLmxlbmd0aDwxOTkpcmV0dXJuIG4ucHVzaChbdCxlXSksdGhpcy5zaXplPSsrci5zaXplLHRoaXM7cj10aGlzLl9fZGF0YV9fPW5ldyBwZShuKX1yZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemU9ci5zaXplLHRoaXN9O2Z1bmN0aW9uIHZlKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBwZTsrK2U8cjspdGhpcy5hZGQodFtlXSl9ZnVuY3Rpb24geWUodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytyPG47KWlmKGUodFtyXSxyLHQpKXJldHVybiEwO3JldHVybiExfXZlLnByb3RvdHlwZS5hZGQ9dmUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iKSx0aGlzfSx2ZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX07dmFyIGRlPTEsYmU9MjtmdW5jdGlvbiBnZSh0LGUscixuLG8sdSl7dmFyIGk9ciZkZSxhPXQubGVuZ3RoLGM9ZS5sZW5ndGg7aWYoYSE9YyYmIShpJiZjPmEpKXJldHVybiExO3ZhciBmPXUuZ2V0KHQpLHM9dS5nZXQoZSk7aWYoZiYmcylyZXR1cm4gZj09ZSYmcz09dDt2YXIgbD0tMSxwPSEwLGg9ciZiZT9uZXcgdmU6dm9pZCAwO2Zvcih1LnNldCh0LGUpLHUuc2V0KGUsdCk7KytsPGE7KXt2YXIgdj10W2xdLHk9ZVtsXTtpZihuKXZhciBkPWk/bih5LHYsbCxlLHQsdSk6bih2LHksbCx0LGUsdSk7aWYodm9pZCAwIT09ZCl7aWYoZCljb250aW51ZTtwPSExO2JyZWFrfWlmKGgpe2lmKCF5ZShlLChmdW5jdGlvbih0LGUpe2lmKGk9ZSwhaC5oYXMoaSkmJih2PT09dHx8byh2LHQscixuLHUpKSlyZXR1cm4gaC5wdXNoKGUpO3ZhciBpfSkpKXtwPSExO2JyZWFrfX1lbHNlIGlmKHYhPT15JiYhbyh2LHkscixuLHUpKXtwPSExO2JyZWFrfX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUoZSkscH12YXIgX2U9YS5VaW50OEFycmF5O2Z1bmN0aW9uIGplKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JbKytlXT1bbix0XX0pKSxyfWZ1bmN0aW9uIHdlKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyWysrZV09dH0pKSxyfXZhciBtZT0xLE9lPTIsU2U9IltvYmplY3QgQm9vbGVhbl0iLEFlPSJbb2JqZWN0IERhdGVdIix6ZT0iW29iamVjdCBFcnJvcl0iLHhlPSJbb2JqZWN0IE1hcF0iLEVlPSJbb2JqZWN0IE51bWJlcl0iLGtlPSJbb2JqZWN0IFJlZ0V4cF0iLEZlPSJbb2JqZWN0IFNldF0iLCRlPSJbb2JqZWN0IFN0cmluZ10iLFBlPSJbb2JqZWN0IFN5bWJvbF0iLExlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsSWU9IltvYmplY3QgRGF0YVZpZXddIixNZT1jP2MucHJvdG90eXBlOnZvaWQgMCxUZT1NZT9NZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBSZSh0LGUpe2Zvcih2YXIgcj0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxvPTAsdT1bXTsrK3I8bjspe3ZhciBpPXRbcl07ZShpLHIsdCkmJih1W28rK109aSl9cmV0dXJuIHV9dmFyIFVlPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsTmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxEZT1OZT9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksUmUoTmUodCksKGZ1bmN0aW9uKGUpe3JldHVybiBVZS5jYWxsKHQsZSl9KSkpfTpmdW5jdGlvbigpe3JldHVybltdfTtmdW5jdGlvbiBCZSh0KXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUodCk7cmV0dXJuIFModCk/bjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPWUubGVuZ3RoLG89dC5sZW5ndGg7KytyPG47KXRbbytyXT1lW3JdO3JldHVybiB0fShuLHIodCkpfSh0LHJ0LERlKX12YXIgQ2U9MSxXZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxZT0xLFZlPSJbb2JqZWN0IEFyZ3VtZW50c10iLEdlPSJbb2JqZWN0IEFycmF5XSIsSGU9IltvYmplY3QgT2JqZWN0XSIsSmU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBLZSh0LGUscixuLG8sdSl7dmFyIGk9Uyh0KSxhPVMoZSksYz1pP0dlOlR0KHQpLGY9YT9HZTpUdChlKSxzPShjPWM9PVZlP0hlOmMpPT1IZSxsPShmPWY9PVZlP0hlOmYpPT1IZSxwPWM9PWY7aWYocCYmRSh0KSl7aWYoIUUoZSkpcmV0dXJuITE7aT0hMCxzPSExfWlmKHAmJiFzKXJldHVybiB1fHwodT1uZXcgaGUpLGl8fEIodCk/Z2UodCxlLHIsbixvLHUpOmZ1bmN0aW9uKHQsZSxyLG4sbyx1LGkpe3N3aXRjaChyKXtjYXNlIEllOmlmKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPWUuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLGU9ZS5idWZmZXI7Y2FzZSBMZTpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhdShuZXcgX2UodCksbmV3IF9lKGUpKSk7Y2FzZSBTZTpjYXNlIEFlOmNhc2UgRWU6cmV0dXJuIG5lKCt0LCtlKTtjYXNlIHplOnJldHVybiB0Lm5hbWU9PWUubmFtZSYmdC5tZXNzYWdlPT1lLm1lc3NhZ2U7Y2FzZSBrZTpjYXNlICRlOnJldHVybiB0PT1lKyIiO2Nhc2UgeGU6dmFyIGE9amU7Y2FzZSBGZTp2YXIgYz1uJm1lO2lmKGF8fChhPXdlKSx0LnNpemUhPWUuc2l6ZSYmIWMpcmV0dXJuITE7dmFyIGY9aS5nZXQodCk7aWYoZilyZXR1cm4gZj09ZTtufD1PZSxpLnNldCh0LGUpO3ZhciBzPWdlKGEodCksYShlKSxuLG8sdSxpKTtyZXR1cm4gaS5kZWxldGUodCkscztjYXNlIFBlOmlmKFRlKXJldHVybiBUZS5jYWxsKHQpPT1UZS5jYWxsKGUpfXJldHVybiExfSh0LGUsYyxyLG4sbyx1KTtpZighKHImcWUpKXt2YXIgaD1zJiZKZS5jYWxsKHQsIl9fd3JhcHBlZF9fIiksdj1sJiZKZS5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoaHx8dil7dmFyIHk9aD90LnZhbHVlKCk6dCxkPXY/ZS52YWx1ZSgpOmU7cmV0dXJuIHV8fCh1PW5ldyBoZSksbyh5LGQscixuLHUpfX1yZXR1cm4hIXAmJih1fHwodT1uZXcgaGUpLGZ1bmN0aW9uKHQsZSxyLG4sbyx1KXt2YXIgaT1yJkNlLGE9QmUodCksYz1hLmxlbmd0aDtpZihjIT1CZShlKS5sZW5ndGgmJiFpKXJldHVybiExO2Zvcih2YXIgZj1jO2YtLTspe3ZhciBzPWFbZl07aWYoIShpP3MgaW4gZTpXZS5jYWxsKGUscykpKXJldHVybiExfXZhciBsPXUuZ2V0KHQpLHA9dS5nZXQoZSk7aWYobCYmcClyZXR1cm4gbD09ZSYmcD09dDt2YXIgaD0hMDt1LnNldCh0LGUpLHUuc2V0KGUsdCk7Zm9yKHZhciB2PWk7KytmPGM7KXt2YXIgeT10W3M9YVtmXV0sZD1lW3NdO2lmKG4pdmFyIGI9aT9uKGQseSxzLGUsdCx1KTpuKHksZCxzLHQsZSx1KTtpZighKHZvaWQgMD09PWI/eT09PWR8fG8oeSxkLHIsbix1KTpiKSl7aD0hMTticmVha312fHwodj0iY29uc3RydWN0b3IiPT1zKX1pZihoJiYhdil7dmFyIGc9dC5jb25zdHJ1Y3RvcixfPWUuY29uc3RydWN0b3I7Zz09X3x8ISgiY29uc3RydWN0b3IiaW4gdCl8fCEoImNvbnN0cnVjdG9yImluIGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZyYmZyBpbnN0YW5jZW9mIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBfJiZfIGluc3RhbmNlb2YgX3x8KGg9ITEpfXJldHVybiB1LmRlbGV0ZSh0KSx1LmRlbGV0ZShlKSxofSh0LGUscixuLG8sdSkpfWZ1bmN0aW9uIFFlKHQsZSxyLG4sbyl7cmV0dXJuIHQ9PT1lfHwobnVsbD09dHx8bnVsbD09ZXx8IWcodCkmJiFnKGUpP3QhPXQmJmUhPWU6S2UodCxlLHIsbixRZSxvKSl9dmFyIFhlPTEsWWU9MjtmdW5jdGlvbiBaZSh0KXtyZXR1cm4gdD09dCYmIUsodCl9ZnVuY3Rpb24gdHIodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIG51bGwhPXImJihyW3RdPT09ZSYmKHZvaWQgMCE9PWV8fHQgaW4gT2JqZWN0KHIpKSl9fWZ1bmN0aW9uIGVyKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1ydCh0KSxyPWUubGVuZ3RoO3ItLTspe3ZhciBuPWVbcl0sbz10W25dO2Vbcl09W24sbyxaZShvKV19cmV0dXJuIGV9KHQpO3JldHVybiAxPT1lLmxlbmd0aCYmZVswXVsyXT90cihlWzBdWzBdLGVbMF1bMV0pOmZ1bmN0aW9uKHIpe3JldHVybiByPT09dHx8ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89ci5sZW5ndGgsdT1vLGk9IW47aWYobnVsbD09dClyZXR1cm4hdTtmb3IodD1PYmplY3QodCk7by0tOyl7dmFyIGE9cltvXTtpZihpJiZhWzJdP2FbMV0hPT10W2FbMF1dOiEoYVswXWluIHQpKXJldHVybiExfWZvcig7KytvPHU7KXt2YXIgYz0oYT1yW29dKVswXSxmPXRbY10scz1hWzFdO2lmKGkmJmFbMl0pe2lmKHZvaWQgMD09PWYmJiEoYyBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciBsPW5ldyBoZTtpZihuKXZhciBwPW4oZixzLGMsdCxlLGwpO2lmKCEodm9pZCAwPT09cD9RZShzLGYsWGV8WWUsbixsKTpwKSlyZXR1cm4hMX19cmV0dXJuITB9KHIsdCxlKX19dmFyIHJyPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIG5yKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8Zyh0KSYmYih0KT09cnJ9dmFyIG9yPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLHVyPS9eXHcqJC87ZnVuY3Rpb24gaXIodCxlKXtpZihTKHQpKXJldHVybiExO3ZhciByPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPXImJiJzeW1ib2wiIT1yJiYiYm9vbGVhbiIhPXImJm51bGwhPXQmJiFucih0KSl8fCh1ci50ZXN0KHQpfHwhb3IudGVzdCh0KXx8bnVsbCE9ZSYmdCBpbiBPYmplY3QoZSkpfXZhciBhcj0iRXhwZWN0ZWQgYSBmdW5jdGlvbiI7ZnVuY3Rpb24gY3IodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihhcik7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1lP2UuYXBwbHkodGhpcyxuKTpuWzBdLHU9ci5jYWNoZTtpZih1LmhhcyhvKSlyZXR1cm4gdS5nZXQobyk7dmFyIGk9dC5hcHBseSh0aGlzLG4pO3JldHVybiByLmNhY2hlPXUuc2V0KG8saSl8fHUsaX07cmV0dXJuIHIuY2FjaGU9bmV3KGNyLkNhY2hlfHxwZSkscn1jci5DYWNoZT1wZTt2YXIgZnI9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csc3I9L1xcKFxcKT8vZyxscj1mdW5jdGlvbih0KXt2YXIgZT1jcih0LChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09ci5zaXplJiZyLmNsZWFyKCksdH0pKSxyPWUuY2FjaGU7cmV0dXJuIGV9KChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJmUucHVzaCgiIiksdC5yZXBsYWNlKGZyLChmdW5jdGlvbih0LHIsbixvKXtlLnB1c2gobj9vLnJlcGxhY2Uoc3IsIiQxIik6cnx8dCl9KSksZX0pKSxwcj1scixocj0xLzAsdnI9Yz9jLnByb3RvdHlwZTp2b2lkIDAseXI9dnI/dnIudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIGRyKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihTKHQpKXJldHVybiByZSh0LGRyKSsiIjtpZihucih0KSlyZXR1cm4geXI/eXIuY2FsbCh0KToiIjt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0taHI/Ii0wIjplfWZ1bmN0aW9uIGJyKHQpe3JldHVybiBudWxsPT10PyIiOmRyKHQpfWZ1bmN0aW9uIGdyKHQsZSl7cmV0dXJuIFModCk/dDppcih0LGUpP1t0XTpwcihicih0KSl9dmFyIF9yPTEvMDtmdW5jdGlvbiBqcih0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fG5yKHQpKXJldHVybiB0O3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS1fcj8iLTAiOmV9ZnVuY3Rpb24gd3IodCxlKXtmb3IodmFyIHI9MCxuPShlPWdyKGUsdCkpLmxlbmd0aDtudWxsIT10JiZyPG47KXQ9dFtqcihlW3IrK10pXTtyZXR1cm4gciYmcj09bj90OnZvaWQgMH1mdW5jdGlvbiBtcih0LGUscil7dmFyIG49bnVsbD09dD92b2lkIDA6d3IodCxlKTtyZXR1cm4gdm9pZCAwPT09bj9yOm59ZnVuY3Rpb24gT3IodCxlKXtyZXR1cm4gbnVsbCE9dCYmZSBpbiBPYmplY3QodCl9ZnVuY3Rpb24gU3IodCxlKXtyZXR1cm4gbnVsbCE9dCYmZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0tMSxvPShlPWdyKGUsdCkpLmxlbmd0aCx1PSExOysrbjxvOyl7dmFyIGk9anIoZVtuXSk7aWYoISh1PW51bGwhPXQmJnIodCxpKSkpYnJlYWs7dD10W2ldfXJldHVybiB1fHwrK24hPW8/dTohIShvPW51bGw9PXQ/MDp0Lmxlbmd0aCkmJkwobykmJiQoaSxvKSYmKFModCl8fE8odCkpfSh0LGUsT3IpfXZhciBBcj0xLHpyPTI7ZnVuY3Rpb24geHIodCl7cmV0dXJuIGlyKHQpP1V0KGpyKHQpKTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHdyKGUsdCl9fSh0KX1mdW5jdGlvbiBFcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/dXQ6Im9iamVjdCI9PXR5cGVvZiB0P1ModCk/ZnVuY3Rpb24odCxlKXtyZXR1cm4gaXIodCkmJlplKGUpP3RyKGpyKHQpLGUpOmZ1bmN0aW9uKHIpe3ZhciBuPW1yKHIsdCk7cmV0dXJuIHZvaWQgMD09PW4mJm49PT1lP1NyKHIsdCk6UWUoZSxuLEFyfHpyKX19KHRbMF0sdFsxXSk6ZXIodCk6eHIodCl9ZnVuY3Rpb24ga3IodCxlKXt2YXIgcj0tMSxuPWV0KHQpP0FycmF5KHQubGVuZ3RoKTpbXTtyZXR1cm4gb3QodCwoZnVuY3Rpb24odCxvLHUpe25bKytyXT1lKHQsbyx1KX0pKSxufWZ1bmN0aW9uIEZyKHQsZSl7cmV0dXJuKFModCk/cmU6a3IpKHQsRXIoZSkpfXZhciAkcj0vXHMvO3ZhciBQcj0vXlxzKy87ZnVuY3Rpb24gTHIodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJiRyLnRlc3QodC5jaGFyQXQoZSkpOyk7cmV0dXJuIGV9KHQpKzEpLnJlcGxhY2UoUHIsIiIpOnR9ZnVuY3Rpb24gSXIodCxlLHIpe3ZhciBuPXQubGVuZ3RoO3JldHVybiByPXZvaWQgMD09PXI/bjpyLCFlJiZyPj1uP3Q6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPS0xLG89dC5sZW5ndGg7ZTwwJiYoZT0tZT5vPzA6bytlKSwocj1yPm8/bzpyKTwwJiYocis9byksbz1lPnI/MDpyLWU+Pj4wLGU+Pj49MDtmb3IodmFyIHU9QXJyYXkobyk7KytuPG87KXVbbl09dFtuK2VdO3JldHVybiB1fSh0LGUscil9ZnVuY3Rpb24gTXIodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gVHIodCxlLHIpe3JldHVybiBlPT1lP2Z1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49ci0xLG89dC5sZW5ndGg7KytuPG87KWlmKHRbbl09PT1lKXJldHVybiBuO3JldHVybi0xfSh0LGUscik6ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBvPXQubGVuZ3RoLHU9cisobj8xOi0xKTtuP3UtLTorK3U8bzspaWYoZSh0W3VdLHUsdCkpcmV0dXJuIHU7cmV0dXJuLTF9KHQsTXIscil9dmFyIFJyPSJcXHVkODAwLVxcdWRmZmYiLFVyPSJbIitScisiXSIsTnI9IltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIixEcj0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixCcj0iW14iK1JyKyJdIixDcj0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsV3I9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLHFyPSIoPzoiK05yKyJ8IitEcisiKSIrIj8iLFZyPSJbXFx1ZmUwZVxcdWZlMGZdPyIsR3I9VnIrcXIrKCIoPzpcXHUyMDBkKD86IitbQnIsQ3IsV3JdLmpvaW4oInwiKSsiKSIrVnIrcXIrIikqIiksSHI9Iig/OiIrW0JyK05yKyI/IixOcixDcixXcixVcl0uam9pbigifCIpKyIpIixKcj1SZWdFeHAoRHIrIig/PSIrRHIrIil8IitIcitHciwiZyIpO2Z1bmN0aW9uIEtyKHQpe3JldHVybiBCdCh0KT9mdW5jdGlvbih0KXtyZXR1cm4gdC5tYXRjaChKcil8fFtdfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gdC5zcGxpdCgiIil9KHQpfWZ1bmN0aW9uIFFyKHQsZSxyKXtpZigodD1icih0KSkmJihyfHx2b2lkIDA9PT1lKSlyZXR1cm4gTHIodCk7aWYoIXR8fCEoZT1kcihlKSkpcmV0dXJuIHQ7dmFyIG49S3IodCksbz1LcihlKSx1PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPS0xLG49dC5sZW5ndGg7KytyPG4mJlRyKGUsdFtyXSwwKT4tMTspO3JldHVybiByfShuLG8pLGk9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZUcihlLHRbcl0sMCk+LTE7KTtyZXR1cm4gcn0obixvKSsxO3JldHVybiBJcihuLHUsaSkuam9pbigiIil9ZnVuY3Rpb24gWHIodCl7cmV0dXJuISghZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwiIj09PXQpfWZ1bmN0aW9uIFlyKHQsZSl7aWYoIVhyKHQpKXJldHVybltdO2lmKCFYcihlKSlyZXR1cm5bXTtsZXQgcj1mdW5jdGlvbih0LGUpe3JldHVybiBYcih0KSYmWHIoZSk/dC5zcGxpdChlKTpbXX0odCxlKTtyPUZyKHIsUXIpO2xldCBuPVtdO3JldHVybiBpdChyLChmdW5jdGlvbih0KXtYcih0KSYmbi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24gWnIodCl7bGV0IGU9ITE7aWYoWHIodCkpZT0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYoZnVuY3Rpb24odCl7cmV0dXJuIHQhPXR9KHQpKXJldHVybiExO2U9ITB9cmV0dXJuIGV9dmFyIHRuPU5hTixlbj0vXlstK10weFswLTlhLWZdKyQvaSxybj0vXjBiWzAxXSskL2ksbm49L14wb1swLTddKyQvaSxvbj1wYXJzZUludDtmdW5jdGlvbiB1bih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYobnIodCkpcmV0dXJuIHRuO2lmKEsodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PUsoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PUxyKHQpO3ZhciByPXJuLnRlc3QodCk7cmV0dXJuIHJ8fG5uLnRlc3QodCk/b24odC5zbGljZSgyKSxyPzI6OCk6ZW4udGVzdCh0KT90bjordH12YXIgYW49MS8wLGNuPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBmbih0KXtyZXR1cm4gdD8odD11bih0KSk9PT1hbnx8dD09PS1hbj8odDwwPy0xOjEpKmNuOnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBzbih0KXt2YXIgZT1mbih0KSxyPWUlMTtyZXR1cm4gZT09ZT9yP2UtcjplOjB9ZnVuY3Rpb24gbG4odCl7aWYoIVpyKHQpKXJldHVybiAwO3JldHVybiBmbih0KX1mdW5jdGlvbiBwbih0KXtyZXR1cm4hIVpyKHQpJiYodD1sbih0KSwibnVtYmVyIj09dHlwZW9mKGU9dCkmJmU9PXNuKGUpKTt2YXIgZX12YXIgaG49YS5pc0Zpbml0ZSx2bj1NYXRoLm1pbjt2YXIgeW49ZnVuY3Rpb24odCl7dmFyIGU9TWF0aFt0XTtyZXR1cm4gZnVuY3Rpb24odCxyKXtpZih0PXVuKHQpLChyPW51bGw9PXI/MDp2bihzbihyKSwyOTIpKSYmaG4odCkpe3ZhciBuPShicih0KSsiZSIpLnNwbGl0KCJlIik7cmV0dXJuKygobj0oYnIoZShuWzBdKyJlIisoK25bMV0rcikpKSsiZSIpLnNwbGl0KCJlIikpWzBdKyJlIisoK25bMV0tcikpfXJldHVybiBlKHQpfX0oInJvdW5kIiksZG49eW47ZnVuY3Rpb24gYm4odCl7aWYoIVpyKHQpKXJldHVybiAwO3Q9bG4odCk7bGV0IGU9ZG4odCk7cmV0dXJuIjAiPT09U3RyaW5nKGUpPzA6ZX1mdW5jdGlvbiBnbih0LGU9e30pe2xldCByPW1yKGUsImZzIiksbj0hMTt0cnl7ci5zdGF0U3luYyh0KSxuPSEwfWNhdGNoe249ITF9cmV0dXJuIG59ZnVuY3Rpb24gX24odCxlPXt9KXtsZXQgcj1tcihlLCJmcyIpO3JldHVybiEhZ24odCx7ZnM6cn0pJiYoIXIubHN0YXRTeW5jKHQpLmlzRGlyZWN0b3J5KCkmJiFyLmxzdGF0U3luYyh0KS5pc1N5bWJvbGljTGluaygpKX1mdW5jdGlvbiBqbih0KXtyZXR1cm4gX24odCx7ZnM6ZX0pfWZ1bmN0aW9uIHduKHQsZSl7dmFyIHI9W107cmV0dXJuIG90KHQsKGZ1bmN0aW9uKHQsbixvKXtlKHQsbixvKSYmci5wdXNoKHQpfSkpLHJ9ZnVuY3Rpb24gbW4odCxlPXt9KXtsZXQgcj1tcihlLCJmcyIpO2lmKCFnbih0LHtmczpyfSkpcmV0dXJuITE7bGV0IG49ci5sc3RhdFN5bmModCk7cmV0dXJuIW4uaXNGaWxlKCkmJiFuLmlzU3ltYm9saWNMaW5rKCl9ZnVuY3Rpb24gT24odCxlPTEscj17fSl7bGV0IG49MSxvPW1yKHIsInBhdGgiKSx1PW1yKHIsImZzIik7aWYoIW1uKHQse2ZzOnV9KSl0aHJvdyBuZXcgRXJyb3IoYGZkWyR7dH1dIGlzIG5vdCBhIGZvbGRlcmApO3ZhciBpO3JldHVybiBudWxsIT09ZSYmKHBuKGk9ZSkmJmJuKGkpPjApJiYoZT1ibihlKSk8MSYmKGU9MSksZnVuY3Rpb24gdChyKXtsZXQgaT1bXTtyZXR1cm4gbW4ocix7ZnM6dX0pPyhpdCh1LnJlYWRkaXJTeW5jKHIpLChmdW5jdGlvbihhKXtsZXQgYz1vLnJlc29sdmUocixhKSxmPW51bGw7dHJ5e2Y9dS5zdGF0U3luYyhjKX1jYXRjaCh0KXt9ZiYmZi5pc0RpcmVjdG9yeSgpPyhpLnB1c2goe2lzRm9sZGVyOiEwLGxldmVsOm4scGF0aDpjLG5hbWU6by5iYXNlbmFtZShjKX0pLG4rPTEsKG48PWV8fG51bGw9PT1lKSYmKGk9aS5jb25jYXQodChjKSkpLG4tPTEpOmkucHVzaCh7aXNGb2xkZXI6ITEsbGV2ZWw6bixwYXRoOmMsbmFtZTpvLmJhc2VuYW1lKGMpfSl9KSksaSk6aX0odCl9ZnVuY3Rpb24gU24odCxlPTEscj17fSl7bGV0IG49bXIociwicGF0aCIpLG89bXIociwiZnMiKTtpZighbW4odCx7ZnM6b30pKXRocm93IG5ldyBFcnJvcihgZmRbJHt0fV0gaXMgbm90IGEgZm9sZGVyYCk7bGV0IHU9W107dmFyIGksYTtyZXR1cm4gdT1Pbih0LGUse3BhdGg6bixmczpvfSksYT17aXNGb2xkZXI6ITF9LHU9KFMoaT11KT9SZTp3bikoaSxFcihhKSksdT1Gcih1LCh0PT4oZGVsZXRlIHQuaXNGb2xkZXIsdCkpKSx1fWNvbnN0IEFuPW5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDQ4LDgsOTYsMywxMjcsMTI3LDEyNywxLDEyNyw5NiwzLDEyNywxMjcsMTI3LDAsOTYsMiwxMjcsMTI3LDAsOTYsMSwxMjcsMSwxMjcsOTYsMywxMjcsMTI3LDEyNiwxLDEyNiw5NiwzLDEyNiwxMjcsMTI3LDEsMTI2LDk2LDIsMTI3LDEyNiwwLDk2LDEsMTI3LDEsMTI2LDMsMTEsMTAsMCwwLDIsMSwzLDQsNSw2LDEsNyw1LDMsMSwwLDEsNyw4NSw5LDMsMTA5LDEwMSwxMDksMiwwLDUsMTIwLDEyMCwxMDQsNTEsNTAsMCwwLDYsMTA1LDExMCwxMDUsMTE2LDUxLDUwLDAsMiw4LDExNywxMTIsMTAwLDk3LDExNiwxMDEsNTEsNTAsMCwzLDgsMTAwLDEwNSwxMDMsMTAxLDExNSwxMTYsNTEsNTAsMCw0LDUsMTIwLDEyMCwxMDQsNTQsNTIsMCw1LDYsMTA1LDExMCwxMDUsMTE2LDU0LDUyLDAsNyw4LDExNywxMTIsMTAwLDk3LDExNiwxMDEsNTQsNTIsMCw4LDgsMTAwLDEwNSwxMDMsMTAxLDExNSwxMTYsNTQsNTIsMCw5LDEwLDI1MSwyMiwxMCwyNDIsMSwxLDQsMTI3LDMyLDAsMzIsMSwxMDYsMzMsMywzMiwxLDY1LDE2LDc5LDQsMTI3LDMyLDMsNjUsMTYsMTA3LDMzLDYsMzIsMiw2NSwxNjgsMTM2LDE0MSwxNjEsMiwxMDYsMzMsMywzMiwyLDY1LDEzNywyMzUsMjA4LDIwOCw3LDEwNywzMyw0LDMyLDIsNjUsMjA3LDE0MCwxNjIsMTQyLDYsMTA2LDMzLDUsMyw2NCwzMiwzLDMyLDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMywzMiw0LDMyLDAsNjUsNCwxMDYsMzQsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw0LDMyLDIsMzIsMCw2NSw0LDEwNiwzNCwwLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDIsMzIsNSwzMiwwLDY1LDQsMTA2LDM0LDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsNSwzMiw2LDMyLDAsNjUsNCwxMDYsMzQsMCw3OSwxMywwLDExLDMyLDIsNjUsMTIsMTE5LDMyLDUsNjUsMTgsMTE5LDEwNiwzMiw0LDY1LDcsMTE5LDEwNiwzMiwzLDY1LDEsMTE5LDEwNiw1LDMyLDIsNjUsMTc3LDIwNywyMTcsMTc4LDEsMTA2LDExLDMyLDEsMTA2LDMyLDAsMzIsMSw2NSwxNSwxMTMsMTYsMSwxMSwxNDYsMSwwLDMyLDEsMzIsMiwxMDYsMzMsMiwzLDY0LDMyLDEsNjUsNCwxMDYsMzIsMiw3NSw2OSw0LDY0LDMyLDAsMzIsMSw0MCwyLDAsNjUsMTg5LDIyMCwyMDIsMTQ5LDEyNCwxMDgsMTA2LDY1LDE3LDExOSw2NSwxNzUsMjE0LDIxMSwxOTAsMiwxMDgsMzMsMCwzMiwxLDY1LDQsMTA2LDMzLDEsMTIsMSwxMSwxMSwzLDY0LDMyLDEsMzIsMiw3OSw2OSw0LDY0LDMyLDAsMzIsMSw0NSwwLDAsNjUsMTc3LDIwNywyMTcsMTc4LDEsMTA4LDEwNiw2NSwxMSwxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMCwzMiwxLDY1LDEsMTA2LDMzLDEsMTIsMSwxMSwxMSwzMiwwLDMyLDAsNjUsMTUsMTE4LDExNSw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwzNCwwLDY1LDEzLDExOCwzMiwwLDExNSw2NSwxODksMjIwLDIwMiwxNDksMTI0LDEwOCwzNCwwLDY1LDE2LDExOCwzMiwwLDExNSwxMSw2MywwLDMyLDAsNjUsOCwxMDYsMzIsMSw2NSwxNjgsMTM2LDE0MSwxNjEsMiwxMDYsNTQsMiwwLDMyLDAsNjUsMTIsMTA2LDMyLDEsNjUsMTM3LDIzNSwyMDgsMjA4LDcsMTA3LDU0LDIsMCwzMiwwLDY1LDE2LDEwNiwzMiwxLDU0LDIsMCwzMiwwLDY1LDIwLDEwNiwzMiwxLDY1LDIwNywxNDAsMTYyLDE0Miw2LDEwNiw1NCwyLDAsMTEsMTk1LDQsMSw2LDEyNywzMiwxLDMyLDIsMTA2LDMzLDYsMzIsMCw2NSwyNCwxMDYsMzMsNCwzMiwwLDY1LDQwLDEwNiw0MCwyLDAsMzMsMywzMiwwLDMyLDAsNDAsMiwwLDMyLDIsMTA2LDU0LDIsMCwzMiwwLDY1LDQsMTA2LDM0LDUsMzIsNSw0MCwyLDAsMzIsMiw2NSwxNiw3OSwzMiwwLDQwLDIsMCw2NSwxNiw3OSwxMTQsMTE0LDU0LDIsMCwzMiwyLDMyLDMsMTA2LDY1LDE2LDczLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDMyLDIsMjUyLDEwLDAsMCwzMiwwLDY1LDQwLDEwNiwzMiwyLDMyLDMsMTA2LDU0LDIsMCwxNSwxMSwzMiwzLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDY1LDE2LDMyLDMsMTA3LDM0LDIsMjUyLDEwLDAsMCwzMiwwLDY1LDgsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDY1LDQsMTA2LDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDU0LDIsMCwzMiwwLDY1LDE2LDEwNiwzNCwzLDMyLDMsNDAsMiwwLDMyLDQsNjUsOCwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw2NSwxMiwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsNDAsMTA2LDY1LDAsNTQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMSwxMSwzMiwxLDMyLDYsNjUsMTYsMTA3LDc3LDQsNjQsMzIsNiw2NSwxNiwxMDcsMzMsOCwzMiwwLDY1LDgsMTA2LDQwLDIsMCwzMywyLDMyLDAsNjUsMTIsMTA2LDQwLDIsMCwzMywzLDMyLDAsNjUsMTYsMTA2LDQwLDIsMCwzMyw1LDMyLDAsNjUsMjAsMTA2LDQwLDIsMCwzMyw3LDMsNjQsMzIsMiwzMiwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDIsMzIsMywzMiwxLDY1LDQsMTA2LDM0LDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMywzMiw1LDMyLDEsNjUsNCwxMDYsMzQsMSw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw1LDMyLDcsMzIsMSw2NSw0LDEwNiwzNCwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDcsMzIsOCwzMiwxLDY1LDQsMTA2LDM0LDEsNzksMTMsMCwxMSwzMiwwLDY1LDgsMTA2LDMyLDIsNTQsMiwwLDMyLDAsNjUsMTIsMTA2LDMyLDMsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDMyLDUsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDMyLDcsNTQsMiwwLDExLDMyLDEsMzIsNiw3Myw0LDY0LDMyLDQsMzIsMSwzMiw2LDMyLDEsMTA3LDM0LDEsMjUyLDEwLDAsMCwzMiwwLDY1LDQwLDEwNiwzMiwxLDU0LDIsMCwxMSwxMSw5NywxLDEsMTI3LDMyLDAsNjUsMTYsMTA2LDQwLDIsMCwzMywxLDMyLDAsNjUsNCwxMDYsNDAsMiwwLDQsMTI3LDMyLDEsNjUsMTIsMTE5LDMyLDAsNjUsMjAsMTA2LDQwLDIsMCw2NSwxOCwxMTksMTA2LDMyLDAsNjUsMTIsMTA2LDQwLDIsMCw2NSw3LDExOSwxMDYsMzIsMCw2NSw4LDEwNiw0MCwyLDAsNjUsMSwxMTksMTA2LDUsMzIsMSw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDYsMTEsMzIsMCw0MCwyLDAsMTA2LDMyLDAsNjUsMjQsMTA2LDMyLDAsNjUsNDAsMTA2LDQwLDIsMCwxNiwxLDExLDI1NSwzLDIsMywxMjYsMSwxMjcsMzIsMCwzMiwxLDEwNiwzMyw2LDMyLDEsNjUsMzIsNzksNCwxMjYsMzIsNiw2NSwzMiwxMDcsMzMsNiwzMiwyLDY2LDIxNCwyMzUsMTMwLDIzOCwyMzQsMjUzLDEzNywyNDUsMjI0LDAsMTI0LDMzLDMsMzIsMiw2NiwxNzcsMTY5LDE3MiwxOTMsMTczLDE4NCwyMTIsMTY2LDYxLDEyNSwzMyw0LDMyLDIsNjYsMjQ5LDIzNCwyMDgsMjA4LDIzMSwyMDEsMTYxLDIyOCwyMjUsMCwxMjQsMzMsNSwzLDY0LDMyLDMsMzIsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDMsMzIsNCwzMiwwLDY1LDgsMTA2LDM0LDAsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw0LDMyLDIsMzIsMCw2NSw4LDEwNiwzNCwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsMiwzMiw1LDMyLDAsNjUsOCwxMDYsMzQsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDUsMzIsNiwzMiwwLDY1LDgsMTA2LDM0LDAsNzksMTMsMCwxMSwzMiwyLDY2LDEyLDEzNywzMiw1LDY2LDE4LDEzNywxMjQsMzIsNCw2Niw3LDEzNywxMjQsMzIsMyw2NiwxLDEzNywxMjQsMzIsMyw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw0LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDIsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsNSw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSw1LDMyLDIsNjYsMTk3LDIwNywyMTcsMTc4LDI0MSwyMjksMTg2LDIzNCwzOSwxMjQsMTEsMzIsMSwxNzMsMTI0LDMyLDAsMzIsMSw2NSwzMSwxMTMsMTYsNiwxMSwxMzQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMiwzLDY0LDMyLDIsMzIsMSw2NSw4LDEwNiw3OSw0LDY0LDMyLDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMyLDAsMTMzLDY2LDI3LDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMzLDAsMzIsMSw2NSw4LDEwNiwzMywxLDEyLDEsMTEsMTEsMzIsMSw2NSw0LDEwNiwzMiwyLDc3LDQsNjQsMzIsMCwzMiwxLDUzLDIsMCw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwyMywxMzcsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMjQ5LDI0MywyMjEsMjQxLDE1MywyNDYsMTUzLDE3MSwyMiwxMjQsMzMsMCwzMiwxLDY1LDQsMTA2LDMzLDEsMTEsMyw2NCwzMiwxLDMyLDIsNzMsNCw2NCwzMiwwLDMyLDEsNDksMCwwLDY2LDE5NywyMDcsMjE3LDE3OCwyNDEsMjI5LDE4NiwyMzQsMzksMTI2LDEzMyw2NiwxMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMywwLDMyLDEsNjUsMSwxMDYsMzMsMSwxMiwxLDExLDExLDMyLDAsMzIsMCw2NiwzMywxMzYsMTMzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDM0LDAsMzIsMCw2NiwyOSwxMzYsMTMzLDY2LDI0OSwyNDMsMjIxLDI0MSwxNTMsMjQ2LDE1MywxNzEsMjIsMTI2LDM0LDAsMzIsMCw2NiwzMiwxMzYsMTMzLDExLDc3LDAsMzIsMCw2NSw4LDEwNiwzMiwxLDY2LDIxNCwyMzUsMTMwLDIzOCwyMzQsMjUzLDEzNywyNDUsMjI0LDAsMTI0LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzMiwxLDY2LDE3NywxNjksMTcyLDE5MywxNzMsMTg0LDIxMiwxNjYsNjEsMTI1LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzMiwxLDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzMiwxLDY2LDI0OSwyMzQsMjA4LDIwOCwyMzEsMjAxLDE2MSwyMjgsMjI1LDAsMTI0LDU1LDMsMCwxMSwyNDQsNCwyLDMsMTI3LDQsMTI2LDMyLDEsMzIsMiwxMDYsMzMsNSwzMiwwLDY1LDQwLDEwNiwzMyw0LDMyLDAsNjUsMjAwLDAsMTA2LDQwLDIsMCwzMywzLDMyLDAsMzIsMCw0MSwzLDAsMzIsMiwxNzMsMTI0LDU1LDMsMCwzMiwyLDMyLDMsMTA2LDY1LDMyLDczLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDMyLDIsMjUyLDEwLDAsMCwzMiwwLDY1LDIwMCwwLDEwNiwzMiwyLDMyLDMsMTA2LDU0LDIsMCwxNSwxMSwzMiwzLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDY1LDMyLDMyLDMsMTA3LDM0LDIsMjUyLDEwLDAsMCwzMiwwLDY1LDgsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsOCwxMDYsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw1NSwzLDAsMzIsMCw2NSwyNCwxMDYsMzQsMywzMiwzLDQxLDMsMCwzMiw0LDY1LDE2LDEwNiw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsMjQsMTA2LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMjAwLDAsMTA2LDY1LDAsNTQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMSwxMSwzMiwxLDY1LDMyLDEwNiwzMiw1LDc3LDQsNjQsMzIsNSw2NSwzMiwxMDcsMzMsMiwzMiwwLDY1LDgsMTA2LDQxLDMsMCwzMyw2LDMyLDAsNjUsMTYsMTA2LDQxLDMsMCwzMyw3LDMyLDAsNjUsMjQsMTA2LDQxLDMsMCwzMyw4LDMyLDAsNjUsMzIsMTA2LDQxLDMsMCwzMyw5LDMsNjQsMzIsNiwzMiwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNiwzMiw3LDMyLDEsNjUsOCwxMDYsMzQsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDcsMzIsOCwzMiwxLDY1LDgsMTA2LDM0LDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw4LDMyLDksMzIsMSw2NSw4LDEwNiwzNCwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsOSwzMiwyLDMyLDEsNjUsOCwxMDYsMzQsMSw3OSwxMywwLDExLDMyLDAsNjUsOCwxMDYsMzIsNiw1NSwzLDAsMzIsMCw2NSwxNiwxMDYsMzIsNyw1NSwzLDAsMzIsMCw2NSwyNCwxMDYsMzIsOCw1NSwzLDAsMzIsMCw2NSwzMiwxMDYsMzIsOSw1NSwzLDAsMTEsMzIsMSwzMiw1LDczLDQsNjQsMzIsNCwzMiwxLDMyLDUsMzIsMSwxMDcsMzQsMSwyNTIsMTAsMCwwLDMyLDAsNjUsMjAwLDAsMTA2LDMyLDEsNTQsMiwwLDExLDExLDE4OCwyLDEsNSwxMjYsMzIsMCw2NSwyNCwxMDYsNDEsMywwLDMzLDEsMzIsMCw0MSwzLDAsMzQsMiw2NiwzMiw5MCw0LDEyNiwzMiwwLDY1LDgsMTA2LDQxLDMsMCwzNCwzLDY2LDEsMTM3LDMyLDAsNjUsMTYsMTA2LDQxLDMsMCwzNCw0LDY2LDcsMTM3LDEyNCwzMiwxLDY2LDEyLDEzNywzMiwwLDY1LDMyLDEwNiw0MSwzLDAsMzQsNSw2NiwxOCwxMzcsMTI0LDEyNCwzMiwzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDQsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsMSw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw1LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDUsMzIsMSw2NiwxOTcsMjA3LDIxNywxNzgsMjQxLDIyOSwxODYsMjM0LDM5LDEyNCwxMSwzMiwyLDEyNCwzMiwwLDY1LDQwLDEwNiwzMiwyLDY2LDMxLDEzMSwxNjcsMTYsNiwxMV0pO2FzeW5jIGZ1bmN0aW9uIHpuKHQsZT17fSl7bGV0IHI9bXIoZSwiZnMiKSxuPW1yKGUsImNodW5rU2l6ZSIpO2lmKFpyKG4pfHwobj02NzEwODg2NCksbj1sbihuKSwhX24odCx7ZnM6cn0pKXJldHVybiBQcm9taXNlLnJlamVjdCgiZnAgaXMgbm90IGEgZmlsZSIpO2xldCBvPWZ1bmN0aW9uKCl7bGV0IHQsZSxyPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLGU9YXJndW1lbnRzWzFdfSkpO3JldHVybiByLnJlc29sdmU9dCxyLnJlamVjdD1lLHJ9KCk7dHJ5e2xldHtjcmVhdGU2NDplfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdHtleHBvcnRzOnttZW06ZSx4eGgzMjpyLHh4aDY0Om4saW5pdDMyOm8sdXBkYXRlMzI6dSxkaWdlc3QzMjppLGluaXQ2NDphLHVwZGF0ZTY0OmMsZGlnZXN0NjQ6Zn19PXQ7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO2Z1bmN0aW9uIGwodCxyKXtpZihlLmJ1ZmZlci5ieXRlTGVuZ3RoPHQrcil7Y29uc3Qgbj1NYXRoLmNlaWwoKHQrci1lLmJ1ZmZlci5ieXRlTGVuZ3RoKS82NTUzNik7ZS5ncm93KG4pLHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1mdW5jdGlvbiBwKHQsZSxyLG4sbyx1KXtsKHQpO2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIHMuc2V0KGkpLHIoMCxlKSxpLnNldChzLnN1YmFycmF5KDAsdCkpLHt1cGRhdGUoZSl7bGV0IHI7cmV0dXJuIHMuc2V0KGkpLCJzdHJpbmciPT10eXBlb2YgZT8obCgzKmUubGVuZ3RoLHQpLHI9ZC5lbmNvZGVJbnRvKGUscy5zdWJhcnJheSh0KSkud3JpdHRlbik6KGwoZS5ieXRlTGVuZ3RoLHQpLHMuc2V0KGUsdCkscj1lLmJ5dGVMZW5ndGgpLG4oMCx0LHIpLGkuc2V0KHMuc3ViYXJyYXkoMCx0KSksdGhpc30sZGlnZXN0OigpPT4ocy5zZXQoaSksdShvKDApKSl9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ+Pj4wfWNvbnN0IHY9Mm4qKjY0bi0xbjtmdW5jdGlvbiB5KHQpe3JldHVybiB0JnZ9Y29uc3QgZD1uZXcgVGV4dEVuY29kZXIsYj0wLGc9MG47ZnVuY3Rpb24gXyh0LGU9Yil7cmV0dXJuIGwoMyp0Lmxlbmd0aCwwKSxoKHIoMCxkLmVuY29kZUludG8odCxzKS53cml0dGVuLGUpKX1mdW5jdGlvbiBqKHQsZT1nKXtyZXR1cm4gbCgzKnQubGVuZ3RoLDApLHkobigwLGQuZW5jb2RlSW50byh0LHMpLndyaXR0ZW4sZSkpfXJldHVybntoMzI6XyxoMzJUb1N0cmluZzoodCxlPWIpPT5fKHQsZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSxoMzJSYXc6KHQsZT1iKT0+KGwodC5ieXRlTGVuZ3RoLDApLHMuc2V0KHQpLGgocigwLHQuYnl0ZUxlbmd0aCxlKSkpLGNyZWF0ZTMyOih0PWIpPT5wKDQ4LHQsbyx1LGksaCksaDY0OmosaDY0VG9TdHJpbmc6KHQsZT1nKT0+aih0LGUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpLGg2NFJhdzoodCxlPWcpPT4obCh0LmJ5dGVMZW5ndGgsMCkscy5zZXQodCkseShuKDAsdC5ieXRlTGVuZ3RoLGUpKSksY3JlYXRlNjQ6KHQ9Zyk9PnAoODgsdCxhLGMsZix5KX19KChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShBbikpLmluc3RhbmNlKX0oKSx1PWUoKSxpPXIuY3JlYXRlUmVhZFN0cmVhbSh0LHtoaWdoV2F0ZXJNYXJrOm59KTtpLm9uKCJkYXRhIiwodD0+e3UudXBkYXRlKHQpfSkpLGkub24oImVuZCIsKCgpPT57bGV0IHQ9dS5kaWdlc3QoKS50b1N0cmluZygxNikucGFkU3RhcnQoMTYsIjAiKTtvLnJlc29sdmUodCl9KSksaS5vbigiZXJyb3IiLG8ucmVqZWN0KX1jYXRjaCh0KXtvLnJlamVjdCh0LnRvU3RyaW5nKCkpfXJldHVybiBvfWxldCBjaGVja1RvdGFsSGFzaD1hc3luYyhyLG4sbyx1KT0+e2xldCBpPXQucmVzb2x2ZSh1LG8pLGE9ITE7aWYoYT1qbihpKSwhWnIocikpe3JldHVybntlcnJvcjoiaW52YWxpZCBmaWxlU2l6ZSBpbiBwYXlsb2FkIn19bGV0IGM9ITE7aWYoYSl7bGV0IHQ9LTE7dHJ5e3Q9ZS5zdGF0U3luYyhpKS5zaXplfWNhdGNoKHQpe2NvbnNvbGUubG9nKCJjaGVjayB0b3RhbCBmaWxlIHNpemU6IGZzLnN0YXRTeW5jKHBhdGhGaWxlKSIsaSx0KX1jPXI9PT10fWxldCBmPSExO2EmJmMmJmF3YWl0IGZ1bmN0aW9uKHQscj17fSl7cmV0dXJuIHpuKHQse2ZzOmUsLi4ucn0pfShpKS50aGVuKCh0PT57Zj1vPT09dH0pKS5jYXRjaCgodD0+e2NvbnNvbGUubG9nKCJmc0lzRmlsZShwYXRoRmlsZSkiLGksam4oaSkpLGNvbnNvbGUubG9nKHQpLGY9ITF9KSk7bGV0IHM9W107aWYoIWYpe2l0KGZ1bmN0aW9uKHIsbj0xKXtyZXR1cm4gU24ocixuLHtwYXRoOnQsZnM6ZX0pfSh1KSwodD0+e2xldCByPXQubmFtZS5pbmRleE9mKGAke299X2ApPj0wLHU9ITE7dHJ5e3U9ZS5zdGF0U3luYyh0LnBhdGgpLnNpemU9PT1ufWNhdGNoKGUpe2NvbnNvbGUubG9nKCJjaGVjayBlYWNoIGZpbGUgc2l6ZTogZnMuc3RhdFN5bmMocGF0aEZpbGUpIix0LnBhdGgsZSl9aWYociYmdSl7bGV0IGU9WXIodC5uYW1lLGAke299X2ApLHI9KGE9bnVsbD09KGk9ZSk/MDppLmxlbmd0aCk/aVthLTFdOnZvaWQgMDtpZighZnVuY3Rpb24odCl7cmV0dXJuISFwbih0KSYmYm4odCk+PTB9KHIpKXRocm93IGNvbnNvbGUubG9nKCJ2Lm5hbWUiLHQubmFtZSksY29uc29sZS5sb2coInMiLGUpLG5ldyBFcnJvcihgY2FuIG5vdCBwYXJzZSBpbmRleCBpbiB2Lm5hbWVbJHt0Lm5hbWV9XWApO3I9Ym4ocikscy5wdXNoKHIpfXZhciBpLGF9KSl9bGV0IGw9ZWUocyk+MDtyZXR1cm57cGF0aDppLGJBbGxFeGlzdDphLGJBbGxTaXplOmMsYkFsbEhhc2g6ZixiU2xzOmwsc2xrczpzfX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjaGVja1RvdGFsSGFzaAogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgcGFyZW50UG9ydC5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBjaGVja1RvdGFsSGFzaAogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgcGFyZW50UG9ydC5vbignbWVzc2FnZScsIHJlY3ZNZXNzYWdlKQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){o(e)}}(t);if(!i)return o("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function o(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",o),i.on("exit",e=>{1!==e&&o("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):o("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(li);var ci=On(li.exports),ui={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new i(r,s||e,o),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],a]:e._events[l].push(a):(e._events[l]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,o=new Array(s);i<s;i++)o[i]=r[i].fn;return o},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,i,s,o){var a=n?n+e:e;if(!this._events[a])return!1;var l,c,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,i),!0;case 5:return u.fn.call(u.context,t,r,i,s),!0;case 6:return u.fn.call(u.context,t,r,i,s,o),!0}for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];u.fn.apply(u.context,l)}else{var p,w=u.length;for(c=0;c<w;c++)switch(u[c].once&&this.removeListener(e,u[c].fn,void 0,!0),d){case 1:u[c].fn.call(u[c].context);break;case 2:u[c].fn.call(u[c].context,t);break;case 3:u[c].fn.call(u[c].context,t,r);break;case 4:u[c].fn.call(u[c].context,t,r,i);break;default:if(!l)for(p=1,l=new Array(d-1);p<d;p++)l[p-1]=arguments[p];u[c].fn.apply(u[c].context,l)}}return!0},a.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return o(this,s),this;var a=this._events[s];if(a.fn)a.fn!==t||i&&!a.once||r&&a.context!==r||o(this,s);else{for(var l=0,c=[],u=a.length;l<u;l++)(a[l].fn!==t||i&&!a[l].once||r&&a[l].context!==r)&&c.push(a[l]);c.length?this._events[s]=1===c.length?c[0]:c:o(this,s)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIiksZT1yZXF1aXJlKCJmcyIpLHI9T2JqZWN0LnByb3RvdHlwZTt2YXIgbixvLGk9KG49T2JqZWN0LmtleXMsbz1PYmplY3QsZnVuY3Rpb24odCl7cmV0dXJuIG4obyh0KSl9KSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYSh0KXtpZihuPShlPXQpJiZlLmNvbnN0cnVjdG9yLGUhPT0oImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4ucHJvdG90eXBlfHxyKSlyZXR1cm4gaSh0KTt2YXIgZSxuLG89W107Zm9yKHZhciBhIGluIE9iamVjdCh0KSl1LmNhbGwodCxhKSYmImNvbnN0cnVjdG9yIiE9YSYmby5wdXNoKGEpO3JldHVybiBvfXZhciBjPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxmPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYscz1jfHxmfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLGw9cy5TeW1ib2wscD1PYmplY3QucHJvdG90eXBlLGg9cC5oYXNPd25Qcm9wZXJ0eSx5PXAudG9TdHJpbmcsdj1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBiPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIGQ9IltvYmplY3QgTnVsbF0iLGc9IltvYmplY3QgVW5kZWZpbmVkXSIsXz1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIGoodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9nOmQ6XyYmXyBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIGU9aC5jYWxsKHQsdikscj10W3ZdO3RyeXt0W3ZdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89eS5jYWxsKHQpO3JldHVybiBuJiYoZT90W3ZdPXI6ZGVsZXRlIHRbdl0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBiLmNhbGwodCl9KHQpfWZ1bmN0aW9uIHcodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9dmFyIFM9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLE89IltvYmplY3QgRnVuY3Rpb25dIixtPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIseD0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHoodCl7aWYoIXcodCkpcmV0dXJuITE7dmFyIGU9aih0KTtyZXR1cm4gZT09T3x8ZT09bXx8ZT09U3x8ZT09eH12YXIgQSwkPXNbIl9fY29yZS1qc19zaGFyZWRfXyJdLEY9KEE9L1teLl0rJC8uZXhlYygkJiYkLmtleXMmJiQua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK0E6IiI7dmFyIFA9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIEwodCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBQLmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifXZhciBrPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEU9RnVuY3Rpb24ucHJvdG90eXBlLEk9T2JqZWN0LnByb3RvdHlwZSxOPUUudG9TdHJpbmcsVD1JLmhhc093blByb3BlcnR5LE09UmVnRXhwKCJeIitOLmNhbGwoVCkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gUih0KXtyZXR1cm4hKCF3KHQpfHxmdW5jdGlvbih0KXtyZXR1cm4hIUYmJkYgaW4gdH0odCkpJiYoeih0KT9NOmspLnRlc3QoTCh0KSl9ZnVuY3Rpb24gVSh0LGUpe3ZhciByPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbZV19KHQsZSk7cmV0dXJuIFIocik/cjp2b2lkIDB9dmFyIEI9VShzLCJEYXRhVmlldyIpLEM9VShzLCJNYXAiKSxEPVUocywiUHJvbWlzZSIpLFc9VShzLCJTZXQiKSxxPVUocywiV2Vha01hcCIpLFY9IltvYmplY3QgTWFwXSIsRz0iW29iamVjdCBQcm9taXNlXSIsSD0iW29iamVjdCBTZXRdIixKPSJbb2JqZWN0IFdlYWtNYXBdIixLPSJbb2JqZWN0IERhdGFWaWV3XSIsUT1MKEIpLFg9TChDKSxZPUwoRCksWj1MKFcpLHR0PUwocSksZXQ9ajsoQiYmZXQobmV3IEIobmV3IEFycmF5QnVmZmVyKDEpKSkhPUt8fEMmJmV0KG5ldyBDKSE9Vnx8RCYmZXQoRC5yZXNvbHZlKCkpIT1HfHxXJiZldChuZXcgVykhPUh8fHEmJmV0KG5ldyBxKSE9SikmJihldD1mdW5jdGlvbih0KXt2YXIgZT1qKHQpLHI9IltvYmplY3QgT2JqZWN0XSI9PWU/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAsbj1yP0wocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBROnJldHVybiBLO2Nhc2UgWDpyZXR1cm4gVjtjYXNlIFk6cmV0dXJuIEc7Y2FzZSBaOnJldHVybiBIO2Nhc2UgdHQ6cmV0dXJuIEp9cmV0dXJuIGV9KTt2YXIgcnQ9ZXQsbnQ9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBvdCh0KXtyZXR1cm4gbnVsbCE9dCYmZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PW50fSh0Lmxlbmd0aCkmJiF6KHQpfXZhciBpdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHV0KHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9dmFyIGF0PSJbb2JqZWN0IFN0cmluZ10iO3ZhciBjdCxmdD0oY3Q9Imxlbmd0aCIsZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbY3RdfSksc3Q9UmVnRXhwKCJbXFx1MjAwZFxcdWQ4MDAtXFx1ZGZmZlxcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZlxcdWZlMGVcXHVmZTBmXSIpO3ZhciBsdD0iXFx1ZDgwMC1cXHVkZmZmIixwdD0iWyIrbHQrIl0iLGh0PSJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIseXQ9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsdnQ9IlteIitsdCsiXSIsYnQ9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLGR0PSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixndD0iKD86IitodCsifCIreXQrIikiKyI/IixfdD0iW1xcdWZlMGVcXHVmZTBmXT8iLGp0PV90K2d0KygiKD86XFx1MjAwZCg/OiIrW3Z0LGJ0LGR0XS5qb2luKCJ8IikrIikiK190K2d0KyIpKiIpLHd0PSIoPzoiK1t2dCtodCsiPyIsaHQsYnQsZHQscHRdLmpvaW4oInwiKSsiKSIsU3Q9UmVnRXhwKHl0KyIoPz0iK3l0KyIpfCIrd3QranQsImciKTtmdW5jdGlvbiBPdCh0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHN0LnRlc3QodCl9KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1TdC5sYXN0SW5kZXg9MDtTdC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9KHQpOmZ0KHQpfWZ1bmN0aW9uIG10KHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYob3QodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihlPXQpfHwhaXQoZSkmJnV0KGUpJiZqKGUpPT1hdD9PdCh0KTp0Lmxlbmd0aDt2YXIgZSxyPXJ0KHQpO3JldHVybiJbb2JqZWN0IE1hcF0iPT1yfHwiW29iamVjdCBTZXRdIj09cj90LnNpemU6YSh0KS5sZW5ndGh9dmFyIHh0PSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIHp0KHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8dXQodCkmJmoodCk9PXh0fXZhciBBdD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLywkdD0vXlx3KiQvO3ZhciBGdD1VKE9iamVjdCwiY3JlYXRlIik7dmFyIFB0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIEx0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24ga3QodCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19ZnVuY3Rpb24gRXQodCxlKXtmb3IodmFyIHIsbixvPXQubGVuZ3RoO28tLTspaWYoKHI9dFtvXVswXSk9PT0obj1lKXx8ciE9ciYmbiE9bilyZXR1cm4gbztyZXR1cm4tMX1rdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPUZ0P0Z0KG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxrdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxrdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoRnQpe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gUHQuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxrdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIEZ0P3ZvaWQgMCE9PWVbdF06THQuY2FsbChlLHQpfSxrdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1GdCYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfTt2YXIgSXQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBOdCh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBUdCh0LGUpe3ZhciByLG4sbz10Ll9fZGF0YV9fO3JldHVybigic3RyaW5nIj09KG49dHlwZW9mKHI9ZSkpfHwibnVtYmVyIj09bnx8InN5bWJvbCI9PW58fCJib29sZWFuIj09bj8iX19wcm90b19fIiE9PXI6bnVsbD09PXIpP29bInN0cmluZyI9PXR5cGVvZiBlPyJzdHJpbmciOiJoYXNoIl06by5tYXB9ZnVuY3Rpb24gTXQodCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19TnQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sTnQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9RXQoZSx0KTtyZXR1cm4hKHI8MCkmJihyPT1lLmxlbmd0aC0xP2UucG9wKCk6SXQuY2FsbChlLHIsMSksLS10aGlzLnNpemUsITApfSxOdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1FdChlLHQpO3JldHVybiByPDA/dm9pZCAwOmVbcl1bMV19LE50LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEV0KHRoaXMuX19kYXRhX18sdCk+LTF9LE50LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9fZGF0YV9fLG49RXQocix0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxyLnB1c2goW3QsZV0pKTpyW25dWzFdPWUsdGhpc30sTXQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcga3QsbWFwOm5ldyhDfHxOdCksc3RyaW5nOm5ldyBrdH19LE10LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9VHQodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0sTXQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gVHQodGhpcyx0KS5nZXQodCl9LE10LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFR0KHRoaXMsdCkuaGFzKHQpfSxNdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9VHQodGhpcyx0KSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc307dmFyIFJ0PSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBVdCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHxudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFJ0KTt2YXIgcj1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPWU/ZS5hcHBseSh0aGlzLG4pOm5bMF0saT1yLmNhY2hlO2lmKGkuaGFzKG8pKXJldHVybiBpLmdldChvKTt2YXIgdT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIHIuY2FjaGU9aS5zZXQobyx1KXx8aSx1fTtyZXR1cm4gci5jYWNoZT1uZXcoVXQuQ2FjaGV8fE10KSxyfVV0LkNhY2hlPU10O3ZhciBCdD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxDdD0vXFwoXFwpPy9nLER0PWZ1bmN0aW9uKHQpe3ZhciBlPVV0KHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1yLnNpemUmJnIuY2xlYXIoKSx0fSkpLHI9ZS5jYWNoZTtyZXR1cm4gZX0oKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoQnQsKGZ1bmN0aW9uKHQscixuLG8pe2UucHVzaChuP28ucmVwbGFjZShDdCwiJDEiKTpyfHx0KX0pKSxlfSkpLFd0PUR0O3ZhciBxdD0xLzAsVnQ9bD9sLnByb3RvdHlwZTp2b2lkIDAsR3Q9VnQ/VnQudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIEh0KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihpdCh0KSlyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK3I8bjspb1tyXT1lKHRbcl0scix0KTtyZXR1cm4gb30odCxIdCkrIiI7aWYoenQodCkpcmV0dXJuIEd0P0d0LmNhbGwodCk6IiI7dmFyIGU9dCsiIjtyZXR1cm4iMCI9PWUmJjEvdD09LXF0PyItMCI6ZX1mdW5jdGlvbiBKdCh0LGUpe3JldHVybiBpdCh0KT90OmZ1bmN0aW9uKHQsZSl7aWYoaXQodCkpcmV0dXJuITE7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9ciYmInN5bWJvbCIhPXImJiJib29sZWFuIiE9ciYmbnVsbCE9dCYmIXp0KHQpKXx8JHQudGVzdCh0KXx8IUF0LnRlc3QodCl8fG51bGwhPWUmJnQgaW4gT2JqZWN0KGUpfSh0LGUpP1t0XTpXdChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjpIdCh0KX0odCkpfXZhciBLdD0xLzA7ZnVuY3Rpb24gUXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHx6dCh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tS3Q/Ii0wIjplfWZ1bmN0aW9uIFh0KHQsZSxyKXt2YXIgbj1udWxsPT10P3ZvaWQgMDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49KGU9SnQoZSx0KSkubGVuZ3RoO251bGwhPXQmJnI8bjspdD10W1F0KGVbcisrXSldO3JldHVybiByJiZyPT1uP3Q6dm9pZCAwfSh0LGUpO3JldHVybiB2b2lkIDA9PT1uP3I6bn1mdW5jdGlvbiBZdCh0LGU9e30pe2xldCByPVh0KGUsImZzIik7cmV0dXJuISFmdW5jdGlvbih0LGU9e30pe2xldCByPVh0KGUsImZzIiksbj0hMTt0cnl7ci5zdGF0U3luYyh0KSxuPSEwfWNhdGNoe249ITF9cmV0dXJuIG59KHQse2ZzOnJ9KSYmKCFyLmxzdGF0U3luYyh0KS5pc0RpcmVjdG9yeSgpJiYhci5sc3RhdFN5bmModCkuaXNTeW1ib2xpY0xpbmsoKSl9Y29uc3QgWnQ9bmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNDgsOCw5NiwzLDEyNywxMjcsMTI3LDEsMTI3LDk2LDMsMTI3LDEyNywxMjcsMCw5NiwyLDEyNywxMjcsMCw5NiwxLDEyNywxLDEyNyw5NiwzLDEyNywxMjcsMTI2LDEsMTI2LDk2LDMsMTI2LDEyNywxMjcsMSwxMjYsOTYsMiwxMjcsMTI2LDAsOTYsMSwxMjcsMSwxMjYsMywxMSwxMCwwLDAsMiwxLDMsNCw1LDYsMSw3LDUsMywxLDAsMSw3LDg1LDksMywxMDksMTAxLDEwOSwyLDAsNSwxMjAsMTIwLDEwNCw1MSw1MCwwLDAsNiwxMDUsMTEwLDEwNSwxMTYsNTEsNTAsMCwyLDgsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw1MSw1MCwwLDMsOCwxMDAsMTA1LDEwMywxMDEsMTE1LDExNiw1MSw1MCwwLDQsNSwxMjAsMTIwLDEwNCw1NCw1MiwwLDUsNiwxMDUsMTEwLDEwNSwxMTYsNTQsNTIsMCw3LDgsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw1NCw1MiwwLDgsOCwxMDAsMTA1LDEwMywxMDEsMTE1LDExNiw1NCw1MiwwLDksMTAsMjUxLDIyLDEwLDI0MiwxLDEsNCwxMjcsMzIsMCwzMiwxLDEwNiwzMywzLDMyLDEsNjUsMTYsNzksNCwxMjcsMzIsMyw2NSwxNiwxMDcsMzMsNiwzMiwyLDY1LDE2OCwxMzYsMTQxLDE2MSwyLDEwNiwzMywzLDMyLDIsNjUsMTM3LDIzNSwyMDgsMjA4LDcsMTA3LDMzLDQsMzIsMiw2NSwyMDcsMTQwLDE2MiwxNDIsNiwxMDYsMzMsNSwzLDY0LDMyLDMsMzIsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywzLDMyLDQsMzIsMCw2NSw0LDEwNiwzNCwwLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDQsMzIsMiwzMiwwLDY1LDQsMTA2LDM0LDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMiwzMiw1LDMyLDAsNjUsNCwxMDYsMzQsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw1LDMyLDYsMzIsMCw2NSw0LDEwNiwzNCwwLDc5LDEzLDAsMTEsMzIsMiw2NSwxMiwxMTksMzIsNSw2NSwxOCwxMTksMTA2LDMyLDQsNjUsNywxMTksMTA2LDMyLDMsNjUsMSwxMTksMTA2LDUsMzIsMiw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDYsMTEsMzIsMSwxMDYsMzIsMCwzMiwxLDY1LDE1LDExMywxNiwxLDExLDE0NiwxLDAsMzIsMSwzMiwyLDEwNiwzMywyLDMsNjQsMzIsMSw2NSw0LDEwNiwzMiwyLDc1LDY5LDQsNjQsMzIsMCwzMiwxLDQwLDIsMCw2NSwxODksMjIwLDIwMiwxNDksMTI0LDEwOCwxMDYsNjUsMTcsMTE5LDY1LDE3NSwyMTQsMjExLDE5MCwyLDEwOCwzMywwLDMyLDEsNjUsNCwxMDYsMzMsMSwxMiwxLDExLDExLDMsNjQsMzIsMSwzMiwyLDc5LDY5LDQsNjQsMzIsMCwzMiwxLDQ1LDAsMCw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDgsMTA2LDY1LDExLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywwLDMyLDEsNjUsMSwxMDYsMzMsMSwxMiwxLDExLDExLDMyLDAsMzIsMCw2NSwxNSwxMTgsMTE1LDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDM0LDAsNjUsMTMsMTE4LDMyLDAsMTE1LDY1LDE4OSwyMjAsMjAyLDE0OSwxMjQsMTA4LDM0LDAsNjUsMTYsMTE4LDMyLDAsMTE1LDExLDYzLDAsMzIsMCw2NSw4LDEwNiwzMiwxLDY1LDE2OCwxMzYsMTQxLDE2MSwyLDEwNiw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzIsMSw2NSwxMzcsMjM1LDIwOCwyMDgsNywxMDcsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDMyLDEsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDMyLDEsNjUsMjA3LDE0MCwxNjIsMTQyLDYsMTA2LDU0LDIsMCwxMSwxOTUsNCwxLDYsMTI3LDMyLDEsMzIsMiwxMDYsMzMsNiwzMiwwLDY1LDI0LDEwNiwzMyw0LDMyLDAsNjUsNDAsMTA2LDQwLDIsMCwzMywzLDMyLDAsMzIsMCw0MCwyLDAsMzIsMiwxMDYsNTQsMiwwLDMyLDAsNjUsNCwxMDYsMzQsNSwzMiw1LDQwLDIsMCwzMiwyLDY1LDE2LDc5LDMyLDAsNDAsMiwwLDY1LDE2LDc5LDExNCwxMTQsNTQsMiwwLDMyLDIsMzIsMywxMDYsNjUsMTYsNzMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsMzIsMiwyNTIsMTAsMCwwLDMyLDAsNjUsNDAsMTA2LDMyLDIsMzIsMywxMDYsNTQsMiwwLDE1LDExLDMyLDMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsNjUsMTYsMzIsMywxMDcsMzQsMiwyNTIsMTAsMCwwLDMyLDAsNjUsOCwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDU0LDIsMCwzMiwwLDY1LDEyLDEwNiwzNCwzLDMyLDMsNDAsMiwwLDMyLDQsNjUsNCwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw2NSw4LDEwNiw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSwyMCwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDY1LDEyLDEwNiw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSw0MCwxMDYsNjUsMCw1NCwyLDAsMzIsMSwzMiwyLDEwNiwzMywxLDExLDMyLDEsMzIsNiw2NSwxNiwxMDcsNzcsNCw2NCwzMiw2LDY1LDE2LDEwNywzMyw4LDMyLDAsNjUsOCwxMDYsNDAsMiwwLDMzLDIsMzIsMCw2NSwxMiwxMDYsNDAsMiwwLDMzLDMsMzIsMCw2NSwxNiwxMDYsNDAsMiwwLDMzLDUsMzIsMCw2NSwyMCwxMDYsNDAsMiwwLDMzLDcsMyw2NCwzMiwyLDMyLDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMiwzMiwzLDMyLDEsNjUsNCwxMDYsMzQsMSw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywzLDMyLDUsMzIsMSw2NSw0LDEwNiwzNCwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDUsMzIsNywzMiwxLDY1LDQsMTA2LDM0LDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsNywzMiw4LDMyLDEsNjUsNCwxMDYsMzQsMSw3OSwxMywwLDExLDMyLDAsNjUsOCwxMDYsMzIsMiw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzIsMyw1NCwyLDAsMzIsMCw2NSwxNiwxMDYsMzIsNSw1NCwyLDAsMzIsMCw2NSwyMCwxMDYsMzIsNyw1NCwyLDAsMTEsMzIsMSwzMiw2LDczLDQsNjQsMzIsNCwzMiwxLDMyLDYsMzIsMSwxMDcsMzQsMSwyNTIsMTAsMCwwLDMyLDAsNjUsNDAsMTA2LDMyLDEsNTQsMiwwLDExLDExLDk3LDEsMSwxMjcsMzIsMCw2NSwxNiwxMDYsNDAsMiwwLDMzLDEsMzIsMCw2NSw0LDEwNiw0MCwyLDAsNCwxMjcsMzIsMSw2NSwxMiwxMTksMzIsMCw2NSwyMCwxMDYsNDAsMiwwLDY1LDE4LDExOSwxMDYsMzIsMCw2NSwxMiwxMDYsNDAsMiwwLDY1LDcsMTE5LDEwNiwzMiwwLDY1LDgsMTA2LDQwLDIsMCw2NSwxLDExOSwxMDYsNSwzMiwxLDY1LDE3NywyMDcsMjE3LDE3OCwxLDEwNiwxMSwzMiwwLDQwLDIsMCwxMDYsMzIsMCw2NSwyNCwxMDYsMzIsMCw2NSw0MCwxMDYsNDAsMiwwLDE2LDEsMTEsMjU1LDMsMiwzLDEyNiwxLDEyNywzMiwwLDMyLDEsMTA2LDMzLDYsMzIsMSw2NSwzMiw3OSw0LDEyNiwzMiw2LDY1LDMyLDEwNywzMyw2LDMyLDIsNjYsMjE0LDIzNSwxMzAsMjM4LDIzNCwyNTMsMTM3LDI0NSwyMjQsMCwxMjQsMzMsMywzMiwyLDY2LDE3NywxNjksMTcyLDE5MywxNzMsMTg0LDIxMiwxNjYsNjEsMTI1LDMzLDQsMzIsMiw2NiwyNDksMjM0LDIwOCwyMDgsMjMxLDIwMSwxNjEsMjI4LDIyNSwwLDEyNCwzMyw1LDMsNjQsMzIsMywzMiwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsMywzMiw0LDMyLDAsNjUsOCwxMDYsMzQsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDQsMzIsMiwzMiwwLDY1LDgsMTA2LDM0LDAsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMywyLDMyLDUsMzIsMCw2NSw4LDEwNiwzNCwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNSwzMiw2LDMyLDAsNjUsOCwxMDYsMzQsMCw3OSwxMywwLDExLDMyLDIsNjYsMTIsMTM3LDMyLDUsNjYsMTgsMTM3LDEyNCwzMiw0LDY2LDcsMTM3LDEyNCwzMiwzLDY2LDEsMTM3LDEyNCwzMiwzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDQsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsMiw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw1LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDUsMzIsMiw2NiwxOTcsMjA3LDIxNywxNzgsMjQxLDIyOSwxODYsMjM0LDM5LDEyNCwxMSwzMiwxLDE3MywxMjQsMzIsMCwzMiwxLDY1LDMxLDExMywxNiw2LDExLDEzNCwyLDAsMzIsMSwzMiwyLDEwNiwzMywyLDMsNjQsMzIsMiwzMiwxLDY1LDgsMTA2LDc5LDQsNjQsMzIsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzIsMCwxMzMsNjYsMjcsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzMsMCwzMiwxLDY1LDgsMTA2LDMzLDEsMTIsMSwxMSwxMSwzMiwxLDY1LDQsMTA2LDMyLDIsNzcsNCw2NCwzMiwwLDMyLDEsNTMsMiwwLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDIzLDEzNyw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwyNDksMjQzLDIyMSwyNDEsMTUzLDI0NiwxNTMsMTcxLDIyLDEyNCwzMywwLDMyLDEsNjUsNCwxMDYsMzMsMSwxMSwzLDY0LDMyLDEsMzIsMiw3Myw0LDY0LDMyLDAsMzIsMSw0OSwwLDAsNjYsMTk3LDIwNywyMTcsMTc4LDI0MSwyMjksMTg2LDIzNCwzOSwxMjYsMTMzLDY2LDExLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDAsMzIsMSw2NSwxLDEwNiwzMywxLDEyLDEsMTEsMTEsMzIsMCwzMiwwLDY2LDMzLDEzNiwxMzMsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMzQsMCwzMiwwLDY2LDI5LDEzNiwxMzMsNjYsMjQ5LDI0MywyMjEsMjQxLDE1MywyNDYsMTUzLDE3MSwyMiwxMjYsMzQsMCwzMiwwLDY2LDMyLDEzNiwxMzMsMTEsNzcsMCwzMiwwLDY1LDgsMTA2LDMyLDEsNjYsMjE0LDIzNSwxMzAsMjM4LDIzNCwyNTMsMTM3LDI0NSwyMjQsMCwxMjQsNTUsMywwLDMyLDAsNjUsMTYsMTA2LDMyLDEsNjYsMTc3LDE2OSwxNzIsMTkzLDE3MywxODQsMjEyLDE2Niw2MSwxMjUsNTUsMywwLDMyLDAsNjUsMjQsMTA2LDMyLDEsNTUsMywwLDMyLDAsNjUsMzIsMTA2LDMyLDEsNjYsMjQ5LDIzNCwyMDgsMjA4LDIzMSwyMDEsMTYxLDIyOCwyMjUsMCwxMjQsNTUsMywwLDExLDI0NCw0LDIsMywxMjcsNCwxMjYsMzIsMSwzMiwyLDEwNiwzMyw1LDMyLDAsNjUsNDAsMTA2LDMzLDQsMzIsMCw2NSwyMDAsMCwxMDYsNDAsMiwwLDMzLDMsMzIsMCwzMiwwLDQxLDMsMCwzMiwyLDE3MywxMjQsNTUsMywwLDMyLDIsMzIsMywxMDYsNjUsMzIsNzMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsMzIsMiwyNTIsMTAsMCwwLDMyLDAsNjUsMjAwLDAsMTA2LDMyLDIsMzIsMywxMDYsNTQsMiwwLDE1LDExLDMyLDMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsNjUsMzIsMzIsMywxMDcsMzQsMiwyNTIsMTAsMCwwLDMyLDAsNjUsOCwxMDYsMzQsMywzMiwzLDQxLDMsMCwzMiw0LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMTYsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw2NSw4LDEwNiw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsMTYsMTA2LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMzIsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw2NSwyNCwxMDYsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw1NSwzLDAsMzIsMCw2NSwyMDAsMCwxMDYsNjUsMCw1NCwyLDAsMzIsMSwzMiwyLDEwNiwzMywxLDExLDMyLDEsNjUsMzIsMTA2LDMyLDUsNzcsNCw2NCwzMiw1LDY1LDMyLDEwNywzMywyLDMyLDAsNjUsOCwxMDYsNDEsMywwLDMzLDYsMzIsMCw2NSwxNiwxMDYsNDEsMywwLDMzLDcsMzIsMCw2NSwyNCwxMDYsNDEsMywwLDMzLDgsMzIsMCw2NSwzMiwxMDYsNDEsMywwLDMzLDksMyw2NCwzMiw2LDMyLDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw2LDMyLDcsMzIsMSw2NSw4LDEwNiwzNCwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNywzMiw4LDMyLDEsNjUsOCwxMDYsMzQsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDgsMzIsOSwzMiwxLDY1LDgsMTA2LDM0LDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw5LDMyLDIsMzIsMSw2NSw4LDEwNiwzNCwxLDc5LDEzLDAsMTEsMzIsMCw2NSw4LDEwNiwzMiw2LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzMiw3LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzMiw4LDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzMiw5LDU1LDMsMCwxMSwzMiwxLDMyLDUsNzMsNCw2NCwzMiw0LDMyLDEsMzIsNSwzMiwxLDEwNywzNCwxLDI1MiwxMCwwLDAsMzIsMCw2NSwyMDAsMCwxMDYsMzIsMSw1NCwyLDAsMTEsMTEsMTg4LDIsMSw1LDEyNiwzMiwwLDY1LDI0LDEwNiw0MSwzLDAsMzMsMSwzMiwwLDQxLDMsMCwzNCwyLDY2LDMyLDkwLDQsMTI2LDMyLDAsNjUsOCwxMDYsNDEsMywwLDM0LDMsNjYsMSwxMzcsMzIsMCw2NSwxNiwxMDYsNDEsMywwLDM0LDQsNjYsNywxMzcsMTI0LDMyLDEsNjYsMTIsMTM3LDMyLDAsNjUsMzIsMTA2LDQxLDMsMCwzNCw1LDY2LDE4LDEzNywxMjQsMTI0LDMyLDMsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsNCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiwxLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDUsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsNSwzMiwxLDY2LDE5NywyMDcsMjE3LDE3OCwyNDEsMjI5LDE4NiwyMzQsMzksMTI0LDExLDMyLDIsMTI0LDMyLDAsNjUsNDAsMTA2LDMyLDIsNjYsMzEsMTMxLDE2NywxNiw2LDExXSk7ZnVuY3Rpb24gdGUodCl7cmV0dXJuISghZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwiIj09PXQpfWZ1bmN0aW9uIGVlKHQpe2xldCBlPSExO2lmKHRlKHQpKWU9IWlzTmFOKE51bWJlcih0KSk7ZWxzZSBpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2lmKGZ1bmN0aW9uKHQpe3JldHVybiB0IT10fSh0KSlyZXR1cm4hMTtlPSEwfXJldHVybiBlfXZhciByZT0vXHMvO3ZhciBuZT0vXlxzKy87ZnVuY3Rpb24gb2UodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJnJlLnRlc3QodC5jaGFyQXQoZSkpOyk7cmV0dXJuIGV9KHQpKzEpLnJlcGxhY2UobmUsIiIpOnR9dmFyIGllPU5hTix1ZT0vXlstK10weFswLTlhLWZdKyQvaSxhZT0vXjBiWzAxXSskL2ksY2U9L14wb1swLTddKyQvaSxmZT1wYXJzZUludDt2YXIgc2U9MS8wLGxlPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBwZSh0KXtyZXR1cm4gdD8odD1mdW5jdGlvbih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoenQodCkpcmV0dXJuIGllO2lmKHcodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PXcoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PW9lKHQpO3ZhciByPWFlLnRlc3QodCk7cmV0dXJuIHJ8fGNlLnRlc3QodCk/ZmUodC5zbGljZSgyKSxyPzI6OCk6dWUudGVzdCh0KT9pZTordH0odCkpPT09c2V8fHQ9PT0tc2U/KHQ8MD8tMToxKSpsZTp0PT10P3Q6MDowPT09dD90OjB9YXN5bmMgZnVuY3Rpb24gaGUodCxlPXt9KXtpZihyPXQsIltvYmplY3QgQmxvYl0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpJiYhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSlyZXR1cm4gY29uc29sZS5sb2coImlucCIsdCksUHJvbWlzZS5yZWplY3QoImlucCBpcyBub3QgYSBCbG9iIG9yIEZpbGUiKTt2YXIgcjtsZXQgbj1YdChlLCJjaHVua1NpemUiKTtlZShuKXx8KG49NjcxMDg4NjQpLG49ZnVuY3Rpb24odCl7cmV0dXJuIGVlKHQpP3BlKHQpOjB9KG4pO2xldHtjcmVhdGU2NDpvfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdHtleHBvcnRzOnttZW06ZSx4eGgzMjpyLHh4aDY0Om4saW5pdDMyOm8sdXBkYXRlMzI6aSxkaWdlc3QzMjp1LGluaXQ2NDphLHVwZGF0ZTY0OmMsZGlnZXN0NjQ6Zn19PXQ7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO2Z1bmN0aW9uIGwodCxyKXtpZihlLmJ1ZmZlci5ieXRlTGVuZ3RoPHQrcil7Y29uc3Qgbj1NYXRoLmNlaWwoKHQrci1lLmJ1ZmZlci5ieXRlTGVuZ3RoKS82NTUzNik7ZS5ncm93KG4pLHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1mdW5jdGlvbiBwKHQsZSxyLG4sbyxpKXtsKHQpO2NvbnN0IHU9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIHMuc2V0KHUpLHIoMCxlKSx1LnNldChzLnN1YmFycmF5KDAsdCkpLHt1cGRhdGUoZSl7bGV0IHI7cmV0dXJuIHMuc2V0KHUpLCJzdHJpbmciPT10eXBlb2YgZT8obCgzKmUubGVuZ3RoLHQpLHI9Yi5lbmNvZGVJbnRvKGUscy5zdWJhcnJheSh0KSkud3JpdHRlbik6KGwoZS5ieXRlTGVuZ3RoLHQpLHMuc2V0KGUsdCkscj1lLmJ5dGVMZW5ndGgpLG4oMCx0LHIpLHUuc2V0KHMuc3ViYXJyYXkoMCx0KSksdGhpc30sZGlnZXN0OigpPT4ocy5zZXQodSksaShvKDApKSl9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ+Pj4wfWNvbnN0IHk9Mm4qKjY0bi0xbjtmdW5jdGlvbiB2KHQpe3JldHVybiB0Jnl9Y29uc3QgYj1uZXcgVGV4dEVuY29kZXIsZD0wLGc9MG47ZnVuY3Rpb24gXyh0LGU9ZCl7cmV0dXJuIGwoMyp0Lmxlbmd0aCwwKSxoKHIoMCxiLmVuY29kZUludG8odCxzKS53cml0dGVuLGUpKX1mdW5jdGlvbiBqKHQsZT1nKXtyZXR1cm4gbCgzKnQubGVuZ3RoLDApLHYobigwLGIuZW5jb2RlSW50byh0LHMpLndyaXR0ZW4sZSkpfXJldHVybntoMzI6XyxoMzJUb1N0cmluZzoodCxlPWQpPT5fKHQsZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSxoMzJSYXc6KHQsZT1kKT0+KGwodC5ieXRlTGVuZ3RoLDApLHMuc2V0KHQpLGgocigwLHQuYnl0ZUxlbmd0aCxlKSkpLGNyZWF0ZTMyOih0PWQpPT5wKDQ4LHQsbyxpLHUsaCksaDY0OmosaDY0VG9TdHJpbmc6KHQsZT1nKT0+aih0LGUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpLGg2NFJhdzoodCxlPWcpPT4obCh0LmJ5dGVMZW5ndGgsMCkscy5zZXQodCksdihuKDAsdC5ieXRlTGVuZ3RoLGUpKSksY3JlYXRlNjQ6KHQ9Zyk9PnAoODgsdCxhLGMsZix2KX19KChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShadCkpLmluc3RhbmNlKX0oKSxpPW8oKSx1PTA7Zm9yKDt1PHQuc2l6ZTspe2xldCBlPXQuc2xpY2UodSx1K24pLHI9YXdhaXQgZS5hcnJheUJ1ZmZlcigpO2kudXBkYXRlKG5ldyBVaW50OEFycmF5KHIpKSx1Kz1ufXJldHVybiBpLmRpZ2VzdCgpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpfWxldCBjaGVja1NsaWNlc0hhc2g9YXN5bmMocixuLG8pPT57aWYoMD09PW10KHIpKXtyZXR1cm57ZXJyb3I6Im5vIGZpbGVTbGljZUhhc2hzIn19bGV0IGk9W107Zm9yKGxldCB1PTA7dTxyLmxlbmd0aDt1Kyspe2xldCBhPXJbdV0sYz10LnJlc29sdmUobyxgJHtufV8ke2EuaX1gKSxmPSIiO2F3YWl0IGhlKG5ldyBCbG9iKFtlLnJlYWRGaWxlU3luYyhjKV0pKS50aGVuKCh0PT57Zj10fSkpLmNhdGNoKCh0PT57Y29uc29sZS5sb2coImZzSXNGaWxlKF9wYXRoRmlsZSkiLGMsWXQoYyx7ZnM6ZX0pKSxjb25zb2xlLmxvZyh0KX0pKSxhLmg9PT1mJiZpLnB1c2goYS5pKX1yZXR1cm57c2xrczppfX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjaGVja1NsaWNlc0hhc2gKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gY2hlY2tTbGljZXNIYXNoCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgCiAgICAgICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgICAgIG1vZGU6ICdlbWl0JywKICAgICAgICAgICAgICAgIGV2TmFtZTogJ2Vycm9yJywKICAgICAgICAgICAgICAgIG1zZzogZXJyLAogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICAgICAgfQogICAgICAgICAgICAKICAgIH0KCiAgICAvL2NoZWNrCiAgICBpZihtb2RlID09PSAnY2FsbCcpewogICAgICAgIGxldCBzdGF0ZSA9ICcnCiAgICAgICAgbGV0IG1zZyA9IG51bGwKCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy9mdW4KICAgICAgICAgICAgbGV0IGZ1biA9IGluc3RhbmNlW2RhdGEuZnVuXQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CgogICAgICAgICAgICAvL2V4ZWMKICAgICAgICAgICAgYXdhaXQgZnVuKC4uLmlucHV0KQogICAgICAgICAgICAgICAgLnRoZW4oKHN1YykgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdzdWNjZXNzJwogICAgICAgICAgICAgICAgICAgIG1zZz1zdWMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdlcnJvcicKICAgICAgICAgICAgICAgICAgICBtc2c9ZXJyCiAgICAgICAgICAgICAgICB9KQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAgICAgc3RhdGUgPSAnZXJyb3InCiAgICAgICAgICAgIG1zZyA9IGVycgogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgbW9kZTogJ3JldHVybicsCiAgICAgICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgICAgICBmdW46IGRhdGEuZnVuLAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgbXNnLAogICAgICAgIH0KICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgfQoKfQoKZnVuY3Rpb24gcmVjdk1lc3NhZ2UoZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciByZWN2OicsIGRhdGEpCgogICAgLy9kYXRhUmVjdgogICAgbGV0IGRhdGFSZWN2ID0gZGF0YQoKICAgIC8vcnVuCiAgICBydW4oZGF0YVJlY3YpCgp9CgoKICAgICAgICBwYXJlbnRQb3J0Lm9uKCdtZXNzYWdlJywgcmVjdk1lc3NhZ2UpCiAgICAgICAgCgp0cnl7CiAgICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuaGFuZGxlZFJlamVjdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCBlcnIpCiAgICB9KQp9CmNhdGNoKGVycil7fQoK",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){o(e)}}(t);if(!i)return o("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function o(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",o),i.on("exit",e=>{1!==e&&o("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):o("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(ui);var di=On(ui.exports);function pi(s={}){let o=Me(s,"port");Sn(o)||(o=8080);let a=Me(s,"useInert");yr(a)||(a=!0);let l=Me(s,"pathStaticFiles");qt(l)||(l="dist");let c=Me(s,"pathUploadTemp");qt(c)||(c="./uploadTemp"),sr(c)||hr(c);let u=Me(s,"apiName");qt(u)||(u="api");let d=Me(s,"tokenType");qt(d)||(d="Bearer");let p=Me(s,"sizeSlice");Sn(p)||(p=1048576);let w=Me(s,"verifyConn");Kn(w)||(w=()=>!0);let M=Me(s,"corsOrigins",[]);ln(M)||(M=["*"]);let y=Me(s,"delayForSlice","");Rn(y)||(y=100),y=Tn(y);let m=null;m=Me(s,"serverHapi")?s.serverHapi:n.server({port:o,routes:{timeout:{server:!1,socket:!1},cors:{origin:M,credentials:!1}}});let f=Ir(),I=(e,...t)=>{setTimeout(()=>{f.emit(e,...t)},1)};async function g(e){let t=kn(),n=kn();return n.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),I("upload",e,n),t}async function h(e){let t=kn(),n=kn();return n.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),I("download",e,n),t}function L(e,t,n={}){let r=new i.Readable;r._read=()=>{},r.push(t),r.push(null);let s=Me(n,"returnType",""),o=Me(n,"returnMsg",""),a=e.response(r).header("Cache-Control","no-cache, no-store, must-revalidate").header("Content-Type","application/octet-stream").header("Content-Length",r.readableLength);return qt(s)&&a.header("Return-Type",s),qt(o)&&a.header("Return-Msg",o),a}function b(e,t){return qt(t)||(console.log("msg",t),console.log("msg is not an effective string, set msg=''"),t=""),L(e,Xr({error:t}),{returnType:"error",returnMsg:t})}let D={path:`/${u}/main`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=Me(e,"headers");n=tn(n)?n:"";let r=Me(e,"query");r=tn(r)?r:"";let s=Me(n,"authorization","");s=qt(s)?s:"";{let i=!1;try{i=w({apiType:"main",authorization:s,query:r,headers:n,req:e}),Wn(i)&&(i=await i.catch(e=>{console.log(e),i=!1}))}catch(e){console.log(e),i=!1}if(!0!==i)return b(t,"permission denied")}I("handler",{api:"apiMain",headers:n,query:r});let o=await(()=>{let t=kn(),n=[],r=new i.Writable({write(e,t,r){n.push(e),r()}});return r.on("finish",()=>{}),e.payload.pipe(r),e.payload.on("end",()=>{let e=Buffer.concat(n);n=[],t.resolve(e)}),e.payload.on("close",()=>{}),e.payload.on("error",e=>{console.log("apiMain req.payload err",e),I("error",`receive payload error: ${e.message}`),t.reject(`receive payload error: ${e.message}`)}),t})(),a=Gr(new Uint8Array(o)),l={},c="",u="";return await async function(e){let t=kn(),n=kn();n.then(n=>{e.output=n,delete e.input,t.resolve(e)}).catch(e=>{t.reject(e)});{let t=Me(e,"func",""),r=Me(e,"input",null);I("execute",t,r,n)}return t}(a).then(e=>{l.success=e,c="success",u="need to parse"}).catch(e=>{l.error=e,c="error",u="need to parse"}),L(t,Xr(l),{returnType:c,returnMsg:u})}},C={path:`/${u}/ulctr`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=Me(e,"headers");n=tn(n)?n:"";let r=Me(e,"query");r=tn(r)?r:"";let i=Me(n,"authorization","");i=qt(i)?i:"";{let e=w({apiType:"upload-controller",authorization:i,headers:n,query:r});if(Wn(e)&&(e=await e),!0!==e)return b(t,"permission denied")}I("handler",{api:"apiUploadCheck",headers:n,query:r});let s=Me(e,"payload.mode","");if("check-total-hash"!==s&&"check-slices-hash"!==s&&"merge-slices-push"!==s&&"merge-slices-get"!==s)return b(t,`invalid mode[${s}] in payload`);let o=Me(e,"payload.fileHash","");if(!qt(o))return b(t,"invalid fileHash in payload");let a={},l="",u="";return await(async()=>{let t=null;if("check-total-hash"===s){let n=Me(e,"payload.filename",""),r=Me(e,"payload.fileSize","");if(t=await ci(r,p,o,c),t.bAllHash){let e={from:"check-total-hash",filename:n,path:t.path},r=await g(e);t={...t,msg:r}}}else if("check-slices-hash"===s){let n=Me(e,"payload.fileSliceHashs",[]);t=await di(n,o,c)}else if("merge-slices-push"===s){let n=Me(e,"payload.chunkTotal","");t={queueId:oi(o,n,c)}}else if("merge-slices-get"===s){let n=Me(e,"payload.filename",""),r=Me(e,"payload.queueId",""),i=ai(r,c);if(t={state:i.state,msg:i.msg,queueId:r,filename:n,path:i.path},"success"===i.state){let e={from:"merge-slices-get",filename:n,path:i.path},r=await g(e);t={...t,msg:r}}}return t})().then(e=>{a.success=e,l="success",u="need to parse"}).catch(e=>{a.error=e,l="error",u="need to parse"}),L(t,Xr(a),{returnType:l,returnMsg:u})}},N={path:`/${u}/slc`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(n,r){let i=Me(n,"headers");i=tn(i)?i:"";let s=Me(n,"query");s=tn(s)?s:"";let o=Me(i,"authorization","");o=qt(o)?o:"";{let e=w({apiType:"upload-slice",authorization:o,headers:i,query:s});if(Wn(e)&&(e=await e),!0!==e)return b(r,"permission denied")}I("handler",{api:"apiUploadSlice",headers:i,query:s});let a=Me(i,"chunk-index",""),l=Me(i,"chunk-total",""),u=Me(i,"package-id","");if(!Rn(a))return b(r,"invalid chunkIndex in headers");if(a=Tn(a),!Rn(l))return b(r,"invalid chunkTotal in headers");if(l=Tn(l),!qt(u))return b(r,"invalid packageId in headers");let d=e.resolve(c,`${u}_${a}`),p=t.createWriteStream(d),M={},m="",f="";return await(()=>{let e=kn();return n.payload.pipe(p),n.payload.on("end",()=>{setTimeout(()=>{e.resolve(`chunk[${a+1}/${l}] of packageId[${u}] done`)},y)}),n.payload.on("error",t=>{console.log(`apiUploadSlice req.payload chunk[${a+1}/${l}] of packageId[${u}] err`,t),I("error",`receive chunk[${a+1}/${l}] of packageId[${u}] error: ${t.message}`),e.reject(`receive chunk[${a+1}/${l}] of packageId[${u}] error: ${t.message}`)}),e})().then(e=>{M.success=e,m="success",f="need to parse"}).catch(e=>{M.error=e,m="error",f="need to parse",I("error",e)}),L(r,Xr(M),{returnType:m,returnMsg:f})}},x={path:`/${u}/dwgfn`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=Me(e,"headers");n=tn(n)?n:"";let r=Me(e,"query");r=tn(r)?r:"";let i=Me(n,"authorization","");i=qt(i)?i:"";{let e=w({apiType:"download-get-filename",authorization:i,headers:n,query:r});if(Wn(e)&&(e=await e),!0!==e)return b(t,"permission denied")}I("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let s=Me(e,"payload.fileId","");if(!qt(s))return b(t,"invalid fileId in payload");let o={fileId:s,token:qt(i)?i.slice(br(d).length+1):""},a={},l="",c="";await h(o).then(e=>{a.success=e,l="success",c="need to parse"}).catch(e=>{a.error=e,l="error",c="need to parse"});let u=Me(a,"success"),p=Me(u,"streamRead");try{p.destroy()}catch(e){}let M=Me(u,"filename");return qt(M)?(a={success:{filename:M}},L(t,Xr(a),{returnType:l,returnMsg:c})):b(t,"invalid filename")}},T={path:`/${u}/dwgf`,method:"GET",options:{timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=Me(e,"headers");n=tn(n)?n:"";let r=Me(e,"query");r=tn(r)?r:"";let i=Me(r,"token","");i=qt(i)?i:"";let s="";qt(i)&&(s=`${d} ${i}`);{let e=w({apiType:"download-get-file",authorization:s,headers:n,query:r});if(Wn(e)&&(e=await e),!0!==e)return b(t,"permission denied")}I("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let o=Me(r,"fileId","");if(o=qt(o)?o:"",!qt(o))return b(t,"invalid fileId in query");let a={fileId:o,token:i},l={};if(await h(a).then(e=>{l.success=e}).catch(e=>{l.error=e}),Cr(l,"error"))return b(t,"can not get file from fileId");let c=Me(l,"success"),u=Me(c,"streamRead"),p=Me(c,"fileSize");if(!Lr(p)){try{u.destroy()}catch(e){}return b(t,"invalid fileSize")}let M=Me(c,"fileType");if(!qt(M)){try{u.destroy()}catch(e){}return b(t,"invalid fileType")}return M=br(M),t.response(u).type(M).header("Content-Length",p)}},S={path:`/${u}/dw`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=Me(e,"headers");n=tn(n)?n:"";let r=Me(e,"query");r=tn(r)?r:"";let i=Me(n,"authorization","");i=qt(i)?i:"";{let e=w({apiType:"download",authorization:i,headers:n,query:r});if(Wn(e)&&(e=await e),!0!==e)return b(t,"permission denied")}I("handler",{api:"apiDownload",headers:n,query:r});let s=Me(e,"payload.fileId","");if(!qt(s))return b(t,"invalid fileId in payload");let o={fileId:s,token:qt(i)?i.slice(br(d).length+1):""},a={};if(await h(o).then(e=>{a.success=e}).catch(e=>{a.error=e}),Cr(a,"error"))return b(t,"can not get file from fileId");let l=Me(a,"success"),c=Me(l,"streamRead"),u=Me(l,"filename");if(!qt(u)){try{c.destroy()}catch(e){}return b(t,"invalid filename")}u=Dr(u);let p=Me(l,"fileSize");if(!Lr(p)){try{c.destroy()}catch(e){}return b(t,"invalid fileSize")}let M=Me(l,"fileType");if(!qt(M)){try{c.destroy()}catch(e){}return b(t,"invalid fileType")}return M=br(M),t.response(c).type(M).header("Content-Disposition",`attachment; filename="${u}"`).header("Content-Length",p)}};Me(s,"serverHapi")?m.route([D,C,N,x,T,S]):async function(){a&&await m.register(r);let e=[];if(a){let t={method:"GET",path:"/{file*}",handler:{directory:{path:`${l}/`}}};e=[...e,t]}e=[...e,D,C,N,x,T,S],m.route(e),await m.start(),console.log(`Server running at: ${m.info.uri}`)}();return f.stop=()=>{m.stop()},f}var wi=function(){return p.Date.now()},Mi=Math.max,yi=Math.min;function mi(e,t,n){var r,i,s,o,a,l,c=0,u=!1,d=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function w(t){var n=r,s=i;return r=i=void 0,c=t,o=e.apply(s,n)}function M(e){var n=e-l;return void 0===l||n>=t||n<0||d&&e-c>=s}function y(){var e=wi();if(M(e))return m(e);a=setTimeout(y,function(e){var n=t-(e-l);return d?yi(n,s-(e-c)):n}(e))}function m(e){return a=void 0,p&&r?w(e):(r=i=void 0,o)}function f(){var e=wi(),n=M(e);if(r=arguments,i=this,l=e,n){if(void 0===a)return function(e){return c=e,a=setTimeout(y,t),u?w(e):o}(l);if(d)return clearTimeout(a),a=setTimeout(y,t),w(l)}return void 0===a&&(a=setTimeout(y,t)),o}return t=mn(t)||0,x(n)&&(u=!!n.leading,s=(d="maxWait"in n)?Mi(mn(n.maxWait)||0,t):s,p="trailing"in n?!!n.trailing:p),f.cancel=function(){void 0!==a&&clearTimeout(a),c=0,r=l=i=a=void 0},f.flush=function(){return void 0===a?o:m(wi())},f}var fi=function(){try{var e=R(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),Ii=fi;function gi(e,t,n){"__proto__"==t&&Ii?Ii(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function hi(e,t,n){(void 0!==n&&!P(e[t],n)||void 0===n&&!(t in e))&&gi(e,t,n)}var Li="object"==typeof exports&&exports&&!exports.nodeType&&exports,bi=Li&&"object"==typeof module&&module&&!module.nodeType&&module,Di=bi&&bi.exports===Li?p.Buffer:void 0,Ci=Di?Di.allocUnsafe:void 0;function Ni(e,t){if(t)return e.slice();var n=e.length,r=Ci?Ci(n):new e.constructor(n);return e.copy(r),r}function xi(e){var t=new e.constructor(e.byteLength);return new st(t).set(new st(e)),t}function Ti(e,t){var n=t?xi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Si(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}var Zi=Object.create,Ai=function(){function e(){}return function(t){if(!x(t))return{};if(Zi)return Zi(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),Xi=Ai;function vi(e){return"function"!=typeof e.constructor||Ve(e)?{}:Xi(Zn(e))}function Ei(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var ji=Object.prototype.hasOwnProperty;function Yi(e,t,n){var r=e[t];ji.call(e,t)&&P(r,n)&&(void 0!==n||t in e)||gi(e,t,n)}function Gi(e,t,n,r){var i=!n;n||(n={});for(var s=-1,o=t.length;++s<o;){var a=t[s],l=r?r(n[a],e[a],a,n,e):void 0;void 0===l&&(l=e[a]),i?gi(n,a,l):Yi(n,a,l)}return n}var zi=Object.prototype.hasOwnProperty;function Ki(e){if(!x(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=Ve(e),n=[];for(var r in e)("constructor"!=r||!t&&zi.call(e,r))&&n.push(r);return n}function Wi(e){return Oe(e)?Re(e,!0):Ki(e)}function Ri(e,t,n,r,i,s,o){var a=Ei(e,n),l=Ei(t,n),u=o.get(l);if(u)hi(e,n,u);else{var d,p=s?s(a,l,n+"",e,t,o):void 0,w=void 0===p;if(w){var M=c(l),y=!M&&Te(l),m=!M&&!y&&Ke(l);p=l,M||y||m?c(a)?p=a:L(d=a)&&Oe(d)?p=Si(a):y?(w=!1,p=Ni(l,!0)):m?(w=!1,p=Ti(l,!0)):p=[]:Yn(l)||De(l)?(p=a,De(a)?p=function(e){return Gi(e,Wi(e))}(a):x(a)&&!T(a)||(p=vi(l))):w=!1}w&&(o.set(l,p),i(p,l,r,s,o),o.delete(l)),hi(e,n,p)}}function Ui(e,t,n,r,i){e!==t&&fe(t,function(s,o){if(i||(i=new et),x(s))Ri(e,t,o,n,Ui,r,i);else{var a=r?r(Ei(e,o),s,o+"",e,t,i):void 0;void 0===a&&(a=s),hi(e,o,a)}},Wi)}var Vi=Math.max;var Hi=Ii?function(e,t){return Ii(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:qe,ki=Hi,Pi=Date.now;var Qi=function(e){var t=0,n=0;return function(){var r=Pi(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(ki),Oi=Qi;function Ji(e,t){return Oi(function(e,t,n){return t=Vi(void 0===t?e.length-1:t,0),function(){for(var r=arguments,i=-1,s=Vi(r.length-t,0),o=Array(s);++i<s;)o[i]=r[t+i];i=-1;for(var a=Array(t+1);++i<t;)a[i]=r[i];return a[t]=n(o),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,a)}}(e,t,qe),e+"")}var Bi,Fi=(Bi=function(e,t,n){Ui(e,t,n)},Ji(function(e,t){var n=-1,r=t.length,i=r>1?t[r-1]:void 0,s=r>2?t[2]:void 0;for(i=Bi.length>3&&"function"==typeof i?(r--,i):void 0,s&&function(e,t,n){if(!x(n))return!1;var r=typeof t;return!!("number"==r?Oe(n)&&Ze(t,n.length):"string"==r&&t in n)&&P(n[t],e)}(t[0],t[1],s)&&(i=r<3?void 0:i,r=1),e=Object(e);++n<r;){var o=t[n];o&&Bi(e,o,n,i)}return e}));function _i(e,n={}){let r={};if(tn(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=Ir()),!Cr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let i=Me(n,"fpTableTags","");qt(i)||(i="./tableTags.json");let s=Me(n,"genTag");Kn(s)||(s=()=>dr()+"|"+Mr(6));let o=(t,...n)=>{setTimeout(()=>{e.emit(t,...n)},1)};function a(){let e={};try{if(t.existsSync(i)){let n=$t(t.readFileSync(i,"utf8"));tn(n)&&(e=n)}}catch(e){o("error",{msg:"readTableTags catch",err:e})}return e}function l(){try{let e=function(e,t=!1){if(rn(e))return"";let n="";try{n=t?JSON.stringify(e,null,2):JSON.stringify(e)}catch(e){n=""}return n}(r);t.writeFileSync(i,e,"utf8")}catch(e){o("error",{msg:"writeTableTags catch",err:e})}}let c=mi(()=>{l(),o("changeTableTags",r)},200);return e.readTableTags=a,e.writeTableTags=l,e.initTableTags=function(e={},t="useInputFirst"){if("useInputOnly"===t)r=e;else if("useStorageOnly"===t)r=a();else if("useInputFirst"===t)r=Fi(a(),e);else{if("useStorageFirst"!==t)throw new Error(`invalid mode[${t}]`);r=Fi(e,a())}l()},e.setTableTags=function(e={}){r=Fi(r,e),l()},e.getTableTags=function(){return r},e.updateTableTag=function(e){r[e]=s(),c()},e}var qi=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)ut(t,mt(e)),e=Zn(e);return t}:wt,$i=qi;function es(e){return dt(e,Wi,$i)}var ts=Object.prototype.hasOwnProperty;var ns=/\w*$/;var rs=w?w.prototype:void 0,is=rs?rs.valueOf:void 0;function ss(e,t,n){var r,i=e.constructor;switch(t){case"[object ArrayBuffer]":return xi(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var n=t?xi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Ti(e,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return function(e){var t=new e.constructor(e.source,ns.exec(e));return t.lastIndex=e.lastIndex,t}(e);case"[object Symbol]":return r=e,is?Object(is.call(r)):{}}}var os=Ge&&Ge.isMap,as=os?ve(os):function(e){return L(e)&&"[object Map]"==jt(e)};var ls=Ge&&Ge.isSet,cs=ls?ve(ls):function(e){return L(e)&&"[object Set]"==jt(e)},us="[object Arguments]",ds="[object Function]",ps="[object Object]",ws={};function Ms(e,t,n,r,i,s){var o,a=1&t,l=2&t,u=4&t;if(n&&(o=i?n(e,r,i,s):n(e)),void 0!==o)return o;if(!x(e))return e;var d=c(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&ts.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!a)return Si(e,o)}else{var p=jt(e),w=p==ds||"[object GeneratorFunction]"==p;if(Te(e))return Ni(e,a);if(p==ps||p==us||w&&!i){if(o=l||w?{}:vi(e),!a)return l?function(e,t){return Gi(e,$i(e),t)}(e,function(e,t){return e&&Gi(t,Wi(t),e)}(o,e)):function(e,t){return Gi(e,mt(e),t)}(e,function(e,t){return e&&Gi(t,Je(t),e)}(o,e))}else{if(!ws[p])return i?e:{};o=ss(e,p,a)}}s||(s=new et);var M=s.get(e);if(M)return M;s.set(e,o),cs(e)?e.forEach(function(r){o.add(Ms(r,t,n,r,e,s))}):as(e)&&e.forEach(function(r,i){o.set(i,Ms(r,t,n,i,e,s))});var y=d?void 0:(u?l?es:ft:l?Wi:Je)(e);return ye(y||e,function(r,i){y&&(r=e[i=r]),Yi(o,i,Ms(r,t,n,i,e,s))}),o}ws[us]=ws["[object Array]"]=ws["[object ArrayBuffer]"]=ws["[object DataView]"]=ws["[object Boolean]"]=ws["[object Date]"]=ws["[object Float32Array]"]=ws["[object Float64Array]"]=ws["[object Int8Array]"]=ws["[object Int16Array]"]=ws["[object Int32Array]"]=ws["[object Map]"]=ws["[object Number]"]=ws[ps]=ws["[object RegExp]"]=ws["[object Set]"]=ws["[object String]"]=ws["[object Symbol]"]=ws["[object Uint8Array]"]=ws["[object Uint8ClampedArray]"]=ws["[object Uint16Array]"]=ws["[object Uint32Array]"]=!0,ws["[object Error]"]=ws[ds]=ws["[object WeakMap]"]=!1;function ys(e){return Ms(e,5)}var ms=Qt("length"),fs="\\ud800-\\udfff",Is="["+fs+"]",gs="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",hs="\\ud83c[\\udffb-\\udfff]",Ls="[^"+fs+"]",bs="(?:\\ud83c[\\udde6-\\uddff]){2}",Ds="[\\ud800-\\udbff][\\udc00-\\udfff]",Cs="(?:"+gs+"|"+hs+")"+"?",Ns="[\\ufe0e\\ufe0f]?",xs=Ns+Cs+("(?:\\u200d(?:"+[Ls,bs,Ds].join("|")+")"+Ns+Cs+")*"),Ts="(?:"+[Ls+gs+"?",gs,bs,Ds,Is].join("|")+")",Ss=RegExp(hs+"(?="+hs+")|"+Ts+xs,"g");function Zs(e){return Ur(e)?function(e){for(var t=Ss.lastIndex=0;Ss.test(e);)++t;return t}(e):ms(e)}function As(e){if(null==e)return 0;if(Oe(e))return"string"==typeof(t=e)||!c(t)&&L(t)&&"[object String]"==h(t)?Zs(e):e.length;var t,n=jt(e);return"[object Map]"==n||"[object Set]"==n?e.size:Qe(e).length}function Xs(e={}){let t=Ir(),n={},r=null,i=Me(e,"timeAlive");Sn(i)||(i=1e4),i=Tn(i);let s=Me(e,"timeDetect");return Sn(s)||(s=50),s=Tn(s),t.trigger=function(e,o){qt(e)?(Cr(n,e)||setTimeout(()=>{t.emit("message",{eventName:"enter",key:e,data:o,now:As(n)})},1),n[e]={data:o,time:Date.now()},null===r&&(r=setInterval(()=>{$e(n,(e,r)=>{if(Date.now()-e.time>i){let e=ys(n[r]);delete n[r],t.emit("message",{eventName:"leave",key:r,data:e.data,now:As(n)})}}),tn(n)||(clearInterval(r),r=null)},s))):console.log("trigger need key")},t.get=function(){let e=[];return $e(n,(t,n)=>{e.push({key:n,data:t.data})}),e=ys(e),e},t}function vs(e,t={}){let n={};if(tn(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=Ir()),!Cr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let r=(t,...n)=>{setTimeout(()=>{e.emit(t,...n)},1)},i=Xs(),s=setInterval(()=>{let e=Ft(i.get(),"key"),t={};$e(e,e=>{t[e]=Me(n,e,[])}),n=t},1e3);i.on("message",function({eventName:e,key:t,data:n,now:i}){"enter"===e?r("clientEnter",t,n):"leave"===e&&r("clientLeave",t,n),r("clientChange",i)}),e.on("execute",function(e,t,s){if("[sys:polling]"===e)try{let e=Me(t,"clientId",""),r=Me(n,e,[]);r=ys(r),n[e]=[],i.trigger(e,t),s.resolve(r)}catch(e){r("error",e),s.reject("[sys:polling] error")}});return e.getClients=i.get,e.getMessages=()=>ys(n),e.broadcast=e=>{if(!tn(n))return;let t={};$e(n,(n,r)=>{n.push({mode:"broadcast",data:e}),t[r]=n}),n=t},e.clearBroadcast=()=>{clearInterval(s)},e}let Es=(e,t)=>{let n={};return $e(e,e=>{let r=e,i=Me(t,e,"");qt(i)&&(n[r]=i)}),n};function js(e,t,n,r={}){if(!tn(e))throw new Error("invalid instWConverServer");if(0===As(t))return e;if(!tn(n))return e;let i=Me(r,"genTag");Kn(i)||(i=()=>dr()+"|"+Mr(6));let s={};return $e(t,e=>{s[e]=i()}),e.initTableTags(s,"useInputOnly"),$e(t,t=>{let r=n[t];if(!r)throw new Error(`invalid kpOrm[${t}]`);try{r.on("change",()=>{e.updateTableTag(t)})}catch(e){throw new Error(`kpOrm[${t}] can not listen to change events`)}}),e.on("changeTableTags",n=>{e.broadcast({mode:"syncKpTable",data:Es(t,n)})}),e}function Ys(e,t,n,r){for(var i=n-1,s=e.length;++i<s;)if(r(e[i],t))return i;return-1}var Gs=Array.prototype.splice;function zs(e,t){return e&&e.length&&t&&t.length?function(e,t,n,r){var i=r?Ys:Wr,s=-1,o=t.length,a=e;for(e===t&&(t=Si(t)),n&&(a=oe(e,ve(n)));++s<o;)for(var l=0,c=t[s],u=n?n(c):c;(l=i(a,u,l,r))>-1;)a!==e&&Gs.call(a,l,1),Gs.call(e,l,1);return e}(e,t):e}function Ks(e,t={}){if(!tn(e))throw new Error("invalid instWConverServer");let n=Me(t,"getUserIdByToken",null);Kn(n)||(n=async()=>"");let r=Me(t,"useDbOrm",null);yr(r)||(r=!1);let i=null;if(r&&(i=Me(t,"operOrm",null),!Kn(i)))throw new Error("invalid opt.operOrm when useDbOrm=true");let s=[];if(r&&(s=Me(t,"tableNames",null),!nn(s)))throw new Error("invalid opt.tableNames when useDbOrm=true");let o=[];r&&(o=Me(t,"methods",null),nn(o)||(o=["select","insert","save","del"]));let a=Me(t,"kpFunExt",null);let l={};async function c(e,t,r){if(!qt(e))return r.resolve({state:"error",msg:"invalid func"}),r;let i="";if(!Cr(t,"__sysToken__"))return r.resolve({state:"error",msg:"invalid token"}),r;if(i=br(t.__sysToken__),!Cr(t,"__sysInputArgs__"))return r.resolve({state:"error",msg:"invalid input"}),r;t=t.__sysInputArgs__;let s="";if(s=n(i),Wn(s)&&(s=await s),qt(s)||(s=""),"[sys:getFuncList]"===e){let e=Je(l);e=function(e,t){if(!ln(e))return[];if((en(t)||hn(t)||_t(t)||yr(t))&&(t=[t]),!ln(t))return e;let n=ys(e);return zs(n,t),n}(e,"[sys:getTableTags]");let t={state:"success",msg:e};return r.resolve(t),r}if(!Cr(l,e))return r.resolve({state:"error",msg:`invalid func[${e}]`}),r;let o=l[e];try{let e=await Pn(o)(s,...t);r.resolve(e)}catch(t){r.resolve({state:"error",msg:`call func[${e}] has an error: ${t.message}`})}return r}return r&&(s=ys(s),l=function(e,t,n){let r={};return $e(e,e=>{$e(t,t=>{r[`${e}.${t}`]=async function(r,i){return await n(r,e,t,i)}})}),r}(s,o,i)),tn(a)&&$e(a,(e,t)=>{l[t]=e}),e.on("execute",async function(t,n,r){await c(t,n,r).catch(n=>{e.emit("error",n),r.resolve({state:"error",msg:`execFun func[${t}] has an error: ${n.message}`})})}),e}function Ws(e,t={}){if(tn(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=Ir()),!Cr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let n=Me(t,"fpTableTags",null);qt(n)||(n="./tableTags.json");let r=Me(t,"genTag");Kn(r)||(r=()=>dr()+"|"+Mr(6)),e=new vs(e=new _i(e,{fpTableTags:n,genTag:r}));let i=Me(t,"useDbOrm",null);yr(i)||(i=!0);let s=Me(t,"kpOrm",null),o=Me(t,"operOrm",null),a=Me(t,"tableNamesExec",null),l=Me(t,"methodsExec",null),c=Me(t,"tableNamesSync",null),u=Me(t,"getUserIdByToken",null),d=Me(t,"kpFunExt",null);if(tn(d)||(d={}),d={...d,"[sys:getTableTags]":()=>{let t=e.getTableTags();return{mode:"syncKpTable",data:Es(c,t)}}},e=new Ks(e,{getUserIdByToken:u,useDbOrm:i,operOrm:o,tableNames:a,methods:l,kpFunExt:d}),i){if(!en(s))return e.emit("error","invalid opt.kpOrm when useDbOrm=true"),e;e=new js(e,c,s,{genTag:r})}return e}function Rs(e={}){let t=Ir(),i=null,s=null,o=Me(e,"port");bn(o)||(o=8080);let a=Me(e,"corsOrigins",[]);ln(a)||(a=["http://localhost"]);let l=Me(e,"delayForSlice","");Rn(l)||(l=100),l=Tn(l);let c=Me(e,"useInert");yr(c)||(c=!0);let u=Me(e,"pathStaticFiles");qt(u)||(u="dist");let d=Me(e,"apis");ln(d)||(d=[]);let p=Me(e,"apiName");qt(p)||(p="api");let w=Me(e,"pathUploadTemp");qt(w)||(w="./uploadTemp"),sr(w)||hr(w);let M=Me(e,"tokenType");qt(M)||(M="Bearer");let y=Me(e,"sizeSlice");Sn(y)||(y=1048576);let m=Me(e,"verifyConn");Kn(m)||(m=()=>!0);let f=Me(e,"getUserIdByToken",null),I=Me(e,"useDbOrm",null);yr(I)||(I=!0);let g=Me(e,"kpOrm",null),h=Me(e,"operOrm",null),L=Me(e,"tableNamesExec",null),b=Me(e,"methodsExec",null),D=Me(e,"tableNamesSync",null),C=Me(e,"kpFunExt",null),N=Me(e,"fnTableTags",null),x=Me(e,"genTag");Kn(x)||(x=()=>dr()+"|"+Mr(6));let T=Me(e,"showLog");yr(T)||(T=!0);(async()=>{await(async()=>{i=new n.Server({port:o,routes:{timeout:{server:!1,socket:!1},cors:{origin:a,credentials:!1}}}),c&&await i.register(r);let e=[];c&&(e=[{method:"GET",path:"/{file*}",handler:{directory:{path:`${u}/`}}}]),e=[...e,...d],i.route(e)})(),await(async()=>{s=new pi({serverHapi:i,apiName:p,pathUploadTemp:w,tokenType:M,sizeSlice:y,verifyConn:m,corsOrigins:a,delayForSlice:l}),s.on("open",function(){T&&console.log(`Server[port:${o}]: open`)}),s.on("clientChange",function(e){T&&console.log(`Server[port:${o}]: now clients: ${e}`)})})(),await(async()=>{s=new Ws(s,{getUserIdByToken:f,useDbOrm:I,kpOrm:g,operOrm:h,tableNamesExec:L,tableNamesSync:D,methodsExec:b,kpFunExt:C,fnTableTags:N,genTag:x}),s.on("error",e=>{t.emit("error",e)})})(),await i.start(),T&&console.log(`Server running at: ${i.info.uri}`)})().catch(e=>{t.emit("error",e)}),process.on("unhandledRejection",e=>{console.log("unhandledRejection",e),t.emit("error",{mode:"unhandledRejection",err:e})}),process.on("uncaughtException",e=>{console.log("uncaughtException",e),t.emit("error",{mode:"uncaughtException",err:e})});return t.getServer=async()=>(await gr(()=>null!==i),i),t.getInstWConverServer=async()=>(await gr(()=>null!==s),s),t}function Us(e,t){let n=kn();if(!nn(e)&&!en(e))return n.reject("rs is not an array or object"),n;let r=!1;if(en(e)){r=!0;let t=[];$e(e,(e,n)=>{t.push({k:n,v:e})}),e=t}Kn(t)||(t=function(e){return e});let i=-1,s=[];return e.reduce(function(e,n){return e.then(function(e){s.push(e),i+=1;let o=i,a=n;return r&&(o=n.k,a=n.v),Kn(t)?t(a,o):a})},Promise.resolve()).then(function(e){var t,r,i,o;s.push(e),o=null==(t=s)?0:t.length,s=o?zr(t,(r=i||void 0===r?1:gn(r))<0?0:r,o):[],n.resolve(s)}).catch(function(e){n.reject(e)}),n}let Vs={backup:async function(e){return await Us(e,async(e,t)=>(console.log("backup...",t),{name:t,data:await e.select()}))},recover:async function(e,n,r,i=!1){if(!ar(e))throw console.log("fp",e),new Error("fp is not exist");if(!tn(n))throw console.log("woItems",n),new Error("invalid woItems");Kn(r)||(r=null),yr(i)||(i=!1);let s=t.readFileSync(e,"utf8");s=ti(s);let o=$t(s);Kn(r)&&r(),await Us(o,async e=>{console.log("recover...",e.name),i&&(console.log("needCreateStorage"),await n[e.name].createStorage());let t=null;return As(e.data)>0&&(t=await n[e.name].insert(e.data)),t})}};function Hs(){if(!Kn(ur))throw new Error("invalid dayjs");return ur().format("YYYY-MM-DDTHH:mm:ss.SSSZ")}var ks={exports:{}},Ps={},Qs={exports:{}},Os={};function Js(){var e={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return e}var Bs=/javascript\s*\:/gim;Os.whiteList=Js(),Os.getDefaultWhiteList=Js,Os.onAttr=function(e,t,n){},Os.onIgnoreAttr=function(e,t,n){},Os.safeAttrValue=function(e,t){return Bs.test(t)?"":t};var Fs={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t,n){var r,i;if(Array.prototype.forEach)return e.forEach(t,n);for(r=0,i=e.length;r<i;r++)t.call(n,e[r],r,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(e){return String.prototype.trimRight?e.trimRight():e.replace(/(\s*$)/g,"")}};var _s=function(e,t){";"!==(e=Fs.trimRight(e))[e.length-1]&&(e+=";");var n=e.length,r=!1,i=0,s=0,o="";function a(){if(!r){var n=Fs.trim(e.slice(i,s)),a=n.indexOf(":");if(-1!==a){var l=Fs.trim(n.slice(0,a)),c=Fs.trim(n.slice(a+1));if(l){var u=t(i,o.length,l,c,n);u&&(o+=u+"; ")}}}i=s+1}for(;s<n;s++){var l=e[s];if("/"===l&&"*"===e[s+1]){var c=e.indexOf("*/",s+2);if(-1===c)break;i=(s=c+1)+1,r=!1}else"("===l?r=!0:")"===l?r=!1:";"===l?r||a():"\n"===l&&a()}return Fs.trim(o)},qs=Os,$s=_s;function eo(e){return null==e}function to(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).whiteList=e.whiteList||qs.whiteList,e.onAttr=e.onAttr||qs.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||qs.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||qs.safeAttrValue,this.options=e}to.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,n=t.whiteList,r=t.onAttr,i=t.onIgnoreAttr,s=t.safeAttrValue;return $s(e,function(e,t,o,a,l){var c=n[o],u=!1;if(!0===c?u=c:"function"==typeof c?u=c(a):c instanceof RegExp&&(u=c.test(a)),!0!==u&&(u=!1),a=s(o,a)){var d,p={position:t,sourcePosition:e,source:l,isWhite:u};return u?eo(d=r(o,a,p))?o+":"+a:d:eo(d=i(o,a,p))?void 0:d}})};var no=to;!function(e,t){var n=Os,r=no;for(var i in(t=e.exports=function(e,t){return new r(t).process(e)}).FilterCSS=r,n)t[i]=n[i];"undefined"!=typeof window&&(window.filterCSS=e.exports)}(Qs,Qs.exports);var ro=Qs.exports,io={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t,n){var r,i;if(Array.prototype.forEach)return e.forEach(t,n);for(r=0,i=e.length;r<i;r++)t.call(n,e[r],r,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(e){var t=/\s|\n|\t/.exec(e);return t?t.index:-1}},so=ro.FilterCSS,oo=ro.getDefaultWhiteList,ao=io;function lo(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var co=new so;function uo(e){return e.replace(po,"<").replace(wo,">")}var po=/</g,wo=/>/g,Mo=/"/g,yo=/"/g,mo=/&#([a-zA-Z0-9]*);?/gim,fo=/:?/gim,Io=/&newline;?/gim,go=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,ho=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,Lo=/u\s*r\s*l\s*\(.*/gi;function bo(e){return e.replace(Mo,""")}function Do(e){return e.replace(yo,'"')}function Co(e){return e.replace(mo,function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))})}function No(e){return e.replace(fo,":").replace(Io," ")}function xo(e){for(var t="",n=0,r=e.length;n<r;n++)t+=e.charCodeAt(n)<32?" ":e.charAt(n);return ao.trim(t)}function To(e){return e=xo(e=No(e=Co(e=Do(e))))}function So(e){return e=uo(e=bo(e))}Ps.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]},Ps.getDefaultWhiteList=lo,Ps.onTag=function(e,t,n){},Ps.onIgnoreTag=function(e,t,n){},Ps.onTagAttr=function(e,t,n){},Ps.onIgnoreTagAttr=function(e,t,n){},Ps.safeAttrValue=function(e,t,n,r){if(n=To(n),"href"===t||"src"===t){if("#"===(n=ao.trim(n)))return"#";if("http://"!==n.substr(0,7)&&"https://"!==n.substr(0,8)&&"mailto:"!==n.substr(0,7)&&"tel:"!==n.substr(0,4)&&"data:image/"!==n.substr(0,11)&&"ftp://"!==n.substr(0,6)&&"./"!==n.substr(0,2)&&"../"!==n.substr(0,3)&&"#"!==n[0]&&"/"!==n[0])return""}else if("background"===t){if(go.lastIndex=0,go.test(n))return""}else if("style"===t){if(ho.lastIndex=0,ho.test(n))return"";if(Lo.lastIndex=0,Lo.test(n)&&(go.lastIndex=0,go.test(n)))return"";!1!==r&&(n=(r=r||co).process(n))}return n=So(n)},Ps.escapeHtml=uo,Ps.escapeQuote=bo,Ps.unescapeQuote=Do,Ps.escapeHtmlEntities=Co,Ps.escapeDangerHtml5Entities=No,Ps.clearNonPrintableCharacter=xo,Ps.friendlyAttrValue=To,Ps.escapeAttrValue=So,Ps.onIgnoreTagStripAll=function(){return""},Ps.StripTagBody=function(e,t){"function"!=typeof t&&(t=function(){});var n=!Array.isArray(e),r=[],i=!1;return{onIgnoreTag:function(s,o,a){if(function(t){return!!n||-1!==ao.indexOf(e,t)}(s)){if(a.isClosing){var l="[/removed]",c=a.position+10;return r.push([!1!==i?i:a.position,c]),i=!1,l}return i||(i=a.position),"[removed]"}return t(s,o,a)},remove:function(e){var t="",n=0;return ao.forEach(r,function(r){t+=e.slice(n,r[0]),n=r[1]}),t+=e.slice(n)}}},Ps.stripCommentTag=function(e){for(var t="",n=0;n<e.length;){var r=e.indexOf("\x3c!--",n);if(-1===r){t+=e.slice(n);break}t+=e.slice(n,r);var i=e.indexOf("--\x3e",r);if(-1===i)break;n=i+3}return t},Ps.stripBlankChar=function(e){var t=e.split("");return(t=t.filter(function(e){var t=e.charCodeAt(0);return 127!==t&&(!(t<=31)||(10===t||13===t))})).join("")},Ps.attributeWrapSign='"',Ps.cssFilter=co,Ps.getDefaultCSSWhiteList=oo;var Zo={},Ao=io;function Xo(e){var t,n=Ao.spaceIndex(e);return t=-1===n?e.slice(1,-1):e.slice(1,n+1),"/"===(t=Ao.trim(t).toLowerCase()).slice(0,1)&&(t=t.slice(1)),"/"===t.slice(-1)&&(t=t.slice(0,-1)),t}function vo(e){return"</"===e.slice(0,2)}var Eo=/[^a-zA-Z0-9\\_:.-]/gim;function jo(e,t){for(;t<e.length;t++){var n=e[t];if(" "!==n)return"="===n?t:-1}}function Yo(e,t){for(;t<e.length;t++){var n=e[t];if(" "!==n)return"'"===n||'"'===n?t:-1}}function Go(e,t){for(;t>0;t--){var n=e[t];if(" "!==n)return"="===n?t:-1}}function zo(e){return function(e){return'"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1]}(e)?e.substr(1,e.length-2):e}Zo.parseTag=function(e,t,n){var r="",i=0,s=!1,o=!1,a=0,l=e.length,c="",u="";e:for(a=0;a<l;a++){var d=e.charAt(a);if(!1===s){if("<"===d){s=a;continue}}else if(!1===o){if("<"===d){r+=n(e.slice(i,a)),s=a,i=a;continue}if(">"===d||a===l-1){r+=n(e.slice(i,s)),c=Xo(u=e.slice(s,a+1)),r+=t(s,r.length,c,u,vo(u)),i=a+1,s=!1;continue}if('"'===d||"'"===d)for(var p=1,w=e.charAt(a-p);""===w.trim()||"="===w;){if("="===w){o=d;continue e}w=e.charAt(a-++p)}}else if(d===o){o=!1;continue}}return i<l&&(r+=n(e.substr(i))),r},Zo.parseAttr=function(e,t){var n=0,r=0,i=[],s=!1,o=e.length;function a(e,n){if(!((e=(e=Ao.trim(e)).replace(Eo,"").toLowerCase()).length<1)){var r=t(e,n||"");r&&i.push(r)}}for(var l=0;l<o;l++){var c,u=e.charAt(l);if(!1!==s||"="!==u)if(!1===s||l!==r)if(/\s|\n|\t/.test(u)){if(e=e.replace(/\s|\n|\t/g," "),!1===s){if(-1===(c=jo(e,l))){a(Ao.trim(e.slice(n,l))),s=!1,n=l+1;continue}l=c-1;continue}if(-1===(c=Go(e,l-1))){a(s,zo(Ao.trim(e.slice(n,l)))),s=!1,n=l+1;continue}}else;else{if(-1===(c=e.indexOf(u,l+1)))break;a(s,Ao.trim(e.slice(r+1,c))),s=!1,n=(l=c)+1}else s=e.slice(n,l),n=l+1,r='"'===e.charAt(n)||"'"===e.charAt(n)?n:Yo(e,l+1)}return n<e.length&&(!1===s?a(e.slice(n)):a(s,zo(Ao.trim(e.slice(n))))),Ao.trim(i.join(" "))};var Ko=ro.FilterCSS,Wo=Ps,Ro=Zo,Uo=Ro.parseTag,Vo=Ro.parseAttr,Ho=io;function ko(e){return null==e}function Po(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).stripIgnoreTag&&(e.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),e.onIgnoreTag=Wo.onIgnoreTagStripAll),e.whiteList||e.allowList?e.whiteList=function(e){var t={};for(var n in e)Array.isArray(e[n])?t[n.toLowerCase()]=e[n].map(function(e){return e.toLowerCase()}):t[n.toLowerCase()]=e[n];return t}(e.whiteList||e.allowList):e.whiteList=Wo.whiteList,this.attributeWrapSign=!0===e.singleQuotedAttributeValue?"'":Wo.attributeWrapSign,e.onTag=e.onTag||Wo.onTag,e.onTagAttr=e.onTagAttr||Wo.onTagAttr,e.onIgnoreTag=e.onIgnoreTag||Wo.onIgnoreTag,e.onIgnoreTagAttr=e.onIgnoreTagAttr||Wo.onIgnoreTagAttr,e.safeAttrValue=e.safeAttrValue||Wo.safeAttrValue,e.escapeHtml=e.escapeHtml||Wo.escapeHtml,this.options=e,!1===e.css?this.cssFilter=!1:(e.css=e.css||{},this.cssFilter=new Ko(e.css))}Po.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this,n=t.options,r=n.whiteList,i=n.onTag,s=n.onIgnoreTag,o=n.onTagAttr,a=n.onIgnoreTagAttr,l=n.safeAttrValue,c=n.escapeHtml,u=t.attributeWrapSign,d=t.cssFilter;n.stripBlankChar&&(e=Wo.stripBlankChar(e)),n.allowCommentTag||(e=Wo.stripCommentTag(e));var p=!1;n.stripIgnoreTagBody&&(p=Wo.StripTagBody(n.stripIgnoreTagBody,s),s=p.onIgnoreTag);var w=Uo(e,function(e,t,n,p,w){var M={sourcePosition:e,position:t,isClosing:w,isWhite:Object.prototype.hasOwnProperty.call(r,n)},y=i(n,p,M);if(!ko(y))return y;if(M.isWhite){if(M.isClosing)return"</"+n+">";var m=function(e){var t=Ho.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var n="/"===(e=Ho.trim(e.slice(t+1,-1)))[e.length-1];return n&&(e=Ho.trim(e.slice(0,-1))),{html:e,closing:n}}(p),f=r[n],I=Vo(m.html,function(e,t){var r=-1!==Ho.indexOf(f,e),i=o(n,e,t,r);return ko(i)?r?(t=l(n,e,t,d))?e+"="+u+t+u:e:ko(i=a(n,e,t,r))?void 0:i:i});return p="<"+n,I&&(p+=" "+I),m.closing&&(p+=" /"),p+=">"}return ko(y=s(n,p,M))?c(p):y},c);return p&&(w=p.remove(w)),w};var Qo=Po;!function(e,t){var n=Ps,r=Zo,i=Qo;function s(e,t){return new i(t).process(e)}(t=e.exports=s).filterXSS=s,t.FilterXSS=i,function(){for(var e in n)t[e]=n[e];for(var i in r)t[i]=r[i]}(),"undefined"!=typeof window&&(window.filterXSS=e.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=e.exports)}(ks,ks.exports);var Oo=On(ks.exports);function Jo(){return"undefined"!=typeof self?self:"undefined"!=typeof window&&void 0!==window.document?window:"undefined"!=typeof global?global:null}function Bo(e){let t=function(){let e=Jo();return Oo||e.xss}();let n=function e(n){return nn(n)||en(n)?($e(n,function(t,r){n[r]=e(t)}),n):qt(n)?t(n,{onIgnoreTagAttr:function(e,n,r,i){if("style"===n)return n+'="'+t.escapeAttrValue(r)+'"'}}):n}(ys(e));return n}let Fo=null,_o=null;function qo(e,t,n,r="save"){if(!tn(Fo))throw console.log("ds",Fo),new Error("invalid ds");let i=Fo[e].keys,s=!1;nn(n)||(s=!0,n=[n]);let o=Hs();return r.indexOf("insert")>=0&&(i.indexOf("userId")>=0&&$e(n,(e,r)=>{n[r].userId=t}),i.indexOf("timeCreate")>=0&&$e(n,(e,t)=>{n[t].timeCreate=o}),i.indexOf("userIdUpdate")>=0&&$e(n,(e,r)=>{n[r].userIdUpdate=t}),i.indexOf("timeUpdate")>=0&&$e(n,(e,t)=>{n[t].timeUpdate=o})),(r.indexOf("insert")>=0||r.indexOf("save")>=0)&&(i.indexOf("userIdUpdate")>=0&&$e(n,(e,r)=>{n[r].userIdUpdate=t}),i.indexOf("timeUpdate")>=0&&$e(n,(e,t)=>{n[t].timeUpdate=o})),n=Ft(n,(e,t)=>{let n={};return $e(e,(e,t)=>{e=Bo(e),n[t]=e}),n}),n=s?n[0]:n}async function $o(e,t,n,r){let i,s=null;if(!tn(_o))return Promise.reject("無有效woItems");let o=Me(_o,t,null);if(null===o)return Promise.reject(`ORM找不到表名稱: ${t}`);if("select"===n){if(i=await o.select(r).catch(e=>{console.log(`${t}.select catch`,e),s="取得資料失敗"}),qt(s))return Promise.reject(s)}else if("insert"===n||"save"===n){try{r=qo(t,e,r,n)}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if("insert"===n?i=await o.insert(r).catch(e=>{console.log(`${t}.save catch`,e),s="新增資料失敗"}):"save"===n&&(i=await o.save(r).catch(e=>{console.log(`${t}.save catch`,e),s="儲存資料失敗"})),qt(s))return Promise.reject(s);i=nn(r)?Ft(r,e=>({id:e.id})):{id:r.id}}else if("del"===n)i=await o.del(r).catch(e=>{console.log(`${t}.del catch`,e),s="刪除資料失敗"});else if("delAll"===n)i=await o.delAll(r).catch(e=>{console.log(`${t}.delAll catch`,e),s="刪除資料失敗"});else if("mix"===n){if(!tn(r))return Promise.reject("mix僅支援輸入ltdtDiffByKey結果物件");let n;i=[];let a=Me(r,"add",[]);if(As(a)>0){try{a=qo(t,e,a,"insert+save")}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if(await o.insert(a).catch(e=>{console.log(`${t}.save catch`,e),s="新增資料失敗"}),qt(s))return Promise.reject(s);n=Ft(a,e=>({id:e.id})),i=[...i,...n]}let l=Me(r,"del",[]);if(As(l)>0){if(await o.del(l).catch(e=>{console.log(`${t}.save catch`,e),s="刪除資料失敗"}),qt(s))return Promise.reject(s);n=Ft(l,e=>({id:e.id})),i=[...i,...n]}let c=Me(r,"diff",[]);if(As(c)>0){try{c=qo(t,e,c)}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if(await o.save(c).catch(e=>{console.log(`${t}.save catch`,e),s="變更資料失敗"}),qt(s))return Promise.reject(s);n=Ft(c,e=>({id:e.id})),i=[...i,...n]}}else s=`invalid mode: ${n}`;return qt(s)?Promise.reject(s):i}function ea(e,t){return Fo=e,_o=t,$o}function ta(e,t){var n=[];return _e(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function na(e,t){return(c(e)?pt:ta)(e,Jt(t))}function ra(e,t=null){if(!nn(e)){let e=kn();return e.reject("pms is not an array"),e}return e.reduce((e,t)=>e.then(t),Promise.resolve(t))}let ia=[],sa=[],oa=[],aa=null,la=null,ca=!0,ua=!0;function da(e){setTimeout(()=>{ia.push(e)},1)}function pa(e){setTimeout(()=>{sa.push(e)},1)}function wa(e){setTimeout(()=>{oa.push(e)},1)}async function Ma(e,t,n,r){if(!Kn(aa))return Promise.reject("invalid mapOrm");if(ca&&!qt(e))return console.log("userId",e),console.log("找不到使用者主鍵"),Promise.reject("找不到使用者主鍵");let i="n";if(ca){if(!Kn(la))return Promise.reject("invalid getUserById");let t=await la(e);if(!t)return console.log("userId",e),console.log("找不到使用者資訊"),Promise.reject("找不到使用者資訊");i=Me(t,"isAdmin"),"y"!==i&&"n"!==i&&(i="n");let n=Me(t,"isActive");if("y"!==n&&"n"!==n&&(n="n"),"y"!==n)return console.log("userId",e),console.log("oSelf",t),console.log("使用者被停權或無有效使用者資訊"),Promise.reject("使用者被停權或無有效使用者資訊")}if(await Us(ia,s=>s({woName:t,userId:e,isAdmin:i,mode:n,input:r})),As(sa)>0){let s={woName:t,userId:e,isAdmin:i,mode:n,input:r},o=await ra(sa,s);r=o.input}let s=await aa(e,t,n,r);return ua&&"n"===i&&"select"===n&&nn(s)&&(s=na(s,e=>!Cr(e,"isActive")||!("n"===e.isActive))),As(oa)>0&&(s=await ra(oa,{woName:t,userId:e,isAdmin:i,mode:n,input:r,output:s})),s}function ya(e,t,n,r,i={}){let s=function(e,t,n,r){if(!tn(e))throw console.log("ds",e),new Error("invalid ds");if(!Kn(t))throw console.log("WOrm",t),new Error("invalid WOrm");if(!qt(n))throw console.log("url",n),new Error("invalid url");if(!qt(r))throw console.log("db",r),new Error("invalid db");let i={};return $e(Je(e),e=>{let s=new t({url:n,db:r,cl:e});i[e]=s}),i}(e,t,n,r),o=function(e,t={}){return Kn(e)?(aa=e,ca=Me(t,"useCheckUser"),yr(ca)||(ca=!0),la=Me(t,"getUserById"),ua=Me(t,"useExcludeWhenNotAdmin"),yr(ua)||(ua=!0),{addFunCheck:da,addFunPreProcessing:pa,addFunPostProcessing:wa,procOrm:Ma}):Promise.reject("invalid mapOrm")}(ea(e,s),i);return{...Vs,woItems:s,closeAll:async()=>{await Us(s,async e=>{e&&Kn(e.close)&&await e.close()})},...o}}let ma={csIng:{eng:"Connecting...",cht:"連線中..."},csLogin:{eng:"Logged in",cht:"已登入"},csLogout:{eng:"Logged out",cht:"已登出"},csErrConn:{eng:"Unable to connect",cht:"無法連線"},csErrLogin:{eng:"Login denied",cht:"拒絕登入"},systemMessage:{eng:"System message",cht:"系統確認訊息"},ok:{eng:"OK",cht:"確認"},no:{eng:"No",cht:"取消"},yes:{eng:"Yes",cht:"確定"},empty:{eng:"Empty",cht:"無"},waitingData:{eng:"Waiting data...",cht:"等待數據中..."},id:{eng:"Id",cht:"主鍵"},save:{eng:"Save",cht:"儲存"},close:{eng:"Close",cht:"關閉"},delete:{eng:"Delete",cht:"刪除"},cancel:{eng:"Cancel",cht:"取消"},processing:{eng:"Processing...",cht:"處理中請稍後..."},anUnexpectedErrorOccurred:{eng:"An unexpected error occurred, please contact the administrator",cht:"發生非預期錯誤,請洽管理員"},username:{eng:"Username",cht:"使用者姓名"},email:{eng:"Email",cht:"電子郵件"},name:{eng:"Name",cht:"名稱"},description:{eng:"Description",cht:"說明"},menuTreeShow:{eng:"Show API list",cht:"顯示API清單"},menuTreeHide:{eng:"Hide API list",cht:"隱藏API清單"},noSelectApi:{eng:"No Select",cht:"尚未選擇API"},tokens:{eng:"Tokens",cht:"授權金鑰"},apiUrl:{eng:"API url",cht:"API網址"},version:{eng:"Version",cht:"版本"},levels:{eng:"Levels",cht:"所屬階層"},keywords:{eng:"Keywords",cht:"關鍵字"},state:{eng:"State",cht:"狀態"},timeCreate:{eng:"Create time",cht:"創建時間"},timeUpdate:{eng:"Update time",cht:"更新時間"},creator:{eng:"Creator",cht:"API創建者"},dataSource:{eng:"Source",cht:"資料提供者"},isActive:{eng:"Active",cht:"有效"},mdInputParams:{eng:"Input",cht:"輸入參數資訊或結構"},inputExample:{eng:"Input example",cht:"輸入範例"},mdOutputParams:{eng:"Output",cht:"回傳數據結構"},outputExample:{eng:"Output example",cht:"回傳數據範例"},docInput:{eng:"Input",cht:"輸入參數"},docOutputFields:{eng:"Output fields",cht:"回傳欄位"},docRequest:{eng:"Request",cht:"請求"},tabDocs:{eng:"Docs",cht:"文件"},tabEdit:{eng:"Edit",cht:"編輯"},tabTest:{eng:"Test",cht:"測試"},mmApi:{eng:"API",cht:"API"},mmStaInfor:{eng:"Statistics",cht:"統計資訊"},statisticsInformation:{eng:"Statistics Information",cht:"統計資訊"},statisticsInformationDescription:{eng:"Frequency of backend logged events (APIs, kpFunExt, connection verification).",cht:"後端各事件(API、kpFunExt、連線驗證)之發生頻率統計。"},selectEvents:{eng:"Select events",cht:"選擇事件"},selectAll:{eng:"All",cht:"全選"},selectNone:{eng:"Clear",cht:"清除"},eventStatsTable:{eng:"Event Statistics",cht:"事件統計表"},colEvent:{eng:"Event",cht:"事件"},colRecent1day:{eng:"Last 1 day",cht:"最近1日"},colRecent8hr:{eng:"Last 8 hr",cht:"最近8時"},colRecent4hr:{eng:"Last 4 hr",cht:"最近4時"},colRecent1hr:{eng:"Last 1 hr",cht:"最近1時"},timeRange:{eng:"Time range",cht:"時間範圍"},selectItem1hr:{eng:"1 hour",cht:"1小時"},selectItem4hr:{eng:"4 hours",cht:"4小時"},selectItem8hr:{eng:"8 hours",cht:"8小時"},selectItem1day:{eng:"1 day",cht:"1天"},noStaData:{eng:"No statistics data",cht:"尚無統計資料"},getDataError:{eng:"Failed to get data",cht:"取得資料失敗"},addApi:{eng:"New API",cht:"新增API"},confirmDeleteApi:{eng:"Are you sure you want to delete this API?",cht:"確定要刪除此API?"},saveSuccess:{eng:"Saved",cht:"已儲存"},deleteSuccess:{eng:"Deleted",cht:"已刪除"},searchApiPlaceholder:{eng:"Search API...",cht:"搜尋API..."},fieldMethod:{eng:"Method",cht:"方法"},fieldGroup:{eng:"Group",cht:"群組"},fieldOrder:{eng:"Order",cht:"順序"},fieldTestBaseUrl:{eng:"Test base URL",cht:"測試基底網址"},fieldAuthType:{eng:"Auth type",cht:"認證類型"},fieldAuthConfigJson:{eng:"Auth config (JSON)",cht:"認證設定(JSON)"},fieldDefaultHeadersJson:{eng:"Default headers (JSON)",cht:"預設標頭(JSON)"},fieldDefaultQueryJson:{eng:"Default query (JSON)",cht:"預設查詢參數(JSON)"},fieldDefaultBodyJson:{eng:"Default body (JSON)",cht:"預設請求內容(JSON)"},fieldContentType:{eng:"Content type",cht:"內容類型"},hintTestBaseUrl:{eng:"Fallback request URL, used only when API url is empty. e.g. https://api.example.com",cht:"送請求的後備網址:「API url」有填則優先,留空時才用此值。範例:https://api.example.com"},hintAuthType:{eng:"Auth auto-applied when sending. none = none; bearer / apikey / basic are built from the Auth config below.",cht:"送出時自動帶入的認證方式。none=不帶;bearer / apikey / basic 依下方「認證設定(JSON)」組出。"},hintAuthConfigJson:{eng:'JSON by auth type:\nbearer → {"token":"your-token"}\napikey → {"name":"X-API-Key","value":"your-key","in":"header"} (in: header or query)\nbasic → {"username":"user","password":"pass"}',cht:'依認證類型填 JSON:\nbearer → {"token":"你的token"}(留空則退用上方 tokens 欄第一個)\napikey → {"name":"X-API-Key","value":"你的key","in":"header"}(in 可為 header 或 query)\nbasic → {"username":"帳號","password":"密碼"}'},hintDefaultHeadersJson:{eng:'Default request headers, a JSON object. e.g. {"Accept":"application/json"}',cht:'預設請求標頭,JSON 物件。範例:{"Accept":"application/json"}'},hintDefaultQueryJson:{eng:'Default query params, a JSON object. e.g. {"page":"1","size":"20"}',cht:'預設查詢參數,JSON 物件。範例:{"page":"1","size":"20"}'},hintDefaultBodyJson:{eng:'Default request body (for POST/PUT); falls back to Input example if empty. e.g. {"name":"foo"}',cht:'預設請求內容(POST/PUT 用),留空則退用「輸入範例」。範例:{"name":"小明"}'},hintContentType:{eng:"Request content type, added as a Content-Type header. e.g. application/json",cht:"請求內容類型,會帶成 Content-Type 標頭。範例:application/json"},authNone:{eng:"None",cht:"無"},authBearer:{eng:"Bearer token",cht:"Bearer token"},authApikey:{eng:"API key",cht:"API key"},authBasic:{eng:"Basic",cht:"Basic"},secBasic:{eng:"Basic",cht:"基本資訊"},secDocs:{eng:"Documentation",cht:"文件說明"},secTest:{eng:"Test settings",cht:"測試設定"},reqSend:{eng:"Send",cht:"送出請求"},reqUrlPlaceholder:{eng:"Request URL",cht:"請求網址"},reqQuery:{eng:"Query params",cht:"查詢參數"},reqHeaders:{eng:"Headers",cht:"標頭"},reqBody:{eng:"Body",cht:"請求內容"},reqAddRow:{eng:"Add",cht:"新增一列"},colKey:{eng:"Key",cht:"鍵"},colValue:{eng:"Value",cht:"值"},colOn:{eng:"On",cht:"啟用"},resTitle:{eng:"Response",cht:"回應"},resTime:{eng:"Time",cht:"耗時"},resHeaders:{eng:"Response headers",cht:"回應標頭"},resBody:{eng:"Response body",cht:"回應內容"},resEmpty:{eng:"No response yet. Click Send to test.",cht:"尚無回應,點擊送出請求進行測試。"},valRequired:{eng:"This field is required",cht:"此欄位必填"},valInvalidJson:{eng:"Invalid JSON format",cht:"JSON格式錯誤"},errReqUrlInvalid:{eng:"The request URL is invalid (must start with http:// or https://)",cht:"請求網址無效(須以 http:// 或 https:// 開頭)"},errReqTargetNotAllowed:{eng:"The target address is not allowed",cht:"目標位址不被允許"},errProxyRequestFailed:{eng:"The request failed to send",cht:"請求發送失敗"},errApiRowInvalid:{eng:"Invalid API data",cht:"API 資料無效"},errApiIdInvalid:{eng:"Invalid API id",cht:"API id 無效"},errUserIdMissing:{eng:"Unable to get user id",cht:"無法取得使用者 id"},errUserEmailMissing:{eng:"Unable to get user email",cht:"無法取得使用者 email"},errUserNameMissing:{eng:"Unable to get user name",cht:"無法取得使用者名稱"},errUserRoleMissing:{eng:"Unable to get user role",cht:"無法取得使用者權限"},errUserNoPermission:{eng:"User does not have permission",cht:"使用者沒有權限"},errUserNotFound:{eng:"Unable to find user from token",cht:"無法依 token 找到使用者"},errPayloadInvalid:{eng:"Invalid request payload",cht:"請求內容無效"},errGroupInvalid:{eng:"Invalid group",cht:"群組無效"},errRowsInvalid:{eng:"Invalid rows",cht:"資料列無效"},errTokenNoPermission:{eng:"Token does not have permission",cht:"token 沒有權限"},errKeyTableInvalid:{eng:"Invalid table",cht:"資料表無效"}},fa=(e={})=>{let t=Me(e,"kpLangExt");tn(t)||(t={});let n=Me(e,"webName");tn(n)||(n={});let r=Me(e,"webDescription");tn(r)||(r={});let i={};i={...i,...ma},tn(t)&&(i={...i,...t}),tn(n)&&(i={...i,webName:{...n}}),tn(r)&&(i={...i,webDescription:{...r}});let s={};return $e(["eng","cht"],e=>{let t={};$e(i,(n,r)=>{t[r]=n[e]}),s[e]=t}),s};function Ia(e,t){return function(){return e.apply(t,arguments)}}const{toString:ga}=Object.prototype,{getPrototypeOf:ha}=Object,{iterator:La,toStringTag:ba}=Symbol,Da=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ca=(e,t)=>{let n=e;const r=[];for(;null!=n&&n!==Object.prototype;){if(-1!==r.indexOf(n))return!1;if(r.push(n),Da(n,t))return!0;n=ha(n)}return!1},Na=(e=>t=>{const n=ga.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),xa=e=>(e=e.toLowerCase(),t=>Na(t)===e),Ta=e=>t=>typeof t===e,{isArray:Sa}=Array,Za=Ta("undefined");function Aa(e){return null!==e&&!Za(e)&&null!==e.constructor&&!Za(e.constructor)&&Ea(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Xa=xa("ArrayBuffer");const va=Ta("string"),Ea=Ta("function"),ja=Ta("number"),Ya=e=>null!==e&&"object"==typeof e,Ga=e=>{if(!Ya(e))return!1;const t=ha(e);return!(null!==t&&t!==Object.prototype&&null!==ha(t)||Ca(e,ba)||Ca(e,La))},za=xa("Date"),Ka=xa("File"),Wa=xa("Blob"),Ra=xa("FileList");const Ua="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Va=void 0!==Ua.FormData?Ua.FormData:void 0,Ha=xa("URLSearchParams"),[ka,Pa,Qa,Oa]=["ReadableStream","Request","Response","Headers"].map(xa);function Ja(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),Sa(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{if(Aa(e))return;const i=n?Object.getOwnPropertyNames(e):Object.keys(e),s=i.length;let o;for(r=0;r<s;r++)o=i[r],t.call(null,e[o],o,e)}}function Ba(e,t){if(Aa(e))return null;t=t.toLowerCase();const n=Object.keys(e);let r,i=n.length;for(;i-- >0;)if(r=n[i],t===r.toLowerCase())return r;return null}const Fa="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,_a=e=>!Za(e)&&e!==Fa;const qa=($a="undefined"!=typeof Uint8Array&&ha(Uint8Array),e=>$a&&e instanceof $a);var $a;const el=xa("HTMLFormElement"),{propertyIsEnumerable:tl}=Object.prototype,nl=xa("RegExp"),rl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ja(n,(n,i)=>{let s;!1!==(s=t(n,i,e))&&(r[i]=s||n)}),Object.defineProperties(e,r)};const il=xa("AsyncFunction"),sl=(ol="function"==typeof setImmediate,al=Ea(Fa.postMessage),ol?setImmediate:al?(ll=`axios@${Math.random()}`,cl=[],Fa.addEventListener("message",({source:e,data:t})=>{e===Fa&&t===ll&&cl.length&&cl.shift()()},!1),e=>{cl.push(e),Fa.postMessage(ll,"*")}):e=>setTimeout(e));var ol,al,ll,cl;const ul="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Fa):"undefined"!=typeof process&&process.nextTick||sl,dl=e=>null!=e&&Ea(e[La]);var pl={isArray:Sa,isArrayBuffer:Xa,isBuffer:Aa,isFormData:e=>{if(!e)return!1;if(Va&&e instanceof Va)return!0;const t=ha(e);if(!t||t===Object.prototype)return!1;if(!Ea(e.append))return!1;const n=Na(e);return"formdata"===n||"object"===n&&Ea(e.toString)&&"[object FormData]"===e.toString()},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Xa(e.buffer),t},isString:va,isNumber:ja,isBoolean:e=>!0===e||!1===e,isObject:Ya,isPlainObject:Ga,isEmptyObject:e=>{if(!Ya(e)||Aa(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:ka,isRequest:Pa,isResponse:Qa,isHeaders:Oa,isUndefined:Za,isDate:za,isFile:Ka,isReactNativeBlob:e=>!(!e||void 0===e.uri),isReactNative:e=>e&&void 0!==e.getParts,isBlob:Wa,isRegExp:nl,isFunction:Ea,isStream:e=>Ya(e)&&Ea(e.pipe),isURLSearchParams:Ha,isTypedArray:qa,isFileList:Ra,forEach:Ja,merge:function e(...t){const{caseless:n,skipUndefined:r}=_a(this)&&this||{},i={},s=(t,s)=>{if("__proto__"===s||"constructor"===s||"prototype"===s)return;const o=n&&"string"==typeof s&&Ba(i,s)||s,a=Da(i,o)?i[o]:void 0;Ga(a)&&Ga(t)?i[o]=e(a,t):Ga(t)?i[o]=e({},t):Sa(t)?i[o]=t.slice():r&&Za(t)||(i[o]=t)};for(let e=0,n=t.length;e<n;e++){const n=t[e];if(!n||Aa(n))continue;if(Ja(n,s),"object"!=typeof n||Sa(n))continue;const r=Object.getOwnPropertySymbols(n);for(let e=0;e<r.length;e++){const t=r[e];tl.call(n,t)&&s(n[t],t)}}return i},extend:(e,t,n,{allOwnKeys:r}={})=>(Ja(t,(t,r)=>{n&&Ea(t)?Object.defineProperty(e,r,{__proto__:null,value:Ia(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,s,o;const a={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),s=i.length;s-- >0;)o=i[s],r&&!r(o,e,t)||a[o]||(t[o]=e[o],a[o]=!0);e=!1!==n&&ha(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:Na,kindOfTest:xa,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(Sa(e))return e;let t=e.length;if(!ja(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[La]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:el,hasOwnProperty:Da,hasOwnProp:Da,hasOwnInPrototypeChain:Ca,getSafeProp:(e,t)=>null!=e&&Ca(e,t)?e[t]:void 0,reduceDescriptors:rl,freezeMethods:e=>{rl(e,(t,n)=>{if(Ea(e)&&["arguments","caller","callee"].includes(n))return!1;const r=e[n];Ea(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Sa(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:Ba,global:Fa,isContextDefined:_a,isSpecCompliantForm:function(e){return!!(e&&Ea(e.append)&&"FormData"===e[ba]&&e[La])},toJSONObject:e=>{const t=new WeakSet,n=e=>{if(Ya(e)){if(t.has(e))return;if(Aa(e))return e;if(!("toJSON"in e)){t.add(e);const r=Sa(e)?[]:{};return Ja(e,(e,t)=>{const i=n(e);!Za(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},isAsyncFn:il,isThenable:e=>e&&(Ya(e)||Ea(e))&&Ea(e.then)&&Ea(e.catch),setImmediate:sl,asap:ul,isIterable:dl,isSafeIterable:e=>null!=e&&Ca(e,La)&&dl(e)};const wl=pl.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Ml=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),yl=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function ml(e,t){return pl.isArray(e)?e.map(e=>ml(e,t)):function(e){let t=0,n=e.length;for(;t<n;){const n=e.charCodeAt(t);if(9!==n&&32!==n)break;t+=1}for(;n>t;){const t=e.charCodeAt(n-1);if(9!==t&&32!==t)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}(String(e).replace(t,""))}function fl(e){const t=Object.create(null);return pl.forEach(e.toJSON(),(e,n)=>{t[n]=(e=>ml(e,yl))(e)}),t}const Il=Symbol("internals");function gl(e){return e&&String(e).trim().toLowerCase()}function hl(e){return!1===e||null==e?e:pl.isArray(e)?e.map(hl):(e=>ml(e,Ml))(String(e))}function Ll(e,t,n,r,i){return pl.isFunction(r)?r.call(this,t,n):(i&&(t=n),pl.isString(t)?pl.isString(r)?-1!==t.indexOf(r):pl.isRegExp(r)?r.test(t):void 0:void 0)}class bl{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=gl(t);if(!i)return;const s=pl.findKey(r,i);(!s||void 0===r[s]||!0===n||void 0===n&&!1!==r[s])&&(r[s||t]=hl(e))}const s=(e,t)=>pl.forEach(e,(e,n)=>i(e,n,t));if(pl.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(pl.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const t={};let n,r,i;return e&&e.split("\n").forEach(function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&wl[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t})(e),t);else if(pl.isObject(e)&&pl.isSafeIterable(e)){let n,r,i=Object.create(null);for(const t of e){if(!pl.isArray(t))throw new TypeError("Object iterator must return a key-value pair");r=t[0],pl.hasOwnProp(i,r)?(n=i[r],i[r]=pl.isArray(n)?[...n,t[1]]:[n,t[1]]):i[r]=t[1]}s(i,t)}else null!=e&&i(t,e,n);return this}get(e,t){if(e=gl(e)){const n=pl.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(pl.isFunction(t))return t.call(this,e,n);if(pl.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=gl(e)){const n=pl.findKey(this,e);return!(!n||void 0===this[n]||t&&!Ll(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=gl(e)){const i=pl.findKey(n,e);!i||t&&!Ll(0,n[i],i,t)||(delete n[i],r=!0)}}return pl.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!Ll(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return pl.forEach(this,(r,i)=>{const s=pl.findKey(n,i);if(s)return t[s]=hl(r),void delete t[i];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(i):String(i).trim();o!==i&&delete t[i],t[o]=hl(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return pl.forEach(this,(n,r)=>{null!=n&&!1!==n&&(t[r]=e&&pl.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[Il]=this[Il]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=gl(e);t[r]||(!function(e,t){const n=pl.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}(n,e),t[r]=!0)}return pl.isArray(e)?e.forEach(r):r(e),this}}bl.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),pl.reduceDescriptors(bl.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),pl.freezeMethods(bl);var Dl=bl;function Cl(e,t){const n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(null===e||"object"!=typeof e)return e;if(pl.isBuffer(e))return e;if(-1!==r.indexOf(e))return;let t;if(e instanceof Dl&&(e=e.toJSON()),r.push(e),pl.isArray(e))t=[],e.forEach((e,n)=>{const r=i(e);pl.isUndefined(r)||(t[n]=r)});else{if(!pl.isPlainObject(e)&&function(e){if(pl.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(pl.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}(e))return r.pop(),e;t=Object.create(null);for(const[r,s]of Object.entries(e)){const e=n.has(r.toLowerCase())?"[REDACTED ****]":i(s);pl.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}class Nl extends Error{static from(e,t,n,r,i,s){const o=new Nl(e.message,t||e.code,n,r,i);return Object.defineProperty(o,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),o.name=e.name,null!=e.status&&null==o.status&&(o.status=e.status),s&&Object.assign(o,s),o}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){const e=this.config,t=e&&pl.hasOwnProp(e,"redact")?e.redact:void 0,n=pl.isArray(t)&&t.length>0?Cl(e,t):pl.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}}Nl.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",Nl.ERR_BAD_OPTION="ERR_BAD_OPTION",Nl.ECONNABORTED="ECONNABORTED",Nl.ETIMEDOUT="ETIMEDOUT",Nl.ECONNREFUSED="ECONNREFUSED",Nl.ERR_NETWORK="ERR_NETWORK",Nl.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",Nl.ERR_DEPRECATED="ERR_DEPRECATED",Nl.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",Nl.ERR_BAD_REQUEST="ERR_BAD_REQUEST",Nl.ERR_CANCELED="ERR_CANCELED",Nl.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",Nl.ERR_INVALID_URL="ERR_INVALID_URL",Nl.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";var xl=Nl;function Tl(e){return pl.isPlainObject(e)||pl.isArray(e)}function Sl(e){return pl.endsWith(e,"[]")?e.slice(0,-2):e}function Zl(e,t,n){return e?e.concat(t).map(function(e,t){return e=Sl(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const Al=pl.toFlatObject(pl,{},null,function(e){return/^is[A-Z]/.test(e)});function Xl(e,t,n){if(!pl.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=pl.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!pl.isUndefined(t[e])})).metaTokens,i=n.visitor||w,s=n.dots,o=n.indexes,a=n.Blob||"undefined"!=typeof Blob&&Blob,l=void 0===n.maxDepth?100:n.maxDepth,c=a&&pl.isSpecCompliantForm(t),u=[];if(!pl.isFunction(i))throw new TypeError("visitor must be a function");function d(e){if(null===e)return"";if(pl.isDate(e))return e.toISOString();if(pl.isBoolean(e))return e.toString();if(!c&&pl.isBlob(e))throw new xl("Blob is not supported. Use a Buffer instead.");if(pl.isArrayBuffer(e)||pl.isTypedArray(e)){if(c&&"function"==typeof a)return new a([e]);if("undefined"!=typeof Buffer)return Buffer.from(e);throw new xl("Blob is not supported. Use a Buffer instead.",xl.ERR_NOT_SUPPORT)}return e}function p(e){if(e>l)throw new xl("Object is too deeply nested ("+e+" levels). Max depth: "+l,xl.ERR_FORM_DATA_DEPTH_EXCEEDED)}function w(e,n,i){let a=e;if(pl.isReactNative(t)&&pl.isReactNativeBlob(e))return t.append(Zl(i,n,s),d(e)),!1;if(e&&!i&&"object"==typeof e)if(pl.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=function(e,t){if(l===1/0)return JSON.stringify(e);const n=[];return JSON.stringify(e,function(e,r){if(!pl.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),p(t+n.length-1),r})}(e,1);else if(pl.isArray(e)&&function(e){return pl.isArray(e)&&!e.some(Tl)}(e)||(pl.isFileList(e)||pl.endsWith(n,"[]"))&&(a=pl.toArray(e)))return n=Sl(n),a.forEach(function(e,r){!pl.isUndefined(e)&&null!==e&&t.append(!0===o?Zl([n],r,s):null===o?n:n+"[]",d(e))}),!1;return!!Tl(e)||(t.append(Zl(i,n,s),d(e)),!1)}const M=Object.assign(Al,{defaultVisitor:w,convertValue:d,isVisitable:Tl});if(!pl.isObject(e))throw new TypeError("data must be an object");return function e(n,r,s=0){if(!pl.isUndefined(n)){if(p(s),-1!==u.indexOf(n))throw new Error("Circular reference detected in "+r.join("."));u.push(n),pl.forEach(n,function(n,o){!0===(!(pl.isUndefined(n)||null===n)&&i.call(t,n,pl.isString(o)?o.trim():o,r,M))&&e(n,r?r.concat(o):[o],s+1)}),u.pop()}}(e),t}function vl(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function El(e,t){this._pairs=[],e&&Xl(e,this,t)}const jl=El.prototype;function Yl(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Gl(e,t,n){if(!t)return e;e=e||"";const r=pl.isFunction(n)?{serialize:n}:n,i=pl.getSafeProp(r,"encode")||Yl,s=pl.getSafeProp(r,"serialize");let o;if(o=s?s(t,r):pl.isURLSearchParams(t)?t.toString():new El(t,r).toString(i),o){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}jl.append=function(e,t){this._pairs.push([e,t])},jl.toString=function(e){const t=e?t=>e.call(this,t,vl):vl;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};var zl=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){pl.forEach(this.handlers,function(t){null!==t&&e(t)})}},Kl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Wl={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:El,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Rl="undefined"!=typeof window&&"undefined"!=typeof document,Ul="object"==typeof navigator&&navigator||void 0,Vl=Rl&&(!Ul||["ReactNative","NativeScript","NS"].indexOf(Ul.product)<0),Hl="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,kl=Rl&&window.location.href||"http://localhost";var Pl={...Object.freeze({__proto__:null,hasBrowserEnv:Rl,hasStandardBrowserEnv:Vl,hasStandardBrowserWebWorkerEnv:Hl,navigator:Ul,origin:kl}),...Wl};function Ql(e){if(e>100)throw new xl("FormData field is too deeply nested ("+e+" levels). Max depth: 100",xl.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Ol(e){function t(e,n,r,i){Ql(i);let s=e[i++];if("__proto__"===s)return!0;const o=Number.isFinite(+s),a=i>=e.length;if(s=!s&&pl.isArray(r)?r.length:s,a)return pl.hasOwnProp(r,s)?r[s]=pl.isArray(r[s])?r[s].concat(n):[r[s],n]:r[s]=n,!o;pl.hasOwnProp(r,s)&&pl.isObject(r[s])||(r[s]=[]);return t(e,n,r[s],i)&&pl.isArray(r[s])&&(r[s]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let s;for(r=0;r<i;r++)s=n[r],t[s]=e[s];return t}(r[s])),!o}if(pl.isFormData(e)&&pl.isFunction(e.entries)){const n={};return pl.forEachEntry(e,(e,r)=>{t(function(e){const t=[],n=/\w+|\[(\w*)]/g;let r;for(;null!==(r=n.exec(e));)Ql(t.length),t.push("[]"===r[0]?"":r[1]||r[0]);return t}(e),r,n,0)}),n}return null}const Jl=(e,t)=>null!=e&&pl.hasOwnProp(e,t)?e[t]:void 0;const Bl={transitional:Kl,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=pl.isObject(e);i&&pl.isHTMLForm(e)&&(e=new FormData(e));if(pl.isFormData(e))return r?JSON.stringify(Ol(e)):e;if(pl.isArrayBuffer(e)||pl.isBuffer(e)||pl.isStream(e)||pl.isFile(e)||pl.isBlob(e)||pl.isReadableStream(e))return e;if(pl.isArrayBufferView(e))return e.buffer;if(pl.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(i){const t=Jl(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Xl(e,new Pl.classes.URLSearchParams,{visitor:function(e,t,n,r){return Pl.isNode&&pl.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}(e,t).toString();if((s=pl.isFileList(e))||n.indexOf("multipart/form-data")>-1){const n=Jl(this,"env"),r=n&&n.FormData;return Xl(s?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(pl.isString(e))try{return(t||JSON.parse)(e),pl.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=Jl(this,"transitional")||Bl.transitional,n=t&&t.forcedJSONParsing,r=Jl(this,"responseType"),i="json"===r;if(pl.isResponse(e)||pl.isReadableStream(e))return e;if(e&&pl.isString(e)&&(n&&!r||i)){const n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,Jl(this,"parseReviver"))}catch(e){if(n){if("SyntaxError"===e.name)throw xl.from(e,xl.ERR_BAD_RESPONSE,this,null,Jl(this,"response"));throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Pl.classes.FormData,Blob:Pl.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};pl.forEach(["delete","get","head","post","put","patch","query"],e=>{Bl.headers[e]={}});var Fl=Bl;function _l(e,t){const n=this||Fl,r=t||n,i=Dl.from(r.headers);let s=r.data;return pl.forEach(e,function(e){s=e.call(n,s,i.normalize(),t?t.status:void 0)}),i.normalize(),s}function ql(e){return!(!e||!e.__CANCEL__)}var $l=class extends xl{constructor(e,t,n){super(null==e?"canceled":e,xl.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function ec(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new xl("Request failed with status code "+n.status,n.status>=400&&n.status<500?xl.ERR_BAD_REQUEST:xl.ERR_BAD_RESPONSE,n.config,n.request,n)):e(n)}const tc=(e,t,n=3)=>{let r=0;const i=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,s=0,o=0;return t=void 0!==t?t:1e3,function(a){const l=Date.now(),c=r[o];i||(i=l),n[s]=a,r[s]=l;let u=o,d=0;for(;u!==s;)d+=n[u++],u%=e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),l-i<t)return;const p=c&&l-c;return p?Math.round(1e3*d/p):void 0}}(50,250);return function(e,t){let n,r,i=0,s=1e3/t;const o=(t,s=Date.now())=>{i=s,n=null,r&&(clearTimeout(r),r=null),e(...t)};return[(...e)=>{const t=Date.now(),a=t-i;a>=s?o(e,t):(n=e,r||(r=setTimeout(()=>{r=null,o(n)},s-a)))},()=>n&&o(n)]}(n=>{if(!n||"number"!=typeof n.loaded)return;const s=n.loaded,o=n.lengthComputable?n.total:void 0,a=null!=o?Math.min(s,o):s,l=Math.max(0,a-r),c=i(l);r=Math.max(r,a);e({loaded:a,total:o,progress:o?a/o:void 0,bytes:l,rate:c||void 0,estimated:c&&o?(o-a)/c:void 0,event:n,lengthComputable:null!=o,[t?"download":"upload"]:!0})},n)},nc=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},rc=e=>(...t)=>pl.asap(()=>e(...t));var ic=Pl.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Pl.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Pl.origin),Pl.navigator&&/(msie|trident)/i.test(Pl.navigator.userAgent)):()=>!0,sc=Pl.hasStandardBrowserEnv?{write(e,t,n,r,i,s,o){if("undefined"==typeof document)return;const a=[`${e}=${encodeURIComponent(t)}`];pl.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),pl.isString(r)&&a.push(`path=${r}`),pl.isString(i)&&a.push(`domain=${i}`),!0===s&&a.push("secure"),pl.isString(o)&&a.push(`SameSite=${o}`),document.cookie=a.join("; ")},read(e){if("undefined"==typeof document)return null;const t=document.cookie.split(";");for(let n=0;n<t.length;n++){const r=t[n].replace(/^\s+/,""),i=r.indexOf("=");if(-1!==i&&r.slice(0,i)===e)try{return decodeURIComponent(r.slice(i+1))}catch(e){return r.slice(i+1)}}return null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};const oc=/^https?:(?!\/\/)/i,ac=/[\t\n\r]/g;function lc(e,t){if("string"==typeof e&&oc.test(function(e){return function(e){let t=0;for(;t<e.length&&e.charCodeAt(t)<=32;)t++;return e.slice(t)}(e).replace(ac,"")}(e)))throw new xl('Invalid URL: missing "//" after protocol',xl.ERR_INVALID_URL,t)}function cc(e,t,n,r){lc(t,r);let i=!function(e){return"string"==typeof e&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}(t);return e&&(i||!1===n)?(lc(e,r),function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t)):t}const uc=e=>e instanceof Dl?{...e}:e;function dc(e,t){e=e||{},t=t||{};const n=Object.create(null);function r(e,t,n,r){return pl.isPlainObject(e)&&pl.isPlainObject(t)?pl.merge.call({caseless:r},e,t):pl.isPlainObject(t)?pl.merge({},t):pl.isArray(t)?t.slice():t}function i(e,t,n,i){return pl.isUndefined(t)?pl.isUndefined(e)?void 0:r(void 0,e,0,i):r(e,t,0,i)}function s(e,t){if(!pl.isUndefined(t))return r(void 0,t)}function o(e,t){return pl.isUndefined(t)?pl.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,i,s){return pl.hasOwnProp(t,s)?r(n,i):pl.hasOwnProp(e,s)?r(void 0,n):void 0}Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});const l={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:a,headers:(e,t,n)=>i(uc(e),uc(t),0,!0)};return pl.forEach(Object.keys({...e,...t}),function(r){if("__proto__"===r||"constructor"===r||"prototype"===r)return;const s=pl.hasOwnProp(l,r)?l[r]:i,o=s(pl.hasOwnProp(e,r)?e[r]:void 0,pl.hasOwnProp(t,r)?t[r]:void 0,r);pl.isUndefined(o)&&s!==a||(n[r]=o)}),pl.hasOwnProp(t,"validateStatus")&&pl.isUndefined(t.validateStatus)&&!1===function(n){const r=pl.hasOwnProp(t,"transitional")?t.transitional:void 0;if(!pl.isUndefined(r)){if(!pl.isPlainObject(r))return;if(pl.hasOwnProp(r,n))return r[n]}const i=pl.hasOwnProp(e,"transitional")?e.transitional:void 0;if(pl.isPlainObject(i)&&pl.hasOwnProp(i,n))return i[n]}("validateStatusUndefinedResolves")&&(pl.hasOwnProp(e,"validateStatus")?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}const pc=["content-type","content-length"];function wc(e){const t=dc({},e),n=e=>pl.hasOwnProp(t,e)?t[e]:void 0,r=n("data");let i=n("withXSRFToken");const s=n("xsrfHeaderName"),o=n("xsrfCookieName");let a=n("headers");const l=n("auth"),c=n("baseURL"),u=n("allowAbsoluteUrls"),d=n("url");if(t.headers=a=Dl.from(a),t.url=Gl(cc(c,d,u,t),n("params"),n("paramsSerializer")),l){const t=pl.getSafeProp(l,"username")||"",n=pl.getSafeProp(l,"password")||"";try{a.set("Authorization","Basic "+btoa(t+":"+(n?encodeURIComponent(n).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))):"")))}catch(t){throw xl.from(t,xl.ERR_BAD_OPTION_VALUE,e)}}if(pl.isFormData(r)&&(Pl.hasStandardBrowserEnv||Pl.hasStandardBrowserWebWorkerEnv||pl.isReactNative(r)?a.setContentType(void 0):pl.isFunction(r.getHeaders)&&function(e,t,n){"content-only"===n?Object.entries(t||{}).forEach(([t,n])=>{pc.includes(t.toLowerCase())&&e.set(t,n)}):e.set(t)}(a,r.getHeaders(),n("formDataHeaderPolicy"))),Pl.hasStandardBrowserEnv){pl.isFunction(i)&&(i=i(t));if(!0===i||null==i&&ic(t.url)){const e=s&&o&&sc.read(o);e&&a.set(s,e)}}return t}var Mc="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const r=wc(e);let i=r.data;const s=Dl.from(r.headers).normalize();let o,a,l,c,u,{responseType:d,onUploadProgress:p,onDownloadProgress:w}=r;function M(){c&&c(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(o),r.signal&&r.signal.removeEventListener("abort",o)}let y=new XMLHttpRequest;function m(){if(!y)return;const r=Dl.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders());ec(function(e){t(e),M()},function(e){n(e),M()},{data:d&&"text"!==d&&"json"!==d?y.response:y.responseText,status:y.status,statusText:y.statusText,headers:r,config:e,request:y}),y=null}y.open(r.method.toUpperCase(),r.url,!0),y.timeout=r.timeout,"onloadend"in y?y.onloadend=m:y.onreadystatechange=function(){y&&4===y.readyState&&(0!==y.status||y.responseURL&&y.responseURL.startsWith("file:"))&&setTimeout(m)},y.onabort=function(){y&&(n(new xl("Request aborted",xl.ECONNABORTED,e,y)),M(),y=null)},y.onerror=function(t){const r=t&&t.message?t.message:"Network Error",i=new xl(r,xl.ERR_NETWORK,e,y);i.event=t||null,n(i),M(),y=null},y.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const i=r.transitional||Kl;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new xl(t,i.clarifyTimeoutError?xl.ETIMEDOUT:xl.ECONNABORTED,e,y)),M(),y=null},void 0===i&&s.setContentType(null),"setRequestHeader"in y&&pl.forEach(fl(s),function(e,t){y.setRequestHeader(t,e)}),pl.isUndefined(r.withCredentials)||(y.withCredentials=!!r.withCredentials),d&&"json"!==d&&(y.responseType=r.responseType),w&&([l,u]=tc(w,!0),y.addEventListener("progress",l)),p&&y.upload&&([a,c]=tc(p),y.upload.addEventListener("progress",a),y.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(o=t=>{y&&(n(!t||t.type?new $l(null,e,y):t),y.abort(),M(),y=null)},r.cancelToken&&r.cancelToken.subscribe(o),r.signal&&(r.signal.aborted?o():r.signal.addEventListener("abort",o)));const f=function(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}(r.url);if(f&&!Pl.protocols.includes(f))return n(new xl("Unsupported protocol "+f+":",xl.ERR_BAD_REQUEST,e)),void M();y.send(i||null)})};var yc=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const n=new AbortController;let r=!1;const i=function(e){if(!r){r=!0,o();const t=e instanceof Error?e:this.reason;n.abort(t instanceof xl?t:new $l(t instanceof Error?t.message:t))}};let s=t&&setTimeout(()=>{s=null,i(new xl(`timeout of ${t}ms exceeded`,xl.ETIMEDOUT))},t);const o=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener("abort",i)}),e=null)};e.forEach(e=>e.addEventListener("abort",i,{once:!0}));const{signal:a}=n;return a.unsubscribe=()=>pl.asap(o),a};const mc=function*(e,t){let n=e.byteLength;if(!t||n<t)return void(yield e);let r,i=0;for(;i<n;)r=i+t,yield e.slice(i,r),i=r},fc=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},Ic=(e,t,n,r)=>{const i=async function*(e,t){for await(const n of fc(e))yield*mc(n,t)}(e,t);let s,o=0,a=e=>{s||(s=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await i.next();if(t)return a(),void e.close();let s=r.byteLength;if(n){let e=o+=s;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw a(e),e}},cancel:e=>(a(e),i.return())},{highWaterMark:2})},gc=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,hc=(e,t,n)=>t+2<n&&gc(e.charCodeAt(t+1))&&gc(e.charCodeAt(t+2));const Lc="1.18.1",{isFunction:bc}=pl,Dc=e=>{if(!pl.isString(e))return e;try{return decodeURIComponent(e)}catch(t){return e}},Cc=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Nc=e=>{const t=void 0!==pl.global&&null!==pl.global?pl.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=pl.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:i,Request:s,Response:o}=e,a=i?bc(i):"function"==typeof fetch,l=bc(s),c=bc(o);if(!a)return!1;const u=a&&bc(n),d=a&&("function"==typeof r?(p=new r,e=>p.encode(e)):async e=>new Uint8Array(await new s(e).arrayBuffer()));var p;const w=l&&u&&Cc(()=>{let e=!1;const t=new s(Pl.origin,{body:new n,method:"POST",get duplex(){return e=!0,"half"}}),r=t.headers.has("Content-Type");return null!=t.body&&t.body.cancel(),e&&!r}),M=c&&u&&Cc(()=>pl.isReadableStream(new o("").body)),y={stream:M&&(e=>e.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!y[e]&&(y[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new xl(`Response type '${e}' is not supported`,xl.ERR_NOT_SUPPORT,n)})});const m=async e=>{if(null==e)return 0;if(pl.isBlob(e))return e.size;if(pl.isSpecCompliantForm(e)){const t=new s(Pl.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return pl.isArrayBufferView(e)||pl.isArrayBuffer(e)?e.byteLength:(pl.isURLSearchParams(e)&&(e+=""),pl.isString(e)?(await d(e)).byteLength:void 0)};return async e=>{let{url:t,method:n,data:a,signal:c,cancelToken:d,timeout:p,onDownloadProgress:f,onUploadProgress:I,responseType:g,headers:h,withCredentials:L="same-origin",fetchOptions:b,maxContentLength:D,maxBodyLength:C}=wc(e);const N=pl.isNumber(D)&&D>-1,x=pl.isNumber(C)&&C>-1;let T=i||fetch;g=g?(g+"").toLowerCase():"text";let S=yc([c,d&&d.toAbortSignal()],p),Z=null;const A=S&&S.unsubscribe&&(()=>{S.unsubscribe()});let X,v=null;const E=()=>new xl("Request body larger than maxBodyLength limit",xl.ERR_BAD_REQUEST,e,Z);try{let i;const c=(Y="auth",pl.hasOwnProp(e,Y)?e[Y]:void 0);if(c){const e=pl.getSafeProp(c,"username")||"";i={username:e,password:pl.getSafeProp(c,"password")||""}}if((e=>{const t=e.indexOf("://");let n=e;return-1!==t&&(n=n.slice(t+3)),n.includes("@")||n.includes(":")})(t)){const e=new URL(t,Pl.origin);if(!i&&(e.username||e.password)){const t=Dc(e.username);i={username:t,password:Dc(e.password)}}(e.username||e.password)&&(e.username="",e.password="",t=e.href)}if(i&&(h.delete("authorization"),h.set("Authorization","Basic "+btoa((j=(i.username||"")+":"+(i.password||""),encodeURIComponent(j).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))))))),N&&"string"==typeof t&&t.startsWith("data:")){const n=function(e){if(!e||"string"!=typeof e)return 0;if(!e.startsWith("data:"))return 0;const t=e.indexOf(",");if(t<0)return 0;const n=e.slice(5,t),r=e.slice(t+1);if(/;base64/i.test(n)){let e=r.length;const t=r.length;for(let n=0;n<t;n++)if(37===r.charCodeAt(n)&&n+2<t){const t=r.charCodeAt(n+1),i=r.charCodeAt(n+2);gc(t)&&gc(i)&&(e-=2,n+=2)}let n=0,i=t-1;const s=e=>e>=2&&37===r.charCodeAt(e-2)&&51===r.charCodeAt(e-1)&&(68===r.charCodeAt(e)||100===r.charCodeAt(e));i>=0&&(61===r.charCodeAt(i)?(n++,i--):s(i)&&(n++,i-=3)),1===n&&i>=0&&(61===r.charCodeAt(i)||s(i))&&n++;const o=3*Math.floor(e/4)-(n||0);return o>0?o:0}let i=0;for(let e=0,t=r.length;e<t;e++){const n=r.charCodeAt(e);if(37===n&&hc(r,e,t))i+=1,e+=2;else if(n<128)i+=1;else if(n<2048)i+=2;else if(n>=55296&&n<=56319&&e+1<t){const t=r.charCodeAt(e+1);t>=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}(t);if(n>D)throw new xl("maxContentLength size of "+D+" exceeded",xl.ERR_BAD_RESPONSE,e,Z)}if(x&&"get"!==n&&"head"!==n){const e=await m(a);if("number"==typeof e&&isFinite(e)&&(X=e,e>C))throw E()}const d=x&&(pl.isReadableStream(a)||pl.isStream(a)),p=(e,t,n)=>Ic(e,65536,e=>{if(x&&e>C)throw v=E();t&&t(e)},n);if(w&&"get"!==n&&"head"!==n&&(I||d)){if(X=null==X?await(async(e,t)=>{const n=pl.toFiniteNumber(e.getContentLength());return null==n?m(t):n})(h,a):X,0!==X||d){let e,n=new s(t,{method:"POST",body:a,duplex:"half"});if(pl.isFormData(a)&&(e=n.headers.get("content-type"))&&h.setContentType(e),n.body){const[e,t]=I&&nc(X,tc(rc(I)))||[];a=p(n.body,e,t)}}}else if(d&&!l&&u&&"get"!==n&&"head"!==n)a=p(a);else if(d&&l&&!w&&"get"!==n&&"head"!==n)throw new xl("Stream request bodies are not supported by the current fetch implementation",xl.ERR_NOT_SUPPORT,e,Z);pl.isString(L)||(L=L?"include":"omit");const G=l&&"credentials"in s.prototype;if(pl.isFormData(a)){const e=h.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&h.delete("content-type")}h.set("User-Agent","axios/"+Lc,!1);const z={...b,signal:S,method:n.toUpperCase(),headers:fl(h.normalize()),body:a,duplex:"half",credentials:G?L:void 0};Z=l&&new s(t,z);let K=await(l?T(Z,b):T(t,z));const W=Dl.from(K.headers);if(N){const t=pl.toFiniteNumber(W.getContentLength());if(null!=t&&t>D)throw new xl("maxContentLength size of "+D+" exceeded",xl.ERR_BAD_RESPONSE,e,Z)}const R=M&&("stream"===g||"response"===g);if(M&&K.body&&(f||N||R&&A)){const t={};["status","statusText","headers"].forEach(e=>{t[e]=K[e]});const n=pl.toFiniteNumber(W.getContentLength()),[r,i]=f&&nc(n,tc(rc(f),!0))||[];let s=0;const a=t=>{if(N&&(s=t,s>D))throw new xl("maxContentLength size of "+D+" exceeded",xl.ERR_BAD_RESPONSE,e,Z);r&&r(t)};K=new o(Ic(K.body,65536,a,()=>{i&&i(),A&&A()}),t)}g=g||"text";let U=await y[pl.findKey(y,g)||"text"](K,e);if(N&&!M&&!R){let t;if(null!=U&&("number"==typeof U.byteLength?t=U.byteLength:"number"==typeof U.size?t=U.size:"string"==typeof U&&(t="function"==typeof r?(new r).encode(U).byteLength:U.length)),"number"==typeof t&&t>D)throw new xl("maxContentLength size of "+D+" exceeded",xl.ERR_BAD_RESPONSE,e,Z)}return!R&&A&&A(),await new Promise((t,n)=>{ec(t,n,{data:U,headers:Dl.from(K.headers),status:K.status,statusText:K.statusText,config:e,request:Z})})}catch(t){if(A&&A(),S&&S.aborted&&S.reason instanceof xl){const n=S.reason;throw n.config=e,Z&&(n.request=Z),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(v)throw Z&&!v.request&&(v.request=Z),v;if(t instanceof xl)throw Z&&!t.request&&(t.request=Z),t;if(t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message)){const n=new xl("Network Error",xl.ERR_NETWORK,e,Z,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw xl.from(t,t&&t.code,e,Z,t&&t.response)}var j,Y}},xc=new Map,Tc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:i}=t,s=[r,i,n];let o,a,l=s.length,c=xc;for(;l--;)o=s[l],a=c.get(o),void 0===a&&c.set(o,a=l?new Map:Nc(t)),c=a;return a};Tc();const Sc={http:null,xhr:Mc,fetch:{get:Tc}};pl.forEach(Sc,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch(e){}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Zc=e=>`- ${e}`,Ac=e=>pl.isFunction(e)||null===e||!1===e;var Xc={getAdapter:function(e,t){e=pl.isArray(e)?e:[e];const{length:n}=e;let r,i;const s={};for(let o=0;o<n;o++){let n;if(r=e[o],i=r,!Ac(r)&&(i=Sc[(n=String(r)).toLowerCase()],void 0===i))throw new xl(`Unknown adapter '${n}'`);if(i&&(pl.isFunction(i)||(i=i.get(t))))break;s[n||"#"+o]=i}if(!i){const e=Object.entries(s).map(([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));let t=n?e.length>1?"since :\n"+e.map(Zc).join("\n"):" "+Zc(e[0]):"as no adapter specified";throw new xl("There is no suitable adapter to dispatch the request "+t,xl.ERR_NOT_SUPPORT)}return i},adapters:Sc};function vc(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $l(null,e)}function Ec(e){vc(e),e.headers=Dl.from(e.headers),e.data=_l.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Xc.getAdapter(e.adapter||Fl.adapter,e)(e).then(function(t){vc(e),e.response=t;try{t.data=_l.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=Dl.from(t.headers),t},function(t){if(!ql(t)&&(vc(e),t&&t.response)){e.response=t.response;try{t.response.data=_l.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=Dl.from(t.response.headers)}return Promise.reject(t)})}const jc={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{jc[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Yc={};jc.transitional=function(e,t,n){function r(e,t){return"[Axios v"+Lc+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,s)=>{if(!1===e)throw new xl(r(i," has been removed"+(t?" in "+t:"")),xl.ERR_DEPRECATED);return t&&!Yc[i]&&(Yc[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,s)}},jc.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var Gc={assertOptions:function(e,t,n){if("object"!=typeof e||null===e)throw new xl("options must be an object",xl.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const s=r[i],o=Object.prototype.hasOwnProperty.call(t,s)?t[s]:void 0;if(o){const t=e[s],n=void 0===t||o(t,s,e);if(!0!==n)throw new xl("option "+s+" must be "+n,xl.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new xl("Unknown option "+s,xl.ERR_BAD_OPTION)}},validators:jc};const zc=Gc.validators;class Kc{constructor(e){this.defaults=e||{},this.interceptors={request:new zl,response:new zl}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=(()=>{if(!t.stack)return"";const e=t.stack.indexOf("\n");return-1===e?"":t.stack.slice(e+1)})();try{if(e.stack){if(n){const t=n.indexOf("\n"),r=-1===t?-1:n.indexOf("\n",t+1),i=-1===r?"":n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+="\n"+n)}}else e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=dc(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&Gc.assertOptions(n,{silentJSONParsing:zc.transitional(zc.boolean),forcedJSONParsing:zc.transitional(zc.boolean),clarifyTimeoutError:zc.transitional(zc.boolean),legacyInterceptorReqResOrdering:zc.transitional(zc.boolean),advertiseZstdAcceptEncoding:zc.transitional(zc.boolean),validateStatusUndefinedResolves:zc.transitional(zc.boolean)},!1),null!=r&&(pl.isFunction(r)?t.paramsSerializer={serialize:r}:Gc.assertOptions(r,{encode:zc.function,serialize:zc.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),Gc.assertOptions(t,{baseUrl:zc.spelling("baseURL"),withXsrfToken:zc.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=i&&pl.merge(i.common,i[t.method]);i&&pl.forEach(["delete","get","head","post","put","patch","query","common"],e=>{delete i[e]}),t.headers=Dl.concat(s,i);const o=[];let a=!0;this.interceptors.request.forEach(function(e){if("function"==typeof e.runWhen&&!1===e.runWhen(t))return;a=a&&e.synchronous;const n=t.transitional||Kl;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});const l=[];let c;this.interceptors.response.forEach(function(e){l.push(e.fulfilled,e.rejected)});let u,d=0;if(!a){const e=[Ec.bind(this),void 0];for(e.unshift(...o),e.push(...l),u=e.length,c=Promise.resolve(t);d<u;)c=c.then(e[d++],e[d++]);return c}u=o.length;let p=t;for(;d<u;){const e=o[d++],t=o[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{c=Ec.call(this,p)}catch(e){return Promise.reject(e)}for(d=0,u=l.length;d<u;)c=c.then(l[d++],l[d++]);return c}getUri(e){return Gl(cc((e=dc(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}}pl.forEach(["delete","get","head","options"],function(e){Kc.prototype[e]=function(t,n){return this.request(dc(n||{},{method:e,url:t,data:n&&pl.hasOwnProp(n,"data")?n.data:void 0}))}}),pl.forEach(["post","put","patch","query"],function(e){function t(t){return function(n,r,i){return this.request(dc(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Kc.prototype[e]=t(),"query"!==e&&(Kc.prototype[e+"Form"]=t(!0))});var Wc=Kc;class Rc{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(e){t=e});const n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new $l(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new Rc(function(t){e=t}),cancel:e}}}var Uc=Rc;const Vc={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Vc).forEach(([e,t])=>{Vc[t]=e});var Hc=Vc;const kc=function e(t){const n=new Wc(t),r=Ia(Wc.prototype.request,n);return pl.extend(r,Wc.prototype,n,{allOwnKeys:!0}),pl.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(dc(t,n))},r}(Fl);kc.Axios=Wc,kc.CanceledError=$l,kc.CancelToken=Uc,kc.isCancel=ql,kc.VERSION=Lc,kc.toFormData=Xl,kc.AxiosError=xl,kc.Cancel=kc.CanceledError,kc.all=function(e){return Promise.all(e)},kc.spread=function(e){return function(t){return e.apply(null,t)}},kc.isAxiosError=function(e){return pl.isObject(e)&&!0===e.isAxiosError},kc.mergeConfig=dc,kc.AxiosHeaders=Dl,kc.formToJSON=e=>Ol(pl.isHTMLForm(e)?new FormData(e):e),kc.getAdapter=Xc.getAdapter,kc.HttpStatusCode=Hc,kc.default=kc;var Pc=kc;function Qc(e,t,n,r){for(var i=-1,s=null==e?0:e.length;++i<s;){var o=e[i];t(r,o,n(o),e)}return r}function Oc(e,t,n,r){return _e(e,function(e,i,s){t(r,e,n(e),s)}),r}var Jc,Bc,Fc=Object.prototype.hasOwnProperty,_c=(Jc=function(e,t,n){Fc.call(e,n)?e[n].push(t):gi(e,n,[t])},function(e,t){var n=c(e)?Qc:Oc,r=Bc?Bc():{};return n(e,Jc,Jt(t),r)}),qc=_c;function $c(n,r=1){return function(e,t=1,n={}){let r=1,i=Me(n,"path"),s=Me(n,"fs");if(!ir(e,{fs:s}))throw new Error(`fd[${e}] is not a folder`);return null!==t&&Sn(t)&&(t=Tn(t))<1&&(t=1),function e(n){let o=[];return ir(n,{fs:s})?($e(s.readdirSync(n),function(a){let l=i.resolve(n,a),c=null;try{c=s.statSync(l)}catch(e){}c&&c.isDirectory()?(o.push({isFolder:!0,level:r,path:l,name:i.basename(l)}),r+=1,(r<=t||null===t)&&(o=o.concat(e(l))),r-=1):o.push({isFolder:!1,level:r,path:l,name:i.basename(l)})}),o):o}(e)}(n,r,{path:e,fs:t})}function eu(e){if(!ar(e))throw new Error("fp is not a file");let n=Ir(),r=t.createReadStream(e,{encoding:"utf8"});return n.emit("create"),o.createInterface({input:r,crlfDelay:1/0}).on("line",e=>{n.emit("line",e)}),r.on("close",()=>{n.emit("close")}),n}async function tu(e=7,t="hr",n={}){let r=Me(n,"fdLog");qt(r)||(r="./logs");let i="day"===t?"YYYY-MM-DD":"YYYY-MM-DDTHH",s="hr"===t?"hour":"day",o=ur(),a=o.subtract(e,"day"),l=a.startOf(s),c=o.startOf(s),u={};for(;!l.isAfter(c);)u[l.format(i)]={data:{count:0}},l=l.add(1,s);let d=$c(r);d=function(e,t,n){let r=t.format(n);return na(e,e=>{let t=Me(e,"name","").replace(/\.log$/,"");return!/^\d{4}-\d{2}-\d{2}/.test(t)||t>=r.slice(0,t.length)})}(d,a,i);let p=[];for(let e of d){let t=eu(e.path);t.on("line",e=>{let t=null;try{t=JSON.parse(e);let n=ur(t.time),r=n.format(i),s=n.isAfter(a),o=qt(t.event);s&&o&&p.push({timeFmt:r,...t})}catch(e){}});let n=kn();t.on("close",()=>{n.resolve()}),await n}let w=function(e,t){var n={};return t=Jt(t),Be(e,function(e,r,i){gi(n,r,t(e,r,i))}),n}(qc(p,"timeFmt"),e=>{let t=As(e),n=qc(e,"event"),r={};return $e(n,(e,t)=>{r[t]=As(e)}),{data:{count:t,...r}}}),M=Fi({},u,w);return Object.keys(M).sort().map(e=>({time:e,...M[e]}))}var nu={exports:{}};function ru(e){try{return JSON.stringify(e)}catch(e){return'"[Circular]"'}}const iu=function(e,t,n){var r=n&&n.stringify||ru;if("object"==typeof e&&null!==e){var i=t.length+1;if(1===i)return e;var s=new Array(i);s[0]=r(e);for(var o=1;o<i;o++)s[o]=r(t[o]);return s.join(" ")}if("string"!=typeof e)return e;var a=t.length;if(0===a)return e;for(var l="",c=0,u=-1,d=e&&e.length||0,p=0;p<d;){if(37===e.charCodeAt(p)&&p+1<d){switch(u=u>-1?u:0,e.charCodeAt(p+1)){case 100:case 102:if(c>=a)break;if(null==t[c])break;u<p&&(l+=e.slice(u,p)),l+=Number(t[c]),u=p+2,p++;break;case 105:if(c>=a)break;if(null==t[c])break;u<p&&(l+=e.slice(u,p)),l+=Math.floor(Number(t[c])),u=p+2,p++;break;case 79:case 111:case 106:if(c>=a)break;if(void 0===t[c])break;u<p&&(l+=e.slice(u,p));var w=typeof t[c];if("string"===w){l+="'"+t[c]+"'",u=p+2,p++;break}if("function"===w){l+=t[c].name||"<anonymous>",u=p+2,p++;break}l+=r(t[c]),u=p+2,p++;break;case 115:if(c>=a)break;u<p&&(l+=e.slice(u,p)),l+=String(t[c]),u=p+2,p++;break;case 37:u<p&&(l+=e.slice(u,p)),l+="%",u=p+2,p++,c--}++c}++p}if(-1===u)return e;u<d&&(l+=e.slice(u));return l};nu.exports=pu;const su=function(){function e(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(t){return e(self)||e(window)||e(this)||{}}}().console||{},ou={mapHttpRequest:Iu,mapHttpResponse:Iu,wrapRequestSerializer:gu,wrapResponseSerializer:gu,wrapErrorSerializer:gu,req:Iu,res:Iu,err:mu,errWithCause:mu};function au(e,t){return"silent"===e?1/0:t.levels.values[e]}const lu=Symbol("pino.logFuncs"),cu=Symbol("pino.hierarchy"),uu={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function du(e,t){const n={logger:t,parent:e[cu]};t[cu]=n}function pu(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const n=e.browser.write||su;e.browser.write&&(e.browser.asObject=!0);const r=e.serializers||{},i=function(e,t){if(Array.isArray(e))return e.filter(function(e){return"!stdSerializers.err"!==e});return!0===e&&Object.keys(t)}(e.browser.serialize,r);let s=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(s=!1);const o=Object.keys(e.customLevels||{}),a=["error","fatal","warn","info","debug","trace"].concat(o);"function"==typeof n&&a.forEach(function(e){n[e]=n}),(!1===e.enabled||e.browser.disabled)&&(e.level="silent");const l=e.level||"info",c=Object.create(n);c.log||(c.log=hu),function(e,t,n){const r={};t.forEach(e=>{r[e]=n[e]?n[e]:su[e]||su[uu[e]||"log"]||hu}),e[lu]=r}(c,a,n),du({},c),Object.defineProperty(c,"levelVal",{get:function(){return au(this.level,this)}}),Object.defineProperty(c,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,wu(this,u,c,"error"),wu(this,u,c,"fatal"),wu(this,u,c,"warn"),wu(this,u,c,"info"),wu(this,u,c,"debug"),wu(this,u,c,"trace"),o.forEach(e=>{wu(this,u,c,e)})}});const u={transmit:t,serialize:i,asObject:e.browser.asObject,asObjectBindingsOnly:e.browser.asObjectBindingsOnly,formatters:e.browser.formatters,reportCaller:e.browser.reportCaller,levels:a,timestamp:fu(e),messageKey:e.messageKey||"msg",onChild:e.onChild||hu};function d(n,s,o){if(!s)throw new Error("missing bindings for child Pino");o=o||{},i&&s.serializers&&(o.serializers=s.serializers);const a=o.serializers;if(i&&a){var l=Object.assign({},r,a),c=!0===e.browser.serialize?Object.keys(l):i;delete s.serializers,Mu([s],c,l,this._stdErrSerialize)}function u(e){this._childLevel=1+(0|e._childLevel),this.bindings=s,l&&(this.serializers=l,this._serialize=c),t&&(this._logEvent=yu([].concat(e._logEvent.bindings,s)))}u.prototype=this;const p=new u(this);return du(this,p),p.child=function(...e){return d.call(this,n,...e)},p.level=o.level||this.level,n.onChild(p),p}return c.levels=function(e){const t=e.customLevels||{},n=Object.assign({},pu.levels.values,t),r=Object.assign({},pu.levels.labels,function(e){const t={};return Object.keys(e).forEach(function(n){t[e[n]]=n}),t}(t));return{values:n,labels:r}}(e),c.level=l,c.isLevelEnabled=function(e){return!!this.levels.values[e]&&this.levels.values[e]>=this.levels.values[this.level]},c.setMaxListeners=c.getMaxListeners=c.emit=c.addListener=c.on=c.prependListener=c.once=c.prependOnceListener=c.removeListener=c.removeAllListeners=c.listeners=c.listenerCount=c.eventNames=c.write=c.flush=hu,c.serializers=r,c._serialize=i,c._stdErrSerialize=s,c.child=function(...e){return d.call(this,u,...e)},t&&(c._logEvent=yu()),c}function wu(e,t,n,r){if(Object.defineProperty(e,r,{value:au(e.level,n)>au(r,n)?hu:n[lu][r],writable:!0,enumerable:!0,configurable:!0}),e[r]===hu){if(!t.transmit)return;const i=au(t.transmit.level||e.level,n);if(au(r,n)<i)return}e[r]=function(e,t,n,r){return i=e[lu][r],function(){const s=t.timestamp(),o=new Array(arguments.length),a=Object.getPrototypeOf&&Object.getPrototypeOf(this)===su?su:this;for(var l=0;l<o.length;l++)o[l]=arguments[l];var c=!1;if(t.serialize&&(Mu(o,this._serialize,this.serializers,this._stdErrSerialize),c=!0),t.asObject||t.formatters){const e=function(e,t,n,r,i){const{level:s,log:o=e=>e}=i.formatters||{},a=n.slice();let l=a[0];const c={};let u=1+(0|e._childLevel);if(u<1&&(u=1),r&&(c.time=r),s){const n=s(t,e.levels.values[t]);Object.assign(c,n)}else c.level=e.levels.values[t];if(i.asObjectBindingsOnly){if(null!==l&&"object"==typeof l)for(;u--&&"object"==typeof a[0];)Object.assign(c,a.shift());return[o(c),...a]}if(null!==l&&"object"==typeof l){for(;u--&&"object"==typeof a[0];)Object.assign(c,a.shift());l=a.length?iu(a.shift(),a):void 0}else"string"==typeof l&&(l=iu(a.shift(),a));return void 0!==l&&(c[i.messageKey]=l),[o(c)]}(this,r,o,s,t);if(t.reportCaller&&e&&e.length>0&&e[0]&&"object"==typeof e[0])try{const t=Du();t&&(e[0].caller=t)}catch(e){}i.call(a,...e)}else{if(t.reportCaller)try{const e=Du();e&&o.push(e)}catch(e){}i.apply(a,o)}if(t.transmit){const i=t.transmit.level||e._level,a=au(i,n),l=au(r,n);if(l<a)return;!function(e,t,n,r=!1){const i=t.send,s=t.ts,o=t.methodLevel,a=t.methodValue,l=t.val,c=e._logEvent.bindings;r||Mu(n,e._serialize||Object.keys(e.serializers),e.serializers,void 0===e._stdErrSerialize||e._stdErrSerialize),e._logEvent.ts=s,e._logEvent.messages=n.filter(function(e){return-1===c.indexOf(e)}),e._logEvent.level.label=o,e._logEvent.level.value=a,i(o,e._logEvent,l),e._logEvent=yu(c)}(this,{ts:s,methodLevel:r,methodValue:l,transmitLevel:i,transmitValue:n.levels.values[t.transmit.level||e._level],send:t.transmit.send,val:au(e._level,n)},o,c)}};var i}(e,t,n,r);const i=function(e){const t=[];e.bindings&&t.push(e.bindings);let n=e[cu];for(;n.parent;)n=n.parent,n.logger.bindings&&t.push(n.logger.bindings);return t.reverse()}(e);0!==i.length&&(e[r]=function(e,t){return function(){return t.apply(this,[...e,...arguments])}}(i,e[r]))}function Mu(e,t,n,r){for(const i in e)if(r&&e[i]instanceof Error)e[i]=pu.stdSerializers.err(e[i]);else if("object"==typeof e[i]&&!Array.isArray(e[i])&&t)for(const r in e[i])t.indexOf(r)>-1&&r in n&&(e[i][r]=n[r](e[i][r]))}function yu(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function mu(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const n in e)void 0===t[n]&&(t[n]=e[n]);return t}function fu(e){return"function"==typeof e.timestamp?e.timestamp:!1===e.timestamp?Lu:bu}function Iu(){return{}}function gu(e){return e}function hu(){}function Lu(){return!1}function bu(){return Date.now()}function Du(){const e=(new Error).stack;if(!e)return null;const t=e.split("\n");for(let e=1;e<t.length;e++){const n=t[e].trim();if(/(^at\s+)?(createWrap|LOG|set\s*\(|asObject|Object\.apply|Function\.apply)/.test(n))continue;if(-1!==n.indexOf("browser.js"))continue;if(-1!==n.indexOf("node:internal"))continue;if(-1!==n.indexOf("node_modules"))continue;let r=n.match(/\((.*?):(\d+):(\d+)\)/);if(r||(r=n.match(/at\s+(.*?):(\d+):(\d+)/)),r){return r[1]+":"+r[2]+":"+r[3]}}return null}pu.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},pu.stdSerializers=ou,pu.stdTimeFunctions=Object.assign({},{nullTime:Lu,epochTime:bu,unixTime:function(){return Math.round(Date.now()/1e3)},isoTime:function(){return new Date(Date.now()).toISOString()}}),nu.exports.default=pu,nu.exports.pino=pu;var Cu=On(nu.exports);let Nu=a.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(Nu).href:"undefined"==typeof document?location.href:l&&"SCRIPT"===l.tagName.toUpperCase()&&l.src||new URL("w-web-api.umd.js",document.baseURI).href),xu=e.dirname(Nu);let Tu=(n={})=>{let r=Me(n,"logFd","");qt(r)||(r="./logs");let i=Me(n,"logInterval","");qt(i)||(i="hr");let s=function(n={}){let r=Ir(),i=Me(n,"timeZone",null),s=Me(n,"fdLog");qt(s)||(s="./_logs");let o=Me(n,"interval");"day"!==o&&"hr"!==o&&(o="day");let a=Me(n,"numKeep");Sn(a)||(a="day"===o?365:8760),a=Tn(a);let l=Cu.transport({targets:[{level:"info",target:e.resolve(xu,"./formatter.mjs"),options:{interval:o,fdLog:s,timeZone:i}}]}),c=Cu(l),u=()=>{try{if(!sr(s))return;let n="hr"===o?/^\d{4}-\d{2}-\d{2}T\d{2}\.log$/:/^\d{4}-\d{2}-\d{2}\.log$/,i=t.readdirSync(s).filter(e=>n.test(e));i.sort();let l=i.length-a;if(l<=0)return;let c=i.slice(0,l);for(let n of c){let i=e.join(s,n);try{t.unlinkSync(i),r.emit("delete",{fp:i,fn:n})}catch(e){}}}catch(e){console.error("WSyslog cleanLogs error:",e)}};u();let d=setInterval(u,36e5);d.unref();let p=null,w=e=>{let t=c[e].bind(c);return(...n)=>{try{r.emit(e,{args:n})}catch(e){}t(...n)}};return r.fatal=w("fatal"),r.error=w("error"),r.warn=w("warn"),r.info=w("info"),r.debug=w("debug"),r.trace=w("trace"),r.cleanLogs=u,r.clear=(e={})=>{if(null!==p)return p;let t=Me(e,"timeLimit");Sn(t)||(t=6e4),p=kn();let n=!1,r=()=>{n||(n=!0,clearInterval(d),p.resolve())},i=setTimeout(()=>{try{l.worker.terminate()}catch(e){}r()},t);try{c.flush(e=>{if(e||l.closed)return clearTimeout(i),void r();l.once("close",()=>{clearTimeout(i),r()}),l.end()})}catch(e){clearTimeout(i),r()}return p},r}({fdLog:r,interval:i});return s};const Su=[];for(let e=0;e<256;++e)Su.push((e+256).toString(16).slice(1));const Zu=new Uint8Array(16);function Au(){return crypto.getRandomValues(Zu)}const Xu={};function vu(e,t,n){let r;if(e)r=Eu(e.random??e.rng?.()??Au(),e.msecs,e.seq,t,n);else{const e=Date.now(),i=Au();!function(e,t,n){e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=n[6]<<23|n[7]<<16|n[8]<<8|n[9],e.msecs=t):(e.seq=e.seq+1|0,0===e.seq&&e.msecs++)}(Xu,e,i),r=Eu(i,Xu.msecs,Xu.seq,t,n)}return t??function(e,t=0){return(Su[e[t+0]]+Su[e[t+1]]+Su[e[t+2]]+Su[e[t+3]]+"-"+Su[e[t+4]]+Su[e[t+5]]+"-"+Su[e[t+6]]+Su[e[t+7]]+"-"+Su[e[t+8]]+Su[e[t+9]]+"-"+Su[e[t+10]]+Su[e[t+11]]+Su[e[t+12]]+Su[e[t+13]]+Su[e[t+14]]+Su[e[t+15]]).toLowerCase()}(r)}function Eu(e,t,n,r,i=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(r){if(i<0||i+16>r.length)throw new RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`)}else r=new Uint8Array(16),i=0;return t??=Date.now(),n??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],r[i++]=t/1099511627776&255,r[i++]=t/4294967296&255,r[i++]=t/16777216&255,r[i++]=t/65536&255,r[i++]=t/256&255,r[i++]=255&t,r[i++]=112|n>>>28&15,r[i++]=n>>>20&255,r[i++]=128|n>>>14&63,r[i++]=n>>>6&255,r[i++]=n<<2&255|3&e[10],r[i++]=e[11],r[i++]=e[12],r[i++]=e[13],r[i++]=e[14],r[i++]=e[15],r}function ju(e){return e.indexOf("\\\\")>=0?"```"+e+"```":e}let Yu={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},name:{name:"名稱",type:"STRING"},description:{name:"說明",type:"TEXT"},url:{name:"網址",type:"STRING"},method:{name:"方法",type:"STRING"},version:{name:"版本",type:"STRING"},group:{name:"群組",type:"STRING"},levels:{name:"階層群組",type:"STRING"},keywords:{name:"關鍵字",type:"STRING"},state:{name:"狀態",type:"STRING"},creator:{name:"創建者",type:"STRING"},dataSource:{name:"資料提供者",type:"STRING"},tokens:{name:"金鑰",type:"TEXT"},mdInputParams:{name:"輸入參數md說明",type:"STRING"},inputExample:{name:"輸入範例",type:"STRING"},mdOutputParams:{name:"輸出資料md說明",type:"STRING"},outputExample:{name:"輸出範例",type:"STRING"},testBaseUrl:{name:"測試基底網址",type:"STRING"},authType:{name:"認證類型",type:"STRING"},authConfigJson:{name:"認證設定JSON",type:"TEXT"},defaultHeadersJson:{name:"預設標頭JSON",type:"TEXT"},defaultQueryJson:{name:"預設查詢參數JSON",type:"TEXT"},defaultBodyJson:{name:"預設請求內容JSON",type:"TEXT"},contentType:{name:"內容類型",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"},isActive:{name:"是否有效",type:"STRING"}},Gu=(e={})=>{let t=nr(e,Je(Yu));return t.id=`${vu()}`,t.timeCreate=Hs(),t.timeUpdate=t.timeCreate,t.isActive="y",t.authType=qt(t.authType)?t.authType:"none",t.contentType=qt(t.contentType)?t.contentType:"application/json",t},zu={keyTable:"apis",tableNameCht:"APIs",tableNameEng:"APIs",settings:Yu,funNew:Gu,funTest:()=>{let e=Ft([{id:"id-for-apis-sys-1",name:"取得API清單",description:"API管理中心取得API清單資訊",url:"http://localhost:11005/getAPIsList",method:"get",version:"v1",group:"全部",levels:"API",keywords:"API;center",state:"ok",creator:"apis-system",dataSource:"apis-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-1",name:"取得寵物清單",description:"寵物管理中心取得寵物清單資訊",url:"http://localhost:11005/getPetsList",method:"get",version:"v1",group:"寵物",levels:"寵物",keywords:"pets",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-dogs-1",name:"取得狗狗清單",description:"取得狗狗清單資訊",url:"http://localhost:11005/getDogsList",method:"get",version:"v1",group:"寵物",levels:"寵物.狗狗",keywords:"pets;dogs",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-dogs-2",name:"新增狗狗資訊",description:"新增狗狗資訊",url:"http://localhost:11005/addDog",method:"post",version:"v1",group:"寵物",levels:"寵物.狗狗",keywords:"pets;dogs",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### POST參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-dogs-3",name:"變更狗狗資訊",description:"變更狗狗資訊",url:"http://localhost:11005/updateDog",method:"put",version:"v1",group:"寵物",levels:"寵物.狗狗",keywords:"pets;dogs",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-dogs-4",name:"刪除狗狗資訊",description:"刪除狗狗資訊",url:"http://localhost:11005/deleteDog",method:"del",version:"v1",group:"寵物",levels:"寵物.狗狗",keywords:"pets;dogs",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-cats-1",name:"取得貓咪清單",description:"取得貓咪清單資訊",url:"http://localhost:11005/getCatsList",method:"get",version:"v1",group:"寵物",levels:"寵物.貓咪",keywords:"pets;cats",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-cats-2",name:"新增貓咪資訊",description:"新增貓咪資訊",url:"http://localhost:11005/addCat",method:"post",version:"v1",group:"寵物",levels:"寵物.貓咪",keywords:"pets;cats",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### POST參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-cats-3",name:"變更貓咪資訊",description:"變更貓咪資訊",url:"http://localhost:11005/updateCat",method:"put",version:"v1",group:"寵物",levels:"寵物.貓咪",keywords:"pets;cats",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-cats-4",name:"刪除貓咪資訊",description:"刪除貓咪資訊",url:"http://localhost:11005/deleteCat",method:"del",version:"v1",group:"寵物",levels:"寵物.貓咪",keywords:"pets;cats",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-vehicles-cars-1",name:"取得汽車清單",description:"取得汽車清單資訊",url:"http://localhost:11005/getcarsList",method:"get",version:"v1",group:"寵物",levels:"交通工具.汽車",keywords:"vehicles;cars",state:"ok",creator:"vehicles-system",dataSource:"vehicles-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-vehicles-cars-2",name:"新增汽車資訊",description:"新增汽車資訊",url:"http://localhost:11005/addDog",method:"post",version:"v1",group:"寵物",levels:"交通工具.汽車",keywords:"vehicles;cars",state:"ok",creator:"vehicles-system",dataSource:"vehicles-data",mdInputParams:"### POST參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-vehicles-cars-3",name:"變更汽車資訊",description:"變更汽車資訊",url:"http://localhost:11005/updateDog",method:"put",version:"v1",group:"寵物",levels:"交通工具.汽車",keywords:"vehicles;cars",state:"ok",creator:"vehicles-system",dataSource:"vehicles-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-vehicles-cars-4",name:"刪除汽車資訊",description:"刪除汽車資訊",url:"http://localhost:11005/deleteDog",method:"del",version:"v1",group:"寵物",levels:"交通工具.汽車",keywords:"vehicles;cars",state:"ok",creator:"vehicles-system",dataSource:"vehicles-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${ju("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '}],(e,t)=>{let n=Gu({...e,order:t});return qt(e.timeUpdate)&&(n.timeUpdate=e.timeUpdate),n=function(e,t){if(!en(e))return{};if(!ln(t))return{};let n={};return $e(t,function(t){Cr(e,t)&&(n[t]=Me(e,t))}),n}(n,Je(Yu)),n});return console.log("已產生: {keyTable} 測試資料",e),e}};function Ku(e,t={}){let n=Me(t,"useCreateStorage");yr(n)||(n=!1);let{keyTable:r,tableNameCht:i,tableNameEng:s,settings:o,parser:a,funNew:l,funTest:c,ext:u}=e;if(!qt(r))throw new Error(`invalid keyTable[${r}]`);if(qt(i)||(i=r),qt(s)||(s=r),!tn(o))throw new Error("invalid settings");tn(u)||(u=null),tn(a)||(a=null),Kn(l)||(l=null);let d=null;Kn(c)&&(d=async e=>{if(!tn(e))throw new Error("invalid wo");if(!Cr(e,r))throw console.log(e),new Error(`keyTable[${r}] is not in wo`);let t=[];try{t=c(),Wn(t)&&(t=await t)}catch(e){throw console.log(`keyTable[${r}] funTest catch`,e),new Error(e)}if(0!==As(t))return n&&await e[r].createStorage(),await e[r].save(t),t});let p={},w={};return $e(Je(o),e=>{let t=Me(o,`${e}.name`,"");qt(t)&&(p[e]=t);let n=Me(o,`${e}.type`,"");qt(n)&&(w[e]=n)}),{...e,keyTable:r,tableNameCht:i,tableNameEng:s,settings:o,keys:Je(o),kpType:w,kpHead:p,parser:a,funNew:l,funTest:c,funTestAndSave:d,ext:u}}let Wu={apis:zu},Ru={};for(let e in Wu)Ru[e]=Ku(Wu[e],{useCreateStorage:!1});return function(n,r,i,s,o,a,l={}){let c=null;if(!Kn(n))throw console.log("invalid WOrm",n),new Error("invalid WOrm");if(!qt(r))throw console.log("invalid url",r),new Error("invalid url");if(!qt(i))throw console.log("invalid db",i),new Error("invalid db");if(!Kn(s))throw console.log("invalid getUserByToken",s),new Error("invalid getUserByToken");if(!Kn(o))throw console.log("invalid verifyClientUser",o),new Error("invalid verifyClientUser");if(!Kn(a))throw console.log("invalid verifyAppUser",a),new Error("invalid verifyAppUser");let u=Me(l,"serverPort");Sn(u)||(u=11005),u=Tn(u);let d=Me(l,"useCheckUser",!1),p=Me(l,"getUserById",null),w=Me(l,"useExcludeWhenNotAdmin",!1),M=Me(l,"webName",{}),y=Me(l,"webDescription",{}),m=Me(l,"webLogo",""),f=Me(l,"subfolder","");var I,g;qt(f)&&("/"===Vn(f,1)&&(g=1,f=qt(I=f)&&Rn(g)?0===(g=Tn(g))?I:Un(I,I.length-g):""),"/"!==Un(f,1)&&(f=`/${f}`));let h=Me(l,"urlRedirect",""),L=Me(l,"showLanguage","y"),b=Me(l,"language","eng"),D=Me(l,"logFd","./logs"),C=Me(l,"kpLangExt",{}),N=fa({kpLangExt:C,webName:M,webDescription:y}),x={useCheckUser:d,getUserById:p,useExcludeWhenNotAdmin:w},T={};try{T=ya(Ru,n,r,i,x)}catch(e){throw console.log("WServOrm init failed",e),e}let{woItems:S,procOrm:Z}=T,A=Tu(l),X=e=>qt(e)?Un(e,4)+"***":e,v=(e,t)=>{let n="kpfun-"+e;return async(...e)=>{try{let r=await t(...e);return A.info({event:n}),r}catch(e){return A.error({event:n,err:e}),Promise.reject(e)}}},{proxyRequest:E}=function(e={}){let t=Me(e,"srLog",null),n=Me(e,"isAllowTarget",null);return{proxyRequest:async(e={})=>{let r=Me(e,"method","GET");qt(r)||(r="GET"),r=r.toUpperCase();let i=Me(e,"url","");if(!qt(i))return Promise.reject("errReqUrlInvalid");if(!i.startsWith("http://")&&!i.startsWith("https://"))return Promise.reject("errReqUrlInvalid");if("function"==typeof n&&!1===n(i))return Promise.reject("errReqTargetNotAllowed");let s=Me(e,"headers",{});en(s)||(s={}),delete s.host,delete s.Host,delete s["content-length"],delete s["Content-Length"];let o=Me(e,"query",null),a=null;en(o)&&Object.keys(o).length>0&&(a=o);let l,c=Me(e,"body",void 0);"GET"!==r&&"HEAD"!==r&&void 0!==c&&(l=c);let u,d=Me(e,"timeout",3e4);("number"!=typeof d||d<=0)&&(d=3e4);let p=Date.now();try{let e=await Pc({method:r,url:i,headers:s,params:a,data:l,timeout:d,validateStatus:()=>!0}),t=Date.now()-p;u={status:e.status,statusText:e.statusText,headers:e.headers,data:e.data,durationMs:t}}catch(e){return t&&t.error({event:"proxyRequest-axios",msg:Me(e,"message",String(e))}),Promise.reject("errProxyRequestFailed")}return u}}}({srLog:A}),{getApisList:j,saveApi:Y,deleteApi:G}=function(e={}){let{woItems:t,procOrm:n,ds:r}=e;return{getApisList:async e=>await t.apis.select({}),saveApi:async(e,t)=>{if(!tn(t))return Promise.reject("errApiRowInvalid");let i=r.apis.funNew(t);return qt(t.id)&&(i.id=t.id,qt(t.timeCreate)&&(i.timeCreate=t.timeCreate)),await n(e,"apis","save",[i])},deleteApi:async(e,t)=>qt(t)?await n(e,"apis","del",{id:t}):Promise.reject("errApiIdInvalid")}}({woItems:S,procOrm:Z,ds:Ru}),z=async e=>{if(!qt(Me(e,"id","")))return console.log("user",e),console.log("can not get the userId"),Promise.reject("errUserIdMissing");if(!qt(Me(e,"email","")))return console.log("user",e),console.log("can not get the email of user"),Promise.reject("errUserEmailMissing");if(!qt(Me(e,"name","")))return console.log("user",e),console.log("can not get userName"),Promise.reject("errUserNameMissing");let t=Me(e,"isAdmin","");return"y"===t||"n"===t||(console.log("user",e),console.log("user.isAdmin is not y or n",e.isAdmin),console.log("can not get the role of user"),Promise.reject("errUserRoleMissing"))},K=async e=>{let t=await s(e);return await z(t),!0},W=async(e,t="")=>{let n=await(async e=>{let t=s(e);return Wn(t)&&(t=await t),await z(t),t})(e),r=o(n,t);return Wn(r)&&(r=await r),r?(A.info({event:"verifyClientUser",from:t,userId:Me(n,"id","")}),n):(console.log("user",n),console.log("user does not have permission"),Promise.reject("errUserNoPermission"))},R=async(e,t,n)=>{let r=Me(t,"group","");if(!qt(r))return console.log("inp",t),console.log("group",r),console.log("invalid group"),Promise.reject("errGroupInvalid");let i=Me(t,"rows",[]);return ln(i)?(i=Ft(i,(e,t)=>(e.group=r,e)),"apis"===n&&$e(i,(e,t)=>{$e(e,(e,n)=>{qt(e)&&"base64:"===Un(e,7)&&(e=tr(e=Hn(e,7)),i[t][n]=e)})}),i=function(e,t,n=""){return ln(e)&&ln(t)?Ft(e,e=>nr(e,t,n)):[]}(i,Ru[n].keys),await S[n].delAll({group:r}),await Z(e,n,"insert",i)):(console.log("inp",t),console.log("keyTable",n),Promise.reject("errRowsInvalid"))},U="dist",V="./node_modules/w-web-api/dist";sr(V)&&(U=V);let H="index.html";try{let n=e.resolve(U,"index.tmp");if(ar(n)||(n=e.resolve(U,H)),!ar(n))throw console.log("fpEntryIn",n),new Error("invalid fpEntryIn");let r=e.resolve(U,H),i=t.readFileSync(n,"utf8");i=lr(i,"/mapi/","{sfd}/"),i=lr(i,"{sfd}",f),i=lr(i,"{urlRedirect}",h),i=lr(i,"{language}",b),t.writeFileSync(r,i,"utf8")}catch(e){console.log(e),console.log(`can not generate ${H}`)}let k=[{method:"GET",path:"/api/getUserByToken",handler:async function(e,t){let n=await Pn(async function(){let t=Me(e,"query.token","");if(!qt(t))return console.log("req.query",Me(e,"query")),console.log("token",X(t)),console.log("[API]getUserByToken/check token: invalid token"),Promise.reject("errTokenNoPermission");let n=await W(t,"getUserByToken");return tn(n)?(A.info({event:"api/getUserByToken",userId:Me(n,"id","")}),n):(console.log("token",X(t)),console.log("[API]getUserByToken/check user: invalid user"),Promise.reject("errTokenNoPermission"))})();return zn(n.msg)&&(n.msg=n.msg.message),n}},{method:"POST",path:"/syncAndReplaceTabs",handler:async function(e,t){let n=await Pn(async function(){let t=Me(e,"query.token","");if(!qt(t))return console.log("req.query",Me(e,"query")),console.log("token",X(t)),console.log("[API]syncAndReplaceTabs/check token: invalid token"),Promise.reject("errTokenNoPermission");let n=Me(e,"query.keyTable","");if(!qt(n))return console.log("req.query",Me(e,"query")),console.log("keyTable",n),console.log("[API]syncAndReplaceTabs/check keyTable: invalid keyTable"),Promise.reject("errKeyTableInvalid");if(!["apis"].includes(n))return console.log("[API]syncAndReplaceTabs/check keyTable: unexpected keyTable",n),Promise.reject("errKeyTableInvalid");let r=await(async(e,t="")=>{let n=null;if(qt(e)&&(n=s(e),Wn(n)&&(n=await n)),!tn(n))return console.log("token",e),console.log("can not find the user from token"),Promise.reject("errUserNotFound");let r=a(n,t);return Wn(r)&&(r=await r),r?(A.info({event:"verifyAppUser",from:t,userId:Me(n,"id","")}),n):(console.log("user",n),console.log("user does not have permission"),Promise.reject("errUserNoPermission"))})(t,"syncAndReplaceTabs");if(!tn(r))return console.log("token",X(t)),console.log("[API]syncAndReplaceTabs/check user: invalid user"),Promise.reject("errTokenNoPermission");let i=Me(r,"id","");if(!qt(i))return console.log("token",X(t)),console.log("user",r),console.log("[API]syncAndReplaceTabs/check userId: invalid userId"),Promise.reject("errTokenNoPermission");let o=await(async e=>{let t=Me(e,"payload");if(qt(t)&&(t=$t(t)),!tn(t))return console.log("payload",t),console.log("invalid payload in req"),Promise.reject("errPayloadInvalid");let n=Me(t,"group","");if(!qt(n))return console.log("payload",t),console.log("invalid group in payload"),Promise.reject("errGroupInvalid");let r=Me(t,"rows",[]);return ln(r)?{group:n,rows:r}:(console.log("payload",t),console.log("invalid rows in payload"),Promise.reject("errRowsInvalid"))})(e),l=await R(i,o,n);return A.info({event:"api/syncAndReplaceTabs",userId:i,keyTable:n}),l})();return zn(n.msg)&&(n.msg=n.msg.message),n}}],P=Je(Ru);return c=new Rs({port:u,pathStaticFiles:U,apiName:"api",apis:k,tokenType:"Bearer",verifyConn:async({apiType:e,authorization:t,query:n,headers:r,req:i})=>{let s=Hn(t,7);if(!qt(s))return console.log("apiType",e),console.log("authorization",X(t)),console.log("invalid token"),!1;let o=await K(s);return A.info({event:"verifyConn",apiType:e}),o},getUserIdByToken:async e=>{if(!qt(e))return"";return Me(await s(e),"id","")},useDbOrm:!0,kpOrm:S,operOrm:Z,tableNamesExec:P,methodsExec:["select","insert","save","del"],tableNamesSync:P,kpFunExt:{getWebInfor:v("getWebInfor",e=>({webLogo:m,showLanguage:L,language:b,kpLang:N})),proxyRequest:v("proxyRequest",(e,t)=>E(t)),getApisList:v("getApisList",e=>j(e)),saveApi:v("saveApi",(e,t)=>Y(e,t)),deleteApi:v("deleteApi",(e,t)=>G(e,t)),getStaEvent:v("getStaEvent",(e,t=7,n="hr")=>tu(t,n,{fdLog:D}))},fnTableTags:"tableTags-web-api.json"}),c}});
|
|
6
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("path"),require("fs"),require("@hapi/hapi"),require("@hapi/inert"),require("stream"),require("worker_threads"),require("readline"),require("url"),require("pino")):"function"==typeof define&&define.amd?define(["path","fs","@hapi/hapi","@hapi/inert","stream","worker_threads","readline","url","pino"],t):(e="undefined"!=typeof globalThis?globalThis:e||self)["w-web-api"]=t(e.path,e.fs,e["@hapi/hapi"],e["@hapi/inert"],e.stream,e.require$$0,e.readline,e.url,e.pino)}(this,function(e,t,n,r,s,i,o,a,c){"use strict";var l="undefined"!=typeof document?document.currentScript:null,u=Array.isArray,d="object"==typeof global&&global&&global.Object===Object&&global,p="object"==typeof self&&self&&self.Object===Object&&self,w=d||p||Function("return this")(),M=w.Symbol,y=Object.prototype,m=y.hasOwnProperty,I=y.toString,f=M?M.toStringTag:void 0;var g=Object.prototype.toString;var h=M?M.toStringTag:void 0;function L(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":h&&h in Object(e)?function(e){var t=m.call(e,f),n=e[f];try{e[f]=void 0;var r=!0}catch(e){}var s=I.call(e);return r&&(t?e[f]=n:delete e[f]),s}(e):function(e){return g.call(e)}(e)}function D(e){return null!=e&&"object"==typeof e}function b(e){return"symbol"==typeof e||D(e)&&"[object Symbol]"==L(e)}var C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,N=/^\w*$/;function x(e,t){if(u(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!b(e))||(N.test(e)||!C.test(e)||null!=t&&e in Object(t))}function T(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function S(e){if(!T(e))return!1;var t=L(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var Z,A=w["__core-js_shared__"],X=(Z=/[^.]+$/.exec(A&&A.keys&&A.keys.IE_PROTO||""))?"Symbol(src)_1."+Z:"";var v=Function.prototype.toString;function E(e){if(null!=e){try{return v.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Y=/^\[object .+?Constructor\]$/,j=Function.prototype,G=Object.prototype,K=j.toString,z=G.hasOwnProperty,W=RegExp("^"+K.call(z).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function R(e){return!(!T(e)||(t=e,X&&X in t))&&(S(e)?W:Y).test(E(e));var t}function U(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return R(n)?n:void 0}var V=U(Object,"create");var H=Object.prototype.hasOwnProperty;var k=Object.prototype.hasOwnProperty;function Q(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function P(e,t){return e===t||e!=e&&t!=t}function O(e,t){for(var n=e.length;n--;)if(P(e[n][0],t))return n;return-1}Q.prototype.clear=function(){this.__data__=V?V(null):{},this.size=0},Q.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Q.prototype.get=function(e){var t=this.__data__;if(V){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return H.call(t,e)?t[e]:void 0},Q.prototype.has=function(e){var t=this.__data__;return V?void 0!==t[e]:k.call(t,e)},Q.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=V&&void 0===t?"__lodash_hash_undefined__":t,this};var J=Array.prototype.splice;function B(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}B.prototype.clear=function(){this.__data__=[],this.size=0},B.prototype.delete=function(e){var t=this.__data__,n=O(t,e);return!(n<0)&&(n==t.length-1?t.pop():J.call(t,n,1),--this.size,!0)},B.prototype.get=function(e){var t=this.__data__,n=O(t,e);return n<0?void 0:t[n][1]},B.prototype.has=function(e){return O(this.__data__,e)>-1},B.prototype.set=function(e,t){var n=this.__data__,r=O(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var F=U(w,"Map");function _(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function q(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}q.prototype.clear=function(){this.size=0,this.__data__={hash:new Q,map:new(F||B),string:new Q}},q.prototype.delete=function(e){var t=_(this,e).delete(e);return this.size-=t?1:0,t},q.prototype.get=function(e){return _(this,e).get(e)},q.prototype.has=function(e){return _(this,e).has(e)},q.prototype.set=function(e,t){var n=_(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function $(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],i=n.cache;if(i.has(s))return i.get(s);var o=e.apply(this,r);return n.cache=i.set(s,o)||i,o};return n.cache=new($.Cache||q),n}$.Cache=q;var ee,te,ne,re=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,se=/\\(\\)?/g,ie=(ee=function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(re,function(e,n,r,s){t.push(r?s.replace(se,"$1"):n||e)}),t},te=$(ee,function(e){return 500===ne.size&&ne.clear(),e}),ne=te.cache,te),oe=ie;function ae(e,t){for(var n=-1,r=null==e?0:e.length,s=Array(r);++n<r;)s[n]=t(e[n],n,e);return s}var ce=M?M.prototype:void 0,le=ce?ce.toString:void 0;function ue(e){if("string"==typeof e)return e;if(u(e))return ae(e,ue)+"";if(b(e))return le?le.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function de(e){return null==e?"":ue(e)}function pe(e,t){return u(e)?e:x(e,t)?[e]:oe(de(e))}function we(e){if("string"==typeof e||b(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Me(e,t){for(var n=0,r=(t=pe(t,e)).length;null!=e&&n<r;)e=e[we(t[n++])];return n&&n==r?e:void 0}function ye(e,t,n){var r=null==e?void 0:Me(e,t);return void 0===r?n:r}function me(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}var Ie,fe=function(e,t,n){for(var r=-1,s=Object(e),i=n(e),o=i.length;o--;){var a=i[Ie?o:++r];if(!1===t(s[a],a,s))break}return e};function ge(e){return D(e)&&"[object Arguments]"==L(e)}var he=Object.prototype,Le=he.hasOwnProperty,De=he.propertyIsEnumerable,be=ge(function(){return arguments}())?ge:function(e){return D(e)&&Le.call(e,"callee")&&!De.call(e,"callee")},Ce=be;var Ne="object"==typeof exports&&exports&&!exports.nodeType&&exports,xe=Ne&&"object"==typeof module&&module&&!module.nodeType&&module,Te=xe&&xe.exports===Ne?w.Buffer:void 0,Se=(Te?Te.isBuffer:void 0)||function(){return!1},Ze=/^(?:0|[1-9]\d*)$/;function Ae(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Ze.test(e))&&e>-1&&e%1==0&&e<t}function Xe(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var ve={};function Ee(e){return function(t){return e(t)}}ve["[object Float32Array]"]=ve["[object Float64Array]"]=ve["[object Int8Array]"]=ve["[object Int16Array]"]=ve["[object Int32Array]"]=ve["[object Uint8Array]"]=ve["[object Uint8ClampedArray]"]=ve["[object Uint16Array]"]=ve["[object Uint32Array]"]=!0,ve["[object Arguments]"]=ve["[object Array]"]=ve["[object ArrayBuffer]"]=ve["[object Boolean]"]=ve["[object DataView]"]=ve["[object Date]"]=ve["[object Error]"]=ve["[object Function]"]=ve["[object Map]"]=ve["[object Number]"]=ve["[object Object]"]=ve["[object RegExp]"]=ve["[object Set]"]=ve["[object String]"]=ve["[object WeakMap]"]=!1;var Ye="object"==typeof exports&&exports&&!exports.nodeType&&exports,je=Ye&&"object"==typeof module&&module&&!module.nodeType&&module,Ge=je&&je.exports===Ye&&d.process,Ke=function(){try{var e=je&&je.require&&je.require("util").types;return e||Ge&&Ge.binding&&Ge.binding("util")}catch(e){}}(),ze=Ke&&Ke.isTypedArray,We=ze?Ee(ze):function(e){return D(e)&&Xe(e.length)&&!!ve[L(e)]},Re=Object.prototype.hasOwnProperty;function Ue(e,t){var n=u(e),r=!n&&Ce(e),s=!n&&!r&&Se(e),i=!n&&!r&&!s&&We(e),o=n||r||s||i,a=o?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=a.length;for(var l in e)!t&&!Re.call(e,l)||o&&("length"==l||s&&("offset"==l||"parent"==l)||i&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Ae(l,c))||a.push(l);return a}var Ve=Object.prototype;function He(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ve)}function ke(e,t){return function(n){return e(t(n))}}var Qe=ke(Object.keys,Object),Pe=Object.prototype.hasOwnProperty;function Oe(e){if(!He(e))return Qe(e);var t=[];for(var n in Object(e))Pe.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Je(e){return null!=e&&Xe(e.length)&&!S(e)}function Be(e){return Je(e)?Ue(e):Oe(e)}function Fe(e,t){return e&&fe(e,t,Be)}var _e=function(e,t){return function(n,r){if(null==n)return n;if(!Je(n))return e(n,r);for(var s=n.length,i=t?s:-1,o=Object(n);(t?i--:++i<s)&&!1!==r(o[i],i,o););return n}}(Fe),qe=_e;function $e(e){return e}function et(e,t){var n;return(u(e)?me:qe)(e,"function"==typeof(n=t)?n:$e)}function tt(e){var t=this.__data__=new B(e);this.size=t.size}tt.prototype.clear=function(){this.__data__=new B,this.size=0},tt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},tt.prototype.get=function(e){return this.__data__.get(e)},tt.prototype.has=function(e){return this.__data__.has(e)},tt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof B){var r=n.__data__;if(!F||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new q(r)}return n.set(e,t),this.size=n.size,this};function nt(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new q;++t<n;)this.add(e[t])}function rt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function st(e,t){return e.has(t)}nt.prototype.add=nt.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},nt.prototype.has=function(e){return this.__data__.has(e)};function it(e,t,n,r,s,i){var o=1&n,a=e.length,c=t.length;if(a!=c&&!(o&&c>a))return!1;var l=i.get(e),u=i.get(t);if(l&&u)return l==t&&u==e;var d=-1,p=!0,w=2&n?new nt:void 0;for(i.set(e,t),i.set(t,e);++d<a;){var M=e[d],y=t[d];if(r)var m=o?r(y,M,d,t,e,i):r(M,y,d,e,t,i);if(void 0!==m){if(m)continue;p=!1;break}if(w){if(!rt(t,function(e,t){if(!st(w,t)&&(M===e||s(M,e,n,r,i)))return w.push(t)})){p=!1;break}}else if(M!==y&&!s(M,y,n,r,i)){p=!1;break}}return i.delete(e),i.delete(t),p}var ot=w.Uint8Array;function at(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function ct(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var lt=M?M.prototype:void 0,ut=lt?lt.valueOf:void 0;function dt(e,t){for(var n=-1,r=t.length,s=e.length;++n<r;)e[s+n]=t[n];return e}function pt(e,t,n){var r=t(e);return u(e)?r:dt(r,n(e))}function wt(e,t){for(var n=-1,r=null==e?0:e.length,s=0,i=[];++n<r;){var o=e[n];t(o,n,e)&&(i[s++]=o)}return i}function Mt(){return[]}var yt=Object.prototype.propertyIsEnumerable,mt=Object.getOwnPropertySymbols,It=mt?function(e){return null==e?[]:(e=Object(e),wt(mt(e),function(t){return yt.call(e,t)}))}:Mt;function ft(e){return pt(e,Be,It)}var gt=Object.prototype.hasOwnProperty;var ht=U(w,"DataView"),Lt=U(w,"Promise"),Dt=U(w,"Set"),bt=U(w,"WeakMap"),Ct="[object Map]",Nt="[object Promise]",xt="[object Set]",Tt="[object WeakMap]",St="[object DataView]",Zt=E(ht),At=E(F),Xt=E(Lt),vt=E(Dt),Et=E(bt),Yt=L;(ht&&Yt(new ht(new ArrayBuffer(1)))!=St||F&&Yt(new F)!=Ct||Lt&&Yt(Lt.resolve())!=Nt||Dt&&Yt(new Dt)!=xt||bt&&Yt(new bt)!=Tt)&&(Yt=function(e){var t=L(e),n="[object Object]"==t?e.constructor:void 0,r=n?E(n):"";if(r)switch(r){case Zt:return St;case At:return Ct;case Xt:return Nt;case vt:return xt;case Et:return Tt}return t});var jt=Yt,Gt="[object Arguments]",Kt="[object Array]",zt="[object Object]",Wt=Object.prototype.hasOwnProperty;function Rt(e,t,n,r,s,i){var o=u(e),a=u(t),c=o?Kt:jt(e),l=a?Kt:jt(t),d=(c=c==Gt?zt:c)==zt,p=(l=l==Gt?zt:l)==zt,w=c==l;if(w&&Se(e)){if(!Se(t))return!1;o=!0,d=!1}if(w&&!d)return i||(i=new tt),o||We(e)?it(e,t,n,r,s,i):function(e,t,n,r,s,i,o){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!i(new ot(e),new ot(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return P(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var a=at;case"[object Set]":var c=1&r;if(a||(a=ct),e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=2,o.set(e,t);var u=it(a(e),a(t),r,s,i,o);return o.delete(e),u;case"[object Symbol]":if(ut)return ut.call(e)==ut.call(t)}return!1}(e,t,c,n,r,s,i);if(!(1&n)){var M=d&&Wt.call(e,"__wrapped__"),y=p&&Wt.call(t,"__wrapped__");if(M||y){var m=M?e.value():e,I=y?t.value():t;return i||(i=new tt),s(m,I,n,r,i)}}return!!w&&(i||(i=new tt),function(e,t,n,r,s,i){var o=1&n,a=ft(e),c=a.length;if(c!=ft(t).length&&!o)return!1;for(var l=c;l--;){var u=a[l];if(!(o?u in t:gt.call(t,u)))return!1}var d=i.get(e),p=i.get(t);if(d&&p)return d==t&&p==e;var w=!0;i.set(e,t),i.set(t,e);for(var M=o;++l<c;){var y=e[u=a[l]],m=t[u];if(r)var I=o?r(m,y,u,t,e,i):r(y,m,u,e,t,i);if(!(void 0===I?y===m||s(y,m,n,r,i):I)){w=!1;break}M||(M="constructor"==u)}if(w&&!M){var f=e.constructor,g=t.constructor;f==g||!("constructor"in e)||!("constructor"in t)||"function"==typeof f&&f instanceof f&&"function"==typeof g&&g instanceof g||(w=!1)}return i.delete(e),i.delete(t),w}(e,t,n,r,s,i))}function Ut(e,t,n,r,s){return e===t||(null==e||null==t||!D(e)&&!D(t)?e!=e&&t!=t:Rt(e,t,n,r,Ut,s))}function Vt(e){return e==e&&!T(e)}function Ht(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}function kt(e){var t=function(e){for(var t=Be(e),n=t.length;n--;){var r=t[n],s=e[r];t[n]=[r,s,Vt(s)]}return t}(e);return 1==t.length&&t[0][2]?Ht(t[0][0],t[0][1]):function(n){return n===e||function(e,t,n,r){var s=n.length,i=s,o=!r;if(null==e)return!i;for(e=Object(e);s--;){var a=n[s];if(o&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++s<i;){var c=(a=n[s])[0],l=e[c],u=a[1];if(o&&a[2]){if(void 0===l&&!(c in e))return!1}else{var d=new tt;if(r)var p=r(l,u,c,e,t,d);if(!(void 0===p?Ut(u,l,3,r,d):p))return!1}}return!0}(n,e,t)}}function Qt(e,t){return null!=e&&t in Object(e)}function Pt(e,t){return null!=e&&function(e,t,n){for(var r=-1,s=(t=pe(t,e)).length,i=!1;++r<s;){var o=we(t[r]);if(!(i=null!=e&&n(e,o)))break;e=e[o]}return i||++r!=s?i:!!(s=null==e?0:e.length)&&Xe(s)&&Ae(o,s)&&(u(e)||Ce(e))}(e,t,Qt)}function Ot(e){return function(t){return null==t?void 0:t[e]}}function Jt(e){return x(e)?Ot(we(e)):function(e){return function(t){return Me(t,e)}}(e)}function Bt(e){return"function"==typeof e?e:null==e?$e:"object"==typeof e?u(e)?function(e,t){return x(e)&&Vt(t)?Ht(we(e),t):function(n){var r=ye(n,e);return void 0===r&&r===t?Pt(n,e):Ut(t,r,3)}}(e[0],e[1]):kt(e):Jt(e)}function Ft(e,t){var n=-1,r=Je(e)?Array(e.length):[];return qe(e,function(e,s,i){r[++n]=t(e,s,i)}),r}function _t(e,t){return(u(e)?ae:Ft)(e,Bt(t))}function qt(e){return"[object String]"===Object.prototype.toString.call(e)}function $t(e){return!(!qt(e)||""===e)}function en(e){if(!$t(e))return{};let t={};try{t=JSON.parse(e)}catch(e){t={}}return t}function tn(e){return"[object Object]"===Object.prototype.toString.call(e)}function nn(e){if(tn(e)){for(let t in e)return!0;return!1}return!1}function rn(e){return"[object Array]"===Object.prototype.toString.call(e)}function sn(e){return"[object Undefined]"===Object.prototype.toString.call(e)}function on(e){if(tn(e)){for(let t in e)return!1;return!0}return!1}function an(e){return e!=e}function cn(e){return!!sn(e)||(!!function(e){return"[object Null]"===Object.prototype.toString.call(e)}(e)||(!!on(e)||(!!function(e){return!(!qt(e)||""!==e)}(e)||(!!function(e){return!!rn(e)&&0===e.length}(e)||!!an(e)))))}function ln(e){return!!rn(e)&&(0!==e.length&&(1!==e.length||!cn(e[0])))}var un=/\s/;var dn=/^\s+/;function pn(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&un.test(e.charAt(t)););return t}(e)+1).replace(dn,""):e}var wn=/^[-+]0x[0-9a-f]+$/i,Mn=/^0b[01]+$/i,yn=/^0o[0-7]+$/i,mn=parseInt;function In(e){if("number"==typeof e)return e;if(b(e))return NaN;if(T(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=T(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=pn(e);var n=Mn.test(e);return n||yn.test(e)?mn(e.slice(2),n?2:8):wn.test(e)?NaN:+e}var fn=1/0;function gn(e){return e?(e=In(e))===fn||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function hn(e){var t=gn(e),n=t%1;return t==t?n?t-n:t:0}function Ln(e){let t=!1;if($t(e))t=!isNaN(Number(e));else if(function(e){return"[object Number]"===Object.prototype.toString.call(e)}(e)){if(an(e))return!1;t=!0}return t}function Dn(e){if(!Ln(e))return 0;return gn(e)}function bn(e){return!!Ln(e)&&(e=Dn(e),"number"==typeof(t=e)&&t==hn(t));var t}var Cn=w.isFinite,Nn=Math.min;var xn=function(e){var t=Math[e];return function(e,n){if(e=In(e),(n=null==n?0:Nn(hn(n),292))&&Cn(e)){var r=(de(e)+"e").split("e");return+((r=(de(t(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return t(e)}}("round"),Tn=xn;function Sn(e){if(!Ln(e))return 0;e=Dn(e);let t=Tn(e);return"0"===String(t)?0:t}function Zn(e){if(!bn(e))return!1;return Sn(e)>0}var An=ke(Object.getPrototypeOf,Object),Xn=Function.prototype,vn=Object.prototype,En=Xn.toString,Yn=vn.hasOwnProperty,jn=En.call(Object);function Gn(e){if(!D(e)||"[object Object]"!=L(e))return!1;var t=An(e);if(null===t)return!0;var n=Yn.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&En.call(n)==jn}function Kn(e){if(!D(e))return!1;var t=L(e);return"[object Error]"==t||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Gn(e)}function zn(e){return Kn(e)}function Wn(e){let t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t}function Rn(e){let t,n=Object.prototype.toString.call(e);if(t="[object Promise]"===n,t)return!0;if("[object Function]"!==n)return!1;try{t="function"!=typeof e.subscribe&&"function"==typeof e.then}catch(e){}return t}function Un(e){if(!bn(e))return!1;return Sn(e)>=0}function Vn(e,t){return $t(e)&&Un(t)?0===(t=Sn(t))?"":e.substring(0,t):""}function Hn(e,t){if(!$t(e))return"";if(!Un(t))return"";if(0===(t=Sn(t)))return"";let n=e.length-t;return n<0&&(n=0),e.substring(n,n+t)}function kn(e,t){return $t(e)&&Un(t)?0===(t=Sn(t))?e:Hn(e,e.length-t):""}function Qn(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}let Pn=function(e){if(!Wn(e))throw new Error("fn is not a function");return function(){let t=Qn(),n=null,r=null;try{n=e.apply(this,arguments)}catch(e){r=e}return null!==r?t.resolve({state:"error",msg:r}):Rn(n)?n.then(e=>{t.resolve({state:"success",msg:e})}).catch(e=>{"cancelled"===ye(e,"reason")?t.resolve({state:"cancelled",msg:""}):t.resolve({state:"error",msg:e})}):t.resolve({state:"success",msg:n}),t}};var On="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Jn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Bn={exports:{}};var Fn,_n={exports:{}};function qn(){return Fn||(Fn=1,function(e){var t;e.exports=(t=t||function(e,t){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==On&&On.crypto&&(n=On.crypto),!n)try{n=require("crypto")}catch(e){}var r=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),i={},o=i.lib={},a=o.Base={extend:function(e){var t=s(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=o.WordArray=a.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,s=e.sigBytes;if(this.clamp(),r%4)for(var i=0;i<s;i++){var o=n[i>>>2]>>>24-i%4*8&255;t[r+i>>>2]|=o<<24-(r+i)%4*8}else for(var a=0;a<s;a+=4)t[r+a>>>2]=n[a>>>2];return this.sigBytes+=s,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(r());return new c.init(t,e)}}),l=i.enc={},u=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],s=0;s<n;s++){var i=t[s>>>2]>>>24-s%4*8&255;r.push((i>>>4).toString(16)),r.push((15&i).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},d=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],s=0;s<n;s++){var i=t[s>>>2]>>>24-s%4*8&255;r.push(String.fromCharCode(i))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},p=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},w=o.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,s=r.words,i=r.sigBytes,o=this.blockSize,a=i/(4*o),l=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,u=e.min(4*l,i);if(l){for(var d=0;d<l;d+=o)this._doProcessBlock(s,d);n=s.splice(0,l),r.sigBytes-=u}return new c.init(n,u)},clone:function(){var e=a.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});o.Hasher=w.extend({cfg:a.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){w.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new M.HMAC.init(e,n).finalize(t)}}});var M=i.algo={};return i}(Math),t)}(_n)),_n.exports}!function(e){e.exports=qn().enc.Utf8}(Bn);var $n=Jn(Bn.exports),er={exports:{}};!function(e){var t;e.exports=(t=qn(),function(){var e=t,n=e.lib.WordArray;function r(e,t,r){for(var s=[],i=0,o=0;o<t;o++)if(o%4){var a=r[e.charCodeAt(o-1)]<<o%4*2|r[e.charCodeAt(o)]>>>6-o%4*2;s[i>>>2]|=a<<24-i%4*8,i++}return n.create(s,i)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var s=[],i=0;i<n;i+=3)for(var o=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,a=0;a<4&&i+.75*a<n;a++)s.push(r.charAt(o>>>6*(3-a)&63));var c=r.charAt(64);if(c)for(;s.length%4;)s.push(c);return s.join("")},parse:function(e){var t=e.length,n=this._map,s=this._reverseMap;if(!s){s=this._reverseMap=[];for(var i=0;i<n.length;i++)s[n.charCodeAt(i)]=i}var o=n.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return r(e,t,s)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),t.enc.Base64)}(er);var tr=Jn(er.exports);function nr(e){if(!$t(e))return"";return tr.parse(e).toString($n)}function rr(e,t,n=""){if(!ln(t))return{};let r={};return et(t,function(t){r[t]=ye(e,t,n)}),r}function sr(e,t={}){let n=ye(t,"fs"),r=!1;try{n.statSync(e),r=!0}catch{r=!1}return r}function ir(e,t={}){let n=ye(t,"fs");if(!sr(e,{fs:n}))return!1;let r=n.lstatSync(e);return!r.isFile()&&!r.isSymbolicLink()}function or(e){return ir(e,{fs:t})}function ar(e,t={}){let n=ye(t,"fs");return!!sr(e,{fs:n})&&(!n.lstatSync(e).isDirectory()&&!n.lstatSync(e).isSymbolicLink())}function cr(e){return ar(e,{fs:t})}function lr(e,t,n){if(!$t(e))return"";if(!$t(t))return"";if(!qt(n))return"";return String(e).replaceAll(t,n)}var ur={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",s="second",i="minute",o="hour",a="day",c="week",l="month",u="quarter",d="year",p="date",w="Invalid Date",M=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},I=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},f={s:I,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),s=n%60;return(t<=0?"+":"-")+I(r,2,"0")+":"+I(s,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),s=t.clone().add(r,l),i=n-s<0,o=t.clone().add(r+(i?-1:1),l);return+(-(r+(n-s)/(i?s-o:o-s))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:c,d:a,D:p,h:o,m:i,s:s,ms:r,Q:u}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},g="en",h={};h[g]=m;var L="$isDayjsObject",D=function(e){return e instanceof x||!(!e||!e[L])},b=function e(t,n,r){var s;if(!t)return g;if("string"==typeof t){var i=t.toLowerCase();h[i]&&(s=i),n&&(h[i]=n,s=i);var o=t.split("-");if(!s&&o.length>1)return e(o[0])}else{var a=t.name;h[a]=t,s=a}return!r&&s&&(g=s),s||!r&&g},C=function(e,t){if(D(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new x(n)},N=f;N.l=b,N.i=D,N.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var x=function(){function m(e){this.$L=b(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[L]=!0}var I=m.prototype;return I.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(N.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(M);if(r){var s=r[2]-1||0,i=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],s,r[3]||1,r[4]||0,r[5]||0,r[6]||0,i)):new Date(r[1],s,r[3]||1,r[4]||0,r[5]||0,r[6]||0,i)}}return new Date(t)}(e),this.init()},I.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},I.$utils=function(){return N},I.isValid=function(){return!(this.$d.toString()===w)},I.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},I.isAfter=function(e,t){return C(e)<this.startOf(t)},I.isBefore=function(e,t){return this.endOf(t)<C(e)},I.$g=function(e,t,n){return N.u(e)?this[t]:this.set(n,e)},I.unix=function(){return Math.floor(this.valueOf()/1e3)},I.valueOf=function(){return this.$d.getTime()},I.startOf=function(e,t){var n=this,r=!!N.u(t)||t,u=N.p(e),w=function(e,t){var s=N.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?s:s.endOf(a)},M=function(e,t){return N.w(n.toDate()[e].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},y=this.$W,m=this.$M,I=this.$D,f="set"+(this.$u?"UTC":"");switch(u){case d:return r?w(1,0):w(31,11);case l:return r?w(1,m):w(0,m+1);case c:var g=this.$locale().weekStart||0,h=(y<g?y+7:y)-g;return w(r?I-h:I+(6-h),m);case a:case p:return M(f+"Hours",0);case o:return M(f+"Minutes",1);case i:return M(f+"Seconds",2);case s:return M(f+"Milliseconds",3);default:return this.clone()}},I.endOf=function(e){return this.startOf(e,!1)},I.$set=function(e,t){var n,c=N.p(e),u="set"+(this.$u?"UTC":""),w=(n={},n[a]=u+"Date",n[p]=u+"Date",n[l]=u+"Month",n[d]=u+"FullYear",n[o]=u+"Hours",n[i]=u+"Minutes",n[s]=u+"Seconds",n[r]=u+"Milliseconds",n)[c],M=c===a?this.$D+(t-this.$W):t;if(c===l||c===d){var y=this.clone().set(p,1);y.$d[w](M),y.init(),this.$d=y.set(p,Math.min(this.$D,y.daysInMonth())).$d}else w&&this.$d[w](M);return this.init(),this},I.set=function(e,t){return this.clone().$set(e,t)},I.get=function(e){return this[N.p(e)]()},I.add=function(r,u){var p,w=this;r=Number(r);var M=N.p(u),y=function(e){var t=C(w);return N.w(t.date(t.date()+Math.round(e*r)),w)};if(M===l)return this.set(l,this.$M+r);if(M===d)return this.set(d,this.$y+r);if(M===a)return y(1);if(M===c)return y(7);var m=(p={},p[i]=t,p[o]=n,p[s]=e,p)[M]||1,I=this.$d.getTime()+r*m;return N.w(I,this)},I.subtract=function(e,t){return this.add(-1*e,t)},I.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||w;var r=e||"YYYY-MM-DDTHH:mm:ssZ",s=N.z(this),i=this.$H,o=this.$m,a=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(e,n,s,i){return e&&(e[n]||e(t,r))||s[n].slice(0,i)},p=function(e){return N.s(i%12||12,e,"0")},M=u||function(e,t,n){var r=e<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,function(e,r){return r||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return N.s(t.$y,4,"0");case"M":return a+1;case"MM":return N.s(a+1,2,"0");case"MMM":return d(n.monthsShort,a,l,3);case"MMMM":return d(l,a);case"D":return t.$D;case"DD":return N.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return d(n.weekdaysMin,t.$W,c,2);case"ddd":return d(n.weekdaysShort,t.$W,c,3);case"dddd":return c[t.$W];case"H":return String(i);case"HH":return N.s(i,2,"0");case"h":return p(1);case"hh":return p(2);case"a":return M(i,o,!0);case"A":return M(i,o,!1);case"m":return String(o);case"mm":return N.s(o,2,"0");case"s":return String(t.$s);case"ss":return N.s(t.$s,2,"0");case"SSS":return N.s(t.$ms,3,"0");case"Z":return s}return null}(e)||s.replace(":","")})},I.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},I.diff=function(r,p,w){var M,y=this,m=N.p(p),I=C(r),f=(I.utcOffset()-this.utcOffset())*t,g=this-I,h=function(){return N.m(y,I)};switch(m){case d:M=h()/12;break;case l:M=h();break;case u:M=h()/3;break;case c:M=(g-f)/6048e5;break;case a:M=(g-f)/864e5;break;case o:M=g/n;break;case i:M=g/t;break;case s:M=g/e;break;default:M=g}return w?M:N.a(M)},I.daysInMonth=function(){return this.endOf(l).$D},I.$locale=function(){return h[this.$L]},I.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=b(e,t,!0);return r&&(n.$L=r),n},I.clone=function(){return N.w(this.$d,this)},I.toDate=function(){return new Date(this.valueOf())},I.toJSON=function(){return this.isValid()?this.toISOString():null},I.toISOString=function(){return this.$d.toISOString()},I.toString=function(){return this.$d.toUTCString()},m}(),T=x.prototype;return C.prototype=T,[["$ms",r],["$s",s],["$m",i],["$H",o],["$W",a],["$M",l],["$y",d],["$D",p]].forEach(function(e){T[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),C.extend=function(e,t){return e.$i||(e(t,x,C),e.$i=!0),C},C.locale=b,C.isDayjs=D,C.unix=function(e){return C(1e3*e)},C.en=h[g],C.Ls=h,C.p={},C}()}(ur);var dr=Jn(ur.exports);function pr(){if(!Wn(dr))throw new Error("invalid dayjs");return dr().format("YYYY-MM-DDTHH:mm:ssZ")}let wr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),Mr=wr.length;function yr(e=32){let t=[];e=Zn(e)?Sn(e):32;for(let n=0;n<e;n++)t[n]=wr[0|Math.random()*Mr];return t.join("")}function mr(e){return!0===(t=e)||!1===t||D(t)&&"[object Boolean]"==L(t);var t}var Ir={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function s(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,r,i,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new s(r,i||e,o),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,s=[];if(0===this._eventsCount)return s;for(r in e=this._events)t.call(e,r)&&s.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,i=r.length,o=new Array(i);s<i;s++)o[s]=r[s].fn;return o},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,s,i,o){var a=n?n+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,s),!0;case 5:return u.fn.call(u.context,t,r,s,i),!0;case 6:return u.fn.call(u.context,t,r,s,i,o),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var p,w=u.length;for(l=0;l<w;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),d){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,r);break;case 4:u[l].fn.call(u[l].context,t,r,s);break;default:if(!c)for(p=1,c=new Array(d-1);p<d;p++)c[p-1]=arguments[p];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,n){return i(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return i(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,s){var i=n?n+e:e;if(!this._events[i])return this;if(!t)return o(this,i),this;var a=this._events[i];if(a.fn)a.fn!==t||s&&!a.once||r&&a.context!==r||o(this,i);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||s&&!a[c].once||r&&a[c].context!==r)&&l.push(a[c]);l.length?this._events[i]=1===l.length?l[0]:l:o(this,i)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a}(Ir);var fr=Jn(Ir.exports);function gr(){return new fr}async function hr(e,t={}){let n=null,r=Qn();if(!Wn(e))return r.reject("waitfunction需輸入函數f"),r;let s=async()=>{let t=e();return Rn(t)&&(t=await t),t};if(n=await s(),!0===n)return r.resolve(),r;let i=ye(t,"attemptNum",null);Zn(i)||(i=200);let o=ye(t,"timeInterval",null);Zn(o)||(o=1e3);let a=0,c=setInterval(async()=>{a+=1,n=await s(),!0===n&&(clearInterval(c),r.resolve()),a>i&&(clearInterval(c),r.reject(`exceeded attemptNum[${i}]`))},o);return r}function Lr(e){return function(e,t={}){let n=ye(t,"fs");if(ir(e,{fs:n}))return{success:"input folder is already exists: "+e};if(sr(e,{fs:n}))return{error:"input path already exists: "+e};try{n.mkdirSync(e,{recursive:!0})}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:t})}function Dr(e){return"number"==typeof e||D(e)&&"[object Number]"==L(e)}function br(e){if(!($t(e)||Ln(e)||b(e)||function(e){return"[object BigInt]"===Object.prototype.toString.call(e)}(e)))return"";let t="";try{t=String(e)}catch(e){}try{t=e.toString()}catch(e){}return t}function Cr(e){if(!$t(e))return"";let t=$n.parse(e);return tr.stringify(t)}function Nr(e,t){return!!tn(e)&&(!(!$t(t)&&!Ln(t))&&t in e)}function xr(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)}function Tr(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}function Sr(e){return"[object Uint16Array]"===Object.prototype.toString.call(e)}function Zr(e){if(!(xr(e)||(t=e,"[object Blob]"===Object.prototype.toString.call(t))||Tr(e)||Sr(e)))return null;var t;try{if(e.byteLength)return e.byteLength}catch(e){}try{if(e.length)return e.length}catch(e){}try{if(e.size)return e.size}catch(e){}return null}function Ar(e){if(!$t(e))return new Uint8Array;let t;try{t=function(e){if(!qt(e))return new Uint8Array;let t=tr.parse(e),n=t.words,r=t.sigBytes,s=new Uint8Array(r);for(let e=0;e<r;e++){let t=n[e>>>2]>>>24-e%4*8&255;s[e]=t}return s}(Cr(e))}catch(e){return new Uint8Array}return t}function Xr(e,t,n=0,r=!0,s=52,i=8){return function(e,t,n,r,s,i){if(!Ln(e))return null;if(!Tr(t))return null;if(!bn(n))return null;if(!mr(r))return null;if(!bn(s))return null;if(!bn(i))return null;let o,a,c;e=Dn(e);let l=8*i-s-1,u=(1<<l)-1,d=u>>1,p=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?i-1:0,M=r?-1:1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),(e+=o+d>=1?p/c:p*Math.pow(2,1-d))*c>=2&&(o++,c/=2),o+d>=u?(a=0,o=u):o+d>=1?(a=(e*c-1)*Math.pow(2,s),o+=d):(a=e*Math.pow(2,d-1)*Math.pow(2,s),o=0));s>=8;t[n+w]=255&a,w+=M,a/=256,s-=8);for(o=o<<s|a,l+=s;l>0;t[n+w]=255&o,w+=M,o/=256,l-=8);return t[n+w-M]|=128*y,null}(e,t,n,r,s,i)}function vr(e){let t=[],n=[];if(!ln(e)&&!nn(e))return null;let r=[],s=[];function i(e){r.push(Zr(e)),s.push(e)}try{let o=function(e){if(!tn(e))return{results:"",binarys:[]};if(on(e))return{results:"",binarys:[]};let t="",n=[];try{let r=-1;t=JSON.stringify(e,function(e,t){if(Tr(t)){r+=1;let e=`[Uint8Array]::${r}`;return n.push(t),e}if(Sr(t)){r+=1;let e=`[Uint16Array]::${r}`;return n.push(t),e}if(xr(t)){r+=1;let e=`[ArrayBuffer]::${r}`;return n.push(t),e}return Kn(t)&&(t=t.toString()),t})}catch(e){}return{results:t,binarys:n}}(e);i(Ar(o.results)),et(o.binarys,e=>{i(e)});let a=r,c=Ar(JSON.stringify(a)),l=new Uint8Array(8);Xr(Zr(c),l),t.push(l),t.push(c),et(s,e=>{t.push(e)}),et(t,e=>{n=function(e,t){let n=Zr(e),r=Zr(t),s=new Uint8Array(n+r);return s.set(new Uint8Array(e),0),s.set(new Uint8Array(t),n),s}(n,e)})}catch(e){return null}return n}function Er(e,t=0,n=!0,r=52,s=8){return function(e,t,n,r,s){if(!Tr(e))return null;if(!bn(t))return null;if(!mr(n))return null;if(!bn(r))return null;if(!bn(s))return null;let i,o,a=8*s-r-1,c=(1<<a)-1,l=c>>1,u=-7,d=n?0:s-1,p=n?1:-1,w=e[t+d];for(d+=p,i=w&(1<<-u)-1,w>>=-u,u+=a;u>0;i=256*i+e[t+d],d+=p,u-=8);for(o=i&(1<<-u)-1,i>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=p,u-=8);if(0===i)i=1-l;else{if(i===c)return o?NaN:1/0*(w?-1:1);o+=Math.pow(2,r),i-=l}return(w?-1:1)*o*Math.pow(2,i-r)}(e,t,n,r,s)}var Yr={exports:{}};!function(e){var t;e.exports=(t=qn(),function(){if("function"==typeof ArrayBuffer){var e=t.lib.WordArray,n=e.init,r=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var t=e.byteLength,r=[],s=0;s<t;s++)r[s>>>2]|=e[s]<<24-s%4*8;n.call(this,r,t)}else n.apply(this,arguments)};r.prototype=e}}(),t.lib.WordArray)}(Yr);var jr=Jn(Yr.exports);function Gr(e){if(!Tr(e))return"";let t;try{t=nr(function(e){return Tr(e)?jr.create(e).toString(tr):""}(e))}catch(e){return""}return t}function Kr(e){let t=null;if(!Tr(e))return null;try{let n=8,r=e.slice(0,n),s=e.slice(n,Zr(e)),i=Er(r),o=s.slice(0,i),a=s.slice(i,Zr(s)),c=Gr(o),l=function(e,t){let n=0,r=0,s=[];return et(t,t=>{r=n+t;let i=e.slice(n,r);n=r,s.push(i)}),s}(a,JSON.parse(c));t=function(e){if(!nn(e))return{};let{results:t,binarys:n}=e;if(!$t(t))return{};if(!rn(n))return{};let r={};try{r=JSON.parse(t,function(e,t){if($t(t)){if(t.indexOf("[Uint8Array]::")>=0){let e=Sn(t.replace("[Uint8Array]::",""));return n[e]}if(t.indexOf("[Uint16Array]::")>=0){let e=Sn(t.replace("[Uint16Array]::",""));return n[e]}if(t.indexOf("[ArrayBuffer]::")>=0){let e=Sn(t.replace("[ArrayBuffer]::",""));return n[e]}}return t})}catch(e){}return r}({results:Gr(l.shift()),binarys:l})}catch(e){}return t}function zr(e,t,n){var r=-1,s=e.length;t<0&&(t=-t>s?0:s+t),(n=n>s?s:n)<0&&(n+=s),s=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(s);++r<s;)i[r]=e[r+t];return i}function Wr(e){return e!=e}function Rr(e,t,n){return t==t?function(e,t,n){for(var r=n-1,s=e.length;++r<s;)if(e[r]===t)return r;return-1}(e,t,n):function(e,t,n,r){for(var s=e.length,i=n+(r?1:-1);r?i--:++i<s;)if(t(e[i],i,e))return i;return-1}(e,Wr,n)}var Ur=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Vr(e){return Ur.test(e)}var Hr="\\ud800-\\udfff",kr="["+Hr+"]",Qr="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Pr="\\ud83c[\\udffb-\\udfff]",Or="[^"+Hr+"]",Jr="(?:\\ud83c[\\udde6-\\uddff]){2}",Br="[\\ud800-\\udbff][\\udc00-\\udfff]",Fr="(?:"+Qr+"|"+Pr+")"+"?",_r="[\\ufe0e\\ufe0f]?",qr=_r+Fr+("(?:\\u200d(?:"+[Or,Jr,Br].join("|")+")"+_r+Fr+")*"),$r="(?:"+[Or+Qr+"?",Qr,Jr,Br,kr].join("|")+")",es=RegExp(Pr+"(?="+Pr+")|"+$r+qr,"g");function ts(e){return Vr(e)?function(e){return e.match(es)||[]}(e):function(e){return e.split("")}(e)}function ns(e,t,n){if((e=de(e))&&(n||void 0===t))return pn(e);if(!e||!(t=ue(t)))return e;var r=ts(e),s=ts(t),i=function(e,t){for(var n=-1,r=e.length;++n<r&&Rr(t,e[n],0)>-1;);return n}(r,s),o=function(e,t){for(var n=e.length;n--&&Rr(t,e[n],0)>-1;);return n}(r,s)+1;return function(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:zr(e,t,n)}(r,i,o).join("")}function rs(e,t){if(!$t(e))return[];if(!$t(t))return[];let n=function(e,t){return $t(e)&&$t(t)?e.split(t):[]}(e,t);n=_t(n,ns);let r=[];return et(n,function(e){$t(e)&&r.push(e)}),r}function ss(e){return function(e,t={}){let n=ye(t,"fs");if(!sr(e,{fs:n}))return{success:"file does not exist: "+e};if(!ar(e,{fs:n}))return{error:"input path is not a file: "+e};try{n.unlinkSync(e)}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:t})}var is={exports:{}};!function(e){var t,n;e.exports=(t=i,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function s(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,r,i,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new s(r,i||e,o),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,s=[];if(0===this._eventsCount)return s;for(r in e=this._events)t.call(e,r)&&s.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,i=r.length,o=new Array(i);s<i;s++)o[s]=r[s].fn;return o},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,s,i,o){var a=n?n+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,s),!0;case 5:return u.fn.call(u.context,t,r,s,i),!0;case 6:return u.fn.call(u.context,t,r,s,i,o),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var p,w=u.length;for(l=0;l<w;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),d){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,r);break;case 4:u[l].fn.call(u[l].context,t,r,s);break;default:if(!c)for(p=1,c=new Array(d-1);p<d;p++)c[p-1]=arguments[p];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,n){return i(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return i(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,s){var i=n?n+e:e;if(!this._events[i])return this;if(!t)return o(this,i),this;var a=this._events[i];if(a.fn)a.fn!==t||s&&!a.once||r&&a.context!==r||o(this,i);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||s&&!a[c].once||r&&a[c].context!==r)&&l.push(a[c]);l.length?this._events[i]=1===l.length?l[0]:l:o(this,i)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(s="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIikscj1yZXF1aXJlKCJmcyIpLGU9QXJyYXkuaXNBcnJheSxuPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1ufHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHU9aS5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGM9YS5oYXNPd25Qcm9wZXJ0eSxmPWEudG9TdHJpbmcscz11P3UudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBsPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIHA9IltvYmplY3QgTnVsbF0iLGg9IltvYmplY3QgVW5kZWZpbmVkXSIseT11P3UudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9oOnA6eSYmeSBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Yy5jYWxsKHQscyksZT10W3NdO3RyeXt0W3NdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89Zi5jYWxsKHQpO3JldHVybiBuJiYocj90W3NdPWU6ZGVsZXRlIHRbc10pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCl9KHQpfXZhciBfPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fSh0KSYmdih0KT09X312YXIgYj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxnPS9eXHcqJC87ZnVuY3Rpb24gaih0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgTz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsUz0iW29iamVjdCBGdW5jdGlvbl0iLG09IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix3PSJbb2JqZWN0IFByb3h5XSI7dmFyICQsUj1pWyJfX2NvcmUtanNfc2hhcmVkX18iXSx6PSgkPS9bXi5dKyQvLmV4ZWMoUiYmUi5rZXlzJiZSLmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIiskOiIiO3ZhciB4PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxBPUZ1bmN0aW9uLnByb3RvdHlwZSxOPU9iamVjdC5wcm90b3R5cGUsUD1BLnRvU3RyaW5nLGs9Ti5oYXNPd25Qcm9wZXJ0eSxFPVJlZ0V4cCgiXiIrUC5jYWxsKGspLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7aWYoIWoodCl8fChyPXQseiYmeiBpbiByKSlyZXR1cm4hMTt2YXIgcixlPWZ1bmN0aW9uKHQpe2lmKCFqKHQpKXJldHVybiExO3ZhciByPXYodCk7cmV0dXJuIHI9PVN8fHI9PW18fHI9PU98fHI9PXd9KHQpP0U6RjtyZXR1cm4gZS50ZXN0KGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4geC5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0odCkpfWZ1bmN0aW9uIEkodCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBUPUkoT2JqZWN0LCJjcmVhdGUiKTt2YXIgTT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBVKHQscil7Zm9yKHZhciBlLG4sbz10Lmxlbmd0aDtvLS07KWlmKChlPXRbb11bMF0pPT09KG49cil8fGUhPWUmJm4hPW4pcmV0dXJuIG87cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVQ/VChudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihUKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIE0uY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gVD92b2lkIDAhPT1yW3RdOnEuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVQmJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBHKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sRy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1VKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOkQuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxHLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxHLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcy5fX2RhdGFfXyx0KT4tMX0sRy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVUoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIFc9SShpLCJNYXAiKTtmdW5jdGlvbiBCKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KFd8fEcpLHN0cmluZzpuZXcgTH19LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1CKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gQih0aGlzLHQpLmdldCh0KX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuaGFzKHQpfSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1CKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBKPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBLKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoSik7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLGk9ZS5jYWNoZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5nZXQobyk7dmFyIHU9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPWkuc2V0KG8sdSl8fGksdX07cmV0dXJuIGUuY2FjaGU9bmV3KEsuQ2FjaGV8fEgpLGV9Sy5DYWNoZT1IO3ZhciBRLFYsWCxZPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFo9L1xcKFxcKT8vZyx0dD0oUT1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKFksKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShaLCIkMSIpOmV8fHQpfSkpLHJ9LFY9SyhRLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09WC5zaXplJiZYLmNsZWFyKCksdH0pKSxYPVYuY2FjaGUsVikscnQ9dHQ7dmFyIGV0PTEvMCxudD11P3UucHJvdG90eXBlOnZvaWQgMCxvdD1udD9udC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gaXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGUodCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsaXQpKyIiO2lmKGQodCkpcmV0dXJuIG90P290LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWV0PyItMCI6cn1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gbnVsbD09dD8iIjppdCh0KX1mdW5jdGlvbiBhdCh0LHIpe3JldHVybiBlKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihlKHQpKXJldHVybiExO3ZhciBuPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiFkKHQpKXx8Zy50ZXN0KHQpfHwhYi50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06cnQodXQodCkpfXZhciBjdD0xLzA7ZnVuY3Rpb24gZnQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxkKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1jdD8iLTAiOnJ9ZnVuY3Rpb24gc3QodCxyLGUpe3ZhciBuPW51bGw9PXQ/dm9pZCAwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1hdChyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbZnQocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9KHQscik7cmV0dXJuIHZvaWQgMD09PW4/ZTpufWZ1bmN0aW9uIGx0KCl7bGV0IHQscixlPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdfSkpO3JldHVybiBlLnJlc29sdmU9dCxlLnJlamVjdD1yLGV9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHl0KHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0IT10fWZ1bmN0aW9uIF90KHQpe3JldHVybiEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgVW5kZWZpbmVkXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdWxsXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFodCh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIXB0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIXZ0KHQpKSkpKX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX12YXIgYnQ9L1xzLzt2YXIgZ3Q9L15ccysvO2Z1bmN0aW9uIGp0KHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZidC50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKGd0LCIiKTp0fXZhciBPdD1OYU4sU3Q9L15bLStdMHhbMC05YS1mXSskL2ksbXQ9L14wYlswMV0rJC9pLHd0PS9eMG9bMC03XSskL2ksJHQ9cGFyc2VJbnQ7ZnVuY3Rpb24gUnQodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGQodCkpcmV0dXJuIE90O2lmKGoodCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWoocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWp0KHQpO3ZhciBlPW10LnRlc3QodCk7cmV0dXJuIGV8fHd0LnRlc3QodCk/JHQodC5zbGljZSgyKSxlPzI6OCk6U3QudGVzdCh0KT9PdDordH12YXIgenQ9MS8wLHh0PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBGdCh0KXtyZXR1cm4gdD8odD1SdCh0KSk9PT16dHx8dD09PS16dD8odDwwPy0xOjEpKnh0OnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBBdCh0KXt2YXIgcj1GdCh0KSxlPXIlMTtyZXR1cm4gcj09cj9lP3ItZTpyOjB9ZnVuY3Rpb24gTnQodCl7bGV0IHI9ITE7aWYoZHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYodnQodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBQdCh0KXtpZighTnQodCkpcmV0dXJuIDA7cmV0dXJuIEZ0KHQpfWZ1bmN0aW9uIGt0KHQpe3JldHVybiEhTnQodCkmJih0PVB0KHQpLCJudW1iZXIiPT10eXBlb2Yocj10KSYmcj09QXQocikpO3ZhciByfXZhciBFdD1pLmlzRmluaXRlLEN0PU1hdGgubWluO3ZhciBJdD1mdW5jdGlvbih0KXt2YXIgcj1NYXRoW3RdO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKHQ9UnQodCksKGU9bnVsbD09ZT8wOkN0KEF0KGUpLDI5MikpJiZFdCh0KSl7dmFyIG49KHV0KHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChuPSh1dChyKG5bMF0rImUiKygrblsxXStlKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygrblsxXS1lKSl9cmV0dXJuIHIodCl9fSgicm91bmQiKSxUdD1JdDtmdW5jdGlvbiBNdCh0KXtpZighTnQodCkpcmV0dXJuIDA7dD1QdCh0KTtsZXQgcj1UdCh0KTtyZXR1cm4iMCI9PT1TdHJpbmcocik/MDpyfWZ1bmN0aW9uIHF0KHQpe2lmKCFrdCh0KSlyZXR1cm4hMTtyZXR1cm4gTXQodCk+PTB9ZnVuY3Rpb24gTHQodCxyKXtpZighZHQodCkpcmV0dXJuIiI7aWYoIXF0KHIpKXJldHVybiIiO2lmKDA9PT0ocj1NdChyKSkpcmV0dXJuIiI7bGV0IGU9dC5sZW5ndGgtcjtyZXR1cm4gZTwwJiYoZT0wKSx0LnN1YnN0cmluZyhlLGUrcil9ZnVuY3Rpb24gVXQodCxyKXtyZXR1cm4gZHQodCkmJnF0KHIpPzA9PT0ocj1NdChyKSk/dDpmdW5jdGlvbih0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT8iIjp0LnN1YnN0cmluZygwLHIpOiIifSh0LHQubGVuZ3RoLXIpOiIifWZ1bmN0aW9uIER0KHQpe2lmKCFkdCh0KSlyZXR1cm57cGF0aDoiIixpc1Jvb3Q6ITF9O2Zvcig7dC5pbmRleE9mKCJcXFxcIik+PTA7KXQ9dC5yZXBsYWNlKCJcXFxcIiwiXFwiKTtmb3IoO3QuaW5kZXhPZigiLy8iKT49MDspdD10LnJlcGxhY2UoIi8vIiwiLyIpO2lmKCI6Ij09PUx0KHQsMSkpcmV0dXJue3BhdGg6YCR7dH1cXGAsaXNSb290OiEwfTtpZigiXFwiPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4iOiI9PT1MdChyLDEpP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19aWYoIi8iPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4gMD09PXIubGVuZ3RoP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19cmV0dXJue3BhdGg6dCxpc1Jvb3Q6ITF9fWZ1bmN0aW9uIEd0KHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPXIucGF0aDt0cnl7ZT1lLnNwbGl0KCJcXCIpLnBvcCgpLnNwbGl0KCIvIikucG9wKCl9Y2F0Y2godCl7fXJldHVybiBlfWZ1bmN0aW9uIFd0KHQscj17fSl7bGV0IGU9c3QociwiZnMiKSxuPSExO3RyeXtlLnN0YXRTeW5jKHQpLG49ITB9Y2F0Y2h7bj0hMX1yZXR1cm4gbn1mdW5jdGlvbiBCdCh0LHI9e30pe2xldCBlPXN0KHIsImZzIik7aWYoIVd0KHQse2ZzOmV9KSlyZXR1cm4hMTtsZXQgbj1lLmxzdGF0U3luYyh0KTtyZXR1cm4hbi5pc0ZpbGUoKSYmIW4uaXNTeW1ib2xpY0xpbmsoKX1mdW5jdGlvbiBIdCh0LHI9e30pe2xldCBlPXN0KHIsImZzIik7cmV0dXJuISFXdCh0LHtmczplfSkmJighZS5sc3RhdFN5bmModCkuaXNEaXJlY3RvcnkoKSYmIWUubHN0YXRTeW5jKHQpLmlzU3ltYm9saWNMaW5rKCkpfWZ1bmN0aW9uIEp0KHQscj17fSl7bGV0IGU9c3QociwiZnMiKTtpZighV3QodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJmaWxlIGRvZXMgbm90IGV4aXN0OiAiK3R9O2lmKCFIdCh0LHtmczplfSkpcmV0dXJue2Vycm9yOiJpbnB1dCBwYXRoIGlzIG5vdCBhIGZpbGU6ICIrdH07dHJ5e2UudW5saW5rU3luYyh0KX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6dH19cmV0dXJue3N1Y2Nlc3M6ImRvbmU6ICIrdH19YXN5bmMgZnVuY3Rpb24gS3QodCxyLGU9e30pe2xldCBuPSIiLG89c3QoZSwiZnMiKTtpZighcHQoaT10KXx8MD09PWkubGVuZ3RofHwxPT09aS5sZW5ndGgmJl90KGlbMF0pKXRocm93IG5ldyBFcnJvcigiZnBzSW4gaW4gbm90IGFuIGVmZmVjdGl2ZSBhcnJheSIpO3ZhciBpO2xldCB1PWZ1bmN0aW9uKHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPUd0KHQ9ci5wYXRoKTtpZighZHQoZSkpcmV0dXJuIHQ7bGV0IG49RHQodD1VdCh0LGUubGVuZ3RoKSk7cmV0dXJuIG4uaXNSb290LG4ucGF0aH0ociksYT1zdChlLCJmbk91dCIsIiIpO2R0KGEpfHwoYT1HdChyKSksQnQodSx7ZnM6b30pfHxmdW5jdGlvbih0LHI9e30pe2xldCBlPXN0KHIsImZzIik7aWYoQnQodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJpbnB1dCBmb2xkZXIgaXMgYWxyZWFkeSBleGlzdHM6ICIrdH07aWYoV3QodCx7ZnM6ZX0pKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBhbHJlYWR5IGV4aXN0czogIit0fTt0cnl7ZS5ta2RpclN5bmModCx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX0odSx7ZnM6b30pO2xldCBjPWx0KCk7dHJ5e2xldCBlPW8uY3JlYXRlV3JpdGVTdHJlYW0ocik7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2xldCBpPXRbcl07aWYoIUh0KGkse2ZzOm99KSl0aHJvdyBuZXcgRXJyb3IoYGZwSW5bJHtpfV0gaXMgbm90IGEgZmlsZWApO2xldCB1PSgpPT57bGV0IHQ9bHQoKSxyPW8uY3JlYXRlUmVhZFN0cmVhbShpKTtyZXR1cm4gci5vbigiZXJyb3IiLChyPT57bj1yLm1lc3NhZ2UsdC5yZWplY3Qocil9KSksci5vbigiZW5kIiwoKCk9PntKdChpLHtmczpvfSksdC5yZXNvbHZlKCl9KSksci5waXBlKGUse2VuZDohMX0pLHR9O2F3YWl0IHUoKX1lLmVuZCgpLGUub24oImVycm9yIiwodD0+e249dC5tZXNzYWdlLGMucmVqZWN0KG4pfSkpLGUub24oImZpbmlzaCIsKCgpPT57bGV0IHQ9e2ZpbGVuYW1lOmEscGF0aDpyfTtjLnJlc29sdmUodCl9KSl9Y2F0Y2godCl7bj10Lm1lc3NhZ2UsYy5yZWplY3Qobil9cmV0dXJuIGN9bGV0IG1lcmdlU2xpY2VzPWFzeW5jKGUsbixvKT0+e2xldCBpPVtdO2ZvcihsZXQgcj0wO3I8bjtyKyspe2xldCBuPXQucmVzb2x2ZShvLGAke2V9XyR7cn1gKTtpLnB1c2gobil9bGV0IHU9dC5yZXNvbHZlKG8sZSksYT1hd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsbj17fSl7cmV0dXJuIEt0KHQsZSx7ZnM6ciwuLi5ufSl9KGksdSk7cmV0dXJuIHIud3JpdGVGaWxlU3luYyhgJHt1fS5kb25lYCwiIiwidXRmOCIpLGF9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogbWVyZ2VTbGljZXMKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbWVyZ2VTbGljZXMKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAKICAgICAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICAgICAgbW9kZTogJ2VtaXQnLAogICAgICAgICAgICAgICAgZXZOYW1lOiAnZXJyb3InLAogICAgICAgICAgICAgICAgbXNnOiBlcnIsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgICAgICB9CiAgICAgICAgICAgIAogICAgfQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgPT09ICdjYWxsJyl7CiAgICAgICAgbGV0IHN0YXRlID0gJycKICAgICAgICBsZXQgbXNnID0gbnVsbAoKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL2Z1bgogICAgICAgICAgICBsZXQgZnVuID0gaW5zdGFuY2VbZGF0YS5mdW5dCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKCiAgICAgICAgICAgIC8vZXhlYwogICAgICAgICAgICBhd2FpdCBmdW4oLi4uaW5wdXQpCiAgICAgICAgICAgICAgICAudGhlbigoc3VjKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J3N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgbXNnPXN1YwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J2Vycm9yJwogICAgICAgICAgICAgICAgICAgIG1zZz1lcnIKICAgICAgICAgICAgICAgIH0pCgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgICAgICBzdGF0ZSA9ICdlcnJvcicKICAgICAgICAgICAgbXNnID0gZXJyCiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICBtb2RlOiAncmV0dXJuJywKICAgICAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIGZ1bjogZGF0YS5mdW4sCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBtc2csCiAgICAgICAgfQogICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICB9Cgp9CgpmdW5jdGlvbiByZWN2TWVzc2FnZShkYXRhKSB7CiAgICAvLyBjb25zb2xlLmxvZygnaW5uZXIgd29ya2VyIHJlY3Y6JywgZGF0YSkKCiAgICAvL2RhdGFSZWN2CiAgICBsZXQgZGF0YVJlY3YgPSBkYXRhCgogICAgLy9ydW4KICAgIHJ1bihkYXRhUmVjdikKCn0KCgogICAgICAgIHBhcmVudFBvcnQub24oJ21lc3NhZ2UnLCByZWN2TWVzc2FnZSkKICAgICAgICAKCnRyeXsKICAgIHByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIGVycikKICAgIH0pCn0KY2F0Y2goZXJyKXt9Cgo=",Buffer.from(s,"base64").toString("utf8"));var s;function i(){let r=new n,s=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){o(e)}}(t);if(!s)return o("invalid worker"),null;function i(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let s=0;s<e;s++)t[s]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return s.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function o(e){r.emit("error",e)}return s.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),s.on("error",o),s.on("exit",e=>{1!==e&&o("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};s.postMessage(e)}([...arguments]),r.main=i,r.main=i,r.terminate=function(){s?(s.terminate(),s=void 0):o("worker has been terminated")},r}r=async function(){let e=[...arguments],t=i();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(is);var os=Jn(is.exports);let as=(e,t,n)=>{let r=`${function(){if(!Wn(dr))throw new Error("invalid dayjs");return dr().format("YYYYMMDDHHmmss")}()}|${yr(6)}|${e}`;return setTimeout(()=>{os(e,t,n).catch(e=>{console.log(e)})},1),r},cs=(t,n)=>{let r="";if(!$t(t))return r=`invalid id[${t}]`,console.log(r),{state:"error",msg:r,path:""};let s=ye(rs(t,"|"),2,"");if(!$t(s))return r=`can not find fileHash in id[${t}]`,console.log(r),{state:"error",msg:r,path:""};let i=e.resolve(n,s),o=e.resolve(n,`${s}.done`),a=cr(i),c=cr(o),l=a&&c;return!a&&c&&ss(o),{state:l?"success":"merging",msg:"",path:i}};var ls={exports:{}};!function(e){var t,n;e.exports=(t=i,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function s(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,r,i,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new s(r,i||e,o),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,s=[];if(0===this._eventsCount)return s;for(r in e=this._events)t.call(e,r)&&s.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,i=r.length,o=new Array(i);s<i;s++)o[s]=r[s].fn;return o},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,s,i,o){var a=n?n+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,s),!0;case 5:return u.fn.call(u.context,t,r,s,i),!0;case 6:return u.fn.call(u.context,t,r,s,i,o),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var p,w=u.length;for(l=0;l<w;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),d){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,r);break;case 4:u[l].fn.call(u[l].context,t,r,s);break;default:if(!c)for(p=1,c=new Array(d-1);p<d;p++)c[p-1]=arguments[p];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,n){return i(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return i(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,s){var i=n?n+e:e;if(!this._events[i])return this;if(!t)return o(this,i),this;var a=this._events[i];if(a.fn)a.fn!==t||s&&!a.once||r&&a.context!==r||o(this,i);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||s&&!a[c].once||r&&a[c].context!==r)&&l.push(a[c]);l.length?this._events[i]=1===l.length?l[0]:l:o(this,i)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(s="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIiksZT1yZXF1aXJlKCJmcyIpO2Z1bmN0aW9uIHIodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytyPG4mJiExIT09ZSh0W3JdLHIsdCk7KTtyZXR1cm4gdH12YXIgbixvPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG89LTEsdT1PYmplY3QodCksaT1yKHQpLGE9aS5sZW5ndGg7YS0tOyl7dmFyIGM9aVtuP2E6KytvXTtpZighMT09PWUodVtjXSxjLHUpKWJyZWFrfXJldHVybiB0fTt2YXIgdT0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsaT0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLGE9dXx8aXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxjPWEuU3ltYm9sLGY9T2JqZWN0LnByb3RvdHlwZSxzPWYuaGFzT3duUHJvcGVydHksbD1mLnRvU3RyaW5nLHA9Yz9jLnRvU3RyaW5nVGFnOnZvaWQgMDt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciB2PSJbb2JqZWN0IE51bGxdIix5PSJbb2JqZWN0IFVuZGVmaW5lZF0iLGQ9Yz9jLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiBiKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/eTp2OmQmJmQgaW4gT2JqZWN0KHQpP2Z1bmN0aW9uKHQpe3ZhciBlPXMuY2FsbCh0LHApLHI9dFtwXTt0cnl7dFtwXT12b2lkIDA7dmFyIG49ITB9Y2F0Y2godCl7fXZhciBvPWwuY2FsbCh0KTtyZXR1cm4gbiYmKGU/dFtwXT1yOmRlbGV0ZSB0W3BdKSxvfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gaC5jYWxsKHQpfSh0KX1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9ZnVuY3Rpb24gXyh0KXtyZXR1cm4gZyh0KSYmIltvYmplY3QgQXJndW1lbnRzXSI9PWIodCl9dmFyIGo9T2JqZWN0LnByb3RvdHlwZSx3PWouaGFzT3duUHJvcGVydHksbT1qLnByb3BlcnR5SXNFbnVtZXJhYmxlLE89XyhmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP186ZnVuY3Rpb24odCl7cmV0dXJuIGcodCkmJncuY2FsbCh0LCJjYWxsZWUiKSYmIW0uY2FsbCh0LCJjYWxsZWUiKX0sUz1BcnJheS5pc0FycmF5O3ZhciBBPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsej1BJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUseD16JiZ6LmV4cG9ydHM9PT1BP2EuQnVmZmVyOnZvaWQgMCxFPSh4P3guaXNCdWZmZXI6dm9pZCAwKXx8ZnVuY3Rpb24oKXtyZXR1cm4hMX0saz05MDA3MTk5MjU0NzQwOTkxLEY9L14oPzowfFsxLTldXGQqKSQvO2Z1bmN0aW9uICQodCxlKXt2YXIgcj10eXBlb2YgdDtyZXR1cm4hIShlPW51bGw9PWU/azplKSYmKCJudW1iZXIiPT1yfHwic3ltYm9sIiE9ciYmRi50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9dmFyIFA9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBMKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4tMSYmdCUxPT0wJiZ0PD1QfXZhciBJPXt9O0lbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPUlbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPUlbIltvYmplY3QgSW50OEFycmF5XSJdPUlbIltvYmplY3QgSW50MTZBcnJheV0iXT1JWyJbb2JqZWN0IEludDMyQXJyYXldIl09SVsiW29iamVjdCBVaW50OEFycmF5XSJdPUlbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09SVsiW29iamVjdCBVaW50MTZBcnJheV0iXT1JWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLElbIltvYmplY3QgQXJndW1lbnRzXSJdPUlbIltvYmplY3QgQXJyYXldIl09SVsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1JWyJbb2JqZWN0IEJvb2xlYW5dIl09SVsiW29iamVjdCBEYXRhVmlld10iXT1JWyJbb2JqZWN0IERhdGVdIl09SVsiW29iamVjdCBFcnJvcl0iXT1JWyJbb2JqZWN0IEZ1bmN0aW9uXSJdPUlbIltvYmplY3QgTWFwXSJdPUlbIltvYmplY3QgTnVtYmVyXSJdPUlbIltvYmplY3QgT2JqZWN0XSJdPUlbIltvYmplY3QgUmVnRXhwXSJdPUlbIltvYmplY3QgU2V0XSJdPUlbIltvYmplY3QgU3RyaW5nXSJdPUlbIltvYmplY3QgV2Vha01hcF0iXT0hMTt2YXIgTSxUPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsUj1UJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsVT1SJiZSLmV4cG9ydHM9PT1UJiZ1LnByb2Nlc3MsTj1mdW5jdGlvbigpe3RyeXt2YXIgdD1SJiZSLnJlcXVpcmUmJlIucmVxdWlyZSgidXRpbCIpLnR5cGVzO3JldHVybiB0fHxVJiZVLmJpbmRpbmcmJlUuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KCksRD1OJiZOLmlzVHlwZWRBcnJheSxCPUQ/KE09RCxmdW5jdGlvbih0KXtyZXR1cm4gTSh0KX0pOmZ1bmN0aW9uKHQpe3JldHVybiBnKHQpJiZMKHQubGVuZ3RoKSYmISFJW2IodCldfSxDPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gVyh0LGUpe3ZhciByPVModCksbj0hciYmTyh0KSxvPSFyJiYhbiYmRSh0KSx1PSFyJiYhbiYmIW8mJkIodCksaT1yfHxufHxvfHx1LGE9aT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPUFycmF5KHQpOysrcjx0OyluW3JdPWUocik7cmV0dXJuIG59KHQubGVuZ3RoLFN0cmluZyk6W10sYz1hLmxlbmd0aDtmb3IodmFyIGYgaW4gdCkhZSYmIUMuY2FsbCh0LGYpfHxpJiYoImxlbmd0aCI9PWZ8fG8mJigib2Zmc2V0Ij09Znx8InBhcmVudCI9PWYpfHx1JiYoImJ1ZmZlciI9PWZ8fCJieXRlTGVuZ3RoIj09Znx8ImJ5dGVPZmZzZXQiPT1mKXx8JChmLGMpKXx8YS5wdXNoKGYpO3JldHVybiBhfXZhciBxPU9iamVjdC5wcm90b3R5cGU7dmFyIFY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQoZShyKSl9fShPYmplY3Qua2V5cyxPYmplY3QpLEc9VixIPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gSih0KXtpZihyPShlPXQpJiZlLmNvbnN0cnVjdG9yLGUhPT0oImZ1bmN0aW9uIj09dHlwZW9mIHImJnIucHJvdG90eXBlfHxxKSlyZXR1cm4gRyh0KTt2YXIgZSxyLG49W107Zm9yKHZhciBvIGluIE9iamVjdCh0KSlILmNhbGwodCxvKSYmImNvbnN0cnVjdG9yIiE9byYmbi5wdXNoKG8pO3JldHVybiBufWZ1bmN0aW9uIEsodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9dmFyIFE9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLFg9IltvYmplY3QgRnVuY3Rpb25dIixZPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsWj0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHR0KHQpe2lmKCFLKHQpKXJldHVybiExO3ZhciBlPWIodCk7cmV0dXJuIGU9PVh8fGU9PVl8fGU9PVF8fGU9PVp9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIG51bGwhPXQmJkwodC5sZW5ndGgpJiYhdHQodCl9ZnVuY3Rpb24gcnQodCl7cmV0dXJuIGV0KHQpP1codCk6Sih0KX12YXIgbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixuKXtpZihudWxsPT1yKXJldHVybiByO2lmKCFldChyKSlyZXR1cm4gdChyLG4pO2Zvcih2YXIgbz1yLmxlbmd0aCx1PWU/bzotMSxpPU9iamVjdChyKTsoZT91LS06Kyt1PG8pJiYhMSE9PW4oaVt1XSx1LGkpOyk7cmV0dXJuIHJ9fSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmbyh0LGUscnQpfSkpLG90PW50O2Z1bmN0aW9uIHV0KHQpe3JldHVybiB0fWZ1bmN0aW9uIGl0KHQsZSl7dmFyIG47cmV0dXJuKFModCk/cjpvdCkodCwiZnVuY3Rpb24iPT10eXBlb2Yobj1lKT9uOnV0KX12YXIgYXQsY3Q9YVsiX19jb3JlLWpzX3NoYXJlZF9fIl0sZnQ9KGF0PS9bXi5dKyQvLmV4ZWMoY3QmJmN0LmtleXMmJmN0LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIithdDoiIjt2YXIgc3Q9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIGx0KHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gc3QuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9dmFyIHB0PS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLGh0PUZ1bmN0aW9uLnByb3RvdHlwZSx2dD1PYmplY3QucHJvdG90eXBlLHl0PWh0LnRvU3RyaW5nLGR0PXZ0Lmhhc093blByb3BlcnR5LGJ0PVJlZ0V4cCgiXiIreXQuY2FsbChkdCkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gZ3QodCl7cmV0dXJuISghSyh0KXx8ZnVuY3Rpb24odCl7cmV0dXJuISFmdCYmZnQgaW4gdH0odCkpJiYodHQodCk/YnQ6cHQpLnRlc3QobHQodCkpfWZ1bmN0aW9uIF90KHQsZSl7dmFyIHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX0odCxlKTtyZXR1cm4gZ3Qocik/cjp2b2lkIDB9dmFyIGp0PV90KGEsIkRhdGFWaWV3Iiksd3Q9X3QoYSwiTWFwIiksbXQ9X3QoYSwiUHJvbWlzZSIpLE90PV90KGEsIlNldCIpLFN0PV90KGEsIldlYWtNYXAiKSxBdD0iW29iamVjdCBNYXBdIix6dD0iW29iamVjdCBQcm9taXNlXSIseHQ9IltvYmplY3QgU2V0XSIsRXQ9IltvYmplY3QgV2Vha01hcF0iLGt0PSJbb2JqZWN0IERhdGFWaWV3XSIsRnQ9bHQoanQpLCR0PWx0KHd0KSxQdD1sdChtdCksTHQ9bHQoT3QpLEl0PWx0KFN0KSxNdD1iOyhqdCYmTXQobmV3IGp0KG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1rdHx8d3QmJk10KG5ldyB3dCkhPUF0fHxtdCYmTXQobXQucmVzb2x2ZSgpKSE9enR8fE90JiZNdChuZXcgT3QpIT14dHx8U3QmJk10KG5ldyBTdCkhPUV0KSYmKE10PWZ1bmN0aW9uKHQpe3ZhciBlPWIodCkscj0iW29iamVjdCBPYmplY3RdIj09ZT90LmNvbnN0cnVjdG9yOnZvaWQgMCxuPXI/bHQocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBGdDpyZXR1cm4ga3Q7Y2FzZSAkdDpyZXR1cm4gQXQ7Y2FzZSBQdDpyZXR1cm4genQ7Y2FzZSBMdDpyZXR1cm4geHQ7Y2FzZSBJdDpyZXR1cm4gRXR9cmV0dXJuIGV9KTt2YXIgVHQ9TXQsUnQ9IltvYmplY3QgU3RyaW5nXSI7ZnVuY3Rpb24gVXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3ZvaWQgMDplW3RdfX12YXIgTnQ9VXQoImxlbmd0aCIpLER0PVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTtmdW5jdGlvbiBCdCh0KXtyZXR1cm4gRHQudGVzdCh0KX12YXIgQ3Q9IlxcdWQ4MDAtXFx1ZGZmZiIsV3Q9IlsiK0N0KyJdIixxdD0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLFZ0PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLEd0PSJbXiIrQ3QrIl0iLEh0PSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixKdD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsS3Q9Iig/OiIrcXQrInwiK1Z0KyIpIisiPyIsUXQ9IltcXHVmZTBlXFx1ZmUwZl0/IixYdD1RdCtLdCsoIig/OlxcdTIwMGQoPzoiK1tHdCxIdCxKdF0uam9pbigifCIpKyIpIitRdCtLdCsiKSoiKSxZdD0iKD86IitbR3QrcXQrIj8iLHF0LEh0LEp0LFd0XS5qb2luKCJ8IikrIikiLFp0PVJlZ0V4cChWdCsiKD89IitWdCsiKXwiK1l0K1h0LCJnIik7ZnVuY3Rpb24gdGUodCl7cmV0dXJuIEJ0KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1adC5sYXN0SW5kZXg9MDtadC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9KHQpOk50KHQpfWZ1bmN0aW9uIGVlKHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYoZXQodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihlPXQpfHwhUyhlKSYmZyhlKSYmYihlKT09UnQ/dGUodCk6dC5sZW5ndGg7dmFyIGUscj1UdCh0KTtyZXR1cm4iW29iamVjdCBNYXBdIj09cnx8IltvYmplY3QgU2V0XSI9PXI/dC5zaXplOkoodCkubGVuZ3RofWZ1bmN0aW9uIHJlKHQsZSl7Zm9yKHZhciByPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytyPG47KW9bcl09ZSh0W3JdLHIsdCk7cmV0dXJuIG99ZnVuY3Rpb24gbmUodCxlKXtyZXR1cm4gdD09PWV8fHQhPXQmJmUhPWV9ZnVuY3Rpb24gb2UodCxlKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tOylpZihuZSh0W3JdWzBdLGUpKXJldHVybiByO3JldHVybi0xfXZhciB1ZT1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIGllKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgbj10W2VdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWllLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LGllLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxyPW9lKGUsdCk7cmV0dXJuIShyPDApJiYocj09ZS5sZW5ndGgtMT9lLnBvcCgpOnVlLmNhbGwoZSxyLDEpLC0tdGhpcy5zaXplLCEwKX0saWUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9b2UoZSx0KTtyZXR1cm4gcjwwP3ZvaWQgMDplW3JdWzFdfSxpZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBvZSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxpZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXyxuPW9lKHIsdCk7cmV0dXJuIG48MD8oKyt0aGlzLnNpemUsci5wdXNoKFt0LGVdKSk6cltuXVsxXT1lLHRoaXN9O3ZhciBhZT1fdChPYmplY3QsImNyZWF0ZSIpO3ZhciBjZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBmZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHNlKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgbj10W2VdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIGxlKHQsZSl7dmFyIHIsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2Yocj1lKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09cjpudWxsPT09cik/b1sic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBwZSh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1zZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPWFlP2FlKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxzZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxzZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoYWUpe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gY2UuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxzZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIGFlP3ZvaWQgMCE9PWVbdF06ZmUuY2FsbChlLHQpfSxzZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1hZSYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfSxwZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBzZSxtYXA6bmV3KHd0fHxpZSksc3RyaW5nOm5ldyBzZX19LHBlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9bGUodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0scGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gbGUodGhpcyx0KS5nZXQodCl9LHBlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIGxlKHRoaXMsdCkuaGFzKHQpfSxwZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9bGUodGhpcyx0KSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc307ZnVuY3Rpb24gaGUodCl7dmFyIGU9dGhpcy5fX2RhdGFfXz1uZXcgaWUodCk7dGhpcy5zaXplPWUuc2l6ZX1oZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBpZSx0aGlzLnNpemU9MH0saGUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9ZS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT1lLnNpemUscn0saGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9LGhlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxoZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgaWUpe3ZhciBuPXIuX19kYXRhX187aWYoIXd0fHxuLmxlbmd0aDwxOTkpcmV0dXJuIG4ucHVzaChbdCxlXSksdGhpcy5zaXplPSsrci5zaXplLHRoaXM7cj10aGlzLl9fZGF0YV9fPW5ldyBwZShuKX1yZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemU9ci5zaXplLHRoaXN9O2Z1bmN0aW9uIHZlKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBwZTsrK2U8cjspdGhpcy5hZGQodFtlXSl9ZnVuY3Rpb24geWUodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytyPG47KWlmKGUodFtyXSxyLHQpKXJldHVybiEwO3JldHVybiExfXZlLnByb3RvdHlwZS5hZGQ9dmUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iKSx0aGlzfSx2ZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX07dmFyIGRlPTEsYmU9MjtmdW5jdGlvbiBnZSh0LGUscixuLG8sdSl7dmFyIGk9ciZkZSxhPXQubGVuZ3RoLGM9ZS5sZW5ndGg7aWYoYSE9YyYmIShpJiZjPmEpKXJldHVybiExO3ZhciBmPXUuZ2V0KHQpLHM9dS5nZXQoZSk7aWYoZiYmcylyZXR1cm4gZj09ZSYmcz09dDt2YXIgbD0tMSxwPSEwLGg9ciZiZT9uZXcgdmU6dm9pZCAwO2Zvcih1LnNldCh0LGUpLHUuc2V0KGUsdCk7KytsPGE7KXt2YXIgdj10W2xdLHk9ZVtsXTtpZihuKXZhciBkPWk/bih5LHYsbCxlLHQsdSk6bih2LHksbCx0LGUsdSk7aWYodm9pZCAwIT09ZCl7aWYoZCljb250aW51ZTtwPSExO2JyZWFrfWlmKGgpe2lmKCF5ZShlLChmdW5jdGlvbih0LGUpe2lmKGk9ZSwhaC5oYXMoaSkmJih2PT09dHx8byh2LHQscixuLHUpKSlyZXR1cm4gaC5wdXNoKGUpO3ZhciBpfSkpKXtwPSExO2JyZWFrfX1lbHNlIGlmKHYhPT15JiYhbyh2LHkscixuLHUpKXtwPSExO2JyZWFrfX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUoZSkscH12YXIgX2U9YS5VaW50OEFycmF5O2Z1bmN0aW9uIGplKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JbKytlXT1bbix0XX0pKSxyfWZ1bmN0aW9uIHdlKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyWysrZV09dH0pKSxyfXZhciBtZT0xLE9lPTIsU2U9IltvYmplY3QgQm9vbGVhbl0iLEFlPSJbb2JqZWN0IERhdGVdIix6ZT0iW29iamVjdCBFcnJvcl0iLHhlPSJbb2JqZWN0IE1hcF0iLEVlPSJbb2JqZWN0IE51bWJlcl0iLGtlPSJbb2JqZWN0IFJlZ0V4cF0iLEZlPSJbb2JqZWN0IFNldF0iLCRlPSJbb2JqZWN0IFN0cmluZ10iLFBlPSJbb2JqZWN0IFN5bWJvbF0iLExlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsSWU9IltvYmplY3QgRGF0YVZpZXddIixNZT1jP2MucHJvdG90eXBlOnZvaWQgMCxUZT1NZT9NZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBSZSh0LGUpe2Zvcih2YXIgcj0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxvPTAsdT1bXTsrK3I8bjspe3ZhciBpPXRbcl07ZShpLHIsdCkmJih1W28rK109aSl9cmV0dXJuIHV9dmFyIFVlPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsTmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxEZT1OZT9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksUmUoTmUodCksKGZ1bmN0aW9uKGUpe3JldHVybiBVZS5jYWxsKHQsZSl9KSkpfTpmdW5jdGlvbigpe3JldHVybltdfTtmdW5jdGlvbiBCZSh0KXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUodCk7cmV0dXJuIFModCk/bjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPWUubGVuZ3RoLG89dC5sZW5ndGg7KytyPG47KXRbbytyXT1lW3JdO3JldHVybiB0fShuLHIodCkpfSh0LHJ0LERlKX12YXIgQ2U9MSxXZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxZT0xLFZlPSJbb2JqZWN0IEFyZ3VtZW50c10iLEdlPSJbb2JqZWN0IEFycmF5XSIsSGU9IltvYmplY3QgT2JqZWN0XSIsSmU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBLZSh0LGUscixuLG8sdSl7dmFyIGk9Uyh0KSxhPVMoZSksYz1pP0dlOlR0KHQpLGY9YT9HZTpUdChlKSxzPShjPWM9PVZlP0hlOmMpPT1IZSxsPShmPWY9PVZlP0hlOmYpPT1IZSxwPWM9PWY7aWYocCYmRSh0KSl7aWYoIUUoZSkpcmV0dXJuITE7aT0hMCxzPSExfWlmKHAmJiFzKXJldHVybiB1fHwodT1uZXcgaGUpLGl8fEIodCk/Z2UodCxlLHIsbixvLHUpOmZ1bmN0aW9uKHQsZSxyLG4sbyx1LGkpe3N3aXRjaChyKXtjYXNlIEllOmlmKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPWUuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLGU9ZS5idWZmZXI7Y2FzZSBMZTpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhdShuZXcgX2UodCksbmV3IF9lKGUpKSk7Y2FzZSBTZTpjYXNlIEFlOmNhc2UgRWU6cmV0dXJuIG5lKCt0LCtlKTtjYXNlIHplOnJldHVybiB0Lm5hbWU9PWUubmFtZSYmdC5tZXNzYWdlPT1lLm1lc3NhZ2U7Y2FzZSBrZTpjYXNlICRlOnJldHVybiB0PT1lKyIiO2Nhc2UgeGU6dmFyIGE9amU7Y2FzZSBGZTp2YXIgYz1uJm1lO2lmKGF8fChhPXdlKSx0LnNpemUhPWUuc2l6ZSYmIWMpcmV0dXJuITE7dmFyIGY9aS5nZXQodCk7aWYoZilyZXR1cm4gZj09ZTtufD1PZSxpLnNldCh0LGUpO3ZhciBzPWdlKGEodCksYShlKSxuLG8sdSxpKTtyZXR1cm4gaS5kZWxldGUodCkscztjYXNlIFBlOmlmKFRlKXJldHVybiBUZS5jYWxsKHQpPT1UZS5jYWxsKGUpfXJldHVybiExfSh0LGUsYyxyLG4sbyx1KTtpZighKHImcWUpKXt2YXIgaD1zJiZKZS5jYWxsKHQsIl9fd3JhcHBlZF9fIiksdj1sJiZKZS5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoaHx8dil7dmFyIHk9aD90LnZhbHVlKCk6dCxkPXY/ZS52YWx1ZSgpOmU7cmV0dXJuIHV8fCh1PW5ldyBoZSksbyh5LGQscixuLHUpfX1yZXR1cm4hIXAmJih1fHwodT1uZXcgaGUpLGZ1bmN0aW9uKHQsZSxyLG4sbyx1KXt2YXIgaT1yJkNlLGE9QmUodCksYz1hLmxlbmd0aDtpZihjIT1CZShlKS5sZW5ndGgmJiFpKXJldHVybiExO2Zvcih2YXIgZj1jO2YtLTspe3ZhciBzPWFbZl07aWYoIShpP3MgaW4gZTpXZS5jYWxsKGUscykpKXJldHVybiExfXZhciBsPXUuZ2V0KHQpLHA9dS5nZXQoZSk7aWYobCYmcClyZXR1cm4gbD09ZSYmcD09dDt2YXIgaD0hMDt1LnNldCh0LGUpLHUuc2V0KGUsdCk7Zm9yKHZhciB2PWk7KytmPGM7KXt2YXIgeT10W3M9YVtmXV0sZD1lW3NdO2lmKG4pdmFyIGI9aT9uKGQseSxzLGUsdCx1KTpuKHksZCxzLHQsZSx1KTtpZighKHZvaWQgMD09PWI/eT09PWR8fG8oeSxkLHIsbix1KTpiKSl7aD0hMTticmVha312fHwodj0iY29uc3RydWN0b3IiPT1zKX1pZihoJiYhdil7dmFyIGc9dC5jb25zdHJ1Y3RvcixfPWUuY29uc3RydWN0b3I7Zz09X3x8ISgiY29uc3RydWN0b3IiaW4gdCl8fCEoImNvbnN0cnVjdG9yImluIGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZyYmZyBpbnN0YW5jZW9mIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBfJiZfIGluc3RhbmNlb2YgX3x8KGg9ITEpfXJldHVybiB1LmRlbGV0ZSh0KSx1LmRlbGV0ZShlKSxofSh0LGUscixuLG8sdSkpfWZ1bmN0aW9uIFFlKHQsZSxyLG4sbyl7cmV0dXJuIHQ9PT1lfHwobnVsbD09dHx8bnVsbD09ZXx8IWcodCkmJiFnKGUpP3QhPXQmJmUhPWU6S2UodCxlLHIsbixRZSxvKSl9dmFyIFhlPTEsWWU9MjtmdW5jdGlvbiBaZSh0KXtyZXR1cm4gdD09dCYmIUsodCl9ZnVuY3Rpb24gdHIodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIG51bGwhPXImJihyW3RdPT09ZSYmKHZvaWQgMCE9PWV8fHQgaW4gT2JqZWN0KHIpKSl9fWZ1bmN0aW9uIGVyKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1ydCh0KSxyPWUubGVuZ3RoO3ItLTspe3ZhciBuPWVbcl0sbz10W25dO2Vbcl09W24sbyxaZShvKV19cmV0dXJuIGV9KHQpO3JldHVybiAxPT1lLmxlbmd0aCYmZVswXVsyXT90cihlWzBdWzBdLGVbMF1bMV0pOmZ1bmN0aW9uKHIpe3JldHVybiByPT09dHx8ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89ci5sZW5ndGgsdT1vLGk9IW47aWYobnVsbD09dClyZXR1cm4hdTtmb3IodD1PYmplY3QodCk7by0tOyl7dmFyIGE9cltvXTtpZihpJiZhWzJdP2FbMV0hPT10W2FbMF1dOiEoYVswXWluIHQpKXJldHVybiExfWZvcig7KytvPHU7KXt2YXIgYz0oYT1yW29dKVswXSxmPXRbY10scz1hWzFdO2lmKGkmJmFbMl0pe2lmKHZvaWQgMD09PWYmJiEoYyBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciBsPW5ldyBoZTtpZihuKXZhciBwPW4oZixzLGMsdCxlLGwpO2lmKCEodm9pZCAwPT09cD9RZShzLGYsWGV8WWUsbixsKTpwKSlyZXR1cm4hMX19cmV0dXJuITB9KHIsdCxlKX19dmFyIHJyPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIG5yKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8Zyh0KSYmYih0KT09cnJ9dmFyIG9yPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLHVyPS9eXHcqJC87ZnVuY3Rpb24gaXIodCxlKXtpZihTKHQpKXJldHVybiExO3ZhciByPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPXImJiJzeW1ib2wiIT1yJiYiYm9vbGVhbiIhPXImJm51bGwhPXQmJiFucih0KSl8fCh1ci50ZXN0KHQpfHwhb3IudGVzdCh0KXx8bnVsbCE9ZSYmdCBpbiBPYmplY3QoZSkpfXZhciBhcj0iRXhwZWN0ZWQgYSBmdW5jdGlvbiI7ZnVuY3Rpb24gY3IodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihhcik7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1lP2UuYXBwbHkodGhpcyxuKTpuWzBdLHU9ci5jYWNoZTtpZih1LmhhcyhvKSlyZXR1cm4gdS5nZXQobyk7dmFyIGk9dC5hcHBseSh0aGlzLG4pO3JldHVybiByLmNhY2hlPXUuc2V0KG8saSl8fHUsaX07cmV0dXJuIHIuY2FjaGU9bmV3KGNyLkNhY2hlfHxwZSkscn1jci5DYWNoZT1wZTt2YXIgZnI9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csc3I9L1xcKFxcKT8vZyxscj1mdW5jdGlvbih0KXt2YXIgZT1jcih0LChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09ci5zaXplJiZyLmNsZWFyKCksdH0pKSxyPWUuY2FjaGU7cmV0dXJuIGV9KChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJmUucHVzaCgiIiksdC5yZXBsYWNlKGZyLChmdW5jdGlvbih0LHIsbixvKXtlLnB1c2gobj9vLnJlcGxhY2Uoc3IsIiQxIik6cnx8dCl9KSksZX0pKSxwcj1scixocj0xLzAsdnI9Yz9jLnByb3RvdHlwZTp2b2lkIDAseXI9dnI/dnIudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIGRyKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihTKHQpKXJldHVybiByZSh0LGRyKSsiIjtpZihucih0KSlyZXR1cm4geXI/eXIuY2FsbCh0KToiIjt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0taHI/Ii0wIjplfWZ1bmN0aW9uIGJyKHQpe3JldHVybiBudWxsPT10PyIiOmRyKHQpfWZ1bmN0aW9uIGdyKHQsZSl7cmV0dXJuIFModCk/dDppcih0LGUpP1t0XTpwcihicih0KSl9dmFyIF9yPTEvMDtmdW5jdGlvbiBqcih0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fG5yKHQpKXJldHVybiB0O3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS1fcj8iLTAiOmV9ZnVuY3Rpb24gd3IodCxlKXtmb3IodmFyIHI9MCxuPShlPWdyKGUsdCkpLmxlbmd0aDtudWxsIT10JiZyPG47KXQ9dFtqcihlW3IrK10pXTtyZXR1cm4gciYmcj09bj90OnZvaWQgMH1mdW5jdGlvbiBtcih0LGUscil7dmFyIG49bnVsbD09dD92b2lkIDA6d3IodCxlKTtyZXR1cm4gdm9pZCAwPT09bj9yOm59ZnVuY3Rpb24gT3IodCxlKXtyZXR1cm4gbnVsbCE9dCYmZSBpbiBPYmplY3QodCl9ZnVuY3Rpb24gU3IodCxlKXtyZXR1cm4gbnVsbCE9dCYmZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0tMSxvPShlPWdyKGUsdCkpLmxlbmd0aCx1PSExOysrbjxvOyl7dmFyIGk9anIoZVtuXSk7aWYoISh1PW51bGwhPXQmJnIodCxpKSkpYnJlYWs7dD10W2ldfXJldHVybiB1fHwrK24hPW8/dTohIShvPW51bGw9PXQ/MDp0Lmxlbmd0aCkmJkwobykmJiQoaSxvKSYmKFModCl8fE8odCkpfSh0LGUsT3IpfXZhciBBcj0xLHpyPTI7ZnVuY3Rpb24geHIodCl7cmV0dXJuIGlyKHQpP1V0KGpyKHQpKTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHdyKGUsdCl9fSh0KX1mdW5jdGlvbiBFcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/dXQ6Im9iamVjdCI9PXR5cGVvZiB0P1ModCk/ZnVuY3Rpb24odCxlKXtyZXR1cm4gaXIodCkmJlplKGUpP3RyKGpyKHQpLGUpOmZ1bmN0aW9uKHIpe3ZhciBuPW1yKHIsdCk7cmV0dXJuIHZvaWQgMD09PW4mJm49PT1lP1NyKHIsdCk6UWUoZSxuLEFyfHpyKX19KHRbMF0sdFsxXSk6ZXIodCk6eHIodCl9ZnVuY3Rpb24ga3IodCxlKXt2YXIgcj0tMSxuPWV0KHQpP0FycmF5KHQubGVuZ3RoKTpbXTtyZXR1cm4gb3QodCwoZnVuY3Rpb24odCxvLHUpe25bKytyXT1lKHQsbyx1KX0pKSxufWZ1bmN0aW9uIEZyKHQsZSl7cmV0dXJuKFModCk/cmU6a3IpKHQsRXIoZSkpfXZhciAkcj0vXHMvO3ZhciBQcj0vXlxzKy87ZnVuY3Rpb24gTHIodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJiRyLnRlc3QodC5jaGFyQXQoZSkpOyk7cmV0dXJuIGV9KHQpKzEpLnJlcGxhY2UoUHIsIiIpOnR9ZnVuY3Rpb24gSXIodCxlLHIpe3ZhciBuPXQubGVuZ3RoO3JldHVybiByPXZvaWQgMD09PXI/bjpyLCFlJiZyPj1uP3Q6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPS0xLG89dC5sZW5ndGg7ZTwwJiYoZT0tZT5vPzA6bytlKSwocj1yPm8/bzpyKTwwJiYocis9byksbz1lPnI/MDpyLWU+Pj4wLGU+Pj49MDtmb3IodmFyIHU9QXJyYXkobyk7KytuPG87KXVbbl09dFtuK2VdO3JldHVybiB1fSh0LGUscil9ZnVuY3Rpb24gTXIodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gVHIodCxlLHIpe3JldHVybiBlPT1lP2Z1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49ci0xLG89dC5sZW5ndGg7KytuPG87KWlmKHRbbl09PT1lKXJldHVybiBuO3JldHVybi0xfSh0LGUscik6ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBvPXQubGVuZ3RoLHU9cisobj8xOi0xKTtuP3UtLTorK3U8bzspaWYoZSh0W3VdLHUsdCkpcmV0dXJuIHU7cmV0dXJuLTF9KHQsTXIscil9dmFyIFJyPSJcXHVkODAwLVxcdWRmZmYiLFVyPSJbIitScisiXSIsTnI9IltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIixEcj0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixCcj0iW14iK1JyKyJdIixDcj0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsV3I9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLHFyPSIoPzoiK05yKyJ8IitEcisiKSIrIj8iLFZyPSJbXFx1ZmUwZVxcdWZlMGZdPyIsR3I9VnIrcXIrKCIoPzpcXHUyMDBkKD86IitbQnIsQ3IsV3JdLmpvaW4oInwiKSsiKSIrVnIrcXIrIikqIiksSHI9Iig/OiIrW0JyK05yKyI/IixOcixDcixXcixVcl0uam9pbigifCIpKyIpIixKcj1SZWdFeHAoRHIrIig/PSIrRHIrIil8IitIcitHciwiZyIpO2Z1bmN0aW9uIEtyKHQpe3JldHVybiBCdCh0KT9mdW5jdGlvbih0KXtyZXR1cm4gdC5tYXRjaChKcil8fFtdfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gdC5zcGxpdCgiIil9KHQpfWZ1bmN0aW9uIFFyKHQsZSxyKXtpZigodD1icih0KSkmJihyfHx2b2lkIDA9PT1lKSlyZXR1cm4gTHIodCk7aWYoIXR8fCEoZT1kcihlKSkpcmV0dXJuIHQ7dmFyIG49S3IodCksbz1LcihlKSx1PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPS0xLG49dC5sZW5ndGg7KytyPG4mJlRyKGUsdFtyXSwwKT4tMTspO3JldHVybiByfShuLG8pLGk9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZUcihlLHRbcl0sMCk+LTE7KTtyZXR1cm4gcn0obixvKSsxO3JldHVybiBJcihuLHUsaSkuam9pbigiIil9ZnVuY3Rpb24gWHIodCl7cmV0dXJuISghZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwiIj09PXQpfWZ1bmN0aW9uIFlyKHQsZSl7aWYoIVhyKHQpKXJldHVybltdO2lmKCFYcihlKSlyZXR1cm5bXTtsZXQgcj1mdW5jdGlvbih0LGUpe3JldHVybiBYcih0KSYmWHIoZSk/dC5zcGxpdChlKTpbXX0odCxlKTtyPUZyKHIsUXIpO2xldCBuPVtdO3JldHVybiBpdChyLChmdW5jdGlvbih0KXtYcih0KSYmbi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24gWnIodCl7bGV0IGU9ITE7aWYoWHIodCkpZT0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYoZnVuY3Rpb24odCl7cmV0dXJuIHQhPXR9KHQpKXJldHVybiExO2U9ITB9cmV0dXJuIGV9dmFyIHRuPU5hTixlbj0vXlstK10weFswLTlhLWZdKyQvaSxybj0vXjBiWzAxXSskL2ksbm49L14wb1swLTddKyQvaSxvbj1wYXJzZUludDtmdW5jdGlvbiB1bih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYobnIodCkpcmV0dXJuIHRuO2lmKEsodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PUsoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PUxyKHQpO3ZhciByPXJuLnRlc3QodCk7cmV0dXJuIHJ8fG5uLnRlc3QodCk/b24odC5zbGljZSgyKSxyPzI6OCk6ZW4udGVzdCh0KT90bjordH12YXIgYW49MS8wLGNuPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBmbih0KXtyZXR1cm4gdD8odD11bih0KSk9PT1hbnx8dD09PS1hbj8odDwwPy0xOjEpKmNuOnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBzbih0KXt2YXIgZT1mbih0KSxyPWUlMTtyZXR1cm4gZT09ZT9yP2UtcjplOjB9ZnVuY3Rpb24gbG4odCl7aWYoIVpyKHQpKXJldHVybiAwO3JldHVybiBmbih0KX1mdW5jdGlvbiBwbih0KXtyZXR1cm4hIVpyKHQpJiYodD1sbih0KSwibnVtYmVyIj09dHlwZW9mKGU9dCkmJmU9PXNuKGUpKTt2YXIgZX12YXIgaG49YS5pc0Zpbml0ZSx2bj1NYXRoLm1pbjt2YXIgeW49ZnVuY3Rpb24odCl7dmFyIGU9TWF0aFt0XTtyZXR1cm4gZnVuY3Rpb24odCxyKXtpZih0PXVuKHQpLChyPW51bGw9PXI/MDp2bihzbihyKSwyOTIpKSYmaG4odCkpe3ZhciBuPShicih0KSsiZSIpLnNwbGl0KCJlIik7cmV0dXJuKygobj0oYnIoZShuWzBdKyJlIisoK25bMV0rcikpKSsiZSIpLnNwbGl0KCJlIikpWzBdKyJlIisoK25bMV0tcikpfXJldHVybiBlKHQpfX0oInJvdW5kIiksZG49eW47ZnVuY3Rpb24gYm4odCl7aWYoIVpyKHQpKXJldHVybiAwO3Q9bG4odCk7bGV0IGU9ZG4odCk7cmV0dXJuIjAiPT09U3RyaW5nKGUpPzA6ZX1mdW5jdGlvbiBnbih0LGU9e30pe2xldCByPW1yKGUsImZzIiksbj0hMTt0cnl7ci5zdGF0U3luYyh0KSxuPSEwfWNhdGNoe249ITF9cmV0dXJuIG59ZnVuY3Rpb24gX24odCxlPXt9KXtsZXQgcj1tcihlLCJmcyIpO3JldHVybiEhZ24odCx7ZnM6cn0pJiYoIXIubHN0YXRTeW5jKHQpLmlzRGlyZWN0b3J5KCkmJiFyLmxzdGF0U3luYyh0KS5pc1N5bWJvbGljTGluaygpKX1mdW5jdGlvbiBqbih0KXtyZXR1cm4gX24odCx7ZnM6ZX0pfWZ1bmN0aW9uIHduKHQsZSl7dmFyIHI9W107cmV0dXJuIG90KHQsKGZ1bmN0aW9uKHQsbixvKXtlKHQsbixvKSYmci5wdXNoKHQpfSkpLHJ9ZnVuY3Rpb24gbW4odCxlPXt9KXtsZXQgcj1tcihlLCJmcyIpO2lmKCFnbih0LHtmczpyfSkpcmV0dXJuITE7bGV0IG49ci5sc3RhdFN5bmModCk7cmV0dXJuIW4uaXNGaWxlKCkmJiFuLmlzU3ltYm9saWNMaW5rKCl9ZnVuY3Rpb24gT24odCxlPTEscj17fSl7bGV0IG49MSxvPW1yKHIsInBhdGgiKSx1PW1yKHIsImZzIik7aWYoIW1uKHQse2ZzOnV9KSl0aHJvdyBuZXcgRXJyb3IoYGZkWyR7dH1dIGlzIG5vdCBhIGZvbGRlcmApO3ZhciBpO3JldHVybiBudWxsIT09ZSYmKHBuKGk9ZSkmJmJuKGkpPjApJiYoZT1ibihlKSk8MSYmKGU9MSksZnVuY3Rpb24gdChyKXtsZXQgaT1bXTtyZXR1cm4gbW4ocix7ZnM6dX0pPyhpdCh1LnJlYWRkaXJTeW5jKHIpLChmdW5jdGlvbihhKXtsZXQgYz1vLnJlc29sdmUocixhKSxmPW51bGw7dHJ5e2Y9dS5zdGF0U3luYyhjKX1jYXRjaCh0KXt9ZiYmZi5pc0RpcmVjdG9yeSgpPyhpLnB1c2goe2lzRm9sZGVyOiEwLGxldmVsOm4scGF0aDpjLG5hbWU6by5iYXNlbmFtZShjKX0pLG4rPTEsKG48PWV8fG51bGw9PT1lKSYmKGk9aS5jb25jYXQodChjKSkpLG4tPTEpOmkucHVzaCh7aXNGb2xkZXI6ITEsbGV2ZWw6bixwYXRoOmMsbmFtZTpvLmJhc2VuYW1lKGMpfSl9KSksaSk6aX0odCl9ZnVuY3Rpb24gU24odCxlPTEscj17fSl7bGV0IG49bXIociwicGF0aCIpLG89bXIociwiZnMiKTtpZighbW4odCx7ZnM6b30pKXRocm93IG5ldyBFcnJvcihgZmRbJHt0fV0gaXMgbm90IGEgZm9sZGVyYCk7bGV0IHU9W107dmFyIGksYTtyZXR1cm4gdT1Pbih0LGUse3BhdGg6bixmczpvfSksYT17aXNGb2xkZXI6ITF9LHU9KFMoaT11KT9SZTp3bikoaSxFcihhKSksdT1Gcih1LCh0PT4oZGVsZXRlIHQuaXNGb2xkZXIsdCkpKSx1fWNvbnN0IEFuPW5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDQ4LDgsOTYsMywxMjcsMTI3LDEyNywxLDEyNyw5NiwzLDEyNywxMjcsMTI3LDAsOTYsMiwxMjcsMTI3LDAsOTYsMSwxMjcsMSwxMjcsOTYsMywxMjcsMTI3LDEyNiwxLDEyNiw5NiwzLDEyNiwxMjcsMTI3LDEsMTI2LDk2LDIsMTI3LDEyNiwwLDk2LDEsMTI3LDEsMTI2LDMsMTEsMTAsMCwwLDIsMSwzLDQsNSw2LDEsNyw1LDMsMSwwLDEsNyw4NSw5LDMsMTA5LDEwMSwxMDksMiwwLDUsMTIwLDEyMCwxMDQsNTEsNTAsMCwwLDYsMTA1LDExMCwxMDUsMTE2LDUxLDUwLDAsMiw4LDExNywxMTIsMTAwLDk3LDExNiwxMDEsNTEsNTAsMCwzLDgsMTAwLDEwNSwxMDMsMTAxLDExNSwxMTYsNTEsNTAsMCw0LDUsMTIwLDEyMCwxMDQsNTQsNTIsMCw1LDYsMTA1LDExMCwxMDUsMTE2LDU0LDUyLDAsNyw4LDExNywxMTIsMTAwLDk3LDExNiwxMDEsNTQsNTIsMCw4LDgsMTAwLDEwNSwxMDMsMTAxLDExNSwxMTYsNTQsNTIsMCw5LDEwLDI1MSwyMiwxMCwyNDIsMSwxLDQsMTI3LDMyLDAsMzIsMSwxMDYsMzMsMywzMiwxLDY1LDE2LDc5LDQsMTI3LDMyLDMsNjUsMTYsMTA3LDMzLDYsMzIsMiw2NSwxNjgsMTM2LDE0MSwxNjEsMiwxMDYsMzMsMywzMiwyLDY1LDEzNywyMzUsMjA4LDIwOCw3LDEwNywzMyw0LDMyLDIsNjUsMjA3LDE0MCwxNjIsMTQyLDYsMTA2LDMzLDUsMyw2NCwzMiwzLDMyLDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMywzMiw0LDMyLDAsNjUsNCwxMDYsMzQsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw0LDMyLDIsMzIsMCw2NSw0LDEwNiwzNCwwLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDIsMzIsNSwzMiwwLDY1LDQsMTA2LDM0LDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsNSwzMiw2LDMyLDAsNjUsNCwxMDYsMzQsMCw3OSwxMywwLDExLDMyLDIsNjUsMTIsMTE5LDMyLDUsNjUsMTgsMTE5LDEwNiwzMiw0LDY1LDcsMTE5LDEwNiwzMiwzLDY1LDEsMTE5LDEwNiw1LDMyLDIsNjUsMTc3LDIwNywyMTcsMTc4LDEsMTA2LDExLDMyLDEsMTA2LDMyLDAsMzIsMSw2NSwxNSwxMTMsMTYsMSwxMSwxNDYsMSwwLDMyLDEsMzIsMiwxMDYsMzMsMiwzLDY0LDMyLDEsNjUsNCwxMDYsMzIsMiw3NSw2OSw0LDY0LDMyLDAsMzIsMSw0MCwyLDAsNjUsMTg5LDIyMCwyMDIsMTQ5LDEyNCwxMDgsMTA2LDY1LDE3LDExOSw2NSwxNzUsMjE0LDIxMSwxOTAsMiwxMDgsMzMsMCwzMiwxLDY1LDQsMTA2LDMzLDEsMTIsMSwxMSwxMSwzLDY0LDMyLDEsMzIsMiw3OSw2OSw0LDY0LDMyLDAsMzIsMSw0NSwwLDAsNjUsMTc3LDIwNywyMTcsMTc4LDEsMTA4LDEwNiw2NSwxMSwxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMCwzMiwxLDY1LDEsMTA2LDMzLDEsMTIsMSwxMSwxMSwzMiwwLDMyLDAsNjUsMTUsMTE4LDExNSw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwzNCwwLDY1LDEzLDExOCwzMiwwLDExNSw2NSwxODksMjIwLDIwMiwxNDksMTI0LDEwOCwzNCwwLDY1LDE2LDExOCwzMiwwLDExNSwxMSw2MywwLDMyLDAsNjUsOCwxMDYsMzIsMSw2NSwxNjgsMTM2LDE0MSwxNjEsMiwxMDYsNTQsMiwwLDMyLDAsNjUsMTIsMTA2LDMyLDEsNjUsMTM3LDIzNSwyMDgsMjA4LDcsMTA3LDU0LDIsMCwzMiwwLDY1LDE2LDEwNiwzMiwxLDU0LDIsMCwzMiwwLDY1LDIwLDEwNiwzMiwxLDY1LDIwNywxNDAsMTYyLDE0Miw2LDEwNiw1NCwyLDAsMTEsMTk1LDQsMSw2LDEyNywzMiwxLDMyLDIsMTA2LDMzLDYsMzIsMCw2NSwyNCwxMDYsMzMsNCwzMiwwLDY1LDQwLDEwNiw0MCwyLDAsMzMsMywzMiwwLDMyLDAsNDAsMiwwLDMyLDIsMTA2LDU0LDIsMCwzMiwwLDY1LDQsMTA2LDM0LDUsMzIsNSw0MCwyLDAsMzIsMiw2NSwxNiw3OSwzMiwwLDQwLDIsMCw2NSwxNiw3OSwxMTQsMTE0LDU0LDIsMCwzMiwyLDMyLDMsMTA2LDY1LDE2LDczLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDMyLDIsMjUyLDEwLDAsMCwzMiwwLDY1LDQwLDEwNiwzMiwyLDMyLDMsMTA2LDU0LDIsMCwxNSwxMSwzMiwzLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDY1LDE2LDMyLDMsMTA3LDM0LDIsMjUyLDEwLDAsMCwzMiwwLDY1LDgsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDY1LDQsMTA2LDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDU0LDIsMCwzMiwwLDY1LDE2LDEwNiwzNCwzLDMyLDMsNDAsMiwwLDMyLDQsNjUsOCwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw2NSwxMiwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsNDAsMTA2LDY1LDAsNTQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMSwxMSwzMiwxLDMyLDYsNjUsMTYsMTA3LDc3LDQsNjQsMzIsNiw2NSwxNiwxMDcsMzMsOCwzMiwwLDY1LDgsMTA2LDQwLDIsMCwzMywyLDMyLDAsNjUsMTIsMTA2LDQwLDIsMCwzMywzLDMyLDAsNjUsMTYsMTA2LDQwLDIsMCwzMyw1LDMyLDAsNjUsMjAsMTA2LDQwLDIsMCwzMyw3LDMsNjQsMzIsMiwzMiwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDIsMzIsMywzMiwxLDY1LDQsMTA2LDM0LDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMywzMiw1LDMyLDEsNjUsNCwxMDYsMzQsMSw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw1LDMyLDcsMzIsMSw2NSw0LDEwNiwzNCwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDcsMzIsOCwzMiwxLDY1LDQsMTA2LDM0LDEsNzksMTMsMCwxMSwzMiwwLDY1LDgsMTA2LDMyLDIsNTQsMiwwLDMyLDAsNjUsMTIsMTA2LDMyLDMsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDMyLDUsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDMyLDcsNTQsMiwwLDExLDMyLDEsMzIsNiw3Myw0LDY0LDMyLDQsMzIsMSwzMiw2LDMyLDEsMTA3LDM0LDEsMjUyLDEwLDAsMCwzMiwwLDY1LDQwLDEwNiwzMiwxLDU0LDIsMCwxMSwxMSw5NywxLDEsMTI3LDMyLDAsNjUsMTYsMTA2LDQwLDIsMCwzMywxLDMyLDAsNjUsNCwxMDYsNDAsMiwwLDQsMTI3LDMyLDEsNjUsMTIsMTE5LDMyLDAsNjUsMjAsMTA2LDQwLDIsMCw2NSwxOCwxMTksMTA2LDMyLDAsNjUsMTIsMTA2LDQwLDIsMCw2NSw3LDExOSwxMDYsMzIsMCw2NSw4LDEwNiw0MCwyLDAsNjUsMSwxMTksMTA2LDUsMzIsMSw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDYsMTEsMzIsMCw0MCwyLDAsMTA2LDMyLDAsNjUsMjQsMTA2LDMyLDAsNjUsNDAsMTA2LDQwLDIsMCwxNiwxLDExLDI1NSwzLDIsMywxMjYsMSwxMjcsMzIsMCwzMiwxLDEwNiwzMyw2LDMyLDEsNjUsMzIsNzksNCwxMjYsMzIsNiw2NSwzMiwxMDcsMzMsNiwzMiwyLDY2LDIxNCwyMzUsMTMwLDIzOCwyMzQsMjUzLDEzNywyNDUsMjI0LDAsMTI0LDMzLDMsMzIsMiw2NiwxNzcsMTY5LDE3MiwxOTMsMTczLDE4NCwyMTIsMTY2LDYxLDEyNSwzMyw0LDMyLDIsNjYsMjQ5LDIzNCwyMDgsMjA4LDIzMSwyMDEsMTYxLDIyOCwyMjUsMCwxMjQsMzMsNSwzLDY0LDMyLDMsMzIsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDMsMzIsNCwzMiwwLDY1LDgsMTA2LDM0LDAsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw0LDMyLDIsMzIsMCw2NSw4LDEwNiwzNCwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsMiwzMiw1LDMyLDAsNjUsOCwxMDYsMzQsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDUsMzIsNiwzMiwwLDY1LDgsMTA2LDM0LDAsNzksMTMsMCwxMSwzMiwyLDY2LDEyLDEzNywzMiw1LDY2LDE4LDEzNywxMjQsMzIsNCw2Niw3LDEzNywxMjQsMzIsMyw2NiwxLDEzNywxMjQsMzIsMyw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw0LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDIsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsNSw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSw1LDMyLDIsNjYsMTk3LDIwNywyMTcsMTc4LDI0MSwyMjksMTg2LDIzNCwzOSwxMjQsMTEsMzIsMSwxNzMsMTI0LDMyLDAsMzIsMSw2NSwzMSwxMTMsMTYsNiwxMSwxMzQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMiwzLDY0LDMyLDIsMzIsMSw2NSw4LDEwNiw3OSw0LDY0LDMyLDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMyLDAsMTMzLDY2LDI3LDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMzLDAsMzIsMSw2NSw4LDEwNiwzMywxLDEyLDEsMTEsMTEsMzIsMSw2NSw0LDEwNiwzMiwyLDc3LDQsNjQsMzIsMCwzMiwxLDUzLDIsMCw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwyMywxMzcsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMjQ5LDI0MywyMjEsMjQxLDE1MywyNDYsMTUzLDE3MSwyMiwxMjQsMzMsMCwzMiwxLDY1LDQsMTA2LDMzLDEsMTEsMyw2NCwzMiwxLDMyLDIsNzMsNCw2NCwzMiwwLDMyLDEsNDksMCwwLDY2LDE5NywyMDcsMjE3LDE3OCwyNDEsMjI5LDE4NiwyMzQsMzksMTI2LDEzMyw2NiwxMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMywwLDMyLDEsNjUsMSwxMDYsMzMsMSwxMiwxLDExLDExLDMyLDAsMzIsMCw2NiwzMywxMzYsMTMzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDM0LDAsMzIsMCw2NiwyOSwxMzYsMTMzLDY2LDI0OSwyNDMsMjIxLDI0MSwxNTMsMjQ2LDE1MywxNzEsMjIsMTI2LDM0LDAsMzIsMCw2NiwzMiwxMzYsMTMzLDExLDc3LDAsMzIsMCw2NSw4LDEwNiwzMiwxLDY2LDIxNCwyMzUsMTMwLDIzOCwyMzQsMjUzLDEzNywyNDUsMjI0LDAsMTI0LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzMiwxLDY2LDE3NywxNjksMTcyLDE5MywxNzMsMTg0LDIxMiwxNjYsNjEsMTI1LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzMiwxLDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzMiwxLDY2LDI0OSwyMzQsMjA4LDIwOCwyMzEsMjAxLDE2MSwyMjgsMjI1LDAsMTI0LDU1LDMsMCwxMSwyNDQsNCwyLDMsMTI3LDQsMTI2LDMyLDEsMzIsMiwxMDYsMzMsNSwzMiwwLDY1LDQwLDEwNiwzMyw0LDMyLDAsNjUsMjAwLDAsMTA2LDQwLDIsMCwzMywzLDMyLDAsMzIsMCw0MSwzLDAsMzIsMiwxNzMsMTI0LDU1LDMsMCwzMiwyLDMyLDMsMTA2LDY1LDMyLDczLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDMyLDIsMjUyLDEwLDAsMCwzMiwwLDY1LDIwMCwwLDEwNiwzMiwyLDMyLDMsMTA2LDU0LDIsMCwxNSwxMSwzMiwzLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDY1LDMyLDMyLDMsMTA3LDM0LDIsMjUyLDEwLDAsMCwzMiwwLDY1LDgsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsOCwxMDYsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw1NSwzLDAsMzIsMCw2NSwyNCwxMDYsMzQsMywzMiwzLDQxLDMsMCwzMiw0LDY1LDE2LDEwNiw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsMjQsMTA2LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMjAwLDAsMTA2LDY1LDAsNTQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMSwxMSwzMiwxLDY1LDMyLDEwNiwzMiw1LDc3LDQsNjQsMzIsNSw2NSwzMiwxMDcsMzMsMiwzMiwwLDY1LDgsMTA2LDQxLDMsMCwzMyw2LDMyLDAsNjUsMTYsMTA2LDQxLDMsMCwzMyw3LDMyLDAsNjUsMjQsMTA2LDQxLDMsMCwzMyw4LDMyLDAsNjUsMzIsMTA2LDQxLDMsMCwzMyw5LDMsNjQsMzIsNiwzMiwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNiwzMiw3LDMyLDEsNjUsOCwxMDYsMzQsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDcsMzIsOCwzMiwxLDY1LDgsMTA2LDM0LDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw4LDMyLDksMzIsMSw2NSw4LDEwNiwzNCwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsOSwzMiwyLDMyLDEsNjUsOCwxMDYsMzQsMSw3OSwxMywwLDExLDMyLDAsNjUsOCwxMDYsMzIsNiw1NSwzLDAsMzIsMCw2NSwxNiwxMDYsMzIsNyw1NSwzLDAsMzIsMCw2NSwyNCwxMDYsMzIsOCw1NSwzLDAsMzIsMCw2NSwzMiwxMDYsMzIsOSw1NSwzLDAsMTEsMzIsMSwzMiw1LDczLDQsNjQsMzIsNCwzMiwxLDMyLDUsMzIsMSwxMDcsMzQsMSwyNTIsMTAsMCwwLDMyLDAsNjUsMjAwLDAsMTA2LDMyLDEsNTQsMiwwLDExLDExLDE4OCwyLDEsNSwxMjYsMzIsMCw2NSwyNCwxMDYsNDEsMywwLDMzLDEsMzIsMCw0MSwzLDAsMzQsMiw2NiwzMiw5MCw0LDEyNiwzMiwwLDY1LDgsMTA2LDQxLDMsMCwzNCwzLDY2LDEsMTM3LDMyLDAsNjUsMTYsMTA2LDQxLDMsMCwzNCw0LDY2LDcsMTM3LDEyNCwzMiwxLDY2LDEyLDEzNywzMiwwLDY1LDMyLDEwNiw0MSwzLDAsMzQsNSw2NiwxOCwxMzcsMTI0LDEyNCwzMiwzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDQsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsMSw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw1LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDUsMzIsMSw2NiwxOTcsMjA3LDIxNywxNzgsMjQxLDIyOSwxODYsMjM0LDM5LDEyNCwxMSwzMiwyLDEyNCwzMiwwLDY1LDQwLDEwNiwzMiwyLDY2LDMxLDEzMSwxNjcsMTYsNiwxMV0pO2FzeW5jIGZ1bmN0aW9uIHpuKHQsZT17fSl7bGV0IHI9bXIoZSwiZnMiKSxuPW1yKGUsImNodW5rU2l6ZSIpO2lmKFpyKG4pfHwobj02NzEwODg2NCksbj1sbihuKSwhX24odCx7ZnM6cn0pKXJldHVybiBQcm9taXNlLnJlamVjdCgiZnAgaXMgbm90IGEgZmlsZSIpO2xldCBvPWZ1bmN0aW9uKCl7bGV0IHQsZSxyPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLGU9YXJndW1lbnRzWzFdfSkpO3JldHVybiByLnJlc29sdmU9dCxyLnJlamVjdD1lLHJ9KCk7dHJ5e2xldHtjcmVhdGU2NDplfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdHtleHBvcnRzOnttZW06ZSx4eGgzMjpyLHh4aDY0Om4saW5pdDMyOm8sdXBkYXRlMzI6dSxkaWdlc3QzMjppLGluaXQ2NDphLHVwZGF0ZTY0OmMsZGlnZXN0NjQ6Zn19PXQ7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO2Z1bmN0aW9uIGwodCxyKXtpZihlLmJ1ZmZlci5ieXRlTGVuZ3RoPHQrcil7Y29uc3Qgbj1NYXRoLmNlaWwoKHQrci1lLmJ1ZmZlci5ieXRlTGVuZ3RoKS82NTUzNik7ZS5ncm93KG4pLHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1mdW5jdGlvbiBwKHQsZSxyLG4sbyx1KXtsKHQpO2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIHMuc2V0KGkpLHIoMCxlKSxpLnNldChzLnN1YmFycmF5KDAsdCkpLHt1cGRhdGUoZSl7bGV0IHI7cmV0dXJuIHMuc2V0KGkpLCJzdHJpbmciPT10eXBlb2YgZT8obCgzKmUubGVuZ3RoLHQpLHI9ZC5lbmNvZGVJbnRvKGUscy5zdWJhcnJheSh0KSkud3JpdHRlbik6KGwoZS5ieXRlTGVuZ3RoLHQpLHMuc2V0KGUsdCkscj1lLmJ5dGVMZW5ndGgpLG4oMCx0LHIpLGkuc2V0KHMuc3ViYXJyYXkoMCx0KSksdGhpc30sZGlnZXN0OigpPT4ocy5zZXQoaSksdShvKDApKSl9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ+Pj4wfWNvbnN0IHY9Mm4qKjY0bi0xbjtmdW5jdGlvbiB5KHQpe3JldHVybiB0JnZ9Y29uc3QgZD1uZXcgVGV4dEVuY29kZXIsYj0wLGc9MG47ZnVuY3Rpb24gXyh0LGU9Yil7cmV0dXJuIGwoMyp0Lmxlbmd0aCwwKSxoKHIoMCxkLmVuY29kZUludG8odCxzKS53cml0dGVuLGUpKX1mdW5jdGlvbiBqKHQsZT1nKXtyZXR1cm4gbCgzKnQubGVuZ3RoLDApLHkobigwLGQuZW5jb2RlSW50byh0LHMpLndyaXR0ZW4sZSkpfXJldHVybntoMzI6XyxoMzJUb1N0cmluZzoodCxlPWIpPT5fKHQsZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSxoMzJSYXc6KHQsZT1iKT0+KGwodC5ieXRlTGVuZ3RoLDApLHMuc2V0KHQpLGgocigwLHQuYnl0ZUxlbmd0aCxlKSkpLGNyZWF0ZTMyOih0PWIpPT5wKDQ4LHQsbyx1LGksaCksaDY0OmosaDY0VG9TdHJpbmc6KHQsZT1nKT0+aih0LGUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpLGg2NFJhdzoodCxlPWcpPT4obCh0LmJ5dGVMZW5ndGgsMCkscy5zZXQodCkseShuKDAsdC5ieXRlTGVuZ3RoLGUpKSksY3JlYXRlNjQ6KHQ9Zyk9PnAoODgsdCxhLGMsZix5KX19KChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShBbikpLmluc3RhbmNlKX0oKSx1PWUoKSxpPXIuY3JlYXRlUmVhZFN0cmVhbSh0LHtoaWdoV2F0ZXJNYXJrOm59KTtpLm9uKCJkYXRhIiwodD0+e3UudXBkYXRlKHQpfSkpLGkub24oImVuZCIsKCgpPT57bGV0IHQ9dS5kaWdlc3QoKS50b1N0cmluZygxNikucGFkU3RhcnQoMTYsIjAiKTtvLnJlc29sdmUodCl9KSksaS5vbigiZXJyb3IiLG8ucmVqZWN0KX1jYXRjaCh0KXtvLnJlamVjdCh0LnRvU3RyaW5nKCkpfXJldHVybiBvfWxldCBjaGVja1RvdGFsSGFzaD1hc3luYyhyLG4sbyx1KT0+e2xldCBpPXQucmVzb2x2ZSh1LG8pLGE9ITE7aWYoYT1qbihpKSwhWnIocikpe3JldHVybntlcnJvcjoiaW52YWxpZCBmaWxlU2l6ZSBpbiBwYXlsb2FkIn19bGV0IGM9ITE7aWYoYSl7bGV0IHQ9LTE7dHJ5e3Q9ZS5zdGF0U3luYyhpKS5zaXplfWNhdGNoKHQpe2NvbnNvbGUubG9nKCJjaGVjayB0b3RhbCBmaWxlIHNpemU6IGZzLnN0YXRTeW5jKHBhdGhGaWxlKSIsaSx0KX1jPXI9PT10fWxldCBmPSExO2EmJmMmJmF3YWl0IGZ1bmN0aW9uKHQscj17fSl7cmV0dXJuIHpuKHQse2ZzOmUsLi4ucn0pfShpKS50aGVuKCh0PT57Zj1vPT09dH0pKS5jYXRjaCgodD0+e2NvbnNvbGUubG9nKCJmc0lzRmlsZShwYXRoRmlsZSkiLGksam4oaSkpLGNvbnNvbGUubG9nKHQpLGY9ITF9KSk7bGV0IHM9W107aWYoIWYpe2l0KGZ1bmN0aW9uKHIsbj0xKXtyZXR1cm4gU24ocixuLHtwYXRoOnQsZnM6ZX0pfSh1KSwodD0+e2xldCByPXQubmFtZS5pbmRleE9mKGAke299X2ApPj0wLHU9ITE7dHJ5e3U9ZS5zdGF0U3luYyh0LnBhdGgpLnNpemU9PT1ufWNhdGNoKGUpe2NvbnNvbGUubG9nKCJjaGVjayBlYWNoIGZpbGUgc2l6ZTogZnMuc3RhdFN5bmMocGF0aEZpbGUpIix0LnBhdGgsZSl9aWYociYmdSl7bGV0IGU9WXIodC5uYW1lLGAke299X2ApLHI9KGE9bnVsbD09KGk9ZSk/MDppLmxlbmd0aCk/aVthLTFdOnZvaWQgMDtpZighZnVuY3Rpb24odCl7cmV0dXJuISFwbih0KSYmYm4odCk+PTB9KHIpKXRocm93IGNvbnNvbGUubG9nKCJ2Lm5hbWUiLHQubmFtZSksY29uc29sZS5sb2coInMiLGUpLG5ldyBFcnJvcihgY2FuIG5vdCBwYXJzZSBpbmRleCBpbiB2Lm5hbWVbJHt0Lm5hbWV9XWApO3I9Ym4ocikscy5wdXNoKHIpfXZhciBpLGF9KSl9bGV0IGw9ZWUocyk+MDtyZXR1cm57cGF0aDppLGJBbGxFeGlzdDphLGJBbGxTaXplOmMsYkFsbEhhc2g6ZixiU2xzOmwsc2xrczpzfX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjaGVja1RvdGFsSGFzaAogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgcGFyZW50UG9ydC5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBjaGVja1RvdGFsSGFzaAogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgcGFyZW50UG9ydC5vbignbWVzc2FnZScsIHJlY3ZNZXNzYWdlKQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==",Buffer.from(s,"base64").toString("utf8"));var s;function i(){let r=new n,s=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){o(e)}}(t);if(!s)return o("invalid worker"),null;function i(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let s=0;s<e;s++)t[s]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return s.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function o(e){r.emit("error",e)}return s.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),s.on("error",o),s.on("exit",e=>{1!==e&&o("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};s.postMessage(e)}([...arguments]),r.main=i,r.main=i,r.terminate=function(){s?(s.terminate(),s=void 0):o("worker has been terminated")},r}r=async function(){let e=[...arguments],t=i();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(ls);var us=Jn(ls.exports),ds={exports:{}};!function(e){var t,n;e.exports=(t=i,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function s(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,r,i,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new s(r,i||e,o),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,s=[];if(0===this._eventsCount)return s;for(r in e=this._events)t.call(e,r)&&s.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,i=r.length,o=new Array(i);s<i;s++)o[s]=r[s].fn;return o},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,s,i,o){var a=n?n+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,s),!0;case 5:return u.fn.call(u.context,t,r,s,i),!0;case 6:return u.fn.call(u.context,t,r,s,i,o),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var p,w=u.length;for(l=0;l<w;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),d){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,r);break;case 4:u[l].fn.call(u[l].context,t,r,s);break;default:if(!c)for(p=1,c=new Array(d-1);p<d;p++)c[p-1]=arguments[p];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,n){return i(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return i(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,s){var i=n?n+e:e;if(!this._events[i])return this;if(!t)return o(this,i),this;var a=this._events[i];if(a.fn)a.fn!==t||s&&!a.once||r&&a.context!==r||o(this,i);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||s&&!a[c].once||r&&a[c].context!==r)&&l.push(a[c]);l.length?this._events[i]=1===l.length?l[0]:l:o(this,i)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(s="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIiksZT1yZXF1aXJlKCJmcyIpLHI9T2JqZWN0LnByb3RvdHlwZTt2YXIgbixvLGk9KG49T2JqZWN0LmtleXMsbz1PYmplY3QsZnVuY3Rpb24odCl7cmV0dXJuIG4obyh0KSl9KSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYSh0KXtpZihuPShlPXQpJiZlLmNvbnN0cnVjdG9yLGUhPT0oImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4ucHJvdG90eXBlfHxyKSlyZXR1cm4gaSh0KTt2YXIgZSxuLG89W107Zm9yKHZhciBhIGluIE9iamVjdCh0KSl1LmNhbGwodCxhKSYmImNvbnN0cnVjdG9yIiE9YSYmby5wdXNoKGEpO3JldHVybiBvfXZhciBjPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxmPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYscz1jfHxmfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLGw9cy5TeW1ib2wscD1PYmplY3QucHJvdG90eXBlLGg9cC5oYXNPd25Qcm9wZXJ0eSx5PXAudG9TdHJpbmcsdj1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBiPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIGQ9IltvYmplY3QgTnVsbF0iLGc9IltvYmplY3QgVW5kZWZpbmVkXSIsXz1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIGoodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9nOmQ6XyYmXyBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIGU9aC5jYWxsKHQsdikscj10W3ZdO3RyeXt0W3ZdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89eS5jYWxsKHQpO3JldHVybiBuJiYoZT90W3ZdPXI6ZGVsZXRlIHRbdl0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBiLmNhbGwodCl9KHQpfWZ1bmN0aW9uIHcodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9dmFyIFM9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLE89IltvYmplY3QgRnVuY3Rpb25dIixtPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIseD0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHoodCl7aWYoIXcodCkpcmV0dXJuITE7dmFyIGU9aih0KTtyZXR1cm4gZT09T3x8ZT09bXx8ZT09U3x8ZT09eH12YXIgQSwkPXNbIl9fY29yZS1qc19zaGFyZWRfXyJdLEY9KEE9L1teLl0rJC8uZXhlYygkJiYkLmtleXMmJiQua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK0E6IiI7dmFyIFA9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIEwodCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBQLmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifXZhciBrPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEU9RnVuY3Rpb24ucHJvdG90eXBlLEk9T2JqZWN0LnByb3RvdHlwZSxOPUUudG9TdHJpbmcsVD1JLmhhc093blByb3BlcnR5LE09UmVnRXhwKCJeIitOLmNhbGwoVCkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gUih0KXtyZXR1cm4hKCF3KHQpfHxmdW5jdGlvbih0KXtyZXR1cm4hIUYmJkYgaW4gdH0odCkpJiYoeih0KT9NOmspLnRlc3QoTCh0KSl9ZnVuY3Rpb24gVSh0LGUpe3ZhciByPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbZV19KHQsZSk7cmV0dXJuIFIocik/cjp2b2lkIDB9dmFyIEI9VShzLCJEYXRhVmlldyIpLEM9VShzLCJNYXAiKSxEPVUocywiUHJvbWlzZSIpLFc9VShzLCJTZXQiKSxxPVUocywiV2Vha01hcCIpLFY9IltvYmplY3QgTWFwXSIsRz0iW29iamVjdCBQcm9taXNlXSIsSD0iW29iamVjdCBTZXRdIixKPSJbb2JqZWN0IFdlYWtNYXBdIixLPSJbb2JqZWN0IERhdGFWaWV3XSIsUT1MKEIpLFg9TChDKSxZPUwoRCksWj1MKFcpLHR0PUwocSksZXQ9ajsoQiYmZXQobmV3IEIobmV3IEFycmF5QnVmZmVyKDEpKSkhPUt8fEMmJmV0KG5ldyBDKSE9Vnx8RCYmZXQoRC5yZXNvbHZlKCkpIT1HfHxXJiZldChuZXcgVykhPUh8fHEmJmV0KG5ldyBxKSE9SikmJihldD1mdW5jdGlvbih0KXt2YXIgZT1qKHQpLHI9IltvYmplY3QgT2JqZWN0XSI9PWU/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAsbj1yP0wocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBROnJldHVybiBLO2Nhc2UgWDpyZXR1cm4gVjtjYXNlIFk6cmV0dXJuIEc7Y2FzZSBaOnJldHVybiBIO2Nhc2UgdHQ6cmV0dXJuIEp9cmV0dXJuIGV9KTt2YXIgcnQ9ZXQsbnQ9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBvdCh0KXtyZXR1cm4gbnVsbCE9dCYmZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PW50fSh0Lmxlbmd0aCkmJiF6KHQpfXZhciBpdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHV0KHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9dmFyIGF0PSJbb2JqZWN0IFN0cmluZ10iO3ZhciBjdCxmdD0oY3Q9Imxlbmd0aCIsZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbY3RdfSksc3Q9UmVnRXhwKCJbXFx1MjAwZFxcdWQ4MDAtXFx1ZGZmZlxcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZlxcdWZlMGVcXHVmZTBmXSIpO3ZhciBsdD0iXFx1ZDgwMC1cXHVkZmZmIixwdD0iWyIrbHQrIl0iLGh0PSJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIseXQ9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsdnQ9IlteIitsdCsiXSIsYnQ9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLGR0PSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixndD0iKD86IitodCsifCIreXQrIikiKyI/IixfdD0iW1xcdWZlMGVcXHVmZTBmXT8iLGp0PV90K2d0KygiKD86XFx1MjAwZCg/OiIrW3Z0LGJ0LGR0XS5qb2luKCJ8IikrIikiK190K2d0KyIpKiIpLHd0PSIoPzoiK1t2dCtodCsiPyIsaHQsYnQsZHQscHRdLmpvaW4oInwiKSsiKSIsU3Q9UmVnRXhwKHl0KyIoPz0iK3l0KyIpfCIrd3QranQsImciKTtmdW5jdGlvbiBPdCh0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHN0LnRlc3QodCl9KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1TdC5sYXN0SW5kZXg9MDtTdC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9KHQpOmZ0KHQpfWZ1bmN0aW9uIG10KHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYob3QodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihlPXQpfHwhaXQoZSkmJnV0KGUpJiZqKGUpPT1hdD9PdCh0KTp0Lmxlbmd0aDt2YXIgZSxyPXJ0KHQpO3JldHVybiJbb2JqZWN0IE1hcF0iPT1yfHwiW29iamVjdCBTZXRdIj09cj90LnNpemU6YSh0KS5sZW5ndGh9dmFyIHh0PSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIHp0KHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8dXQodCkmJmoodCk9PXh0fXZhciBBdD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLywkdD0vXlx3KiQvO3ZhciBGdD1VKE9iamVjdCwiY3JlYXRlIik7dmFyIFB0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIEx0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24ga3QodCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19ZnVuY3Rpb24gRXQodCxlKXtmb3IodmFyIHIsbixvPXQubGVuZ3RoO28tLTspaWYoKHI9dFtvXVswXSk9PT0obj1lKXx8ciE9ciYmbiE9bilyZXR1cm4gbztyZXR1cm4tMX1rdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPUZ0P0Z0KG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxrdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxrdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoRnQpe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gUHQuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxrdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIEZ0P3ZvaWQgMCE9PWVbdF06THQuY2FsbChlLHQpfSxrdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1GdCYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfTt2YXIgSXQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBOdCh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBUdCh0LGUpe3ZhciByLG4sbz10Ll9fZGF0YV9fO3JldHVybigic3RyaW5nIj09KG49dHlwZW9mKHI9ZSkpfHwibnVtYmVyIj09bnx8InN5bWJvbCI9PW58fCJib29sZWFuIj09bj8iX19wcm90b19fIiE9PXI6bnVsbD09PXIpP29bInN0cmluZyI9PXR5cGVvZiBlPyJzdHJpbmciOiJoYXNoIl06by5tYXB9ZnVuY3Rpb24gTXQodCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19TnQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sTnQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9RXQoZSx0KTtyZXR1cm4hKHI8MCkmJihyPT1lLmxlbmd0aC0xP2UucG9wKCk6SXQuY2FsbChlLHIsMSksLS10aGlzLnNpemUsITApfSxOdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1FdChlLHQpO3JldHVybiByPDA/dm9pZCAwOmVbcl1bMV19LE50LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEV0KHRoaXMuX19kYXRhX18sdCk+LTF9LE50LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9fZGF0YV9fLG49RXQocix0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxyLnB1c2goW3QsZV0pKTpyW25dWzFdPWUsdGhpc30sTXQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcga3QsbWFwOm5ldyhDfHxOdCksc3RyaW5nOm5ldyBrdH19LE10LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9VHQodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0sTXQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gVHQodGhpcyx0KS5nZXQodCl9LE10LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFR0KHRoaXMsdCkuaGFzKHQpfSxNdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9VHQodGhpcyx0KSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc307dmFyIFJ0PSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBVdCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHxudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFJ0KTt2YXIgcj1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPWU/ZS5hcHBseSh0aGlzLG4pOm5bMF0saT1yLmNhY2hlO2lmKGkuaGFzKG8pKXJldHVybiBpLmdldChvKTt2YXIgdT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIHIuY2FjaGU9aS5zZXQobyx1KXx8aSx1fTtyZXR1cm4gci5jYWNoZT1uZXcoVXQuQ2FjaGV8fE10KSxyfVV0LkNhY2hlPU10O3ZhciBCdD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxDdD0vXFwoXFwpPy9nLER0PWZ1bmN0aW9uKHQpe3ZhciBlPVV0KHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1yLnNpemUmJnIuY2xlYXIoKSx0fSkpLHI9ZS5jYWNoZTtyZXR1cm4gZX0oKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoQnQsKGZ1bmN0aW9uKHQscixuLG8pe2UucHVzaChuP28ucmVwbGFjZShDdCwiJDEiKTpyfHx0KX0pKSxlfSkpLFd0PUR0O3ZhciBxdD0xLzAsVnQ9bD9sLnByb3RvdHlwZTp2b2lkIDAsR3Q9VnQ/VnQudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIEh0KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihpdCh0KSlyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK3I8bjspb1tyXT1lKHRbcl0scix0KTtyZXR1cm4gb30odCxIdCkrIiI7aWYoenQodCkpcmV0dXJuIEd0P0d0LmNhbGwodCk6IiI7dmFyIGU9dCsiIjtyZXR1cm4iMCI9PWUmJjEvdD09LXF0PyItMCI6ZX1mdW5jdGlvbiBKdCh0LGUpe3JldHVybiBpdCh0KT90OmZ1bmN0aW9uKHQsZSl7aWYoaXQodCkpcmV0dXJuITE7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9ciYmInN5bWJvbCIhPXImJiJib29sZWFuIiE9ciYmbnVsbCE9dCYmIXp0KHQpKXx8JHQudGVzdCh0KXx8IUF0LnRlc3QodCl8fG51bGwhPWUmJnQgaW4gT2JqZWN0KGUpfSh0LGUpP1t0XTpXdChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjpIdCh0KX0odCkpfXZhciBLdD0xLzA7ZnVuY3Rpb24gUXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHx6dCh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tS3Q/Ii0wIjplfWZ1bmN0aW9uIFh0KHQsZSxyKXt2YXIgbj1udWxsPT10P3ZvaWQgMDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49KGU9SnQoZSx0KSkubGVuZ3RoO251bGwhPXQmJnI8bjspdD10W1F0KGVbcisrXSldO3JldHVybiByJiZyPT1uP3Q6dm9pZCAwfSh0LGUpO3JldHVybiB2b2lkIDA9PT1uP3I6bn1mdW5jdGlvbiBZdCh0LGU9e30pe2xldCByPVh0KGUsImZzIik7cmV0dXJuISFmdW5jdGlvbih0LGU9e30pe2xldCByPVh0KGUsImZzIiksbj0hMTt0cnl7ci5zdGF0U3luYyh0KSxuPSEwfWNhdGNoe249ITF9cmV0dXJuIG59KHQse2ZzOnJ9KSYmKCFyLmxzdGF0U3luYyh0KS5pc0RpcmVjdG9yeSgpJiYhci5sc3RhdFN5bmModCkuaXNTeW1ib2xpY0xpbmsoKSl9Y29uc3QgWnQ9bmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNDgsOCw5NiwzLDEyNywxMjcsMTI3LDEsMTI3LDk2LDMsMTI3LDEyNywxMjcsMCw5NiwyLDEyNywxMjcsMCw5NiwxLDEyNywxLDEyNyw5NiwzLDEyNywxMjcsMTI2LDEsMTI2LDk2LDMsMTI2LDEyNywxMjcsMSwxMjYsOTYsMiwxMjcsMTI2LDAsOTYsMSwxMjcsMSwxMjYsMywxMSwxMCwwLDAsMiwxLDMsNCw1LDYsMSw3LDUsMywxLDAsMSw3LDg1LDksMywxMDksMTAxLDEwOSwyLDAsNSwxMjAsMTIwLDEwNCw1MSw1MCwwLDAsNiwxMDUsMTEwLDEwNSwxMTYsNTEsNTAsMCwyLDgsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw1MSw1MCwwLDMsOCwxMDAsMTA1LDEwMywxMDEsMTE1LDExNiw1MSw1MCwwLDQsNSwxMjAsMTIwLDEwNCw1NCw1MiwwLDUsNiwxMDUsMTEwLDEwNSwxMTYsNTQsNTIsMCw3LDgsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw1NCw1MiwwLDgsOCwxMDAsMTA1LDEwMywxMDEsMTE1LDExNiw1NCw1MiwwLDksMTAsMjUxLDIyLDEwLDI0MiwxLDEsNCwxMjcsMzIsMCwzMiwxLDEwNiwzMywzLDMyLDEsNjUsMTYsNzksNCwxMjcsMzIsMyw2NSwxNiwxMDcsMzMsNiwzMiwyLDY1LDE2OCwxMzYsMTQxLDE2MSwyLDEwNiwzMywzLDMyLDIsNjUsMTM3LDIzNSwyMDgsMjA4LDcsMTA3LDMzLDQsMzIsMiw2NSwyMDcsMTQwLDE2MiwxNDIsNiwxMDYsMzMsNSwzLDY0LDMyLDMsMzIsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywzLDMyLDQsMzIsMCw2NSw0LDEwNiwzNCwwLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDQsMzIsMiwzMiwwLDY1LDQsMTA2LDM0LDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMiwzMiw1LDMyLDAsNjUsNCwxMDYsMzQsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw1LDMyLDYsMzIsMCw2NSw0LDEwNiwzNCwwLDc5LDEzLDAsMTEsMzIsMiw2NSwxMiwxMTksMzIsNSw2NSwxOCwxMTksMTA2LDMyLDQsNjUsNywxMTksMTA2LDMyLDMsNjUsMSwxMTksMTA2LDUsMzIsMiw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDYsMTEsMzIsMSwxMDYsMzIsMCwzMiwxLDY1LDE1LDExMywxNiwxLDExLDE0NiwxLDAsMzIsMSwzMiwyLDEwNiwzMywyLDMsNjQsMzIsMSw2NSw0LDEwNiwzMiwyLDc1LDY5LDQsNjQsMzIsMCwzMiwxLDQwLDIsMCw2NSwxODksMjIwLDIwMiwxNDksMTI0LDEwOCwxMDYsNjUsMTcsMTE5LDY1LDE3NSwyMTQsMjExLDE5MCwyLDEwOCwzMywwLDMyLDEsNjUsNCwxMDYsMzMsMSwxMiwxLDExLDExLDMsNjQsMzIsMSwzMiwyLDc5LDY5LDQsNjQsMzIsMCwzMiwxLDQ1LDAsMCw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDgsMTA2LDY1LDExLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywwLDMyLDEsNjUsMSwxMDYsMzMsMSwxMiwxLDExLDExLDMyLDAsMzIsMCw2NSwxNSwxMTgsMTE1LDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDM0LDAsNjUsMTMsMTE4LDMyLDAsMTE1LDY1LDE4OSwyMjAsMjAyLDE0OSwxMjQsMTA4LDM0LDAsNjUsMTYsMTE4LDMyLDAsMTE1LDExLDYzLDAsMzIsMCw2NSw4LDEwNiwzMiwxLDY1LDE2OCwxMzYsMTQxLDE2MSwyLDEwNiw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzIsMSw2NSwxMzcsMjM1LDIwOCwyMDgsNywxMDcsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDMyLDEsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDMyLDEsNjUsMjA3LDE0MCwxNjIsMTQyLDYsMTA2LDU0LDIsMCwxMSwxOTUsNCwxLDYsMTI3LDMyLDEsMzIsMiwxMDYsMzMsNiwzMiwwLDY1LDI0LDEwNiwzMyw0LDMyLDAsNjUsNDAsMTA2LDQwLDIsMCwzMywzLDMyLDAsMzIsMCw0MCwyLDAsMzIsMiwxMDYsNTQsMiwwLDMyLDAsNjUsNCwxMDYsMzQsNSwzMiw1LDQwLDIsMCwzMiwyLDY1LDE2LDc5LDMyLDAsNDAsMiwwLDY1LDE2LDc5LDExNCwxMTQsNTQsMiwwLDMyLDIsMzIsMywxMDYsNjUsMTYsNzMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsMzIsMiwyNTIsMTAsMCwwLDMyLDAsNjUsNDAsMTA2LDMyLDIsMzIsMywxMDYsNTQsMiwwLDE1LDExLDMyLDMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsNjUsMTYsMzIsMywxMDcsMzQsMiwyNTIsMTAsMCwwLDMyLDAsNjUsOCwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDU0LDIsMCwzMiwwLDY1LDEyLDEwNiwzNCwzLDMyLDMsNDAsMiwwLDMyLDQsNjUsNCwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw2NSw4LDEwNiw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSwyMCwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDY1LDEyLDEwNiw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSw0MCwxMDYsNjUsMCw1NCwyLDAsMzIsMSwzMiwyLDEwNiwzMywxLDExLDMyLDEsMzIsNiw2NSwxNiwxMDcsNzcsNCw2NCwzMiw2LDY1LDE2LDEwNywzMyw4LDMyLDAsNjUsOCwxMDYsNDAsMiwwLDMzLDIsMzIsMCw2NSwxMiwxMDYsNDAsMiwwLDMzLDMsMzIsMCw2NSwxNiwxMDYsNDAsMiwwLDMzLDUsMzIsMCw2NSwyMCwxMDYsNDAsMiwwLDMzLDcsMyw2NCwzMiwyLDMyLDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMiwzMiwzLDMyLDEsNjUsNCwxMDYsMzQsMSw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywzLDMyLDUsMzIsMSw2NSw0LDEwNiwzNCwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDUsMzIsNywzMiwxLDY1LDQsMTA2LDM0LDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsNywzMiw4LDMyLDEsNjUsNCwxMDYsMzQsMSw3OSwxMywwLDExLDMyLDAsNjUsOCwxMDYsMzIsMiw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzIsMyw1NCwyLDAsMzIsMCw2NSwxNiwxMDYsMzIsNSw1NCwyLDAsMzIsMCw2NSwyMCwxMDYsMzIsNyw1NCwyLDAsMTEsMzIsMSwzMiw2LDczLDQsNjQsMzIsNCwzMiwxLDMyLDYsMzIsMSwxMDcsMzQsMSwyNTIsMTAsMCwwLDMyLDAsNjUsNDAsMTA2LDMyLDEsNTQsMiwwLDExLDExLDk3LDEsMSwxMjcsMzIsMCw2NSwxNiwxMDYsNDAsMiwwLDMzLDEsMzIsMCw2NSw0LDEwNiw0MCwyLDAsNCwxMjcsMzIsMSw2NSwxMiwxMTksMzIsMCw2NSwyMCwxMDYsNDAsMiwwLDY1LDE4LDExOSwxMDYsMzIsMCw2NSwxMiwxMDYsNDAsMiwwLDY1LDcsMTE5LDEwNiwzMiwwLDY1LDgsMTA2LDQwLDIsMCw2NSwxLDExOSwxMDYsNSwzMiwxLDY1LDE3NywyMDcsMjE3LDE3OCwxLDEwNiwxMSwzMiwwLDQwLDIsMCwxMDYsMzIsMCw2NSwyNCwxMDYsMzIsMCw2NSw0MCwxMDYsNDAsMiwwLDE2LDEsMTEsMjU1LDMsMiwzLDEyNiwxLDEyNywzMiwwLDMyLDEsMTA2LDMzLDYsMzIsMSw2NSwzMiw3OSw0LDEyNiwzMiw2LDY1LDMyLDEwNywzMyw2LDMyLDIsNjYsMjE0LDIzNSwxMzAsMjM4LDIzNCwyNTMsMTM3LDI0NSwyMjQsMCwxMjQsMzMsMywzMiwyLDY2LDE3NywxNjksMTcyLDE5MywxNzMsMTg0LDIxMiwxNjYsNjEsMTI1LDMzLDQsMzIsMiw2NiwyNDksMjM0LDIwOCwyMDgsMjMxLDIwMSwxNjEsMjI4LDIyNSwwLDEyNCwzMyw1LDMsNjQsMzIsMywzMiwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsMywzMiw0LDMyLDAsNjUsOCwxMDYsMzQsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDQsMzIsMiwzMiwwLDY1LDgsMTA2LDM0LDAsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMywyLDMyLDUsMzIsMCw2NSw4LDEwNiwzNCwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNSwzMiw2LDMyLDAsNjUsOCwxMDYsMzQsMCw3OSwxMywwLDExLDMyLDIsNjYsMTIsMTM3LDMyLDUsNjYsMTgsMTM3LDEyNCwzMiw0LDY2LDcsMTM3LDEyNCwzMiwzLDY2LDEsMTM3LDEyNCwzMiwzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDQsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsMiw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw1LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDUsMzIsMiw2NiwxOTcsMjA3LDIxNywxNzgsMjQxLDIyOSwxODYsMjM0LDM5LDEyNCwxMSwzMiwxLDE3MywxMjQsMzIsMCwzMiwxLDY1LDMxLDExMywxNiw2LDExLDEzNCwyLDAsMzIsMSwzMiwyLDEwNiwzMywyLDMsNjQsMzIsMiwzMiwxLDY1LDgsMTA2LDc5LDQsNjQsMzIsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzIsMCwxMzMsNjYsMjcsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzMsMCwzMiwxLDY1LDgsMTA2LDMzLDEsMTIsMSwxMSwxMSwzMiwxLDY1LDQsMTA2LDMyLDIsNzcsNCw2NCwzMiwwLDMyLDEsNTMsMiwwLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDIzLDEzNyw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwyNDksMjQzLDIyMSwyNDEsMTUzLDI0NiwxNTMsMTcxLDIyLDEyNCwzMywwLDMyLDEsNjUsNCwxMDYsMzMsMSwxMSwzLDY0LDMyLDEsMzIsMiw3Myw0LDY0LDMyLDAsMzIsMSw0OSwwLDAsNjYsMTk3LDIwNywyMTcsMTc4LDI0MSwyMjksMTg2LDIzNCwzOSwxMjYsMTMzLDY2LDExLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDAsMzIsMSw2NSwxLDEwNiwzMywxLDEyLDEsMTEsMTEsMzIsMCwzMiwwLDY2LDMzLDEzNiwxMzMsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMzQsMCwzMiwwLDY2LDI5LDEzNiwxMzMsNjYsMjQ5LDI0MywyMjEsMjQxLDE1MywyNDYsMTUzLDE3MSwyMiwxMjYsMzQsMCwzMiwwLDY2LDMyLDEzNiwxMzMsMTEsNzcsMCwzMiwwLDY1LDgsMTA2LDMyLDEsNjYsMjE0LDIzNSwxMzAsMjM4LDIzNCwyNTMsMTM3LDI0NSwyMjQsMCwxMjQsNTUsMywwLDMyLDAsNjUsMTYsMTA2LDMyLDEsNjYsMTc3LDE2OSwxNzIsMTkzLDE3MywxODQsMjEyLDE2Niw2MSwxMjUsNTUsMywwLDMyLDAsNjUsMjQsMTA2LDMyLDEsNTUsMywwLDMyLDAsNjUsMzIsMTA2LDMyLDEsNjYsMjQ5LDIzNCwyMDgsMjA4LDIzMSwyMDEsMTYxLDIyOCwyMjUsMCwxMjQsNTUsMywwLDExLDI0NCw0LDIsMywxMjcsNCwxMjYsMzIsMSwzMiwyLDEwNiwzMyw1LDMyLDAsNjUsNDAsMTA2LDMzLDQsMzIsMCw2NSwyMDAsMCwxMDYsNDAsMiwwLDMzLDMsMzIsMCwzMiwwLDQxLDMsMCwzMiwyLDE3MywxMjQsNTUsMywwLDMyLDIsMzIsMywxMDYsNjUsMzIsNzMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsMzIsMiwyNTIsMTAsMCwwLDMyLDAsNjUsMjAwLDAsMTA2LDMyLDIsMzIsMywxMDYsNTQsMiwwLDE1LDExLDMyLDMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsNjUsMzIsMzIsMywxMDcsMzQsMiwyNTIsMTAsMCwwLDMyLDAsNjUsOCwxMDYsMzQsMywzMiwzLDQxLDMsMCwzMiw0LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMTYsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw2NSw4LDEwNiw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsMTYsMTA2LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMzIsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw2NSwyNCwxMDYsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw1NSwzLDAsMzIsMCw2NSwyMDAsMCwxMDYsNjUsMCw1NCwyLDAsMzIsMSwzMiwyLDEwNiwzMywxLDExLDMyLDEsNjUsMzIsMTA2LDMyLDUsNzcsNCw2NCwzMiw1LDY1LDMyLDEwNywzMywyLDMyLDAsNjUsOCwxMDYsNDEsMywwLDMzLDYsMzIsMCw2NSwxNiwxMDYsNDEsMywwLDMzLDcsMzIsMCw2NSwyNCwxMDYsNDEsMywwLDMzLDgsMzIsMCw2NSwzMiwxMDYsNDEsMywwLDMzLDksMyw2NCwzMiw2LDMyLDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw2LDMyLDcsMzIsMSw2NSw4LDEwNiwzNCwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNywzMiw4LDMyLDEsNjUsOCwxMDYsMzQsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDgsMzIsOSwzMiwxLDY1LDgsMTA2LDM0LDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw5LDMyLDIsMzIsMSw2NSw4LDEwNiwzNCwxLDc5LDEzLDAsMTEsMzIsMCw2NSw4LDEwNiwzMiw2LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzMiw3LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzMiw4LDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzMiw5LDU1LDMsMCwxMSwzMiwxLDMyLDUsNzMsNCw2NCwzMiw0LDMyLDEsMzIsNSwzMiwxLDEwNywzNCwxLDI1MiwxMCwwLDAsMzIsMCw2NSwyMDAsMCwxMDYsMzIsMSw1NCwyLDAsMTEsMTEsMTg4LDIsMSw1LDEyNiwzMiwwLDY1LDI0LDEwNiw0MSwzLDAsMzMsMSwzMiwwLDQxLDMsMCwzNCwyLDY2LDMyLDkwLDQsMTI2LDMyLDAsNjUsOCwxMDYsNDEsMywwLDM0LDMsNjYsMSwxMzcsMzIsMCw2NSwxNiwxMDYsNDEsMywwLDM0LDQsNjYsNywxMzcsMTI0LDMyLDEsNjYsMTIsMTM3LDMyLDAsNjUsMzIsMTA2LDQxLDMsMCwzNCw1LDY2LDE4LDEzNywxMjQsMTI0LDMyLDMsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsNCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiwxLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDUsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsNSwzMiwxLDY2LDE5NywyMDcsMjE3LDE3OCwyNDEsMjI5LDE4NiwyMzQsMzksMTI0LDExLDMyLDIsMTI0LDMyLDAsNjUsNDAsMTA2LDMyLDIsNjYsMzEsMTMxLDE2NywxNiw2LDExXSk7ZnVuY3Rpb24gdGUodCl7cmV0dXJuISghZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwiIj09PXQpfWZ1bmN0aW9uIGVlKHQpe2xldCBlPSExO2lmKHRlKHQpKWU9IWlzTmFOKE51bWJlcih0KSk7ZWxzZSBpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2lmKGZ1bmN0aW9uKHQpe3JldHVybiB0IT10fSh0KSlyZXR1cm4hMTtlPSEwfXJldHVybiBlfXZhciByZT0vXHMvO3ZhciBuZT0vXlxzKy87ZnVuY3Rpb24gb2UodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJnJlLnRlc3QodC5jaGFyQXQoZSkpOyk7cmV0dXJuIGV9KHQpKzEpLnJlcGxhY2UobmUsIiIpOnR9dmFyIGllPU5hTix1ZT0vXlstK10weFswLTlhLWZdKyQvaSxhZT0vXjBiWzAxXSskL2ksY2U9L14wb1swLTddKyQvaSxmZT1wYXJzZUludDt2YXIgc2U9MS8wLGxlPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBwZSh0KXtyZXR1cm4gdD8odD1mdW5jdGlvbih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoenQodCkpcmV0dXJuIGllO2lmKHcodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PXcoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PW9lKHQpO3ZhciByPWFlLnRlc3QodCk7cmV0dXJuIHJ8fGNlLnRlc3QodCk/ZmUodC5zbGljZSgyKSxyPzI6OCk6dWUudGVzdCh0KT9pZTordH0odCkpPT09c2V8fHQ9PT0tc2U/KHQ8MD8tMToxKSpsZTp0PT10P3Q6MDowPT09dD90OjB9YXN5bmMgZnVuY3Rpb24gaGUodCxlPXt9KXtpZihyPXQsIltvYmplY3QgQmxvYl0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpJiYhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSlyZXR1cm4gY29uc29sZS5sb2coImlucCIsdCksUHJvbWlzZS5yZWplY3QoImlucCBpcyBub3QgYSBCbG9iIG9yIEZpbGUiKTt2YXIgcjtsZXQgbj1YdChlLCJjaHVua1NpemUiKTtlZShuKXx8KG49NjcxMDg4NjQpLG49ZnVuY3Rpb24odCl7cmV0dXJuIGVlKHQpP3BlKHQpOjB9KG4pO2xldHtjcmVhdGU2NDpvfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdHtleHBvcnRzOnttZW06ZSx4eGgzMjpyLHh4aDY0Om4saW5pdDMyOm8sdXBkYXRlMzI6aSxkaWdlc3QzMjp1LGluaXQ2NDphLHVwZGF0ZTY0OmMsZGlnZXN0NjQ6Zn19PXQ7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO2Z1bmN0aW9uIGwodCxyKXtpZihlLmJ1ZmZlci5ieXRlTGVuZ3RoPHQrcil7Y29uc3Qgbj1NYXRoLmNlaWwoKHQrci1lLmJ1ZmZlci5ieXRlTGVuZ3RoKS82NTUzNik7ZS5ncm93KG4pLHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1mdW5jdGlvbiBwKHQsZSxyLG4sbyxpKXtsKHQpO2NvbnN0IHU9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIHMuc2V0KHUpLHIoMCxlKSx1LnNldChzLnN1YmFycmF5KDAsdCkpLHt1cGRhdGUoZSl7bGV0IHI7cmV0dXJuIHMuc2V0KHUpLCJzdHJpbmciPT10eXBlb2YgZT8obCgzKmUubGVuZ3RoLHQpLHI9Yi5lbmNvZGVJbnRvKGUscy5zdWJhcnJheSh0KSkud3JpdHRlbik6KGwoZS5ieXRlTGVuZ3RoLHQpLHMuc2V0KGUsdCkscj1lLmJ5dGVMZW5ndGgpLG4oMCx0LHIpLHUuc2V0KHMuc3ViYXJyYXkoMCx0KSksdGhpc30sZGlnZXN0OigpPT4ocy5zZXQodSksaShvKDApKSl9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ+Pj4wfWNvbnN0IHk9Mm4qKjY0bi0xbjtmdW5jdGlvbiB2KHQpe3JldHVybiB0Jnl9Y29uc3QgYj1uZXcgVGV4dEVuY29kZXIsZD0wLGc9MG47ZnVuY3Rpb24gXyh0LGU9ZCl7cmV0dXJuIGwoMyp0Lmxlbmd0aCwwKSxoKHIoMCxiLmVuY29kZUludG8odCxzKS53cml0dGVuLGUpKX1mdW5jdGlvbiBqKHQsZT1nKXtyZXR1cm4gbCgzKnQubGVuZ3RoLDApLHYobigwLGIuZW5jb2RlSW50byh0LHMpLndyaXR0ZW4sZSkpfXJldHVybntoMzI6XyxoMzJUb1N0cmluZzoodCxlPWQpPT5fKHQsZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSxoMzJSYXc6KHQsZT1kKT0+KGwodC5ieXRlTGVuZ3RoLDApLHMuc2V0KHQpLGgocigwLHQuYnl0ZUxlbmd0aCxlKSkpLGNyZWF0ZTMyOih0PWQpPT5wKDQ4LHQsbyxpLHUsaCksaDY0OmosaDY0VG9TdHJpbmc6KHQsZT1nKT0+aih0LGUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpLGg2NFJhdzoodCxlPWcpPT4obCh0LmJ5dGVMZW5ndGgsMCkscy5zZXQodCksdihuKDAsdC5ieXRlTGVuZ3RoLGUpKSksY3JlYXRlNjQ6KHQ9Zyk9PnAoODgsdCxhLGMsZix2KX19KChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShadCkpLmluc3RhbmNlKX0oKSxpPW8oKSx1PTA7Zm9yKDt1PHQuc2l6ZTspe2xldCBlPXQuc2xpY2UodSx1K24pLHI9YXdhaXQgZS5hcnJheUJ1ZmZlcigpO2kudXBkYXRlKG5ldyBVaW50OEFycmF5KHIpKSx1Kz1ufXJldHVybiBpLmRpZ2VzdCgpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpfWxldCBjaGVja1NsaWNlc0hhc2g9YXN5bmMocixuLG8pPT57aWYoMD09PW10KHIpKXtyZXR1cm57ZXJyb3I6Im5vIGZpbGVTbGljZUhhc2hzIn19bGV0IGk9W107Zm9yKGxldCB1PTA7dTxyLmxlbmd0aDt1Kyspe2xldCBhPXJbdV0sYz10LnJlc29sdmUobyxgJHtufV8ke2EuaX1gKSxmPSIiO2F3YWl0IGhlKG5ldyBCbG9iKFtlLnJlYWRGaWxlU3luYyhjKV0pKS50aGVuKCh0PT57Zj10fSkpLmNhdGNoKCh0PT57Y29uc29sZS5sb2coImZzSXNGaWxlKF9wYXRoRmlsZSkiLGMsWXQoYyx7ZnM6ZX0pKSxjb25zb2xlLmxvZyh0KX0pKSxhLmg9PT1mJiZpLnB1c2goYS5pKX1yZXR1cm57c2xrczppfX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjaGVja1NsaWNlc0hhc2gKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gY2hlY2tTbGljZXNIYXNoCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgCiAgICAgICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgICAgIG1vZGU6ICdlbWl0JywKICAgICAgICAgICAgICAgIGV2TmFtZTogJ2Vycm9yJywKICAgICAgICAgICAgICAgIG1zZzogZXJyLAogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICAgICAgfQogICAgICAgICAgICAKICAgIH0KCiAgICAvL2NoZWNrCiAgICBpZihtb2RlID09PSAnY2FsbCcpewogICAgICAgIGxldCBzdGF0ZSA9ICcnCiAgICAgICAgbGV0IG1zZyA9IG51bGwKCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy9mdW4KICAgICAgICAgICAgbGV0IGZ1biA9IGluc3RhbmNlW2RhdGEuZnVuXQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CgogICAgICAgICAgICAvL2V4ZWMKICAgICAgICAgICAgYXdhaXQgZnVuKC4uLmlucHV0KQogICAgICAgICAgICAgICAgLnRoZW4oKHN1YykgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdzdWNjZXNzJwogICAgICAgICAgICAgICAgICAgIG1zZz1zdWMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdlcnJvcicKICAgICAgICAgICAgICAgICAgICBtc2c9ZXJyCiAgICAgICAgICAgICAgICB9KQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAgICAgc3RhdGUgPSAnZXJyb3InCiAgICAgICAgICAgIG1zZyA9IGVycgogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgbW9kZTogJ3JldHVybicsCiAgICAgICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgICAgICBmdW46IGRhdGEuZnVuLAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgbXNnLAogICAgICAgIH0KICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgfQoKfQoKZnVuY3Rpb24gcmVjdk1lc3NhZ2UoZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciByZWN2OicsIGRhdGEpCgogICAgLy9kYXRhUmVjdgogICAgbGV0IGRhdGFSZWN2ID0gZGF0YQoKICAgIC8vcnVuCiAgICBydW4oZGF0YVJlY3YpCgp9CgoKICAgICAgICBwYXJlbnRQb3J0Lm9uKCdtZXNzYWdlJywgcmVjdk1lc3NhZ2UpCiAgICAgICAgCgp0cnl7CiAgICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuaGFuZGxlZFJlamVjdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCBlcnIpCiAgICB9KQp9CmNhdGNoKGVycil7fQoK",Buffer.from(s,"base64").toString("utf8"));var s;function i(){let r=new n,s=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){o(e)}}(t);if(!s)return o("invalid worker"),null;function i(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let s=0;s<e;s++)t[s]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return s.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function o(e){r.emit("error",e)}return s.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),s.on("error",o),s.on("exit",e=>{1!==e&&o("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};s.postMessage(e)}([...arguments]),r.main=i,r.main=i,r.terminate=function(){s?(s.terminate(),s=void 0):o("worker has been terminated")},r}r=async function(){let e=[...arguments],t=i();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(ds);var ps=Jn(ds.exports);function ws(i={}){let o=ye(i,"port");Zn(o)||(o=8080);let a=ye(i,"useInert");mr(a)||(a=!0);let c=ye(i,"pathStaticFiles");$t(c)||(c="dist");let l=ye(i,"pathUploadTemp");$t(l)||(l="./uploadTemp"),or(l)||Lr(l);let u=ye(i,"apiName");$t(u)||(u="api");let d=ye(i,"tokenType");$t(d)||(d="Bearer");let p=ye(i,"sizeSlice");Zn(p)||(p=1048576);let w=ye(i,"verifyConn");Wn(w)||(w=()=>!0);let M=ye(i,"corsOrigins",[]);ln(M)||(M=["*"]);let y=ye(i,"delayForSlice","");Un(y)||(y=100),y=Sn(y);let m=null;m=ye(i,"serverHapi")?i.serverHapi:n.server({port:o,routes:{timeout:{server:!1,socket:!1},cors:{origin:M,credentials:!1}}});let I=gr(),f=(e,...t)=>{setTimeout(()=>{I.emit(e,...t)},1)};async function g(e){let t=Qn(),n=Qn();return n.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),f("upload",e,n),t}async function h(e){let t=Qn(),n=Qn();return n.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),f("download",e,n),t}function L(e,t,n={}){let r=new s.Readable;r._read=()=>{},r.push(t),r.push(null);let i=ye(n,"returnType",""),o=ye(n,"returnMsg",""),a=e.response(r).header("Cache-Control","no-cache, no-store, must-revalidate").header("Content-Type","application/octet-stream").header("Content-Length",r.readableLength);return $t(i)&&a.header("Return-Type",i),$t(o)&&a.header("Return-Msg",o),a}function D(e,t){return $t(t)||(console.log("msg",t),console.log("msg is not an effective string, set msg=''"),t=""),L(e,vr({error:t}),{returnType:"error",returnMsg:t})}let b={path:`/${u}/main`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=ye(e,"headers");n=nn(n)?n:"";let r=ye(e,"query");r=nn(r)?r:"";let i=ye(n,"authorization","");i=$t(i)?i:"";{let s=!1;try{s=w({apiType:"main",authorization:i,query:r,headers:n,req:e}),Rn(s)&&(s=await s.catch(e=>{console.log(e),s=!1}))}catch(e){console.log(e),s=!1}if(!0!==s)return D(t,"permission denied")}f("handler",{api:"apiMain",headers:n,query:r});let o=await(()=>{let t=Qn(),n=[],r=new s.Writable({write(e,t,r){n.push(e),r()}});return r.on("finish",()=>{}),e.payload.pipe(r),e.payload.on("end",()=>{let e=Buffer.concat(n);n=[],t.resolve(e)}),e.payload.on("close",()=>{}),e.payload.on("error",e=>{console.log("apiMain req.payload err",e),f("error",`receive payload error: ${e.message}`),t.reject(`receive payload error: ${e.message}`)}),t})(),a=Kr(new Uint8Array(o)),c={},l="",u="";return await async function(e){let t=Qn(),n=Qn();n.then(n=>{e.output=n,delete e.input,t.resolve(e)}).catch(e=>{t.reject(e)});{let t=ye(e,"func",""),r=ye(e,"input",null);f("execute",t,r,n)}return t}(a).then(e=>{c.success=e,l="success",u="need to parse"}).catch(e=>{c.error=e,l="error",u="need to parse"}),L(t,vr(c),{returnType:l,returnMsg:u})}},C={path:`/${u}/ulctr`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=ye(e,"headers");n=nn(n)?n:"";let r=ye(e,"query");r=nn(r)?r:"";let s=ye(n,"authorization","");s=$t(s)?s:"";{let e=w({apiType:"upload-controller",authorization:s,headers:n,query:r});if(Rn(e)&&(e=await e),!0!==e)return D(t,"permission denied")}f("handler",{api:"apiUploadCheck",headers:n,query:r});let i=ye(e,"payload.mode","");if("check-total-hash"!==i&&"check-slices-hash"!==i&&"merge-slices-push"!==i&&"merge-slices-get"!==i)return D(t,`invalid mode[${i}] in payload`);let o=ye(e,"payload.fileHash","");if(!$t(o))return D(t,"invalid fileHash in payload");let a={},c="",u="";return await(async()=>{let t=null;if("check-total-hash"===i){let n=ye(e,"payload.filename",""),r=ye(e,"payload.fileSize","");if(t=await us(r,p,o,l),t.bAllHash){let e={from:"check-total-hash",filename:n,path:t.path},r=await g(e);t={...t,msg:r}}}else if("check-slices-hash"===i){let n=ye(e,"payload.fileSliceHashs",[]);t=await ps(n,o,l)}else if("merge-slices-push"===i){let n=ye(e,"payload.chunkTotal","");t={queueId:as(o,n,l)}}else if("merge-slices-get"===i){let n=ye(e,"payload.filename",""),r=ye(e,"payload.queueId",""),s=cs(r,l);if(t={state:s.state,msg:s.msg,queueId:r,filename:n,path:s.path},"success"===s.state){let e={from:"merge-slices-get",filename:n,path:s.path},r=await g(e);t={...t,msg:r}}}return t})().then(e=>{a.success=e,c="success",u="need to parse"}).catch(e=>{a.error=e,c="error",u="need to parse"}),L(t,vr(a),{returnType:c,returnMsg:u})}},N={path:`/${u}/slc`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(n,r){let s=ye(n,"headers");s=nn(s)?s:"";let i=ye(n,"query");i=nn(i)?i:"";let o=ye(s,"authorization","");o=$t(o)?o:"";{let e=w({apiType:"upload-slice",authorization:o,headers:s,query:i});if(Rn(e)&&(e=await e),!0!==e)return D(r,"permission denied")}f("handler",{api:"apiUploadSlice",headers:s,query:i});let a=ye(s,"chunk-index",""),c=ye(s,"chunk-total",""),u=ye(s,"package-id","");if(!Un(a))return D(r,"invalid chunkIndex in headers");if(a=Sn(a),!Un(c))return D(r,"invalid chunkTotal in headers");if(c=Sn(c),!$t(u))return D(r,"invalid packageId in headers");let d=e.resolve(l,`${u}_${a}`),p=t.createWriteStream(d),M={},m="",I="";return await(()=>{let e=Qn();return n.payload.pipe(p),n.payload.on("end",()=>{setTimeout(()=>{e.resolve(`chunk[${a+1}/${c}] of packageId[${u}] done`)},y)}),n.payload.on("error",t=>{console.log(`apiUploadSlice req.payload chunk[${a+1}/${c}] of packageId[${u}] err`,t),f("error",`receive chunk[${a+1}/${c}] of packageId[${u}] error: ${t.message}`),e.reject(`receive chunk[${a+1}/${c}] of packageId[${u}] error: ${t.message}`)}),e})().then(e=>{M.success=e,m="success",I="need to parse"}).catch(e=>{M.error=e,m="error",I="need to parse",f("error",e)}),L(r,vr(M),{returnType:m,returnMsg:I})}},x={path:`/${u}/dwgfn`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=ye(e,"headers");n=nn(n)?n:"";let r=ye(e,"query");r=nn(r)?r:"";let s=ye(n,"authorization","");s=$t(s)?s:"";{let e=w({apiType:"download-get-filename",authorization:s,headers:n,query:r});if(Rn(e)&&(e=await e),!0!==e)return D(t,"permission denied")}f("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let i=ye(e,"payload.fileId","");if(!$t(i))return D(t,"invalid fileId in payload");let o={fileId:i,token:$t(s)?s.slice(br(d).length+1):""},a={},c="",l="";await h(o).then(e=>{a.success=e,c="success",l="need to parse"}).catch(e=>{a.error=e,c="error",l="need to parse"});let u=ye(a,"success"),p=ye(u,"streamRead");try{p.destroy()}catch(e){}let M=ye(u,"filename");return $t(M)?(a={success:{filename:M}},L(t,vr(a),{returnType:c,returnMsg:l})):D(t,"invalid filename")}},T={path:`/${u}/dwgf`,method:"GET",options:{timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=ye(e,"headers");n=nn(n)?n:"";let r=ye(e,"query");r=nn(r)?r:"";let s=ye(r,"token","");s=$t(s)?s:"";let i="";$t(s)&&(i=`${d} ${s}`);{let e=w({apiType:"download-get-file",authorization:i,headers:n,query:r});if(Rn(e)&&(e=await e),!0!==e)return D(t,"permission denied")}f("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let o=ye(r,"fileId","");if(o=$t(o)?o:"",!$t(o))return D(t,"invalid fileId in query");let a={fileId:o,token:s},c={};if(await h(a).then(e=>{c.success=e}).catch(e=>{c.error=e}),Nr(c,"error"))return D(t,"can not get file from fileId");let l=ye(c,"success"),u=ye(l,"streamRead"),p=ye(l,"fileSize");if(!Dr(p)){try{u.destroy()}catch(e){}return D(t,"invalid fileSize")}let M=ye(l,"fileType");if(!$t(M)){try{u.destroy()}catch(e){}return D(t,"invalid fileType")}return M=br(M),t.response(u).type(M).header("Content-Length",p)}},S={path:`/${u}/dw`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=ye(e,"headers");n=nn(n)?n:"";let r=ye(e,"query");r=nn(r)?r:"";let s=ye(n,"authorization","");s=$t(s)?s:"";{let e=w({apiType:"download",authorization:s,headers:n,query:r});if(Rn(e)&&(e=await e),!0!==e)return D(t,"permission denied")}f("handler",{api:"apiDownload",headers:n,query:r});let i=ye(e,"payload.fileId","");if(!$t(i))return D(t,"invalid fileId in payload");let o={fileId:i,token:$t(s)?s.slice(br(d).length+1):""},a={};if(await h(o).then(e=>{a.success=e}).catch(e=>{a.error=e}),Nr(a,"error"))return D(t,"can not get file from fileId");let c=ye(a,"success"),l=ye(c,"streamRead"),u=ye(c,"filename");if(!$t(u)){try{l.destroy()}catch(e){}return D(t,"invalid filename")}u=Cr(u);let p=ye(c,"fileSize");if(!Dr(p)){try{l.destroy()}catch(e){}return D(t,"invalid fileSize")}let M=ye(c,"fileType");if(!$t(M)){try{l.destroy()}catch(e){}return D(t,"invalid fileType")}return M=br(M),t.response(l).type(M).header("Content-Disposition",`attachment; filename="${u}"`).header("Content-Length",p)}};ye(i,"serverHapi")?m.route([b,C,N,x,T,S]):async function(){a&&await m.register(r);let e=[];if(a){let t={method:"GET",path:"/{file*}",handler:{directory:{path:`${c}/`}}};e=[...e,t]}e=[...e,b,C,N,x,T,S],m.route(e),await m.start(),console.log(`Server running at: ${m.info.uri}`)}();return I.stop=()=>{m.stop()},I}var Ms=function(){return w.Date.now()},ys=Math.max,ms=Math.min;function Is(e,t,n){var r,s,i,o,a,c,l=0,u=!1,d=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function w(t){var n=r,i=s;return r=s=void 0,l=t,o=e.apply(i,n)}function M(e){var n=e-c;return void 0===c||n>=t||n<0||d&&e-l>=i}function y(){var e=Ms();if(M(e))return m(e);a=setTimeout(y,function(e){var n=t-(e-c);return d?ms(n,i-(e-l)):n}(e))}function m(e){return a=void 0,p&&r?w(e):(r=s=void 0,o)}function I(){var e=Ms(),n=M(e);if(r=arguments,s=this,c=e,n){if(void 0===a)return function(e){return l=e,a=setTimeout(y,t),u?w(e):o}(c);if(d)return clearTimeout(a),a=setTimeout(y,t),w(c)}return void 0===a&&(a=setTimeout(y,t)),o}return t=In(t)||0,T(n)&&(u=!!n.leading,i=(d="maxWait"in n)?ys(In(n.maxWait)||0,t):i,p="trailing"in n?!!n.trailing:p),I.cancel=function(){void 0!==a&&clearTimeout(a),l=0,r=c=s=a=void 0},I.flush=function(){return void 0===a?o:m(Ms())},I}var fs=function(){try{var e=U(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),gs=fs;function hs(e,t,n){"__proto__"==t&&gs?gs(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Ls(e,t,n){(void 0!==n&&!P(e[t],n)||void 0===n&&!(t in e))&&hs(e,t,n)}var Ds="object"==typeof exports&&exports&&!exports.nodeType&&exports,bs=Ds&&"object"==typeof module&&module&&!module.nodeType&&module,Cs=bs&&bs.exports===Ds?w.Buffer:void 0,Ns=Cs?Cs.allocUnsafe:void 0;function xs(e,t){if(t)return e.slice();var n=e.length,r=Ns?Ns(n):new e.constructor(n);return e.copy(r),r}function Ts(e){var t=new e.constructor(e.byteLength);return new ot(t).set(new ot(e)),t}function Ss(e,t){var n=t?Ts(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Zs(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}var As=Object.create,Xs=function(){function e(){}return function(t){if(!T(t))return{};if(As)return As(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),vs=Xs;function Es(e){return"function"!=typeof e.constructor||He(e)?{}:vs(An(e))}function Ys(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var js=Object.prototype.hasOwnProperty;function Gs(e,t,n){var r=e[t];js.call(e,t)&&P(r,n)&&(void 0!==n||t in e)||hs(e,t,n)}function Ks(e,t,n,r){var s=!n;n||(n={});for(var i=-1,o=t.length;++i<o;){var a=t[i],c=r?r(n[a],e[a],a,n,e):void 0;void 0===c&&(c=e[a]),s?hs(n,a,c):Gs(n,a,c)}return n}var zs=Object.prototype.hasOwnProperty;function Ws(e){if(!T(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=He(e),n=[];for(var r in e)("constructor"!=r||!t&&zs.call(e,r))&&n.push(r);return n}function Rs(e){return Je(e)?Ue(e,!0):Ws(e)}function Us(e,t,n,r,s,i,o){var a=Ys(e,n),c=Ys(t,n),l=o.get(c);if(l)Ls(e,n,l);else{var d,p=i?i(a,c,n+"",e,t,o):void 0,w=void 0===p;if(w){var M=u(c),y=!M&&Se(c),m=!M&&!y&&We(c);p=c,M||y||m?u(a)?p=a:D(d=a)&&Je(d)?p=Zs(a):y?(w=!1,p=xs(c,!0)):m?(w=!1,p=Ss(c,!0)):p=[]:Gn(c)||Ce(c)?(p=a,Ce(a)?p=function(e){return Ks(e,Rs(e))}(a):T(a)&&!S(a)||(p=Es(c))):w=!1}w&&(o.set(c,p),s(p,c,r,i,o),o.delete(c)),Ls(e,n,p)}}function Vs(e,t,n,r,s){e!==t&&fe(t,function(i,o){if(s||(s=new tt),T(i))Us(e,t,o,n,Vs,r,s);else{var a=r?r(Ys(e,o),i,o+"",e,t,s):void 0;void 0===a&&(a=i),Ls(e,o,a)}},Rs)}var Hs=Math.max;var ks=gs?function(e,t){return gs(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:$e,Qs=ks,Ps=Date.now;var Os=function(e){var t=0,n=0;return function(){var r=Ps(),s=16-(r-n);if(n=r,s>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Qs),Js=Os;function Bs(e,t){return Js(function(e,t,n){return t=Hs(void 0===t?e.length-1:t,0),function(){for(var r=arguments,s=-1,i=Hs(r.length-t,0),o=Array(i);++s<i;)o[s]=r[t+s];s=-1;for(var a=Array(t+1);++s<t;)a[s]=r[s];return a[t]=n(o),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,a)}}(e,t,$e),e+"")}var Fs,_s=(Fs=function(e,t,n){Vs(e,t,n)},Bs(function(e,t){var n=-1,r=t.length,s=r>1?t[r-1]:void 0,i=r>2?t[2]:void 0;for(s=Fs.length>3&&"function"==typeof s?(r--,s):void 0,i&&function(e,t,n){if(!T(n))return!1;var r=typeof t;return!!("number"==r?Je(n)&&Ae(t,n.length):"string"==r&&t in n)&&P(n[t],e)}(t[0],t[1],i)&&(s=r<3?void 0:s,r=1),e=Object(e);++n<r;){var o=t[n];o&&Fs(e,o,n,s)}return e}));function qs(e,n={}){let r={};if(nn(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=gr()),!Nr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let s=ye(n,"fpTableTags","");$t(s)||(s="./tableTags.json");let i=ye(n,"genTag");Wn(i)||(i=()=>pr()+"|"+yr(6));let o=(t,...n)=>{setTimeout(()=>{e.emit(t,...n)},1)};function a(){let e={};try{if(t.existsSync(s)){let n=en(t.readFileSync(s,"utf8"));nn(n)&&(e=n)}}catch(e){o("error",{msg:"readTableTags catch",err:e})}return e}function c(){try{let e=function(e,t=!1){if(sn(e))return"";let n="";try{n=t?JSON.stringify(e,null,2):JSON.stringify(e)}catch(e){n=""}return n}(r);t.writeFileSync(s,e,"utf8")}catch(e){o("error",{msg:"writeTableTags catch",err:e})}}let l=Is(()=>{c(),o("changeTableTags",r)},200);return e.readTableTags=a,e.writeTableTags=c,e.initTableTags=function(e={},t="useInputFirst"){if("useInputOnly"===t)r=e;else if("useStorageOnly"===t)r=a();else if("useInputFirst"===t)r=_s(a(),e);else{if("useStorageFirst"!==t)throw new Error(`invalid mode[${t}]`);r=_s(e,a())}c()},e.setTableTags=function(e={}){r=_s(r,e),c()},e.getTableTags=function(){return r},e.updateTableTag=function(e){r[e]=i(),l()},e}var $s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)dt(t,It(e)),e=An(e);return t}:Mt,ei=$s;function ti(e){return pt(e,Rs,ei)}var ni=Object.prototype.hasOwnProperty;var ri=/\w*$/;var si=M?M.prototype:void 0,ii=si?si.valueOf:void 0;function oi(e,t,n){var r,s=e.constructor;switch(t){case"[object ArrayBuffer]":return Ts(e);case"[object Boolean]":case"[object Date]":return new s(+e);case"[object DataView]":return function(e,t){var n=t?Ts(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Ss(e,n);case"[object Map]":case"[object Set]":return new s;case"[object Number]":case"[object String]":return new s(e);case"[object RegExp]":return function(e){var t=new e.constructor(e.source,ri.exec(e));return t.lastIndex=e.lastIndex,t}(e);case"[object Symbol]":return r=e,ii?Object(ii.call(r)):{}}}var ai=Ke&&Ke.isMap,ci=ai?Ee(ai):function(e){return D(e)&&"[object Map]"==jt(e)};var li=Ke&&Ke.isSet,ui=li?Ee(li):function(e){return D(e)&&"[object Set]"==jt(e)},di="[object Arguments]",pi="[object Function]",wi="[object Object]",Mi={};function yi(e,t,n,r,s,i){var o,a=1&t,c=2&t,l=4&t;if(n&&(o=s?n(e,r,s,i):n(e)),void 0!==o)return o;if(!T(e))return e;var d=u(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&ni.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!a)return Zs(e,o)}else{var p=jt(e),w=p==pi||"[object GeneratorFunction]"==p;if(Se(e))return xs(e,a);if(p==wi||p==di||w&&!s){if(o=c||w?{}:Es(e),!a)return c?function(e,t){return Ks(e,ei(e),t)}(e,function(e,t){return e&&Ks(t,Rs(t),e)}(o,e)):function(e,t){return Ks(e,It(e),t)}(e,function(e,t){return e&&Ks(t,Be(t),e)}(o,e))}else{if(!Mi[p])return s?e:{};o=oi(e,p,a)}}i||(i=new tt);var M=i.get(e);if(M)return M;i.set(e,o),ui(e)?e.forEach(function(r){o.add(yi(r,t,n,r,e,i))}):ci(e)&&e.forEach(function(r,s){o.set(s,yi(r,t,n,s,e,i))});var y=d?void 0:(l?c?ti:ft:c?Rs:Be)(e);return me(y||e,function(r,s){y&&(r=e[s=r]),Gs(o,s,yi(r,t,n,s,e,i))}),o}Mi[di]=Mi["[object Array]"]=Mi["[object ArrayBuffer]"]=Mi["[object DataView]"]=Mi["[object Boolean]"]=Mi["[object Date]"]=Mi["[object Float32Array]"]=Mi["[object Float64Array]"]=Mi["[object Int8Array]"]=Mi["[object Int16Array]"]=Mi["[object Int32Array]"]=Mi["[object Map]"]=Mi["[object Number]"]=Mi[wi]=Mi["[object RegExp]"]=Mi["[object Set]"]=Mi["[object String]"]=Mi["[object Symbol]"]=Mi["[object Uint8Array]"]=Mi["[object Uint8ClampedArray]"]=Mi["[object Uint16Array]"]=Mi["[object Uint32Array]"]=!0,Mi["[object Error]"]=Mi[pi]=Mi["[object WeakMap]"]=!1;function mi(e){return yi(e,5)}var Ii=Ot("length"),fi="\\ud800-\\udfff",gi="["+fi+"]",hi="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Li="\\ud83c[\\udffb-\\udfff]",Di="[^"+fi+"]",bi="(?:\\ud83c[\\udde6-\\uddff]){2}",Ci="[\\ud800-\\udbff][\\udc00-\\udfff]",Ni="(?:"+hi+"|"+Li+")"+"?",xi="[\\ufe0e\\ufe0f]?",Ti=xi+Ni+("(?:\\u200d(?:"+[Di,bi,Ci].join("|")+")"+xi+Ni+")*"),Si="(?:"+[Di+hi+"?",hi,bi,Ci,gi].join("|")+")",Zi=RegExp(Li+"(?="+Li+")|"+Si+Ti,"g");function Ai(e){return Vr(e)?function(e){for(var t=Zi.lastIndex=0;Zi.test(e);)++t;return t}(e):Ii(e)}function Xi(e){if(null==e)return 0;if(Je(e))return"string"==typeof(t=e)||!u(t)&&D(t)&&"[object String]"==L(t)?Ai(e):e.length;var t,n=jt(e);return"[object Map]"==n||"[object Set]"==n?e.size:Oe(e).length}function vi(e={}){let t=gr(),n={},r=null,s=ye(e,"timeAlive");Zn(s)||(s=1e4),s=Sn(s);let i=ye(e,"timeDetect");return Zn(i)||(i=50),i=Sn(i),t.trigger=function(e,o){$t(e)?(Nr(n,e)||setTimeout(()=>{t.emit("message",{eventName:"enter",key:e,data:o,now:Xi(n)})},1),n[e]={data:o,time:Date.now()},null===r&&(r=setInterval(()=>{et(n,(e,r)=>{if(Date.now()-e.time>s){let e=mi(n[r]);delete n[r],t.emit("message",{eventName:"leave",key:r,data:e.data,now:Xi(n)})}}),nn(n)||(clearInterval(r),r=null)},i))):console.log("trigger need key")},t.get=function(){let e=[];return et(n,(t,n)=>{e.push({key:n,data:t.data})}),e=mi(e),e},t}function Ei(e,t={}){let n={};if(nn(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=gr()),!Nr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let r=(t,...n)=>{setTimeout(()=>{e.emit(t,...n)},1)},s=vi(),i=setInterval(()=>{let e=_t(s.get(),"key"),t={};et(e,e=>{t[e]=ye(n,e,[])}),n=t},1e3);s.on("message",function({eventName:e,key:t,data:n,now:s}){"enter"===e?r("clientEnter",t,n):"leave"===e&&r("clientLeave",t,n),r("clientChange",s)}),e.on("execute",function(e,t,i){if("[sys:polling]"===e)try{let e=ye(t,"clientId",""),r=ye(n,e,[]);r=mi(r),n[e]=[],s.trigger(e,t),i.resolve(r)}catch(e){r("error",e),i.reject("[sys:polling] error")}});return e.getClients=s.get,e.getMessages=()=>mi(n),e.broadcast=e=>{if(!nn(n))return;let t={};et(n,(n,r)=>{n.push({mode:"broadcast",data:e}),t[r]=n}),n=t},e.clearBroadcast=()=>{clearInterval(i)},e}let Yi=(e,t)=>{let n={};return et(e,e=>{let r=e,s=ye(t,e,"");$t(s)&&(n[r]=s)}),n};function ji(e,t,n,r={}){if(!nn(e))throw new Error("invalid instWConverServer");if(0===Xi(t))return e;if(!nn(n))return e;let s=ye(r,"genTag");Wn(s)||(s=()=>pr()+"|"+yr(6));let i={};return et(t,e=>{i[e]=s()}),e.initTableTags(i,"useInputOnly"),et(t,t=>{let r=n[t];if(!r)throw new Error(`invalid kpOrm[${t}]`);try{r.on("change",()=>{e.updateTableTag(t)})}catch(e){throw new Error(`kpOrm[${t}] can not listen to change events`)}}),e.on("changeTableTags",n=>{e.broadcast({mode:"syncKpTable",data:Yi(t,n)})}),e}function Gi(e,t,n,r){for(var s=n-1,i=e.length;++s<i;)if(r(e[s],t))return s;return-1}var Ki=Array.prototype.splice;function zi(e,t){return e&&e.length&&t&&t.length?function(e,t,n,r){var s=r?Gi:Rr,i=-1,o=t.length,a=e;for(e===t&&(t=Zs(t)),n&&(a=ae(e,Ee(n)));++i<o;)for(var c=0,l=t[i],u=n?n(l):l;(c=s(a,u,c,r))>-1;)a!==e&&Ki.call(a,c,1),Ki.call(e,c,1);return e}(e,t):e}function Wi(e,t={}){if(!nn(e))throw new Error("invalid instWConverServer");let n=ye(t,"getUserIdByToken",null);Wn(n)||(n=async()=>"");let r=ye(t,"useDbOrm",null);mr(r)||(r=!1);let s=null;if(r&&(s=ye(t,"operOrm",null),!Wn(s)))throw new Error("invalid opt.operOrm when useDbOrm=true");let i=[];if(r&&(i=ye(t,"tableNames",null),!rn(i)))throw new Error("invalid opt.tableNames when useDbOrm=true");let o=[];r&&(o=ye(t,"methods",null),rn(o)||(o=["select","insert","save","del"]));let a=ye(t,"kpFunExt",null);let c={};async function l(e,t,r){if(!$t(e))return r.resolve({state:"error",msg:"invalid func"}),r;let s="";if(!Nr(t,"__sysToken__"))return r.resolve({state:"error",msg:"invalid token"}),r;if(s=br(t.__sysToken__),!Nr(t,"__sysInputArgs__"))return r.resolve({state:"error",msg:"invalid input"}),r;t=t.__sysInputArgs__;let i="";if(i=n(s),Rn(i)&&(i=await i),$t(i)||(i=""),"[sys:getFuncList]"===e){let e=Be(c);e=function(e,t){if(!ln(e))return[];if((tn(t)||Ln(t)||qt(t)||mr(t))&&(t=[t]),!ln(t))return e;let n=mi(e);return zi(n,t),n}(e,"[sys:getTableTags]");let t={state:"success",msg:e};return r.resolve(t),r}if(!Nr(c,e))return r.resolve({state:"error",msg:`invalid func[${e}]`}),r;let o=c[e];try{let e=await Pn(o)(i,...t);r.resolve(e)}catch(t){r.resolve({state:"error",msg:`call func[${e}] has an error: ${t.message}`})}return r}return r&&(i=mi(i),c=function(e,t,n){let r={};return et(e,e=>{et(t,t=>{r[`${e}.${t}`]=async function(r,s){return await n(r,e,t,s)}})}),r}(i,o,s)),nn(a)&&et(a,(e,t)=>{c[t]=e}),e.on("execute",async function(t,n,r){await l(t,n,r).catch(n=>{e.emit("error",n),r.resolve({state:"error",msg:`execFun func[${t}] has an error: ${n.message}`})})}),e}function Ri(e,t={}){if(nn(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=gr()),!Nr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let n=ye(t,"fpTableTags",null);$t(n)||(n="./tableTags.json");let r=ye(t,"genTag");Wn(r)||(r=()=>pr()+"|"+yr(6)),e=new Ei(e=new qs(e,{fpTableTags:n,genTag:r}));let s=ye(t,"useDbOrm",null);mr(s)||(s=!0);let i=ye(t,"kpOrm",null),o=ye(t,"operOrm",null),a=ye(t,"tableNamesExec",null),c=ye(t,"methodsExec",null),l=ye(t,"tableNamesSync",null),u=ye(t,"getUserIdByToken",null),d=ye(t,"kpFunExt",null);if(nn(d)||(d={}),d={...d,"[sys:getTableTags]":()=>{let t=e.getTableTags();return{mode:"syncKpTable",data:Yi(l,t)}}},e=new Wi(e,{getUserIdByToken:u,useDbOrm:s,operOrm:o,tableNames:a,methods:c,kpFunExt:d}),s){if(!tn(i))return e.emit("error","invalid opt.kpOrm when useDbOrm=true"),e;e=new ji(e,l,i,{genTag:r})}return e}function Ui(e={}){let t=gr(),s=null,i=null,o=ye(e,"port");bn(o)||(o=8080);let a=ye(e,"corsOrigins",[]);ln(a)||(a=["http://localhost"]);let c=ye(e,"delayForSlice","");Un(c)||(c=100),c=Sn(c);let l=ye(e,"useInert");mr(l)||(l=!0);let u=ye(e,"pathStaticFiles");$t(u)||(u="dist");let d=ye(e,"apis");ln(d)||(d=[]);let p=ye(e,"apiName");$t(p)||(p="api");let w=ye(e,"pathUploadTemp");$t(w)||(w="./uploadTemp"),or(w)||Lr(w);let M=ye(e,"tokenType");$t(M)||(M="Bearer");let y=ye(e,"sizeSlice");Zn(y)||(y=1048576);let m=ye(e,"verifyConn");Wn(m)||(m=()=>!0);let I=ye(e,"getUserIdByToken",null),f=ye(e,"useDbOrm",null);mr(f)||(f=!0);let g=ye(e,"kpOrm",null),h=ye(e,"operOrm",null),L=ye(e,"tableNamesExec",null),D=ye(e,"methodsExec",null),b=ye(e,"tableNamesSync",null),C=ye(e,"kpFunExt",null),N=ye(e,"fnTableTags",null),x=ye(e,"genTag");Wn(x)||(x=()=>pr()+"|"+yr(6));let T=ye(e,"showLog");mr(T)||(T=!0);(async()=>{await(async()=>{s=new n.Server({port:o,routes:{timeout:{server:!1,socket:!1},cors:{origin:a,credentials:!1}}}),l&&await s.register(r);let e=[];l&&(e=[{method:"GET",path:"/{file*}",handler:{directory:{path:`${u}/`}}}]),e=[...e,...d],s.route(e)})(),await(async()=>{i=new ws({serverHapi:s,apiName:p,pathUploadTemp:w,tokenType:M,sizeSlice:y,verifyConn:m,corsOrigins:a,delayForSlice:c}),i.on("open",function(){T&&console.log(`Server[port:${o}]: open`)}),i.on("clientChange",function(e){T&&console.log(`Server[port:${o}]: now clients: ${e}`)})})(),await(async()=>{i=new Ri(i,{getUserIdByToken:I,useDbOrm:f,kpOrm:g,operOrm:h,tableNamesExec:L,tableNamesSync:b,methodsExec:D,kpFunExt:C,fnTableTags:N,genTag:x}),i.on("error",e=>{t.emit("error",e)})})(),await s.start(),T&&console.log(`Server running at: ${s.info.uri}`)})().catch(e=>{t.emit("error",e)}),process.on("unhandledRejection",e=>{console.log("unhandledRejection",e),t.emit("error",{mode:"unhandledRejection",err:e})}),process.on("uncaughtException",e=>{console.log("uncaughtException",e),t.emit("error",{mode:"uncaughtException",err:e})});return t.getServer=async()=>(await hr(()=>null!==s),s),t.getInstWConverServer=async()=>(await hr(()=>null!==i),i),t}function Vi(e,t){let n=Qn();if(!rn(e)&&!tn(e))return n.reject("rs is not an array or object"),n;let r=!1;if(tn(e)){r=!0;let t=[];et(e,(e,n)=>{t.push({k:n,v:e})}),e=t}Wn(t)||(t=function(e){return e});let s=-1,i=[];return e.reduce(function(e,n){return e.then(function(e){i.push(e),s+=1;let o=s,a=n;return r&&(o=n.k,a=n.v),Wn(t)?t(a,o):a})},Promise.resolve()).then(function(e){var t,r,s,o;i.push(e),o=null==(t=i)?0:t.length,i=o?zr(t,(r=s||void 0===r?1:hn(r))<0?0:r,o):[],n.resolve(i)}).catch(function(e){n.reject(e)}),n}let Hi={backup:async function(e){return await Vi(e,async(e,t)=>(console.log("backup...",t),{name:t,data:await e.select()}))},recover:async function(e,n,r,s=!1){if(!cr(e))throw console.log("fp",e),new Error("fp is not exist");if(!nn(n))throw console.log("woItems",n),new Error("invalid woItems");Wn(r)||(r=null),mr(s)||(s=!1);let i=t.readFileSync(e,"utf8");i=ns(i);let o=en(i);Wn(r)&&r(),await Vi(o,async e=>{console.log("recover...",e.name),s&&(console.log("needCreateStorage"),await n[e.name].createStorage());let t=null;return Xi(e.data)>0&&(t=await n[e.name].insert(e.data)),t})}};function ki(){if(!Wn(dr))throw new Error("invalid dayjs");return dr().format("YYYY-MM-DDTHH:mm:ss.SSSZ")}var Qi={exports:{}},Pi={},Oi={exports:{}},Ji={};function Bi(){var e={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return e}var Fi=/javascript\s*\:/gim;Ji.whiteList=Bi(),Ji.getDefaultWhiteList=Bi,Ji.onAttr=function(e,t,n){},Ji.onIgnoreAttr=function(e,t,n){},Ji.safeAttrValue=function(e,t){return Fi.test(t)?"":t};var _i={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t,n){var r,s;if(Array.prototype.forEach)return e.forEach(t,n);for(r=0,s=e.length;r<s;r++)t.call(n,e[r],r,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(e){return String.prototype.trimRight?e.trimRight():e.replace(/(\s*$)/g,"")}};var qi=function(e,t){";"!==(e=_i.trimRight(e))[e.length-1]&&(e+=";");var n=e.length,r=!1,s=0,i=0,o="";function a(){if(!r){var n=_i.trim(e.slice(s,i)),a=n.indexOf(":");if(-1!==a){var c=_i.trim(n.slice(0,a)),l=_i.trim(n.slice(a+1));if(c){var u=t(s,o.length,c,l,n);u&&(o+=u+"; ")}}}s=i+1}for(;i<n;i++){var c=e[i];if("/"===c&&"*"===e[i+1]){var l=e.indexOf("*/",i+2);if(-1===l)break;s=(i=l+1)+1,r=!1}else"("===c?r=!0:")"===c?r=!1:";"===c?r||a():"\n"===c&&a()}return _i.trim(o)},$i=Ji,eo=qi;function to(e){return null==e}function no(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).whiteList=e.whiteList||$i.whiteList,e.onAttr=e.onAttr||$i.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||$i.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||$i.safeAttrValue,this.options=e}no.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,n=t.whiteList,r=t.onAttr,s=t.onIgnoreAttr,i=t.safeAttrValue;return eo(e,function(e,t,o,a,c){var l=n[o],u=!1;if(!0===l?u=l:"function"==typeof l?u=l(a):l instanceof RegExp&&(u=l.test(a)),!0!==u&&(u=!1),a=i(o,a)){var d,p={position:t,sourcePosition:e,source:c,isWhite:u};return u?to(d=r(o,a,p))?o+":"+a:d:to(d=s(o,a,p))?void 0:d}})};var ro=no;!function(e,t){var n=Ji,r=ro;for(var s in(t=e.exports=function(e,t){return new r(t).process(e)}).FilterCSS=r,n)t[s]=n[s];"undefined"!=typeof window&&(window.filterCSS=e.exports)}(Oi,Oi.exports);var so=Oi.exports,io={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t,n){var r,s;if(Array.prototype.forEach)return e.forEach(t,n);for(r=0,s=e.length;r<s;r++)t.call(n,e[r],r,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(e){var t=/\s|\n|\t/.exec(e);return t?t.index:-1}},oo=so.FilterCSS,ao=so.getDefaultWhiteList,co=io;function lo(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var uo=new oo;function po(e){return e.replace(wo,"<").replace(Mo,">")}var wo=/</g,Mo=/>/g,yo=/"/g,mo=/"/g,Io=/&#([a-zA-Z0-9]*);?/gim,fo=/:?/gim,go=/&newline;?/gim,ho=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,Lo=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,Do=/u\s*r\s*l\s*\(.*/gi;function bo(e){return e.replace(yo,""")}function Co(e){return e.replace(mo,'"')}function No(e){return e.replace(Io,function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))})}function xo(e){return e.replace(fo,":").replace(go," ")}function To(e){for(var t="",n=0,r=e.length;n<r;n++)t+=e.charCodeAt(n)<32?" ":e.charAt(n);return co.trim(t)}function So(e){return e=To(e=xo(e=No(e=Co(e))))}function Zo(e){return e=po(e=bo(e))}Pi.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]},Pi.getDefaultWhiteList=lo,Pi.onTag=function(e,t,n){},Pi.onIgnoreTag=function(e,t,n){},Pi.onTagAttr=function(e,t,n){},Pi.onIgnoreTagAttr=function(e,t,n){},Pi.safeAttrValue=function(e,t,n,r){if(n=So(n),"href"===t||"src"===t){if("#"===(n=co.trim(n)))return"#";if("http://"!==n.substr(0,7)&&"https://"!==n.substr(0,8)&&"mailto:"!==n.substr(0,7)&&"tel:"!==n.substr(0,4)&&"data:image/"!==n.substr(0,11)&&"ftp://"!==n.substr(0,6)&&"./"!==n.substr(0,2)&&"../"!==n.substr(0,3)&&"#"!==n[0]&&"/"!==n[0])return""}else if("background"===t){if(ho.lastIndex=0,ho.test(n))return""}else if("style"===t){if(Lo.lastIndex=0,Lo.test(n))return"";if(Do.lastIndex=0,Do.test(n)&&(ho.lastIndex=0,ho.test(n)))return"";!1!==r&&(n=(r=r||uo).process(n))}return n=Zo(n)},Pi.escapeHtml=po,Pi.escapeQuote=bo,Pi.unescapeQuote=Co,Pi.escapeHtmlEntities=No,Pi.escapeDangerHtml5Entities=xo,Pi.clearNonPrintableCharacter=To,Pi.friendlyAttrValue=So,Pi.escapeAttrValue=Zo,Pi.onIgnoreTagStripAll=function(){return""},Pi.StripTagBody=function(e,t){"function"!=typeof t&&(t=function(){});var n=!Array.isArray(e),r=[],s=!1;return{onIgnoreTag:function(i,o,a){if(function(t){return!!n||-1!==co.indexOf(e,t)}(i)){if(a.isClosing){var c="[/removed]",l=a.position+10;return r.push([!1!==s?s:a.position,l]),s=!1,c}return s||(s=a.position),"[removed]"}return t(i,o,a)},remove:function(e){var t="",n=0;return co.forEach(r,function(r){t+=e.slice(n,r[0]),n=r[1]}),t+=e.slice(n)}}},Pi.stripCommentTag=function(e){for(var t="",n=0;n<e.length;){var r=e.indexOf("\x3c!--",n);if(-1===r){t+=e.slice(n);break}t+=e.slice(n,r);var s=e.indexOf("--\x3e",r);if(-1===s)break;n=s+3}return t},Pi.stripBlankChar=function(e){var t=e.split("");return(t=t.filter(function(e){var t=e.charCodeAt(0);return 127!==t&&(!(t<=31)||(10===t||13===t))})).join("")},Pi.attributeWrapSign='"',Pi.cssFilter=uo,Pi.getDefaultCSSWhiteList=ao;var Ao={},Xo=io;function vo(e){var t,n=Xo.spaceIndex(e);return t=-1===n?e.slice(1,-1):e.slice(1,n+1),"/"===(t=Xo.trim(t).toLowerCase()).slice(0,1)&&(t=t.slice(1)),"/"===t.slice(-1)&&(t=t.slice(0,-1)),t}function Eo(e){return"</"===e.slice(0,2)}var Yo=/[^a-zA-Z0-9\\_:.-]/gim;function jo(e,t){for(;t<e.length;t++){var n=e[t];if(" "!==n)return"="===n?t:-1}}function Go(e,t){for(;t<e.length;t++){var n=e[t];if(" "!==n)return"'"===n||'"'===n?t:-1}}function Ko(e,t){for(;t>0;t--){var n=e[t];if(" "!==n)return"="===n?t:-1}}function zo(e){return function(e){return'"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1]}(e)?e.substr(1,e.length-2):e}Ao.parseTag=function(e,t,n){var r="",s=0,i=!1,o=!1,a=0,c=e.length,l="",u="";e:for(a=0;a<c;a++){var d=e.charAt(a);if(!1===i){if("<"===d){i=a;continue}}else if(!1===o){if("<"===d){r+=n(e.slice(s,a)),i=a,s=a;continue}if(">"===d||a===c-1){r+=n(e.slice(s,i)),l=vo(u=e.slice(i,a+1)),r+=t(i,r.length,l,u,Eo(u)),s=a+1,i=!1;continue}if('"'===d||"'"===d)for(var p=1,w=e.charAt(a-p);""===w.trim()||"="===w;){if("="===w){o=d;continue e}w=e.charAt(a-++p)}}else if(d===o){o=!1;continue}}return s<c&&(r+=n(e.substr(s))),r},Ao.parseAttr=function(e,t){var n=0,r=0,s=[],i=!1,o=e.length;function a(e,n){if(!((e=(e=Xo.trim(e)).replace(Yo,"").toLowerCase()).length<1)){var r=t(e,n||"");r&&s.push(r)}}for(var c=0;c<o;c++){var l,u=e.charAt(c);if(!1!==i||"="!==u)if(!1===i||c!==r)if(/\s|\n|\t/.test(u)){if(e=e.replace(/\s|\n|\t/g," "),!1===i){if(-1===(l=jo(e,c))){a(Xo.trim(e.slice(n,c))),i=!1,n=c+1;continue}c=l-1;continue}if(-1===(l=Ko(e,c-1))){a(i,zo(Xo.trim(e.slice(n,c)))),i=!1,n=c+1;continue}}else;else{if(-1===(l=e.indexOf(u,c+1)))break;a(i,Xo.trim(e.slice(r+1,l))),i=!1,n=(c=l)+1}else i=e.slice(n,c),n=c+1,r='"'===e.charAt(n)||"'"===e.charAt(n)?n:Go(e,c+1)}return n<e.length&&(!1===i?a(e.slice(n)):a(i,zo(Xo.trim(e.slice(n))))),Xo.trim(s.join(" "))};var Wo=so.FilterCSS,Ro=Pi,Uo=Ao,Vo=Uo.parseTag,Ho=Uo.parseAttr,ko=io;function Qo(e){return null==e}function Po(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).stripIgnoreTag&&(e.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),e.onIgnoreTag=Ro.onIgnoreTagStripAll),e.whiteList||e.allowList?e.whiteList=function(e){var t={};for(var n in e)Array.isArray(e[n])?t[n.toLowerCase()]=e[n].map(function(e){return e.toLowerCase()}):t[n.toLowerCase()]=e[n];return t}(e.whiteList||e.allowList):e.whiteList=Ro.whiteList,this.attributeWrapSign=!0===e.singleQuotedAttributeValue?"'":Ro.attributeWrapSign,e.onTag=e.onTag||Ro.onTag,e.onTagAttr=e.onTagAttr||Ro.onTagAttr,e.onIgnoreTag=e.onIgnoreTag||Ro.onIgnoreTag,e.onIgnoreTagAttr=e.onIgnoreTagAttr||Ro.onIgnoreTagAttr,e.safeAttrValue=e.safeAttrValue||Ro.safeAttrValue,e.escapeHtml=e.escapeHtml||Ro.escapeHtml,this.options=e,!1===e.css?this.cssFilter=!1:(e.css=e.css||{},this.cssFilter=new Wo(e.css))}Po.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this,n=t.options,r=n.whiteList,s=n.onTag,i=n.onIgnoreTag,o=n.onTagAttr,a=n.onIgnoreTagAttr,c=n.safeAttrValue,l=n.escapeHtml,u=t.attributeWrapSign,d=t.cssFilter;n.stripBlankChar&&(e=Ro.stripBlankChar(e)),n.allowCommentTag||(e=Ro.stripCommentTag(e));var p=!1;n.stripIgnoreTagBody&&(p=Ro.StripTagBody(n.stripIgnoreTagBody,i),i=p.onIgnoreTag);var w=Vo(e,function(e,t,n,p,w){var M={sourcePosition:e,position:t,isClosing:w,isWhite:Object.prototype.hasOwnProperty.call(r,n)},y=s(n,p,M);if(!Qo(y))return y;if(M.isWhite){if(M.isClosing)return"</"+n+">";var m=function(e){var t=ko.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var n="/"===(e=ko.trim(e.slice(t+1,-1)))[e.length-1];return n&&(e=ko.trim(e.slice(0,-1))),{html:e,closing:n}}(p),I=r[n],f=Ho(m.html,function(e,t){var r=-1!==ko.indexOf(I,e),s=o(n,e,t,r);return Qo(s)?r?(t=c(n,e,t,d))?e+"="+u+t+u:e:Qo(s=a(n,e,t,r))?void 0:s:s});return p="<"+n,f&&(p+=" "+f),m.closing&&(p+=" /"),p+=">"}return Qo(y=i(n,p,M))?l(p):y},l);return p&&(w=p.remove(w)),w};var Oo=Po;!function(e,t){var n=Pi,r=Ao,s=Oo;function i(e,t){return new s(t).process(e)}(t=e.exports=i).filterXSS=i,t.FilterXSS=s,function(){for(var e in n)t[e]=n[e];for(var s in r)t[s]=r[s]}(),"undefined"!=typeof window&&(window.filterXSS=e.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=e.exports)}(Qi,Qi.exports);var Jo=Jn(Qi.exports);function Bo(){return"undefined"!=typeof self?self:"undefined"!=typeof window&&void 0!==window.document?window:"undefined"!=typeof global?global:null}function Fo(e){let t=function(){let e=Bo();return Jo||e.xss}();let n=function e(n){return rn(n)||tn(n)?(et(n,function(t,r){n[r]=e(t)}),n):$t(n)?t(n,{onIgnoreTagAttr:function(e,n,r,s){if("style"===n)return n+'="'+t.escapeAttrValue(r)+'"'}}):n}(mi(e));return n}let _o=null,qo=null;function $o(e,t,n,r="save"){if(!nn(_o))throw console.log("ds",_o),new Error("invalid ds");let s=_o[e].keys,i=!1;rn(n)||(i=!0,n=[n]);let o=ki();return r.indexOf("insert")>=0&&(s.indexOf("userId")>=0&&et(n,(e,r)=>{n[r].userId=t}),s.indexOf("timeCreate")>=0&&et(n,(e,t)=>{n[t].timeCreate=o}),s.indexOf("userIdUpdate")>=0&&et(n,(e,r)=>{n[r].userIdUpdate=t}),s.indexOf("timeUpdate")>=0&&et(n,(e,t)=>{n[t].timeUpdate=o})),(r.indexOf("insert")>=0||r.indexOf("save")>=0)&&(s.indexOf("userIdUpdate")>=0&&et(n,(e,r)=>{n[r].userIdUpdate=t}),s.indexOf("timeUpdate")>=0&&et(n,(e,t)=>{n[t].timeUpdate=o})),n=_t(n,(e,t)=>{let n={};return et(e,(e,t)=>{e=Fo(e),n[t]=e}),n}),n=i?n[0]:n}async function ea(e,t,n,r){let s,i=null;if(!nn(qo))return Promise.reject("無有效woItems");let o=ye(qo,t,null);if(null===o)return Promise.reject(`ORM找不到表名稱: ${t}`);if("select"===n){if(s=await o.select(r).catch(e=>{console.log(`${t}.select catch`,e),i="取得資料失敗"}),$t(i))return Promise.reject(i)}else if("insert"===n||"save"===n){try{r=$o(t,e,r,n)}catch(e){return console.log("adjustData catch",e.toString()),i="調整資料失敗",Promise.reject(i)}if("insert"===n?s=await o.insert(r).catch(e=>{console.log(`${t}.save catch`,e),i="新增資料失敗"}):"save"===n&&(s=await o.save(r).catch(e=>{console.log(`${t}.save catch`,e),i="儲存資料失敗"})),$t(i))return Promise.reject(i);s=rn(r)?_t(r,e=>({id:e.id})):{id:r.id}}else if("del"===n)s=await o.del(r).catch(e=>{console.log(`${t}.del catch`,e),i="刪除資料失敗"});else if("delAll"===n)s=await o.delAll(r).catch(e=>{console.log(`${t}.delAll catch`,e),i="刪除資料失敗"});else if("mix"===n){if(!nn(r))return Promise.reject("mix僅支援輸入ltdtDiffByKey結果物件");let n;s=[];let a=ye(r,"add",[]);if(Xi(a)>0){try{a=$o(t,e,a,"insert+save")}catch(e){return console.log("adjustData catch",e.toString()),i="調整資料失敗",Promise.reject(i)}if(await o.insert(a).catch(e=>{console.log(`${t}.save catch`,e),i="新增資料失敗"}),$t(i))return Promise.reject(i);n=_t(a,e=>({id:e.id})),s=[...s,...n]}let c=ye(r,"del",[]);if(Xi(c)>0){if(await o.del(c).catch(e=>{console.log(`${t}.save catch`,e),i="刪除資料失敗"}),$t(i))return Promise.reject(i);n=_t(c,e=>({id:e.id})),s=[...s,...n]}let l=ye(r,"diff",[]);if(Xi(l)>0){try{l=$o(t,e,l)}catch(e){return console.log("adjustData catch",e.toString()),i="調整資料失敗",Promise.reject(i)}if(await o.save(l).catch(e=>{console.log(`${t}.save catch`,e),i="變更資料失敗"}),$t(i))return Promise.reject(i);n=_t(l,e=>({id:e.id})),s=[...s,...n]}}else i=`invalid mode: ${n}`;return $t(i)?Promise.reject(i):s}function ta(e,t){return _o=e,qo=t,ea}function na(e,t){var n=[];return qe(e,function(e,r,s){t(e,r,s)&&n.push(e)}),n}function ra(e,t){return(u(e)?wt:na)(e,Bt(t))}function sa(e,t=null){if(!rn(e)){let e=Qn();return e.reject("pms is not an array"),e}return e.reduce((e,t)=>e.then(t),Promise.resolve(t))}let ia=[],oa=[],aa=[],ca=null,la=null,ua=!0,da=!0;function pa(e){setTimeout(()=>{ia.push(e)},1)}function wa(e){setTimeout(()=>{oa.push(e)},1)}function Ma(e){setTimeout(()=>{aa.push(e)},1)}async function ya(e,t,n,r){if(!Wn(ca))return Promise.reject("invalid mapOrm");if(ua&&!$t(e))return console.log("userId",e),console.log("找不到使用者主鍵"),Promise.reject("找不到使用者主鍵");let s="n";if(ua){if(!Wn(la))return Promise.reject("invalid getUserById");let t=await la(e);if(!t)return console.log("userId",e),console.log("找不到使用者資訊"),Promise.reject("找不到使用者資訊");s=ye(t,"isAdmin"),"y"!==s&&"n"!==s&&(s="n");let n=ye(t,"isActive");if("y"!==n&&"n"!==n&&(n="n"),"y"!==n)return console.log("userId",e),console.log("oSelf",t),console.log("使用者被停權或無有效使用者資訊"),Promise.reject("使用者被停權或無有效使用者資訊")}if(await Vi(ia,i=>i({woName:t,userId:e,isAdmin:s,mode:n,input:r})),Xi(oa)>0){let i={woName:t,userId:e,isAdmin:s,mode:n,input:r},o=await sa(oa,i);r=o.input}let i=await ca(e,t,n,r);return da&&"n"===s&&"select"===n&&rn(i)&&(i=ra(i,e=>!Nr(e,"isActive")||!("n"===e.isActive))),Xi(aa)>0&&(i=await sa(aa,{woName:t,userId:e,isAdmin:s,mode:n,input:r,output:i})),i}function ma(e,t,n,r,s={}){let i=function(e,t,n,r){if(!nn(e))throw console.log("ds",e),new Error("invalid ds");if(!Wn(t))throw console.log("WOrm",t),new Error("invalid WOrm");if(!$t(n))throw console.log("url",n),new Error("invalid url");if(!$t(r))throw console.log("db",r),new Error("invalid db");let s={};return et(Be(e),e=>{let i=new t({url:n,db:r,cl:e});s[e]=i}),s}(e,t,n,r),o=function(e,t={}){return Wn(e)?(ca=e,ua=ye(t,"useCheckUser"),mr(ua)||(ua=!0),la=ye(t,"getUserById"),da=ye(t,"useExcludeWhenNotAdmin"),mr(da)||(da=!0),{addFunCheck:pa,addFunPreProcessing:wa,addFunPostProcessing:Ma,procOrm:ya}):Promise.reject("invalid mapOrm")}(ta(e,i),s);return{...Hi,woItems:i,closeAll:async()=>{await Vi(i,async e=>{e&&Wn(e.close)&&await e.close()})},...o}}let Ia={csIng:{eng:"Connecting...",cht:"連線中..."},csLogin:{eng:"Logged in",cht:"已登入"},csLogout:{eng:"Logged out",cht:"已登出"},csErrConn:{eng:"Unable to connect",cht:"無法連線"},csErrLogin:{eng:"Login denied",cht:"拒絕登入"},systemMessage:{eng:"System message",cht:"系統確認訊息"},ok:{eng:"OK",cht:"確認"},no:{eng:"No",cht:"取消"},yes:{eng:"Yes",cht:"確定"},empty:{eng:"Empty",cht:"無"},waitingData:{eng:"Waiting data...",cht:"等待數據中..."},id:{eng:"Id",cht:"主鍵"},save:{eng:"Save",cht:"儲存"},close:{eng:"Close",cht:"關閉"},delete:{eng:"Delete",cht:"刪除"},cancel:{eng:"Cancel",cht:"取消"},processing:{eng:"Processing...",cht:"處理中請稍後..."},anUnexpectedErrorOccurred:{eng:"An unexpected error occurred, please contact the administrator",cht:"發生非預期錯誤,請洽管理員"},username:{eng:"Username",cht:"使用者姓名"},email:{eng:"Email",cht:"電子郵件"},name:{eng:"Name",cht:"名稱"},description:{eng:"Description",cht:"說明"},menuTreeShow:{eng:"Show API list",cht:"顯示API清單"},menuTreeHide:{eng:"Hide API list",cht:"隱藏API清單"},noSelectApi:{eng:"No Select",cht:"尚未選擇API"},tokens:{eng:"Tokens",cht:"授權金鑰"},apiUrl:{eng:"API url",cht:"API網址"},version:{eng:"Version",cht:"版本"},levels:{eng:"Levels",cht:"所屬階層"},keywords:{eng:"Keywords",cht:"關鍵字"},state:{eng:"State",cht:"狀態"},timeCreate:{eng:"Create time",cht:"創建時間"},timeUpdate:{eng:"Update time",cht:"更新時間"},creator:{eng:"Creator",cht:"API創建者"},dataSource:{eng:"Source",cht:"資料提供者"},isActive:{eng:"Active",cht:"有效"},mdInputParams:{eng:"Input",cht:"輸入參數資訊或結構"},inputExample:{eng:"Input example",cht:"輸入範例"},mdOutputParams:{eng:"Output",cht:"回傳數據結構"},outputExample:{eng:"Output example",cht:"回傳數據範例"},docInput:{eng:"Input",cht:"輸入參數"},docOutputFields:{eng:"Output fields",cht:"回傳欄位"},docRequest:{eng:"Request",cht:"請求"},tabDocs:{eng:"Docs",cht:"文件"},tabEdit:{eng:"Edit",cht:"編輯"},tabTest:{eng:"Test",cht:"測試"},mmApi:{eng:"API",cht:"API"},mmStaInfor:{eng:"Statistics",cht:"統計資訊"},statisticsInformation:{eng:"Statistics Information",cht:"統計資訊"},statisticsInformationDescription:{eng:"Frequency of backend logged events (APIs, kpFunExt, connection verification).",cht:"後端各事件(API、kpFunExt、連線驗證)之發生頻率統計。"},selectEvents:{eng:"Select events",cht:"選擇事件"},selectAll:{eng:"All",cht:"全選"},selectNone:{eng:"Clear",cht:"清除"},eventStatsTable:{eng:"Event Statistics",cht:"事件統計表"},colEvent:{eng:"Event",cht:"事件"},colRecent1day:{eng:"Last 1 day",cht:"最近1日"},colRecent8hr:{eng:"Last 8 hr",cht:"最近8時"},colRecent4hr:{eng:"Last 4 hr",cht:"最近4時"},colRecent1hr:{eng:"Last 1 hr",cht:"最近1時"},timeRange:{eng:"Time range",cht:"時間範圍"},selectItem1hr:{eng:"1 hour",cht:"1小時"},selectItem4hr:{eng:"4 hours",cht:"4小時"},selectItem8hr:{eng:"8 hours",cht:"8小時"},selectItem1day:{eng:"1 day",cht:"1天"},noStaData:{eng:"No statistics data",cht:"尚無統計資料"},getDataError:{eng:"Failed to get data",cht:"取得資料失敗"},addApi:{eng:"New API",cht:"新增API"},confirmDeleteApi:{eng:"Are you sure you want to delete this API?",cht:"確定要刪除此API?"},saveSuccess:{eng:"Saved",cht:"已儲存"},deleteSuccess:{eng:"Deleted",cht:"已刪除"},searchApiPlaceholder:{eng:"Search API...",cht:"搜尋API..."},fieldMethod:{eng:"Method",cht:"方法"},fieldGroup:{eng:"Group",cht:"群組"},fieldOrder:{eng:"Order",cht:"順序"},fieldTestBaseUrl:{eng:"Test base URL",cht:"測試基底網址"},fieldAuthType:{eng:"Auth type",cht:"認證類型"},fieldAuthConfigJson:{eng:"Auth config (JSON)",cht:"認證設定(JSON)"},fieldDefaultHeadersJson:{eng:"Default headers (JSON)",cht:"預設標頭(JSON)"},fieldDefaultQueryJson:{eng:"Default query (JSON)",cht:"預設查詢參數(JSON)"},fieldDefaultBodyJson:{eng:"Default body (JSON)",cht:"預設請求內容(JSON)"},fieldContentType:{eng:"Content type",cht:"內容類型"},hintTestBaseUrl:{eng:"Fallback request URL, used only when API url is empty. e.g. https://api.example.com",cht:"送請求的後備網址:「API url」有填則優先,留空時才用此值。範例:https://api.example.com"},hintAuthType:{eng:"Auth auto-applied when sending. none = none; bearer / apikey / basic are built from the Auth config below.",cht:"送出時自動帶入的認證方式。none=不帶;bearer / apikey / basic 依下方「認證設定(JSON)」組出。"},hintAuthConfigJson:{eng:'JSON by auth type:\nbearer → {"token":"your-token"}\napikey → {"name":"X-API-Key","value":"your-key","in":"header"} (in: header or query)\nbasic → {"username":"user","password":"pass"}',cht:'依認證類型填 JSON:\nbearer → {"token":"你的token"}(留空則退用上方 tokens 欄第一個)\napikey → {"name":"X-API-Key","value":"你的key","in":"header"}(in 可為 header 或 query)\nbasic → {"username":"帳號","password":"密碼"}'},hintDefaultHeadersJson:{eng:'Default request headers, a JSON object. e.g. {"Accept":"application/json"}',cht:'預設請求標頭,JSON 物件。範例:{"Accept":"application/json"}'},hintDefaultQueryJson:{eng:'Default query params, a JSON object. e.g. {"page":"1","size":"20"}',cht:'預設查詢參數,JSON 物件。範例:{"page":"1","size":"20"}'},hintDefaultBodyJson:{eng:'Default request body (for POST/PUT); falls back to Input example if empty. e.g. {"name":"foo"}',cht:'預設請求內容(POST/PUT 用),留空則退用「輸入範例」。範例:{"name":"小明"}'},hintContentType:{eng:"Request content type, added as a Content-Type header. e.g. application/json",cht:"請求內容類型,會帶成 Content-Type 標頭。範例:application/json"},authNone:{eng:"None",cht:"無"},authBearer:{eng:"Bearer token",cht:"Bearer token"},authApikey:{eng:"API key",cht:"API key"},authBasic:{eng:"Basic",cht:"Basic"},secBasic:{eng:"Basic",cht:"基本資訊"},secDocs:{eng:"Documentation",cht:"文件說明"},secTest:{eng:"Test settings",cht:"測試設定"},reqSend:{eng:"Send",cht:"送出請求"},reqUrlPlaceholder:{eng:"Request URL",cht:"請求網址"},reqQuery:{eng:"Query params",cht:"查詢參數"},reqHeaders:{eng:"Headers",cht:"標頭"},reqBody:{eng:"Body",cht:"請求內容"},reqAddRow:{eng:"Add",cht:"新增一列"},colKey:{eng:"Key",cht:"鍵"},colValue:{eng:"Value",cht:"值"},colOn:{eng:"On",cht:"啟用"},resTitle:{eng:"Response",cht:"回應"},resTime:{eng:"Time",cht:"耗時"},resHeaders:{eng:"Response headers",cht:"回應標頭"},resBody:{eng:"Response body",cht:"回應內容"},resEmpty:{eng:"No response yet. Click Send to test.",cht:"尚無回應,點擊送出請求進行測試。"},valRequired:{eng:"This field is required",cht:"此欄位必填"},valInvalidJson:{eng:"Invalid JSON format",cht:"JSON格式錯誤"},errReqUrlInvalid:{eng:"The request URL is invalid (must start with http:// or https://)",cht:"請求網址無效(須以 http:// 或 https:// 開頭)"},errReqTargetNotAllowed:{eng:"The target address is not allowed",cht:"目標位址不被允許"},errProxyRequestFailed:{eng:"The request failed to send",cht:"請求發送失敗"},errApiRowInvalid:{eng:"Invalid API data",cht:"API 資料無效"},errApiIdInvalid:{eng:"Invalid API id",cht:"API id 無效"},errUserIdMissing:{eng:"Unable to get user id",cht:"無法取得使用者 id"},errUserEmailMissing:{eng:"Unable to get user email",cht:"無法取得使用者 email"},errUserNameMissing:{eng:"Unable to get user name",cht:"無法取得使用者名稱"},errUserRoleMissing:{eng:"Unable to get user role",cht:"無法取得使用者權限"},errUserNoPermission:{eng:"User does not have permission",cht:"使用者沒有權限"},errUserNotFound:{eng:"Unable to find user from token",cht:"無法依 token 找到使用者"},errPayloadInvalid:{eng:"Invalid request payload",cht:"請求內容無效"},errGroupInvalid:{eng:"Invalid group",cht:"群組無效"},errRowsInvalid:{eng:"Invalid rows",cht:"資料列無效"},errTokenNoPermission:{eng:"Token does not have permission",cht:"token 沒有權限"},errKeyTableInvalid:{eng:"Invalid table",cht:"資料表無效"}},fa=(e={})=>{let t=ye(e,"kpLangExt");nn(t)||(t={});let n=ye(e,"webName");nn(n)||(n={});let r=ye(e,"webDescription");nn(r)||(r={});let s={};s={...s,...Ia},nn(t)&&(s={...s,...t}),nn(n)&&(s={...s,webName:{...n}}),nn(r)&&(s={...s,webDescription:{...r}});let i={};return et(["eng","cht"],e=>{let t={};et(s,(n,r)=>{t[r]=n[e]}),i[e]=t}),i};function ga(e,t){return function(){return e.apply(t,arguments)}}const{toString:ha}=Object.prototype,{getPrototypeOf:La}=Object,{iterator:Da,toStringTag:ba}=Symbol,Ca=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Na=(e,t)=>{let n=e;const r=[];for(;null!=n&&n!==Object.prototype;){if(-1!==r.indexOf(n))return!1;if(r.push(n),Ca(n,t))return!0;n=La(n)}return!1},xa=(e=>t=>{const n=ha.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ta=e=>(e=e.toLowerCase(),t=>xa(t)===e),Sa=e=>t=>typeof t===e,{isArray:Za}=Array,Aa=Sa("undefined");function Xa(e){return null!==e&&!Aa(e)&&null!==e.constructor&&!Aa(e.constructor)&&Ya(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const va=Ta("ArrayBuffer");const Ea=Sa("string"),Ya=Sa("function"),ja=Sa("number"),Ga=e=>null!==e&&"object"==typeof e,Ka=e=>{if(!Ga(e))return!1;const t=La(e);return!(null!==t&&t!==Object.prototype&&null!==La(t)||Na(e,ba)||Na(e,Da))},za=Ta("Date"),Wa=Ta("File"),Ra=Ta("Blob"),Ua=Ta("FileList");const Va="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Ha=void 0!==Va.FormData?Va.FormData:void 0,ka=Ta("URLSearchParams"),[Qa,Pa,Oa,Ja]=["ReadableStream","Request","Response","Headers"].map(Ta);function Ba(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,s;if("object"!=typeof e&&(e=[e]),Za(e))for(r=0,s=e.length;r<s;r++)t.call(null,e[r],r,e);else{if(Xa(e))return;const s=n?Object.getOwnPropertyNames(e):Object.keys(e),i=s.length;let o;for(r=0;r<i;r++)o=s[r],t.call(null,e[o],o,e)}}function Fa(e,t){if(Xa(e))return null;t=t.toLowerCase();const n=Object.keys(e);let r,s=n.length;for(;s-- >0;)if(r=n[s],t===r.toLowerCase())return r;return null}const _a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,qa=e=>!Aa(e)&&e!==_a;const $a=(ec="undefined"!=typeof Uint8Array&&La(Uint8Array),e=>ec&&e instanceof ec);var ec;const tc=Ta("HTMLFormElement"),{propertyIsEnumerable:nc}=Object.prototype,rc=Ta("RegExp"),sc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ba(n,(n,s)=>{let i;!1!==(i=t(n,s,e))&&(r[s]=i||n)}),Object.defineProperties(e,r)};const ic=Ta("AsyncFunction"),oc=(ac="function"==typeof setImmediate,cc=Ya(_a.postMessage),ac?setImmediate:cc?(lc=`axios@${Math.random()}`,uc=[],_a.addEventListener("message",({source:e,data:t})=>{e===_a&&t===lc&&uc.length&&uc.shift()()},!1),e=>{uc.push(e),_a.postMessage(lc,"*")}):e=>setTimeout(e));var ac,cc,lc,uc;const dc="undefined"!=typeof queueMicrotask?queueMicrotask.bind(_a):"undefined"!=typeof process&&process.nextTick||oc,pc=e=>null!=e&&Ya(e[Da]);var wc={isArray:Za,isArrayBuffer:va,isBuffer:Xa,isFormData:e=>{if(!e)return!1;if(Ha&&e instanceof Ha)return!0;const t=La(e);if(!t||t===Object.prototype)return!1;if(!Ya(e.append))return!1;const n=xa(e);return"formdata"===n||"object"===n&&Ya(e.toString)&&"[object FormData]"===e.toString()},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&va(e.buffer),t},isString:Ea,isNumber:ja,isBoolean:e=>!0===e||!1===e,isObject:Ga,isPlainObject:Ka,isEmptyObject:e=>{if(!Ga(e)||Xa(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:Qa,isRequest:Pa,isResponse:Oa,isHeaders:Ja,isUndefined:Aa,isDate:za,isFile:Wa,isReactNativeBlob:e=>!(!e||void 0===e.uri),isReactNative:e=>e&&void 0!==e.getParts,isBlob:Ra,isRegExp:rc,isFunction:Ya,isStream:e=>Ga(e)&&Ya(e.pipe),isURLSearchParams:ka,isTypedArray:$a,isFileList:Ua,forEach:Ba,merge:function e(...t){const{caseless:n,skipUndefined:r}=qa(this)&&this||{},s={},i=(t,i)=>{if("__proto__"===i||"constructor"===i||"prototype"===i)return;const o=n&&"string"==typeof i&&Fa(s,i)||i,a=Ca(s,o)?s[o]:void 0;Ka(a)&&Ka(t)?s[o]=e(a,t):Ka(t)?s[o]=e({},t):Za(t)?s[o]=t.slice():r&&Aa(t)||(s[o]=t)};for(let e=0,n=t.length;e<n;e++){const n=t[e];if(!n||Xa(n))continue;if(Ba(n,i),"object"!=typeof n||Za(n))continue;const r=Object.getOwnPropertySymbols(n);for(let e=0;e<r.length;e++){const t=r[e];nc.call(n,t)&&i(n[t],t)}}return s},extend:(e,t,n,{allOwnKeys:r}={})=>(Ba(t,(t,r)=>{n&&Ya(t)?Object.defineProperty(e,r,{__proto__:null,value:ga(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let s,i,o;const a={};if(t=t||{},null==e)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)o=s[i],r&&!r(o,e,t)||a[o]||(t[o]=e[o],a[o]=!0);e=!1!==n&&La(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:xa,kindOfTest:Ta,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(Za(e))return e;let t=e.length;if(!ja(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Da]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:tc,hasOwnProperty:Ca,hasOwnProp:Ca,hasOwnInPrototypeChain:Na,getSafeProp:(e,t)=>null!=e&&Na(e,t)?e[t]:void 0,reduceDescriptors:sc,freezeMethods:e=>{sc(e,(t,n)=>{if(Ya(e)&&["arguments","caller","callee"].includes(n))return!1;const r=e[n];Ya(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Za(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:Fa,global:_a,isContextDefined:qa,isSpecCompliantForm:function(e){return!!(e&&Ya(e.append)&&"FormData"===e[ba]&&e[Da])},toJSONObject:e=>{const t=new WeakSet,n=e=>{if(Ga(e)){if(t.has(e))return;if(Xa(e))return e;if(!("toJSON"in e)){t.add(e);const r=Za(e)?[]:{};return Ba(e,(e,t)=>{const s=n(e);!Aa(s)&&(r[t]=s)}),t.delete(e),r}}return e};return n(e)},isAsyncFn:ic,isThenable:e=>e&&(Ga(e)||Ya(e))&&Ya(e.then)&&Ya(e.catch),setImmediate:oc,asap:dc,isIterable:pc,isSafeIterable:e=>null!=e&&Na(e,Da)&&pc(e)};const Mc=wc.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const yc=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),mc=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function Ic(e,t){return wc.isArray(e)?e.map(e=>Ic(e,t)):function(e){let t=0,n=e.length;for(;t<n;){const n=e.charCodeAt(t);if(9!==n&&32!==n)break;t+=1}for(;n>t;){const t=e.charCodeAt(n-1);if(9!==t&&32!==t)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}(String(e).replace(t,""))}function fc(e){const t=Object.create(null);return wc.forEach(e.toJSON(),(e,n)=>{t[n]=(e=>Ic(e,mc))(e)}),t}const gc=Symbol("internals");function hc(e){return e&&String(e).trim().toLowerCase()}function Lc(e){return!1===e||null==e?e:wc.isArray(e)?e.map(Lc):(e=>Ic(e,yc))(String(e))}function Dc(e,t,n,r,s){return wc.isFunction(r)?r.call(this,t,n):(s&&(t=n),wc.isString(t)?wc.isString(r)?-1!==t.indexOf(r):wc.isRegExp(r)?r.test(t):void 0:void 0)}class bc{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function s(e,t,n){const s=hc(t);if(!s)return;const i=wc.findKey(r,s);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=Lc(e))}const i=(e,t)=>wc.forEach(e,(e,n)=>s(e,n,t));if(wc.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(wc.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i((e=>{const t={};let n,r,s;return e&&e.split("\n").forEach(function(e){s=e.indexOf(":"),n=e.substring(0,s).trim().toLowerCase(),r=e.substring(s+1).trim(),!n||t[n]&&Mc[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t})(e),t);else if(wc.isObject(e)&&wc.isSafeIterable(e)){let n,r,s=Object.create(null);for(const t of e){if(!wc.isArray(t))throw new TypeError("Object iterator must return a key-value pair");r=t[0],wc.hasOwnProp(s,r)?(n=s[r],s[r]=wc.isArray(n)?[...n,t[1]]:[n,t[1]]):s[r]=t[1]}i(s,t)}else null!=e&&s(t,e,n);return this}get(e,t){if(e=hc(e)){const n=wc.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(wc.isFunction(t))return t.call(this,e,n);if(wc.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=hc(e)){const n=wc.findKey(this,e);return!(!n||void 0===this[n]||t&&!Dc(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function s(e){if(e=hc(e)){const s=wc.findKey(n,e);!s||t&&!Dc(0,n[s],s,t)||(delete n[s],r=!0)}}return wc.isArray(e)?e.forEach(s):s(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const s=t[n];e&&!Dc(0,this[s],s,e,!0)||(delete this[s],r=!0)}return r}normalize(e){const t=this,n={};return wc.forEach(this,(r,s)=>{const i=wc.findKey(n,s);if(i)return t[i]=Lc(r),void delete t[s];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(s):String(s).trim();o!==s&&delete t[s],t[o]=Lc(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return wc.forEach(this,(n,r)=>{null!=n&&!1!==n&&(t[r]=e&&wc.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[gc]=this[gc]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=hc(e);t[r]||(!function(e,t){const n=wc.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,s){return this[r].call(this,t,e,n,s)},configurable:!0})})}(n,e),t[r]=!0)}return wc.isArray(e)?e.forEach(r):r(e),this}}bc.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),wc.reduceDescriptors(bc.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),wc.freezeMethods(bc);var Cc=bc;function Nc(e,t){const n=new Set(t.map(e=>String(e).toLowerCase())),r=[],s=e=>{if(null===e||"object"!=typeof e)return e;if(wc.isBuffer(e))return e;if(-1!==r.indexOf(e))return;let t;if(e instanceof Cc&&(e=e.toJSON()),r.push(e),wc.isArray(e))t=[],e.forEach((e,n)=>{const r=s(e);wc.isUndefined(r)||(t[n]=r)});else{if(!wc.isPlainObject(e)&&function(e){if(wc.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(wc.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}(e))return r.pop(),e;t=Object.create(null);for(const[r,i]of Object.entries(e)){const e=n.has(r.toLowerCase())?"[REDACTED ****]":s(i);wc.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return s(e)}class xc extends Error{static from(e,t,n,r,s,i){const o=new xc(e.message,t||e.code,n,r,s);return Object.defineProperty(o,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),o.name=e.name,null!=e.status&&null==o.status&&(o.status=e.status),i&&Object.assign(o,i),o}constructor(e,t,n,r,s){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status)}toJSON(){const e=this.config,t=e&&wc.hasOwnProp(e,"redact")?e.redact:void 0,n=wc.isArray(t)&&t.length>0?Nc(e,t):wc.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}}xc.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",xc.ERR_BAD_OPTION="ERR_BAD_OPTION",xc.ECONNABORTED="ECONNABORTED",xc.ETIMEDOUT="ETIMEDOUT",xc.ECONNREFUSED="ECONNREFUSED",xc.ERR_NETWORK="ERR_NETWORK",xc.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",xc.ERR_DEPRECATED="ERR_DEPRECATED",xc.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",xc.ERR_BAD_REQUEST="ERR_BAD_REQUEST",xc.ERR_CANCELED="ERR_CANCELED",xc.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",xc.ERR_INVALID_URL="ERR_INVALID_URL",xc.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";var Tc=xc;function Sc(e){return wc.isPlainObject(e)||wc.isArray(e)}function Zc(e){return wc.endsWith(e,"[]")?e.slice(0,-2):e}function Ac(e,t,n){return e?e.concat(t).map(function(e,t){return e=Zc(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const Xc=wc.toFlatObject(wc,{},null,function(e){return/^is[A-Z]/.test(e)});function vc(e,t,n){if(!wc.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=wc.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!wc.isUndefined(t[e])})).metaTokens,s=n.visitor||w,i=n.dots,o=n.indexes,a=n.Blob||"undefined"!=typeof Blob&&Blob,c=void 0===n.maxDepth?100:n.maxDepth,l=a&&wc.isSpecCompliantForm(t),u=[];if(!wc.isFunction(s))throw new TypeError("visitor must be a function");function d(e){if(null===e)return"";if(wc.isDate(e))return e.toISOString();if(wc.isBoolean(e))return e.toString();if(!l&&wc.isBlob(e))throw new Tc("Blob is not supported. Use a Buffer instead.");if(wc.isArrayBuffer(e)||wc.isTypedArray(e)){if(l&&"function"==typeof a)return new a([e]);if("undefined"!=typeof Buffer)return Buffer.from(e);throw new Tc("Blob is not supported. Use a Buffer instead.",Tc.ERR_NOT_SUPPORT)}return e}function p(e){if(e>c)throw new Tc("Object is too deeply nested ("+e+" levels). Max depth: "+c,Tc.ERR_FORM_DATA_DEPTH_EXCEEDED)}function w(e,n,s){let a=e;if(wc.isReactNative(t)&&wc.isReactNativeBlob(e))return t.append(Ac(s,n,i),d(e)),!1;if(e&&!s&&"object"==typeof e)if(wc.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=function(e,t){if(c===1/0)return JSON.stringify(e);const n=[];return JSON.stringify(e,function(e,r){if(!wc.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),p(t+n.length-1),r})}(e,1);else if(wc.isArray(e)&&function(e){return wc.isArray(e)&&!e.some(Sc)}(e)||(wc.isFileList(e)||wc.endsWith(n,"[]"))&&(a=wc.toArray(e)))return n=Zc(n),a.forEach(function(e,r){!wc.isUndefined(e)&&null!==e&&t.append(!0===o?Ac([n],r,i):null===o?n:n+"[]",d(e))}),!1;return!!Sc(e)||(t.append(Ac(s,n,i),d(e)),!1)}const M=Object.assign(Xc,{defaultVisitor:w,convertValue:d,isVisitable:Sc});if(!wc.isObject(e))throw new TypeError("data must be an object");return function e(n,r,i=0){if(!wc.isUndefined(n)){if(p(i),-1!==u.indexOf(n))throw new Error("Circular reference detected in "+r.join("."));u.push(n),wc.forEach(n,function(n,o){!0===(!(wc.isUndefined(n)||null===n)&&s.call(t,n,wc.isString(o)?o.trim():o,r,M))&&e(n,r?r.concat(o):[o],i+1)}),u.pop()}}(e),t}function Ec(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function Yc(e,t){this._pairs=[],e&&vc(e,this,t)}const jc=Yc.prototype;function Gc(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Kc(e,t,n){if(!t)return e;e=e||"";const r=wc.isFunction(n)?{serialize:n}:n,s=wc.getSafeProp(r,"encode")||Gc,i=wc.getSafeProp(r,"serialize");let o;if(o=i?i(t,r):wc.isURLSearchParams(t)?t.toString():new Yc(t,r).toString(s),o){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}jc.append=function(e,t){this._pairs.push([e,t])},jc.toString=function(e){const t=e?t=>e.call(this,t,Ec):Ec;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};var zc=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){wc.forEach(this.handlers,function(t){null!==t&&e(t)})}},Wc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Rc={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Yc,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Uc="undefined"!=typeof window&&"undefined"!=typeof document,Vc="object"==typeof navigator&&navigator||void 0,Hc=Uc&&(!Vc||["ReactNative","NativeScript","NS"].indexOf(Vc.product)<0),kc="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Qc=Uc&&window.location.href||"http://localhost";var Pc={...Object.freeze({__proto__:null,hasBrowserEnv:Uc,hasStandardBrowserEnv:Hc,hasStandardBrowserWebWorkerEnv:kc,navigator:Vc,origin:Qc}),...Rc};function Oc(e){if(e>100)throw new Tc("FormData field is too deeply nested ("+e+" levels). Max depth: 100",Tc.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Jc(e){function t(e,n,r,s){Oc(s);let i=e[s++];if("__proto__"===i)return!0;const o=Number.isFinite(+i),a=s>=e.length;if(i=!i&&wc.isArray(r)?r.length:i,a)return wc.hasOwnProp(r,i)?r[i]=wc.isArray(r[i])?r[i].concat(n):[r[i],n]:r[i]=n,!o;wc.hasOwnProp(r,i)&&wc.isObject(r[i])||(r[i]=[]);return t(e,n,r[i],s)&&wc.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r<s;r++)i=n[r],t[i]=e[i];return t}(r[i])),!o}if(wc.isFormData(e)&&wc.isFunction(e.entries)){const n={};return wc.forEachEntry(e,(e,r)=>{t(function(e){const t=[],n=/\w+|\[(\w*)]/g;let r;for(;null!==(r=n.exec(e));)Oc(t.length),t.push("[]"===r[0]?"":r[1]||r[0]);return t}(e),r,n,0)}),n}return null}const Bc=(e,t)=>null!=e&&wc.hasOwnProp(e,t)?e[t]:void 0;const Fc={transitional:Wc,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,s=wc.isObject(e);s&&wc.isHTMLForm(e)&&(e=new FormData(e));if(wc.isFormData(e))return r?JSON.stringify(Jc(e)):e;if(wc.isArrayBuffer(e)||wc.isBuffer(e)||wc.isStream(e)||wc.isFile(e)||wc.isBlob(e)||wc.isReadableStream(e))return e;if(wc.isArrayBufferView(e))return e.buffer;if(wc.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(s){const t=Bc(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return vc(e,new Pc.classes.URLSearchParams,{visitor:function(e,t,n,r){return Pc.isNode&&wc.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}(e,t).toString();if((i=wc.isFileList(e))||n.indexOf("multipart/form-data")>-1){const n=Bc(this,"env"),r=n&&n.FormData;return vc(i?{"files[]":e}:e,r&&new r,t)}}return s||r?(t.setContentType("application/json",!1),function(e,t,n){if(wc.isString(e))try{return(t||JSON.parse)(e),wc.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=Bc(this,"transitional")||Fc.transitional,n=t&&t.forcedJSONParsing,r=Bc(this,"responseType"),s="json"===r;if(wc.isResponse(e)||wc.isReadableStream(e))return e;if(e&&wc.isString(e)&&(n&&!r||s)){const n=!(t&&t.silentJSONParsing)&&s;try{return JSON.parse(e,Bc(this,"parseReviver"))}catch(e){if(n){if("SyntaxError"===e.name)throw Tc.from(e,Tc.ERR_BAD_RESPONSE,this,null,Bc(this,"response"));throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Pc.classes.FormData,Blob:Pc.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};wc.forEach(["delete","get","head","post","put","patch","query"],e=>{Fc.headers[e]={}});var _c=Fc;function qc(e,t){const n=this||_c,r=t||n,s=Cc.from(r.headers);let i=r.data;return wc.forEach(e,function(e){i=e.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function $c(e){return!(!e||!e.__CANCEL__)}var el=class extends Tc{constructor(e,t,n){super(null==e?"canceled":e,Tc.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function tl(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new Tc("Request failed with status code "+n.status,n.status>=400&&n.status<500?Tc.ERR_BAD_REQUEST:Tc.ERR_BAD_RESPONSE,n.config,n.request,n)):e(n)}const nl=(e,t,n=3)=>{let r=0;const s=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s,i=0,o=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),l=r[o];s||(s=c),n[i]=a,r[i]=c;let u=o,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===o&&(o=(o+1)%e),c-s<t)return;const p=l&&c-l;return p?Math.round(1e3*d/p):void 0}}(50,250);return function(e,t){let n,r,s=0,i=1e3/t;const o=(t,i=Date.now())=>{s=i,n=null,r&&(clearTimeout(r),r=null),e(...t)};return[(...e)=>{const t=Date.now(),a=t-s;a>=i?o(e,t):(n=e,r||(r=setTimeout(()=>{r=null,o(n)},i-a)))},()=>n&&o(n)]}(n=>{if(!n||"number"!=typeof n.loaded)return;const i=n.loaded,o=n.lengthComputable?n.total:void 0,a=null!=o?Math.min(i,o):i,c=Math.max(0,a-r),l=s(c);r=Math.max(r,a);e({loaded:a,total:o,progress:o?a/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-a)/l:void 0,event:n,lengthComputable:null!=o,[t?"download":"upload"]:!0})},n)},rl=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},sl=e=>(...t)=>wc.asap(()=>e(...t));var il=Pc.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Pc.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Pc.origin),Pc.navigator&&/(msie|trident)/i.test(Pc.navigator.userAgent)):()=>!0,ol=Pc.hasStandardBrowserEnv?{write(e,t,n,r,s,i,o){if("undefined"==typeof document)return;const a=[`${e}=${encodeURIComponent(t)}`];wc.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),wc.isString(r)&&a.push(`path=${r}`),wc.isString(s)&&a.push(`domain=${s}`),!0===i&&a.push("secure"),wc.isString(o)&&a.push(`SameSite=${o}`),document.cookie=a.join("; ")},read(e){if("undefined"==typeof document)return null;const t=document.cookie.split(";");for(let n=0;n<t.length;n++){const r=t[n].replace(/^\s+/,""),s=r.indexOf("=");if(-1!==s&&r.slice(0,s)===e)try{return decodeURIComponent(r.slice(s+1))}catch(e){return r.slice(s+1)}}return null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};const al=/^https?:(?!\/\/)/i,cl=/[\t\n\r]/g;function ll(e,t){if("string"==typeof e&&al.test(function(e){return function(e){let t=0;for(;t<e.length&&e.charCodeAt(t)<=32;)t++;return e.slice(t)}(e).replace(cl,"")}(e)))throw new Tc('Invalid URL: missing "//" after protocol',Tc.ERR_INVALID_URL,t)}function ul(e,t,n,r){ll(t,r);let s=!function(e){return"string"==typeof e&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}(t);return e&&(s||!1===n)?(ll(e,r),function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t)):t}const dl=e=>e instanceof Cc?{...e}:e;function pl(e,t){e=e||{},t=t||{};const n=Object.create(null);function r(e,t,n,r){return wc.isPlainObject(e)&&wc.isPlainObject(t)?wc.merge.call({caseless:r},e,t):wc.isPlainObject(t)?wc.merge({},t):wc.isArray(t)?t.slice():t}function s(e,t,n,s){return wc.isUndefined(t)?wc.isUndefined(e)?void 0:r(void 0,e,0,s):r(e,t,0,s)}function i(e,t){if(!wc.isUndefined(t))return r(void 0,t)}function o(e,t){return wc.isUndefined(t)?wc.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,s,i){return wc.hasOwnProp(t,i)?r(n,s):wc.hasOwnProp(e,i)?r(void 0,n):void 0}Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});const c={url:i,method:i,data:i,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:a,headers:(e,t,n)=>s(dl(e),dl(t),0,!0)};return wc.forEach(Object.keys({...e,...t}),function(r){if("__proto__"===r||"constructor"===r||"prototype"===r)return;const i=wc.hasOwnProp(c,r)?c[r]:s,o=i(wc.hasOwnProp(e,r)?e[r]:void 0,wc.hasOwnProp(t,r)?t[r]:void 0,r);wc.isUndefined(o)&&i!==a||(n[r]=o)}),wc.hasOwnProp(t,"validateStatus")&&wc.isUndefined(t.validateStatus)&&!1===function(n){const r=wc.hasOwnProp(t,"transitional")?t.transitional:void 0;if(!wc.isUndefined(r)){if(!wc.isPlainObject(r))return;if(wc.hasOwnProp(r,n))return r[n]}const s=wc.hasOwnProp(e,"transitional")?e.transitional:void 0;if(wc.isPlainObject(s)&&wc.hasOwnProp(s,n))return s[n]}("validateStatusUndefinedResolves")&&(wc.hasOwnProp(e,"validateStatus")?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}const wl=["content-type","content-length"];function Ml(e){const t=pl({},e),n=e=>wc.hasOwnProp(t,e)?t[e]:void 0,r=n("data");let s=n("withXSRFToken");const i=n("xsrfHeaderName"),o=n("xsrfCookieName");let a=n("headers");const c=n("auth"),l=n("baseURL"),u=n("allowAbsoluteUrls"),d=n("url");if(t.headers=a=Cc.from(a),t.url=Kc(ul(l,d,u,t),n("params"),n("paramsSerializer")),c){const t=wc.getSafeProp(c,"username")||"",n=wc.getSafeProp(c,"password")||"";try{a.set("Authorization","Basic "+btoa(t+":"+(n?encodeURIComponent(n).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))):"")))}catch(t){throw Tc.from(t,Tc.ERR_BAD_OPTION_VALUE,e)}}if(wc.isFormData(r)&&(Pc.hasStandardBrowserEnv||Pc.hasStandardBrowserWebWorkerEnv||wc.isReactNative(r)?a.setContentType(void 0):wc.isFunction(r.getHeaders)&&function(e,t,n){"content-only"===n?Object.entries(t||{}).forEach(([t,n])=>{wl.includes(t.toLowerCase())&&e.set(t,n)}):e.set(t)}(a,r.getHeaders(),n("formDataHeaderPolicy"))),Pc.hasStandardBrowserEnv){wc.isFunction(s)&&(s=s(t));if(!0===s||null==s&&il(t.url)){const e=i&&o&&ol.read(o);e&&a.set(i,e)}}return t}var yl="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const r=Ml(e);let s=r.data;const i=Cc.from(r.headers).normalize();let o,a,c,l,u,{responseType:d,onUploadProgress:p,onDownloadProgress:w}=r;function M(){l&&l(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(o),r.signal&&r.signal.removeEventListener("abort",o)}let y=new XMLHttpRequest;function m(){if(!y)return;const r=Cc.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders());tl(function(e){t(e),M()},function(e){n(e),M()},{data:d&&"text"!==d&&"json"!==d?y.response:y.responseText,status:y.status,statusText:y.statusText,headers:r,config:e,request:y}),y=null}y.open(r.method.toUpperCase(),r.url,!0),y.timeout=r.timeout,"onloadend"in y?y.onloadend=m:y.onreadystatechange=function(){y&&4===y.readyState&&(0!==y.status||y.responseURL&&y.responseURL.startsWith("file:"))&&setTimeout(m)},y.onabort=function(){y&&(n(new Tc("Request aborted",Tc.ECONNABORTED,e,y)),M(),y=null)},y.onerror=function(t){const r=t&&t.message?t.message:"Network Error",s=new Tc(r,Tc.ERR_NETWORK,e,y);s.event=t||null,n(s),M(),y=null},y.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const s=r.transitional||Wc;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new Tc(t,s.clarifyTimeoutError?Tc.ETIMEDOUT:Tc.ECONNABORTED,e,y)),M(),y=null},void 0===s&&i.setContentType(null),"setRequestHeader"in y&&wc.forEach(fc(i),function(e,t){y.setRequestHeader(t,e)}),wc.isUndefined(r.withCredentials)||(y.withCredentials=!!r.withCredentials),d&&"json"!==d&&(y.responseType=r.responseType),w&&([c,u]=nl(w,!0),y.addEventListener("progress",c)),p&&y.upload&&([a,l]=nl(p),y.upload.addEventListener("progress",a),y.upload.addEventListener("loadend",l)),(r.cancelToken||r.signal)&&(o=t=>{y&&(n(!t||t.type?new el(null,e,y):t),y.abort(),M(),y=null)},r.cancelToken&&r.cancelToken.subscribe(o),r.signal&&(r.signal.aborted?o():r.signal.addEventListener("abort",o)));const I=function(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}(r.url);if(I&&!Pc.protocols.includes(I))return n(new Tc("Unsupported protocol "+I+":",Tc.ERR_BAD_REQUEST,e)),void M();y.send(s||null)})};var ml=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const n=new AbortController;let r=!1;const s=function(e){if(!r){r=!0,o();const t=e instanceof Error?e:this.reason;n.abort(t instanceof Tc?t:new el(t instanceof Error?t.message:t))}};let i=t&&setTimeout(()=>{i=null,s(new Tc(`timeout of ${t}ms exceeded`,Tc.ETIMEDOUT))},t);const o=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(s):e.removeEventListener("abort",s)}),e=null)};e.forEach(e=>e.addEventListener("abort",s,{once:!0}));const{signal:a}=n;return a.unsubscribe=()=>wc.asap(o),a};const Il=function*(e,t){let n=e.byteLength;if(!t||n<t)return void(yield e);let r,s=0;for(;s<n;)r=s+t,yield e.slice(s,r),s=r},fl=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},gl=(e,t,n,r)=>{const s=async function*(e,t){for await(const n of fl(e))yield*Il(n,t)}(e,t);let i,o=0,a=e=>{i||(i=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await s.next();if(t)return a(),void e.close();let i=r.byteLength;if(n){let e=o+=i;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw a(e),e}},cancel:e=>(a(e),s.return())},{highWaterMark:2})},hl=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Ll=(e,t,n)=>t+2<n&&hl(e.charCodeAt(t+1))&&hl(e.charCodeAt(t+2));const Dl="1.18.1",{isFunction:bl}=wc,Cl=e=>{if(!wc.isString(e))return e;try{return decodeURIComponent(e)}catch(t){return e}},Nl=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},xl=e=>{const t=void 0!==wc.global&&null!==wc.global?wc.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=wc.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:s,Request:i,Response:o}=e,a=s?bl(s):"function"==typeof fetch,c=bl(i),l=bl(o);if(!a)return!1;const u=a&&bl(n),d=a&&("function"==typeof r?(p=new r,e=>p.encode(e)):async e=>new Uint8Array(await new i(e).arrayBuffer()));var p;const w=c&&u&&Nl(()=>{let e=!1;const t=new i(Pc.origin,{body:new n,method:"POST",get duplex(){return e=!0,"half"}}),r=t.headers.has("Content-Type");return null!=t.body&&t.body.cancel(),e&&!r}),M=l&&u&&Nl(()=>wc.isReadableStream(new o("").body)),y={stream:M&&(e=>e.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!y[e]&&(y[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new Tc(`Response type '${e}' is not supported`,Tc.ERR_NOT_SUPPORT,n)})});const m=async e=>{if(null==e)return 0;if(wc.isBlob(e))return e.size;if(wc.isSpecCompliantForm(e)){const t=new i(Pc.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return wc.isArrayBufferView(e)||wc.isArrayBuffer(e)?e.byteLength:(wc.isURLSearchParams(e)&&(e+=""),wc.isString(e)?(await d(e)).byteLength:void 0)};return async e=>{let{url:t,method:n,data:a,signal:l,cancelToken:d,timeout:p,onDownloadProgress:I,onUploadProgress:f,responseType:g,headers:h,withCredentials:L="same-origin",fetchOptions:D,maxContentLength:b,maxBodyLength:C}=Ml(e);const N=wc.isNumber(b)&&b>-1,x=wc.isNumber(C)&&C>-1;let T=s||fetch;g=g?(g+"").toLowerCase():"text";let S=ml([l,d&&d.toAbortSignal()],p),Z=null;const A=S&&S.unsubscribe&&(()=>{S.unsubscribe()});let X,v=null;const E=()=>new Tc("Request body larger than maxBodyLength limit",Tc.ERR_BAD_REQUEST,e,Z);try{let s;const l=(j="auth",wc.hasOwnProp(e,j)?e[j]:void 0);if(l){const e=wc.getSafeProp(l,"username")||"";s={username:e,password:wc.getSafeProp(l,"password")||""}}if((e=>{const t=e.indexOf("://");let n=e;return-1!==t&&(n=n.slice(t+3)),n.includes("@")||n.includes(":")})(t)){const e=new URL(t,Pc.origin);if(!s&&(e.username||e.password)){const t=Cl(e.username);s={username:t,password:Cl(e.password)}}(e.username||e.password)&&(e.username="",e.password="",t=e.href)}if(s&&(h.delete("authorization"),h.set("Authorization","Basic "+btoa((Y=(s.username||"")+":"+(s.password||""),encodeURIComponent(Y).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))))))),N&&"string"==typeof t&&t.startsWith("data:")){const n=function(e){if(!e||"string"!=typeof e)return 0;if(!e.startsWith("data:"))return 0;const t=e.indexOf(",");if(t<0)return 0;const n=e.slice(5,t),r=e.slice(t+1);if(/;base64/i.test(n)){let e=r.length;const t=r.length;for(let n=0;n<t;n++)if(37===r.charCodeAt(n)&&n+2<t){const t=r.charCodeAt(n+1),s=r.charCodeAt(n+2);hl(t)&&hl(s)&&(e-=2,n+=2)}let n=0,s=t-1;const i=e=>e>=2&&37===r.charCodeAt(e-2)&&51===r.charCodeAt(e-1)&&(68===r.charCodeAt(e)||100===r.charCodeAt(e));s>=0&&(61===r.charCodeAt(s)?(n++,s--):i(s)&&(n++,s-=3)),1===n&&s>=0&&(61===r.charCodeAt(s)||i(s))&&n++;const o=3*Math.floor(e/4)-(n||0);return o>0?o:0}let s=0;for(let e=0,t=r.length;e<t;e++){const n=r.charCodeAt(e);if(37===n&&Ll(r,e,t))s+=1,e+=2;else if(n<128)s+=1;else if(n<2048)s+=2;else if(n>=55296&&n<=56319&&e+1<t){const t=r.charCodeAt(e+1);t>=56320&&t<=57343?(s+=4,e++):s+=3}else s+=3}return s}(t);if(n>b)throw new Tc("maxContentLength size of "+b+" exceeded",Tc.ERR_BAD_RESPONSE,e,Z)}if(x&&"get"!==n&&"head"!==n){const e=await m(a);if("number"==typeof e&&isFinite(e)&&(X=e,e>C))throw E()}const d=x&&(wc.isReadableStream(a)||wc.isStream(a)),p=(e,t,n)=>gl(e,65536,e=>{if(x&&e>C)throw v=E();t&&t(e)},n);if(w&&"get"!==n&&"head"!==n&&(f||d)){if(X=null==X?await(async(e,t)=>{const n=wc.toFiniteNumber(e.getContentLength());return null==n?m(t):n})(h,a):X,0!==X||d){let e,n=new i(t,{method:"POST",body:a,duplex:"half"});if(wc.isFormData(a)&&(e=n.headers.get("content-type"))&&h.setContentType(e),n.body){const[e,t]=f&&rl(X,nl(sl(f)))||[];a=p(n.body,e,t)}}}else if(d&&!c&&u&&"get"!==n&&"head"!==n)a=p(a);else if(d&&c&&!w&&"get"!==n&&"head"!==n)throw new Tc("Stream request bodies are not supported by the current fetch implementation",Tc.ERR_NOT_SUPPORT,e,Z);wc.isString(L)||(L=L?"include":"omit");const G=c&&"credentials"in i.prototype;if(wc.isFormData(a)){const e=h.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&h.delete("content-type")}h.set("User-Agent","axios/"+Dl,!1);const K={...D,signal:S,method:n.toUpperCase(),headers:fc(h.normalize()),body:a,duplex:"half",credentials:G?L:void 0};Z=c&&new i(t,K);let z=await(c?T(Z,D):T(t,K));const W=Cc.from(z.headers);if(N){const t=wc.toFiniteNumber(W.getContentLength());if(null!=t&&t>b)throw new Tc("maxContentLength size of "+b+" exceeded",Tc.ERR_BAD_RESPONSE,e,Z)}const R=M&&("stream"===g||"response"===g);if(M&&z.body&&(I||N||R&&A)){const t={};["status","statusText","headers"].forEach(e=>{t[e]=z[e]});const n=wc.toFiniteNumber(W.getContentLength()),[r,s]=I&&rl(n,nl(sl(I),!0))||[];let i=0;const a=t=>{if(N&&(i=t,i>b))throw new Tc("maxContentLength size of "+b+" exceeded",Tc.ERR_BAD_RESPONSE,e,Z);r&&r(t)};z=new o(gl(z.body,65536,a,()=>{s&&s(),A&&A()}),t)}g=g||"text";let U=await y[wc.findKey(y,g)||"text"](z,e);if(N&&!M&&!R){let t;if(null!=U&&("number"==typeof U.byteLength?t=U.byteLength:"number"==typeof U.size?t=U.size:"string"==typeof U&&(t="function"==typeof r?(new r).encode(U).byteLength:U.length)),"number"==typeof t&&t>b)throw new Tc("maxContentLength size of "+b+" exceeded",Tc.ERR_BAD_RESPONSE,e,Z)}return!R&&A&&A(),await new Promise((t,n)=>{tl(t,n,{data:U,headers:Cc.from(z.headers),status:z.status,statusText:z.statusText,config:e,request:Z})})}catch(t){if(A&&A(),S&&S.aborted&&S.reason instanceof Tc){const n=S.reason;throw n.config=e,Z&&(n.request=Z),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(v)throw Z&&!v.request&&(v.request=Z),v;if(t instanceof Tc)throw Z&&!t.request&&(t.request=Z),t;if(t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message)){const n=new Tc("Network Error",Tc.ERR_NETWORK,e,Z,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw Tc.from(t,t&&t.code,e,Z,t&&t.response)}var Y,j}},Tl=new Map,Sl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let o,a,c=i.length,l=Tl;for(;c--;)o=i[c],a=l.get(o),void 0===a&&l.set(o,a=c?new Map:xl(t)),l=a;return a};Sl();const Zl={http:null,xhr:yl,fetch:{get:Sl}};wc.forEach(Zl,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch(e){}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Al=e=>`- ${e}`,Xl=e=>wc.isFunction(e)||null===e||!1===e;var vl={getAdapter:function(e,t){e=wc.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let o=0;o<n;o++){let n;if(r=e[o],s=r,!Xl(r)&&(s=Zl[(n=String(r)).toLowerCase()],void 0===s))throw new Tc(`Unknown adapter '${n}'`);if(s&&(wc.isFunction(s)||(s=s.get(t))))break;i[n||"#"+o]=s}if(!s){const e=Object.entries(i).map(([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));let t=n?e.length>1?"since :\n"+e.map(Al).join("\n"):" "+Al(e[0]):"as no adapter specified";throw new Tc("There is no suitable adapter to dispatch the request "+t,Tc.ERR_NOT_SUPPORT)}return s},adapters:Zl};function El(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new el(null,e)}function Yl(e){El(e),e.headers=Cc.from(e.headers),e.data=qc.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return vl.getAdapter(e.adapter||_c.adapter,e)(e).then(function(t){El(e),e.response=t;try{t.data=qc.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=Cc.from(t.headers),t},function(t){if(!$c(t)&&(El(e),t&&t.response)){e.response=t.response;try{t.response.data=qc.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=Cc.from(t.response.headers)}return Promise.reject(t)})}const jl={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{jl[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Gl={};jl.transitional=function(e,t,n){function r(e,t){return"[Axios v"+Dl+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,s,i)=>{if(!1===e)throw new Tc(r(s," has been removed"+(t?" in "+t:"")),Tc.ERR_DEPRECATED);return t&&!Gl[s]&&(Gl[s]=!0,console.warn(r(s," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,s,i)}},jl.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var Kl={assertOptions:function(e,t,n){if("object"!=typeof e||null===e)throw new Tc("options must be an object",Tc.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],o=Object.prototype.hasOwnProperty.call(t,i)?t[i]:void 0;if(o){const t=e[i],n=void 0===t||o(t,i,e);if(!0!==n)throw new Tc("option "+i+" must be "+n,Tc.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new Tc("Unknown option "+i,Tc.ERR_BAD_OPTION)}},validators:jl};const zl=Kl.validators;class Wl{constructor(e){this.defaults=e||{},this.interceptors={request:new zc,response:new zc}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=(()=>{if(!t.stack)return"";const e=t.stack.indexOf("\n");return-1===e?"":t.stack.slice(e+1)})();try{if(e.stack){if(n){const t=n.indexOf("\n"),r=-1===t?-1:n.indexOf("\n",t+1),s=-1===r?"":n.slice(r+1);String(e.stack).endsWith(s)||(e.stack+="\n"+n)}}else e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=pl(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:s}=t;void 0!==n&&Kl.assertOptions(n,{silentJSONParsing:zl.transitional(zl.boolean),forcedJSONParsing:zl.transitional(zl.boolean),clarifyTimeoutError:zl.transitional(zl.boolean),legacyInterceptorReqResOrdering:zl.transitional(zl.boolean),advertiseZstdAcceptEncoding:zl.transitional(zl.boolean),validateStatusUndefinedResolves:zl.transitional(zl.boolean)},!1),null!=r&&(wc.isFunction(r)?t.paramsSerializer={serialize:r}:Kl.assertOptions(r,{encode:zl.function,serialize:zl.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),Kl.assertOptions(t,{baseUrl:zl.spelling("baseURL"),withXsrfToken:zl.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=s&&wc.merge(s.common,s[t.method]);s&&wc.forEach(["delete","get","head","post","put","patch","query","common"],e=>{delete s[e]}),t.headers=Cc.concat(i,s);const o=[];let a=!0;this.interceptors.request.forEach(function(e){if("function"==typeof e.runWhen&&!1===e.runWhen(t))return;a=a&&e.synchronous;const n=t.transitional||Wc;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});const c=[];let l;this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let u,d=0;if(!a){const e=[Yl.bind(this),void 0];for(e.unshift(...o),e.push(...c),u=e.length,l=Promise.resolve(t);d<u;)l=l.then(e[d++],e[d++]);return l}u=o.length;let p=t;for(;d<u;){const e=o[d++],t=o[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{l=Yl.call(this,p)}catch(e){return Promise.reject(e)}for(d=0,u=c.length;d<u;)l=l.then(c[d++],c[d++]);return l}getUri(e){return Kc(ul((e=pl(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}}wc.forEach(["delete","get","head","options"],function(e){Wl.prototype[e]=function(t,n){return this.request(pl(n||{},{method:e,url:t,data:n&&wc.hasOwnProp(n,"data")?n.data:void 0}))}}),wc.forEach(["post","put","patch","query"],function(e){function t(t){return function(n,r,s){return this.request(pl(s||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Wl.prototype[e]=t(),"query"!==e&&(Wl.prototype[e+"Form"]=t(!0))});var Rl=Wl;class Ul{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(e){t=e});const n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,s){n.reason||(n.reason=new el(e,r,s),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new Ul(function(t){e=t}),cancel:e}}}var Vl=Ul;const Hl={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Hl).forEach(([e,t])=>{Hl[t]=e});var kl=Hl;const Ql=function e(t){const n=new Rl(t),r=ga(Rl.prototype.request,n);return wc.extend(r,Rl.prototype,n,{allOwnKeys:!0}),wc.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(pl(t,n))},r}(_c);Ql.Axios=Rl,Ql.CanceledError=el,Ql.CancelToken=Vl,Ql.isCancel=$c,Ql.VERSION=Dl,Ql.toFormData=vc,Ql.AxiosError=Tc,Ql.Cancel=Ql.CanceledError,Ql.all=function(e){return Promise.all(e)},Ql.spread=function(e){return function(t){return e.apply(null,t)}},Ql.isAxiosError=function(e){return wc.isObject(e)&&!0===e.isAxiosError},Ql.mergeConfig=pl,Ql.AxiosHeaders=Cc,Ql.formToJSON=e=>Jc(wc.isHTMLForm(e)?new FormData(e):e),Ql.getAdapter=vl.getAdapter,Ql.HttpStatusCode=kl,Ql.default=Ql;var Pl=Ql;function Ol(e,t,n,r){for(var s=-1,i=null==e?0:e.length;++s<i;){var o=e[s];t(r,o,n(o),e)}return r}function Jl(e,t,n,r){return qe(e,function(e,s,i){t(r,e,n(e),i)}),r}var Bl,Fl,_l=Object.prototype.hasOwnProperty,ql=(Bl=function(e,t,n){_l.call(e,n)?e[n].push(t):hs(e,n,[t])},function(e,t){var n=u(e)?Ol:Jl,r=Fl?Fl():{};return n(e,Bl,Bt(t),r)}),$l=ql;function eu(n,r=1){return function(e,t=1,n={}){let r=1,s=ye(n,"path"),i=ye(n,"fs");if(!ir(e,{fs:i}))throw new Error(`fd[${e}] is not a folder`);return null!==t&&Zn(t)&&(t=Sn(t))<1&&(t=1),function e(n){let o=[];return ir(n,{fs:i})?(et(i.readdirSync(n),function(a){let c=s.resolve(n,a),l=null;try{l=i.statSync(c)}catch(e){}l&&l.isDirectory()?(o.push({isFolder:!0,level:r,path:c,name:s.basename(c)}),r+=1,(r<=t||null===t)&&(o=o.concat(e(c))),r-=1):o.push({isFolder:!1,level:r,path:c,name:s.basename(c)})}),o):o}(e)}(n,r,{path:e,fs:t})}function tu(e){if(!cr(e))throw new Error("fp is not a file");let n=gr(),r=t.createReadStream(e,{encoding:"utf8"});return n.emit("create"),o.createInterface({input:r,crlfDelay:1/0}).on("line",e=>{n.emit("line",e)}),r.on("close",()=>{n.emit("close")}),n}async function nu(e=7,t="hr",n={}){let r=ye(n,"fdLog");$t(r)||(r="./logs");let s="day"===t?"YYYY-MM-DD":"YYYY-MM-DDTHH",i="hr"===t?"hour":"day",o=dr(),a=o.subtract(e,"day"),c=a.startOf(i),l=o.startOf(i),u={};for(;!c.isAfter(l);)u[c.format(s)]={data:{count:0}},c=c.add(1,i);let d=eu(r);d=function(e,t,n){let r=t.format(n);return ra(e,e=>{let t=ye(e,"name","").replace(/\.log$/,"");return!/^\d{4}-\d{2}-\d{2}/.test(t)||t>=r.slice(0,t.length)})}(d,a,s);let p=[];for(let e of d){let t=tu(e.path);t.on("line",e=>{let t=null;try{t=JSON.parse(e);let n=dr(t.time),r=n.format(s),i=n.isAfter(a),o=$t(t.event);i&&o&&p.push({timeFmt:r,...t})}catch(e){}});let n=Qn();t.on("close",()=>{n.resolve()}),await n}let w=function(e,t){var n={};return t=Bt(t),Fe(e,function(e,r,s){hs(n,r,t(e,r,s))}),n}($l(p,"timeFmt"),e=>{let t=Xi(e),n=$l(e,"event"),r={};return et(n,(e,t)=>{r[t]=Xi(e)}),{data:{count:t,...r}}}),M=_s({},u,w);return Object.keys(M).sort().map(e=>({time:e,...M[e]}))}let ru=a.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(ru).href:"undefined"==typeof document?location.href:l&&"SCRIPT"===l.tagName.toUpperCase()&&l.src||new URL("w-web-api.umd.js",document.baseURI).href),su=e.dirname(ru);let iu=(n={})=>{let r=ye(n,"logFd","");$t(r)||(r="./logs");let s=ye(n,"logInterval","");$t(s)||(s="hr");let i=function(n={}){let r=gr(),s=ye(n,"timeZone",null),i=ye(n,"fdLog");$t(i)||(i="./_logs");let o=ye(n,"interval");"day"!==o&&"hr"!==o&&(o="day");let a=ye(n,"numKeep");Zn(a)||(a="day"===o?365:8760),a=Sn(a);let l=c.transport({targets:[{level:"info",target:e.resolve(su,"./formatter.mjs"),options:{interval:o,fdLog:i,timeZone:s}}]}),u=c(l),d=()=>{try{if(!or(i))return;let n="hr"===o?/^\d{4}-\d{2}-\d{2}T\d{2}\.log$/:/^\d{4}-\d{2}-\d{2}\.log$/,s=t.readdirSync(i).filter(e=>n.test(e));s.sort();let c=s.length-a;if(c<=0)return;let l=s.slice(0,c);for(let n of l){let s=e.join(i,n);try{t.unlinkSync(s),r.emit("delete",{fp:s,fn:n})}catch(e){}}}catch(e){console.error("WSyslog cleanLogs error:",e)}};d();let p=setInterval(d,36e5);p.unref();let w=null,M=e=>{let t=u[e].bind(u);return(...n)=>{try{r.emit(e,{args:n})}catch(e){}t(...n)}};return r.fatal=M("fatal"),r.error=M("error"),r.warn=M("warn"),r.info=M("info"),r.debug=M("debug"),r.trace=M("trace"),r.cleanLogs=d,r.clear=(e={})=>{if(null!==w)return w;let t=ye(e,"timeLimit");Zn(t)||(t=6e4),w=Qn();let n=!1,r=()=>{n||(n=!0,clearInterval(p),w.resolve())},s=setTimeout(()=>{try{l.worker.terminate()}catch(e){}r()},t);try{u.flush(e=>{if(e||l.closed)return clearTimeout(s),void r();l.once("close",()=>{clearTimeout(s),r()}),l.end()})}catch(e){clearTimeout(s),r()}return w},r}({fdLog:r,interval:s});return i};const ou=[];for(let e=0;e<256;++e)ou.push((e+256).toString(16).slice(1));const au=new Uint8Array(16);function cu(){return crypto.getRandomValues(au)}const lu={};function uu(e,t,n){let r;if(e)r=du(e.random??e.rng?.()??cu(),e.msecs,e.seq,t,n);else{const e=Date.now(),s=cu();!function(e,t,n){e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=n[6]<<23|n[7]<<16|n[8]<<8|n[9],e.msecs=t):(e.seq=e.seq+1|0,0===e.seq&&e.msecs++)}(lu,e,s),r=du(s,lu.msecs,lu.seq,t,n)}return t??function(e,t=0){return(ou[e[t+0]]+ou[e[t+1]]+ou[e[t+2]]+ou[e[t+3]]+"-"+ou[e[t+4]]+ou[e[t+5]]+"-"+ou[e[t+6]]+ou[e[t+7]]+"-"+ou[e[t+8]]+ou[e[t+9]]+"-"+ou[e[t+10]]+ou[e[t+11]]+ou[e[t+12]]+ou[e[t+13]]+ou[e[t+14]]+ou[e[t+15]]).toLowerCase()}(r)}function du(e,t,n,r,s=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(r){if(s<0||s+16>r.length)throw new RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`)}else r=new Uint8Array(16),s=0;return t??=Date.now(),n??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],r[s++]=t/1099511627776&255,r[s++]=t/4294967296&255,r[s++]=t/16777216&255,r[s++]=t/65536&255,r[s++]=t/256&255,r[s++]=255&t,r[s++]=112|n>>>28&15,r[s++]=n>>>20&255,r[s++]=128|n>>>14&63,r[s++]=n>>>6&255,r[s++]=n<<2&255|3&e[10],r[s++]=e[11],r[s++]=e[12],r[s++]=e[13],r[s++]=e[14],r[s++]=e[15],r}function pu(e){return e.indexOf("\\\\")>=0?"```"+e+"```":e}let wu={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},name:{name:"名稱",type:"STRING"},description:{name:"說明",type:"TEXT"},url:{name:"網址",type:"STRING"},method:{name:"方法",type:"STRING"},version:{name:"版本",type:"STRING"},group:{name:"群組",type:"STRING"},levels:{name:"階層群組",type:"STRING"},keywords:{name:"關鍵字",type:"STRING"},state:{name:"狀態",type:"STRING"},creator:{name:"創建者",type:"STRING"},dataSource:{name:"資料提供者",type:"STRING"},tokens:{name:"金鑰",type:"TEXT"},mdInputParams:{name:"輸入參數md說明",type:"STRING"},inputExample:{name:"輸入範例",type:"STRING"},mdOutputParams:{name:"輸出資料md說明",type:"STRING"},outputExample:{name:"輸出範例",type:"STRING"},testBaseUrl:{name:"測試基底網址",type:"STRING"},authType:{name:"認證類型",type:"STRING"},authConfigJson:{name:"認證設定JSON",type:"TEXT"},defaultHeadersJson:{name:"預設標頭JSON",type:"TEXT"},defaultQueryJson:{name:"預設查詢參數JSON",type:"TEXT"},defaultBodyJson:{name:"預設請求內容JSON",type:"TEXT"},contentType:{name:"內容類型",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"},isActive:{name:"是否有效",type:"STRING"}},Mu=(e={})=>{let t=rr(e,Be(wu));return t.id=`${uu()}`,t.timeCreate=ki(),t.timeUpdate=t.timeCreate,t.isActive="y",t.authType=$t(t.authType)?t.authType:"none",t.contentType=$t(t.contentType)?t.contentType:"application/json",t},yu={keyTable:"apis",tableNameCht:"APIs",tableNameEng:"APIs",settings:wu,funNew:Mu,funTest:()=>{let e=_t([{id:"id-for-apis-sys-1",name:"取得API清單",description:"API管理中心取得API清單資訊",url:"http://localhost:11005/getAPIsList",method:"get",version:"v1",group:"全部",levels:"API",keywords:"API;center",state:"ok",creator:"apis-system",dataSource:"apis-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-1",name:"取得寵物清單",description:"寵物管理中心取得寵物清單資訊",url:"http://localhost:11005/getPetsList",method:"get",version:"v1",group:"寵物",levels:"寵物",keywords:"pets",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-dogs-1",name:"取得狗狗清單",description:"取得狗狗清單資訊",url:"http://localhost:11005/getDogsList",method:"get",version:"v1",group:"寵物",levels:"寵物.狗狗",keywords:"pets;dogs",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-dogs-2",name:"新增狗狗資訊",description:"新增狗狗資訊",url:"http://localhost:11005/addDog",method:"post",version:"v1",group:"寵物",levels:"寵物.狗狗",keywords:"pets;dogs",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### POST參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-dogs-3",name:"變更狗狗資訊",description:"變更狗狗資訊",url:"http://localhost:11005/updateDog",method:"put",version:"v1",group:"寵物",levels:"寵物.狗狗",keywords:"pets;dogs",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-dogs-4",name:"刪除狗狗資訊",description:"刪除狗狗資訊",url:"http://localhost:11005/deleteDog",method:"del",version:"v1",group:"寵物",levels:"寵物.狗狗",keywords:"pets;dogs",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-cats-1",name:"取得貓咪清單",description:"取得貓咪清單資訊",url:"http://localhost:11005/getCatsList",method:"get",version:"v1",group:"寵物",levels:"寵物.貓咪",keywords:"pets;cats",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-cats-2",name:"新增貓咪資訊",description:"新增貓咪資訊",url:"http://localhost:11005/addCat",method:"post",version:"v1",group:"寵物",levels:"寵物.貓咪",keywords:"pets;cats",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### POST參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-cats-3",name:"變更貓咪資訊",description:"變更貓咪資訊",url:"http://localhost:11005/updateCat",method:"put",version:"v1",group:"寵物",levels:"寵物.貓咪",keywords:"pets;cats",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-pets-cats-4",name:"刪除貓咪資訊",description:"刪除貓咪資訊",url:"http://localhost:11005/deleteCat",method:"del",version:"v1",group:"寵物",levels:"寵物.貓咪",keywords:"pets;cats",state:"ok",creator:"pets-system",dataSource:"pets-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-vehicles-cars-1",name:"取得汽車清單",description:"取得汽車清單資訊",url:"http://localhost:11005/getcarsList",method:"get",version:"v1",group:"寵物",levels:"交通工具.汽車",keywords:"vehicles;cars",state:"ok",creator:"vehicles-system",dataSource:"vehicles-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-vehicles-cars-2",name:"新增汽車資訊",description:"新增汽車資訊",url:"http://localhost:11005/addDog",method:"post",version:"v1",group:"寵物",levels:"交通工具.汽車",keywords:"vehicles;cars",state:"ok",creator:"vehicles-system",dataSource:"vehicles-data",mdInputParams:"### POST參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-vehicles-cars-3",name:"變更汽車資訊",description:"變更汽車資訊",url:"http://localhost:11005/updateDog",method:"put",version:"v1",group:"寵物",levels:"交通工具.汽車",keywords:"vehicles;cars",state:"ok",creator:"vehicles-system",dataSource:"vehicles-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '},{id:"id-for-apis-vehicles-cars-4",name:"刪除汽車資訊",description:"刪除汽車資訊",url:"http://localhost:11005/deleteDog",method:"del",version:"v1",group:"寵物",levels:"交通工具.汽車",keywords:"vehicles;cars",state:"ok",creator:"vehicles-system",dataSource:"vehicles-data",mdInputParams:"### GET網址參數\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| token | STRING | key-for-token |\n| id | STRING | id-for-test |\n| paramA | INTEGER | 123 |\n| paramB | DOUBLE | 123.456 |\n ",inputExample:"http://localhost:11005/getAPIsList?token={token}&id={id}¶mA=123¶mB=123.456",mdOutputParams:`### 回傳數據欄位: Array of objects\n| 參數 | 型別 | 範例 |\n| -- | -- | -- |\n| id | STRING | id-for-test |\n| weight | DOUBLE | 12.3 |\n| color | STRING | #f26 |\n| paramA | INTEGER | 321 |\n| paramB | DOUBLE | 654.321 |\n| paramC | STRING | ${pu("C:\\\\pj\\abc\\filename.pdf")} |\n `,outputExample:'\n[\n {\n "id": "id-for-test-1",\n "weight": 12.3,\n "color": "#f26",\n "paramA": 101,\n "paramB": 0.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename1.pdf"\n },\n {\n "id": "id-for-test-2",\n "weight": 22.3,\n "color": "#2f6",\n "paramA": 102,\n "paramB": 1.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename2.pdf"\n },\n {\n "id": "id-for-test-3",\n "weight": 32.3,\n "color": "#26f",\n "paramA": 103,\n "paramB": 2.01,\n "paramC": "C:\\\\\\\\pj\\\\abc\\\\filename3.pdf"\n }\n]\n '}],(e,t)=>{let n=Mu({...e,order:t});return $t(e.timeUpdate)&&(n.timeUpdate=e.timeUpdate),n=function(e,t){if(!tn(e))return{};if(!ln(t))return{};let n={};return et(t,function(t){Nr(e,t)&&(n[t]=ye(e,t))}),n}(n,Be(wu)),n});return console.log("已產生: {keyTable} 測試資料",e),e}};function mu(e,t={}){let n=ye(t,"useCreateStorage");mr(n)||(n=!1);let{keyTable:r,tableNameCht:s,tableNameEng:i,settings:o,parser:a,funNew:c,funTest:l,ext:u}=e;if(!$t(r))throw new Error(`invalid keyTable[${r}]`);if($t(s)||(s=r),$t(i)||(i=r),!nn(o))throw new Error("invalid settings");nn(u)||(u=null),nn(a)||(a=null),Wn(c)||(c=null);let d=null;Wn(l)&&(d=async e=>{if(!nn(e))throw new Error("invalid wo");if(!Nr(e,r))throw console.log(e),new Error(`keyTable[${r}] is not in wo`);let t=[];try{t=l(),Rn(t)&&(t=await t)}catch(e){throw console.log(`keyTable[${r}] funTest catch`,e),new Error(e)}if(0!==Xi(t))return n&&await e[r].createStorage(),await e[r].save(t),t});let p={},w={};return et(Be(o),e=>{let t=ye(o,`${e}.name`,"");$t(t)&&(p[e]=t);let n=ye(o,`${e}.type`,"");$t(n)&&(w[e]=n)}),{...e,keyTable:r,tableNameCht:s,tableNameEng:i,settings:o,keys:Be(o),kpType:w,kpHead:p,parser:a,funNew:c,funTest:l,funTestAndSave:d,ext:u}}let Iu={apis:yu},fu={};for(let e in Iu)fu[e]=mu(Iu[e],{useCreateStorage:!1});return function(n,r,s,i,o,a,c={}){let l=null;if(!Wn(n))throw console.log("invalid WOrm",n),new Error("invalid WOrm");if(!$t(r))throw console.log("invalid url",r),new Error("invalid url");if(!$t(s))throw console.log("invalid db",s),new Error("invalid db");if(!Wn(i))throw console.log("invalid getUserByToken",i),new Error("invalid getUserByToken");if(!Wn(o))throw console.log("invalid verifyClientUser",o),new Error("invalid verifyClientUser");if(!Wn(a))throw console.log("invalid verifyAppUser",a),new Error("invalid verifyAppUser");let u=ye(c,"serverPort");Zn(u)||(u=11005),u=Sn(u);let d=ye(c,"useCheckUser",!1),p=ye(c,"getUserById",null),w=ye(c,"useExcludeWhenNotAdmin",!1),M=ye(c,"webName",{}),y=ye(c,"webDescription",{}),m=ye(c,"webLogo",""),I=ye(c,"subfolder","");var f,g;$t(I)&&("/"===Hn(I,1)&&(g=1,I=$t(f=I)&&Un(g)?0===(g=Sn(g))?f:Vn(f,f.length-g):""),"/"!==Vn(I,1)&&(I=`/${I}`));let h=ye(c,"urlRedirect",""),L=ye(c,"showLanguage","y"),D=ye(c,"language","eng"),b=ye(c,"logFd","./logs"),C=ye(c,"kpLangExt",{}),N=fa({kpLangExt:C,webName:M,webDescription:y}),x={useCheckUser:d,getUserById:p,useExcludeWhenNotAdmin:w},T={};try{T=ma(fu,n,r,s,x)}catch(e){throw console.log("WServOrm init failed",e),e}let{woItems:S,procOrm:Z}=T,A=iu(c),X=e=>$t(e)?Vn(e,4)+"***":e,v=(e,t)=>{let n="kpfun-"+e;return async(...e)=>{try{let r=await t(...e);return A.info({event:n}),r}catch(e){return A.error({event:n,err:e}),Promise.reject(e)}}},{proxyRequest:E}=function(e={}){let t=ye(e,"srLog",null),n=ye(e,"isAllowTarget",null);return{proxyRequest:async(e={})=>{let r=ye(e,"method","GET");$t(r)||(r="GET"),r=r.toUpperCase();let s=ye(e,"url","");if(!$t(s))return Promise.reject("errReqUrlInvalid");if(!s.startsWith("http://")&&!s.startsWith("https://"))return Promise.reject("errReqUrlInvalid");if("function"==typeof n&&!1===n(s))return Promise.reject("errReqTargetNotAllowed");let i=ye(e,"headers",{});tn(i)||(i={}),delete i.host,delete i.Host,delete i["content-length"],delete i["Content-Length"];let o=ye(e,"query",null),a=null;tn(o)&&Object.keys(o).length>0&&(a=o);let c,l=ye(e,"body",void 0);"GET"!==r&&"HEAD"!==r&&void 0!==l&&(c=l);let u,d=ye(e,"timeout",3e4);("number"!=typeof d||d<=0)&&(d=3e4);let p=Date.now();try{let e=await Pl({method:r,url:s,headers:i,params:a,data:c,timeout:d,validateStatus:()=>!0}),t=Date.now()-p;u={status:e.status,statusText:e.statusText,headers:e.headers,data:e.data,durationMs:t}}catch(e){return t&&t.error({event:"proxyRequest-axios",msg:ye(e,"message",String(e))}),Promise.reject("errProxyRequestFailed")}return u}}}({srLog:A}),{getApisList:Y,saveApi:j,deleteApi:G}=function(e={}){let{woItems:t,procOrm:n,ds:r}=e;return{getApisList:async e=>await t.apis.select({}),saveApi:async(e,t)=>{if(!nn(t))return Promise.reject("errApiRowInvalid");let s=r.apis.funNew(t);return $t(t.id)&&(s.id=t.id,$t(t.timeCreate)&&(s.timeCreate=t.timeCreate)),await n(e,"apis","save",[s])},deleteApi:async(e,t)=>$t(t)?await n(e,"apis","del",{id:t}):Promise.reject("errApiIdInvalid")}}({woItems:S,procOrm:Z,ds:fu}),K=async e=>{if(!$t(ye(e,"id","")))return console.log("user",e),console.log("can not get the userId"),Promise.reject("errUserIdMissing");if(!$t(ye(e,"email","")))return console.log("user",e),console.log("can not get the email of user"),Promise.reject("errUserEmailMissing");if(!$t(ye(e,"name","")))return console.log("user",e),console.log("can not get userName"),Promise.reject("errUserNameMissing");let t=ye(e,"isAdmin","");return"y"===t||"n"===t||(console.log("user",e),console.log("user.isAdmin is not y or n",e.isAdmin),console.log("can not get the role of user"),Promise.reject("errUserRoleMissing"))},z=async e=>{let t=await i(e);return await K(t),!0},W=async(e,t="")=>{let n=await(async e=>{let t=i(e);return Rn(t)&&(t=await t),await K(t),t})(e),r=o(n,t);return Rn(r)&&(r=await r),r?(A.info({event:"verifyClientUser",from:t,userId:ye(n,"id","")}),n):(console.log("user",n),console.log("user does not have permission"),Promise.reject("errUserNoPermission"))},R=async(e,t,n)=>{let r=ye(t,"group","");if(!$t(r))return console.log("inp",t),console.log("group",r),console.log("invalid group"),Promise.reject("errGroupInvalid");let s=ye(t,"rows",[]);return ln(s)?(s=_t(s,(e,t)=>(e.group=r,e)),"apis"===n&&et(s,(e,t)=>{et(e,(e,n)=>{$t(e)&&"base64:"===Vn(e,7)&&(e=nr(e=kn(e,7)),s[t][n]=e)})}),s=function(e,t,n=""){return ln(e)&&ln(t)?_t(e,e=>rr(e,t,n)):[]}(s,fu[n].keys),await S[n].delAll({group:r}),await Z(e,n,"insert",s)):(console.log("inp",t),console.log("keyTable",n),Promise.reject("errRowsInvalid"))},U="dist",V="./node_modules/w-web-api/dist";or(V)&&(U=V);let H="index.html";try{let n=e.resolve(U,"index.tmp");if(cr(n)||(n=e.resolve(U,H)),!cr(n))throw console.log("fpEntryIn",n),new Error("invalid fpEntryIn");let r=e.resolve(U,H),s=t.readFileSync(n,"utf8");s=lr(s,"/mapi/","{sfd}/"),s=lr(s,"{sfd}",I),s=lr(s,"{urlRedirect}",h),s=lr(s,"{language}",D),t.writeFileSync(r,s,"utf8")}catch(e){console.log(e),console.log(`can not generate ${H}`)}let k=[{method:"GET",path:"/api/getUserByToken",handler:async function(e,t){let n=await Pn(async function(){let t=ye(e,"query.token","");if(!$t(t))return console.log("req.query",ye(e,"query")),console.log("token",X(t)),console.log("[API]getUserByToken/check token: invalid token"),Promise.reject("errTokenNoPermission");let n=await W(t,"getUserByToken");return nn(n)?(A.info({event:"api/getUserByToken",userId:ye(n,"id","")}),n):(console.log("token",X(t)),console.log("[API]getUserByToken/check user: invalid user"),Promise.reject("errTokenNoPermission"))})();return zn(n.msg)&&(n.msg=n.msg.message),n}},{method:"POST",path:"/syncAndReplaceTabs",handler:async function(e,t){let n=await Pn(async function(){let t=ye(e,"query.token","");if(!$t(t))return console.log("req.query",ye(e,"query")),console.log("token",X(t)),console.log("[API]syncAndReplaceTabs/check token: invalid token"),Promise.reject("errTokenNoPermission");let n=ye(e,"query.keyTable","");if(!$t(n))return console.log("req.query",ye(e,"query")),console.log("keyTable",n),console.log("[API]syncAndReplaceTabs/check keyTable: invalid keyTable"),Promise.reject("errKeyTableInvalid");if(!["apis"].includes(n))return console.log("[API]syncAndReplaceTabs/check keyTable: unexpected keyTable",n),Promise.reject("errKeyTableInvalid");let r=await(async(e,t="")=>{let n=null;if($t(e)&&(n=i(e),Rn(n)&&(n=await n)),!nn(n))return console.log("token",e),console.log("can not find the user from token"),Promise.reject("errUserNotFound");let r=a(n,t);return Rn(r)&&(r=await r),r?(A.info({event:"verifyAppUser",from:t,userId:ye(n,"id","")}),n):(console.log("user",n),console.log("user does not have permission"),Promise.reject("errUserNoPermission"))})(t,"syncAndReplaceTabs");if(!nn(r))return console.log("token",X(t)),console.log("[API]syncAndReplaceTabs/check user: invalid user"),Promise.reject("errTokenNoPermission");let s=ye(r,"id","");if(!$t(s))return console.log("token",X(t)),console.log("user",r),console.log("[API]syncAndReplaceTabs/check userId: invalid userId"),Promise.reject("errTokenNoPermission");let o=await(async e=>{let t=ye(e,"payload");if($t(t)&&(t=en(t)),!nn(t))return console.log("payload",t),console.log("invalid payload in req"),Promise.reject("errPayloadInvalid");let n=ye(t,"group","");if(!$t(n))return console.log("payload",t),console.log("invalid group in payload"),Promise.reject("errGroupInvalid");let r=ye(t,"rows",[]);return ln(r)?{group:n,rows:r}:(console.log("payload",t),console.log("invalid rows in payload"),Promise.reject("errRowsInvalid"))})(e),c=await R(s,o,n);return A.info({event:"api/syncAndReplaceTabs",userId:s,keyTable:n}),c})();return zn(n.msg)&&(n.msg=n.msg.message),n}}],Q=Be(fu);return l=new Ui({port:u,pathStaticFiles:U,apiName:"api",apis:k,tokenType:"Bearer",verifyConn:async({apiType:e,authorization:t,query:n,headers:r,req:s})=>{let i=kn(t,7);if(!$t(i))return console.log("apiType",e),console.log("authorization",X(t)),console.log("invalid token"),!1;let o=await z(i);return A.info({event:"verifyConn",apiType:e}),o},getUserIdByToken:async e=>{if(!$t(e))return"";return ye(await i(e),"id","")},useDbOrm:!0,kpOrm:S,operOrm:Z,tableNamesExec:Q,methodsExec:["select","insert","save","del"],tableNamesSync:Q,kpFunExt:{getWebInfor:v("getWebInfor",e=>({webLogo:m,showLanguage:L,language:D,kpLang:N})),proxyRequest:v("proxyRequest",(e,t)=>E(t)),getApisList:v("getApisList",e=>Y(e)),saveApi:v("saveApi",(e,t)=>j(e,t)),deleteApi:v("deleteApi",(e,t)=>G(e,t)),getStaEvent:v("getStaEvent",(e,t=7,n="hr")=>nu(t,n,{fdLog:b}))},fnTableTags:"tableTags-web-api.json"}),l}});
|
|
7
7
|
//# sourceMappingURL=w-web-api.umd.js.map
|