From 1f6f32ec484412760b401d6fadf66685b27a2a61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 21:14:58 +0000 Subject: [PATCH 1/6] Bump glob from 10.3.12 to 10.4.1 Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.12 to 10.4.1. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](https://github.com/isaacs/node-glob/compare/v10.3.12...v10.4.1) --- updated-dependencies: - dependency-name: glob dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 70 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14c1014..dc35c62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.5.0", "license": "MIT", "dependencies": { - "glob": "^10.3.12" + "glob": "^10.4.1" }, "devDependencies": { "@biomejs/biome": "^1.7.3", @@ -1431,21 +1431,21 @@ } }, "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1532,9 +1532,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -1707,9 +1707,9 @@ } }, "node_modules/minipass": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.0.tgz", - "integrity": "sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -1809,15 +1809,15 @@ } }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3724,15 +3724,15 @@ "dev": true }, "glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" } }, "html-encoding-sniffer": { @@ -3801,9 +3801,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", "requires": { "@isaacs/cliui": "^8.0.2", "@pkgjs/parseargs": "^0.11.0" @@ -3933,9 +3933,9 @@ } }, "minipass": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.0.tgz", - "integrity": "sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" }, "mlly": { "version": "1.6.1", @@ -4008,9 +4008,9 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "requires": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" diff --git a/package.json b/package.json index ebece37..462ee3e 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "homepage": "https://github.com/exoego/esbuild-bundle-analysis#readme", "dependencies": { - "glob": "^10.3.12" + "glob": "^10.4.1" }, "devDependencies": { "@types/node": "^20.13.0", From 40e4809808fe94e5fa457cc85c93a89eed982feb Mon Sep 17 00:00:00 2001 From: exoego Date: Sun, 2 Jun 2024 08:28:09 +0900 Subject: [PATCH 2/6] Use multi paths --- .github/workflows/ci.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d24775d..ab6184d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,10 +49,7 @@ jobs: - uses: actions/upload-artifact@v4 if: github.event_name == 'push' && github.ref == 'refs/heads/main' with: - name: dist - path: dist - - uses: actions/upload-artifact@v4 - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - with: - name: action.yaml - path: action.yaml + name: distribution + path: | + dist/ + action.yaml From 7e1aad4101d8b35a5645af45aec3b7977588922e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?TATSUNO=20=E2=80=9CTaz=E2=80=9D=20Yasuhiro?= Date: Sun, 2 Jun 2024 08:55:06 +0900 Subject: [PATCH 3/6] Revert "Trigger job when PR is from fork" --- .github/workflows/ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ab6184d..6a7a0ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,9 +6,6 @@ on: - '*.md' pull_request: branches: [main] - pull_request_target: - branches: [main] - types: [opened, edited, synchronize, reopened] permissions: contents: read # for checkout repository @@ -42,7 +39,6 @@ jobs: fi - name: Analyze esbuild bundle size uses: jenseng/dynamic-uses@5175289a9a87978dcfcb9cf512b821d23b2a53eb - if: github.event.pull_request.head.repo.full_name == github.repository with: uses: exoego/esbuild-bundle-analyzer@${{ github.sha }} with: '{"metafiles": "tmp/meta.json"}' From 005a6629601ede4ba3a97ef9a24635294ac03bae Mon Sep 17 00:00:00 2001 From: exoego Date: Sun, 2 Jun 2024 08:38:11 +0900 Subject: [PATCH 4/6] Log on base load --- dist/index.mjs | 8 ++++---- src/compare.ts | 9 ++++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 0ba77b3..a81bcf3 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -1,6 +1,6 @@ -var Ds=Object.create;var Te=Object.defineProperty;var Ms=Object.getOwnPropertyDescriptor;var Ns=Object.getOwnPropertyNames;var _s=Object.getPrototypeOf,Ls=Object.prototype.hasOwnProperty;var Ae=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports);var js=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ns(t))!Ls.call(r,i)&&i!==e&&Te(r,i,{get:()=>t[i],enumerable:!(s=Ms(t,i))||s.enumerable});return r};var zs=(r,t,e)=>(e=r!=null?Ds(_s(r)):{},js(t||!r||!r.__esModule?Te(e,"default",{value:r,enumerable:!0}):e,r));var Fe=Ae((Cr,Oe)=>{"use strict";Oe.exports=ke;function ke(r,t,e){r instanceof RegExp&&(r=Re(r,e)),t instanceof RegExp&&(t=Re(t,e));var s=Ce(r,t,e);return s&&{start:s[0],end:s[1],pre:e.slice(0,s[0]),body:e.slice(s[0]+r.length,s[1]),post:e.slice(s[1]+t.length)}}function Re(r,t){var e=t.match(r);return e?e[0]:null}ke.range=Ce;function Ce(r,t,e){var s,i,n,o,h,a=e.indexOf(r),l=e.indexOf(t,a+1),c=a;if(a>=0&&l>0){if(r===t)return[a,l];for(s=[],n=e.length;c>=0&&!h;)c==a?(s.push(c),a=e.indexOf(r,c+1)):s.length==1?h=[s.pop(),l]:(i=s.pop(),i=0?a:l;s.length&&(h=[n,o])}return h}});var Ie=Ae((Or,ze)=>{var De=Fe();ze.exports=$s;var Me="\0SLASH"+Math.random()+"\0",Ne="\0OPEN"+Math.random()+"\0",te="\0CLOSE"+Math.random()+"\0",_e="\0COMMA"+Math.random()+"\0",Le="\0PERIOD"+Math.random()+"\0";function Qt(r){return parseInt(r,10)==r?parseInt(r,10):r.charCodeAt(0)}function Is(r){return r.split("\\\\").join(Me).split("\\{").join(Ne).split("\\}").join(te).split("\\,").join(_e).split("\\.").join(Le)}function Ps(r){return r.split(Me).join("\\").split(Ne).join("{").split(te).join("}").split(_e).join(",").split(Le).join(".")}function je(r){if(!r)return[""];var t=[],e=De("{","}",r);if(!e)return r.split(",");var s=e.pre,i=e.body,n=e.post,o=s.split(",");o[o.length-1]+="{"+i+"}";var h=je(n);return n.length&&(o[o.length-1]+=h.shift(),o.push.apply(o,h)),t.push.apply(t,o),t}function $s(r){return r?(r.substr(0,2)==="{}"&&(r="\\{\\}"+r.substr(2)),at(Is(r),!0).map(Ps)):[]}function Ws(r){return"{"+r+"}"}function Bs(r){return/^-?0\d/.test(r)}function Us(r,t){return r<=t}function Gs(r,t){return r>=t}function at(r,t){var e=[],s=De("{","}",r);if(!s)return[r];var i=s.pre,n=s.post.length?at(s.post,!1):[""];if(/\$$/.test(s.pre))for(var o=0;o=0;if(!c&&!f)return s.post.match(/,.*\}/)?(r=s.pre+"{"+s.body+te+s.post,at(r)):[r];var u;if(c)u=s.body.split(/\.\./);else if(u=je(s.body),u.length===1&&(u=at(u[0],!1).map(Ws),u.length===1))return n.map(function(Ct){return s.pre+u[0]+Ct});var d;if(c){var m=Qt(u[0]),p=Qt(u[1]),w=Math.max(u[0].length,u[1].length),g=u.length==3?Math.abs(Qt(u[2])):1,S=Us,b=p0){var kt=new Array(z+1).join("0");E<0?x="-"+kt+x.slice(1):x=kt+x}}d.push(x)}}else{d=[];for(var B=0;B{if(typeof r!="string")throw new TypeError("invalid pattern");if(r.length>65536)throw new TypeError("pattern is too long")};var Hs={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},ct=r=>r.replace(/[[\]\\-]/g,"\\$&"),qs=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Pe=r=>r.join(""),$e=(r,t)=>{let e=t;if(r.charAt(e)!=="[")throw new Error("not in a brace expression");let s=[],i=[],n=e+1,o=!1,h=!1,a=!1,l=!1,c=e,f="";t:for(;nf?s.push(ct(f)+"-"+ct(p)):p===f&&s.push(ct(p)),f="",n++;continue}if(r.startsWith("-]",n+1)){s.push(ct(p+"-")),n+=2;continue}if(r.startsWith("-",n+1)){f=p,n+=2;continue}s.push(ct(p)),n++}if(ct?r.replace(/\[([^\/\\])\]/g,"$1"):r.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");var Js=new Set(["!","?","+","*","@"]),We=r=>Js.has(r),Ks="(?!(?:^|/)\\.\\.?(?:$|/))",Ot="(?!\\.)",Vs=new Set(["[","."]),Ys=new Set(["..","."]),Xs=new Set("().*{}+?[]^$\\!"),Zs=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ee="[^/]",Be=ee+"*?",Ue=ee+"+?",Q=class r{type;#t;#s;#n=!1;#i=[];#h;#l;#f;#a=!1;#o;#e;#m=!1;constructor(t,e,s={}){this.type=t,t&&(this.#s=!0),this.#h=e,this.#t=this.#h?this.#h.#t:this,this.#o=this.#t===this?s:this.#t.#o,this.#f=this.#t===this?[]:this.#t.#f,t==="!"&&!this.#t.#a&&this.#f.push(this),this.#l=this.#h?this.#h.#i.length:0}get hasMagic(){if(this.#s!==void 0)return this.#s;for(let t of this.#i)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#s=!0;return this.#s}toString(){return this.#e!==void 0?this.#e:this.type?this.#e=this.type+"("+this.#i.map(t=>String(t)).join("|")+")":this.#e=this.#i.map(t=>String(t)).join("")}#w(){if(this!==this.#t)throw new Error("should only call on root");if(this.#a)return this;this.toString(),this.#a=!0;let t;for(;t=this.#f.pop();){if(t.type!=="!")continue;let e=t,s=e.#h;for(;s;){for(let i=e.#l+1;!s.type&&itypeof e=="string"?e:e.toJSON()):[this.type,...this.#i.map(e=>e.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&this.#h?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#h?.isStart())return!1;if(this.#l===0)return!0;let t=this.#h;for(let e=0;e{let[m,p,w,g]=typeof d=="string"?r.#S(d,this.#s,a):d.toRegExpSource(t);return this.#s=this.#s||w,this.#n=this.#n||g,m}).join(""),c="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&Ys.has(this.#i[0]))){let m=Vs,p=e&&m.has(l.charAt(0))||l.startsWith("\\.")&&m.has(l.charAt(2))||l.startsWith("\\.\\.")&&m.has(l.charAt(4)),w=!e&&!t&&m.has(l.charAt(0));c=p?Ks:w?Ot:""}let f="";return this.isEnd()&&this.#t.#a&&this.#h?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,I(l),this.#s=!!this.#s,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#u(e);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let a=this.toString();return this.#i=[a],this.type=null,this.#s=void 0,[a,I(this.toString()),!1,!1]}let o=!s||t||e||!Ot?"":this.#u(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let h="";if(this.type==="!"&&this.#m)h=(this.isStart()&&!e?Ot:"")+Ue;else{let a=this.type==="!"?"))"+(this.isStart()&&!e&&!t?Ot:"")+Be+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;h=i+n+a}return[h,I(n),this.#s=!!this.#s,this.#n]}#u(t){return this.#i.map(e=>{if(typeof e=="string")throw new Error("string type in extglob ast??");let[s,i,n,o]=e.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join("|")}static#S(t,e,s=!1){let i=!1,n="",o=!1;for(let h=0;ht?r.replace(/[?*()[\]]/g,"[$&]"):r.replace(/[?*()[\]\\]/g,"\\$&");var F=(r,t,e={})=>(lt(t),!e.nocomment&&t.charAt(0)==="#"?!1:new M(t,e).match(r)),Qs=/^\*+([^+@!?\*\[\(]*)$/,ti=r=>t=>!t.startsWith(".")&&t.endsWith(r),ei=r=>t=>t.endsWith(r),si=r=>(r=r.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(r)),ii=r=>(r=r.toLowerCase(),t=>t.toLowerCase().endsWith(r)),ri=/^\*+\.\*+$/,ni=r=>!r.startsWith(".")&&r.includes("."),oi=r=>r!=="."&&r!==".."&&r.includes("."),hi=/^\.\*+$/,ai=r=>r!=="."&&r!==".."&&r.startsWith("."),li=/^\*+$/,ci=r=>r.length!==0&&!r.startsWith("."),fi=r=>r.length!==0&&r!=="."&&r!=="..",ui=/^\?+([^+@!?\*\[\(]*)?$/,di=([r,t=""])=>{let e=Je([r]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},pi=([r,t=""])=>{let e=Ke([r]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},mi=([r,t=""])=>{let e=Ke([r]);return t?s=>e(s)&&s.endsWith(t):e},gi=([r,t=""])=>{let e=Je([r]);return t?s=>e(s)&&s.endsWith(t):e},Je=([r])=>{let t=r.length;return e=>e.length===t&&!e.startsWith(".")},Ke=([r])=>{let t=r.length;return e=>e.length===t&&e!=="."&&e!==".."},Ve=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Ge={win32:{sep:"\\"},posix:{sep:"/"}},wi=Ve==="win32"?Ge.win32.sep:Ge.posix.sep;F.sep=wi;var k=Symbol("globstar **");F.GLOBSTAR=k;var yi="[^/]",bi=yi+"*?",Si="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Ei="(?:(?!(?:\\/|^)\\.).)*?",vi=(r,t={})=>e=>F(e,r,t);F.filter=vi;var _=(r,t={})=>Object.assign({},r,t),xi=r=>{if(!r||typeof r!="object"||!Object.keys(r).length)return F;let t=F;return Object.assign((s,i,n={})=>t(s,i,_(r,n)),{Minimatch:class extends t.Minimatch{constructor(i,n={}){super(i,_(r,n))}static defaults(i){return t.defaults(_(r,i)).Minimatch}},AST:class extends t.AST{constructor(i,n,o={}){super(i,n,_(r,o))}static fromGlob(i,n={}){return t.AST.fromGlob(i,_(r,n))}},unescape:(s,i={})=>t.unescape(s,_(r,i)),escape:(s,i={})=>t.escape(s,_(r,i)),filter:(s,i={})=>t.filter(s,_(r,i)),defaults:s=>t.defaults(_(r,s)),makeRe:(s,i={})=>t.makeRe(s,_(r,i)),braceExpand:(s,i={})=>t.braceExpand(s,_(r,i)),match:(s,i,n={})=>t.match(s,i,_(r,n)),sep:t.sep,GLOBSTAR:k})};F.defaults=xi;var Ye=(r,t={})=>(lt(r),t.nobrace||!/\{(?:(?!\{).)*\}/.test(r)?[r]:(0,qe.default)(r));F.braceExpand=Ye;var Ti=(r,t={})=>new M(r,t).makeRe();F.makeRe=Ti;var Ai=(r,t,e={})=>{let s=new M(t,e);return r=r.filter(i=>s.match(i)),s.options.nonull&&!r.length&&r.push(t),r};F.match=Ai;var He=/[?*]|[+@!]\(.*?\)|\[|\]/,Ri=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),M=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){lt(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Ve,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=e.windowsNoMagicRoot!==void 0?e.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let e of t)if(typeof e!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,e=this.options;if(!e.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...n)=>console.error(...n)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(n=>this.slashSplit(n));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((n,o,h)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=n[0]===""&&n[1]===""&&(n[2]==="?"||!He.test(n[2]))&&!He.test(n[3]),l=/^[a-z]:/i.test(n[0]);if(a)return[...n.slice(0,4),...n.slice(4).map(c=>this.parse(c))];if(l)return[n[0],...n.slice(1).map(c=>this.parse(c))]}return n.map(a=>this.parse(a))});if(this.debug(this.pattern,i),this.set=i.filter(n=>n.indexOf(!1)===-1),this.isWindows)for(let n=0;n=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):e>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(e=>{let s=-1;for(;(s=e.indexOf("**",s+1))!==-1;){let i=s;for(;e[i+1]==="**";)i++;i!==s&&e.splice(s,i-s)}return e})}levelOneOptimize(t){return t.map(e=>(e=e.reduce((s,i)=>{let n=s[s.length-1];return i==="**"&&n==="**"?s:i===".."&&n&&n!==".."&&n!=="."&&n!=="**"?(s.pop(),s):(s.push(i),s)},[]),e.length===0?[""]:e))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&s.splice(i+1,o-i);let h=s[i+1],a=s[i+2],l=s[i+3];if(h!==".."||!a||a==="."||a===".."||!l||l==="."||l==="..")continue;e=!0,s.splice(i,1);let c=s.slice(0);c[i]="**",t.push(c),i--}if(!this.preserveMultipleSlashes){for(let o=1;oe.length)}partsMatch(t,e,s=!1){let i=0,n=0,o=[],h="";for(;ib?e=e.slice(y):b>y&&(t=t.slice(b)))}}let{optimizationLevel:n=1}=this.options;n>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var o=0,h=0,a=t.length,l=e.length;o()=>(t||r((t={exports:{}}).exports,t),t.exports);var js=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ms(t))!Ls.call(r,i)&&i!==e&&Te(r,i,{get:()=>t[i],enumerable:!(s=Ns(t,i))||s.enumerable});return r};var zs=(r,t,e)=>(e=r!=null?Ds(_s(r)):{},js(t||!r||!r.__esModule?Te(e,"default",{value:r,enumerable:!0}):e,r));var Fe=Ae((Cr,Oe)=>{"use strict";Oe.exports=ke;function ke(r,t,e){r instanceof RegExp&&(r=Re(r,e)),t instanceof RegExp&&(t=Re(t,e));var s=Ce(r,t,e);return s&&{start:s[0],end:s[1],pre:e.slice(0,s[0]),body:e.slice(s[0]+r.length,s[1]),post:e.slice(s[1]+t.length)}}function Re(r,t){var e=t.match(r);return e?e[0]:null}ke.range=Ce;function Ce(r,t,e){var s,i,n,o,h,a=e.indexOf(r),l=e.indexOf(t,a+1),c=a;if(a>=0&&l>0){if(r===t)return[a,l];for(s=[],n=e.length;c>=0&&!h;)c==a?(s.push(c),a=e.indexOf(r,c+1)):s.length==1?h=[s.pop(),l]:(i=s.pop(),i=0?a:l;s.length&&(h=[n,o])}return h}});var Ie=Ae((Or,ze)=>{var De=Fe();ze.exports=$s;var Ne="\0SLASH"+Math.random()+"\0",Me="\0OPEN"+Math.random()+"\0",te="\0CLOSE"+Math.random()+"\0",_e="\0COMMA"+Math.random()+"\0",Le="\0PERIOD"+Math.random()+"\0";function Qt(r){return parseInt(r,10)==r?parseInt(r,10):r.charCodeAt(0)}function Is(r){return r.split("\\\\").join(Ne).split("\\{").join(Me).split("\\}").join(te).split("\\,").join(_e).split("\\.").join(Le)}function Ps(r){return r.split(Ne).join("\\").split(Me).join("{").split(te).join("}").split(_e).join(",").split(Le).join(".")}function je(r){if(!r)return[""];var t=[],e=De("{","}",r);if(!e)return r.split(",");var s=e.pre,i=e.body,n=e.post,o=s.split(",");o[o.length-1]+="{"+i+"}";var h=je(n);return n.length&&(o[o.length-1]+=h.shift(),o.push.apply(o,h)),t.push.apply(t,o),t}function $s(r){return r?(r.substr(0,2)==="{}"&&(r="\\{\\}"+r.substr(2)),at(Is(r),!0).map(Ps)):[]}function Ws(r){return"{"+r+"}"}function Bs(r){return/^-?0\d/.test(r)}function Us(r,t){return r<=t}function Gs(r,t){return r>=t}function at(r,t){var e=[],s=De("{","}",r);if(!s)return[r];var i=s.pre,n=s.post.length?at(s.post,!1):[""];if(/\$$/.test(s.pre))for(var o=0;o=0;if(!c&&!f)return s.post.match(/,.*\}/)?(r=s.pre+"{"+s.body+te+s.post,at(r)):[r];var u;if(c)u=s.body.split(/\.\./);else if(u=je(s.body),u.length===1&&(u=at(u[0],!1).map(Ws),u.length===1))return n.map(function(Ct){return s.pre+u[0]+Ct});var d;if(c){var m=Qt(u[0]),p=Qt(u[1]),w=Math.max(u[0].length,u[1].length),g=u.length==3?Math.abs(Qt(u[2])):1,S=Us,b=p0){var kt=new Array(z+1).join("0");E<0?x="-"+kt+x.slice(1):x=kt+x}}d.push(x)}}else{d=[];for(var B=0;B{if(typeof r!="string")throw new TypeError("invalid pattern");if(r.length>65536)throw new TypeError("pattern is too long")};var Hs={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},ct=r=>r.replace(/[[\]\\-]/g,"\\$&"),qs=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Pe=r=>r.join(""),$e=(r,t)=>{let e=t;if(r.charAt(e)!=="[")throw new Error("not in a brace expression");let s=[],i=[],n=e+1,o=!1,h=!1,a=!1,l=!1,c=e,f="";t:for(;nf?s.push(ct(f)+"-"+ct(p)):p===f&&s.push(ct(p)),f="",n++;continue}if(r.startsWith("-]",n+1)){s.push(ct(p+"-")),n+=2;continue}if(r.startsWith("-",n+1)){f=p,n+=2;continue}s.push(ct(p)),n++}if(ct?r.replace(/\[([^\/\\])\]/g,"$1"):r.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");var Js=new Set(["!","?","+","*","@"]),We=r=>Js.has(r),Ks="(?!(?:^|/)\\.\\.?(?:$|/))",Ot="(?!\\.)",Vs=new Set(["[","."]),Ys=new Set(["..","."]),Xs=new Set("().*{}+?[]^$\\!"),Zs=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ee="[^/]",Be=ee+"*?",Ue=ee+"+?",Q=class r{type;#t;#s;#n=!1;#i=[];#h;#l;#f;#a=!1;#o;#e;#m=!1;constructor(t,e,s={}){this.type=t,t&&(this.#s=!0),this.#h=e,this.#t=this.#h?this.#h.#t:this,this.#o=this.#t===this?s:this.#t.#o,this.#f=this.#t===this?[]:this.#t.#f,t==="!"&&!this.#t.#a&&this.#f.push(this),this.#l=this.#h?this.#h.#i.length:0}get hasMagic(){if(this.#s!==void 0)return this.#s;for(let t of this.#i)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#s=!0;return this.#s}toString(){return this.#e!==void 0?this.#e:this.type?this.#e=this.type+"("+this.#i.map(t=>String(t)).join("|")+")":this.#e=this.#i.map(t=>String(t)).join("")}#w(){if(this!==this.#t)throw new Error("should only call on root");if(this.#a)return this;this.toString(),this.#a=!0;let t;for(;t=this.#f.pop();){if(t.type!=="!")continue;let e=t,s=e.#h;for(;s;){for(let i=e.#l+1;!s.type&&itypeof e=="string"?e:e.toJSON()):[this.type,...this.#i.map(e=>e.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&this.#h?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#h?.isStart())return!1;if(this.#l===0)return!0;let t=this.#h;for(let e=0;e{let[m,p,w,g]=typeof d=="string"?r.#S(d,this.#s,a):d.toRegExpSource(t);return this.#s=this.#s||w,this.#n=this.#n||g,m}).join(""),c="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&Ys.has(this.#i[0]))){let m=Vs,p=e&&m.has(l.charAt(0))||l.startsWith("\\.")&&m.has(l.charAt(2))||l.startsWith("\\.\\.")&&m.has(l.charAt(4)),w=!e&&!t&&m.has(l.charAt(0));c=p?Ks:w?Ot:""}let f="";return this.isEnd()&&this.#t.#a&&this.#h?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,I(l),this.#s=!!this.#s,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#u(e);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let a=this.toString();return this.#i=[a],this.type=null,this.#s=void 0,[a,I(this.toString()),!1,!1]}let o=!s||t||e||!Ot?"":this.#u(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let h="";if(this.type==="!"&&this.#m)h=(this.isStart()&&!e?Ot:"")+Ue;else{let a=this.type==="!"?"))"+(this.isStart()&&!e&&!t?Ot:"")+Be+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;h=i+n+a}return[h,I(n),this.#s=!!this.#s,this.#n]}#u(t){return this.#i.map(e=>{if(typeof e=="string")throw new Error("string type in extglob ast??");let[s,i,n,o]=e.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join("|")}static#S(t,e,s=!1){let i=!1,n="",o=!1;for(let h=0;ht?r.replace(/[?*()[\]]/g,"[$&]"):r.replace(/[?*()[\]\\]/g,"\\$&");var F=(r,t,e={})=>(lt(t),!e.nocomment&&t.charAt(0)==="#"?!1:new N(t,e).match(r)),Qs=/^\*+([^+@!?\*\[\(]*)$/,ti=r=>t=>!t.startsWith(".")&&t.endsWith(r),ei=r=>t=>t.endsWith(r),si=r=>(r=r.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(r)),ii=r=>(r=r.toLowerCase(),t=>t.toLowerCase().endsWith(r)),ri=/^\*+\.\*+$/,ni=r=>!r.startsWith(".")&&r.includes("."),oi=r=>r!=="."&&r!==".."&&r.includes("."),hi=/^\.\*+$/,ai=r=>r!=="."&&r!==".."&&r.startsWith("."),li=/^\*+$/,ci=r=>r.length!==0&&!r.startsWith("."),fi=r=>r.length!==0&&r!=="."&&r!=="..",ui=/^\?+([^+@!?\*\[\(]*)?$/,di=([r,t=""])=>{let e=Je([r]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},pi=([r,t=""])=>{let e=Ke([r]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},mi=([r,t=""])=>{let e=Ke([r]);return t?s=>e(s)&&s.endsWith(t):e},gi=([r,t=""])=>{let e=Je([r]);return t?s=>e(s)&&s.endsWith(t):e},Je=([r])=>{let t=r.length;return e=>e.length===t&&!e.startsWith(".")},Ke=([r])=>{let t=r.length;return e=>e.length===t&&e!=="."&&e!==".."},Ve=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Ge={win32:{sep:"\\"},posix:{sep:"/"}},wi=Ve==="win32"?Ge.win32.sep:Ge.posix.sep;F.sep=wi;var k=Symbol("globstar **");F.GLOBSTAR=k;var yi="[^/]",bi=yi+"*?",Si="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Ei="(?:(?!(?:\\/|^)\\.).)*?",vi=(r,t={})=>e=>F(e,r,t);F.filter=vi;var _=(r,t={})=>Object.assign({},r,t),xi=r=>{if(!r||typeof r!="object"||!Object.keys(r).length)return F;let t=F;return Object.assign((s,i,n={})=>t(s,i,_(r,n)),{Minimatch:class extends t.Minimatch{constructor(i,n={}){super(i,_(r,n))}static defaults(i){return t.defaults(_(r,i)).Minimatch}},AST:class extends t.AST{constructor(i,n,o={}){super(i,n,_(r,o))}static fromGlob(i,n={}){return t.AST.fromGlob(i,_(r,n))}},unescape:(s,i={})=>t.unescape(s,_(r,i)),escape:(s,i={})=>t.escape(s,_(r,i)),filter:(s,i={})=>t.filter(s,_(r,i)),defaults:s=>t.defaults(_(r,s)),makeRe:(s,i={})=>t.makeRe(s,_(r,i)),braceExpand:(s,i={})=>t.braceExpand(s,_(r,i)),match:(s,i,n={})=>t.match(s,i,_(r,n)),sep:t.sep,GLOBSTAR:k})};F.defaults=xi;var Ye=(r,t={})=>(lt(r),t.nobrace||!/\{(?:(?!\{).)*\}/.test(r)?[r]:(0,qe.default)(r));F.braceExpand=Ye;var Ti=(r,t={})=>new N(r,t).makeRe();F.makeRe=Ti;var Ai=(r,t,e={})=>{let s=new N(t,e);return r=r.filter(i=>s.match(i)),s.options.nonull&&!r.length&&r.push(t),r};F.match=Ai;var He=/[?*]|[+@!]\(.*?\)|\[|\]/,Ri=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),N=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){lt(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Ve,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=e.windowsNoMagicRoot!==void 0?e.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let e of t)if(typeof e!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,e=this.options;if(!e.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...n)=>console.error(...n)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(n=>this.slashSplit(n));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((n,o,h)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=n[0]===""&&n[1]===""&&(n[2]==="?"||!He.test(n[2]))&&!He.test(n[3]),l=/^[a-z]:/i.test(n[0]);if(a)return[...n.slice(0,4),...n.slice(4).map(c=>this.parse(c))];if(l)return[n[0],...n.slice(1).map(c=>this.parse(c))]}return n.map(a=>this.parse(a))});if(this.debug(this.pattern,i),this.set=i.filter(n=>n.indexOf(!1)===-1),this.isWindows)for(let n=0;n=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):e>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(e=>{let s=-1;for(;(s=e.indexOf("**",s+1))!==-1;){let i=s;for(;e[i+1]==="**";)i++;i!==s&&e.splice(s,i-s)}return e})}levelOneOptimize(t){return t.map(e=>(e=e.reduce((s,i)=>{let n=s[s.length-1];return i==="**"&&n==="**"?s:i===".."&&n&&n!==".."&&n!=="."&&n!=="**"?(s.pop(),s):(s.push(i),s)},[]),e.length===0?[""]:e))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&s.splice(i+1,o-i);let h=s[i+1],a=s[i+2],l=s[i+3];if(h!==".."||!a||a==="."||a===".."||!l||l==="."||l==="..")continue;e=!0,s.splice(i,1);let c=s.slice(0);c[i]="**",t.push(c),i--}if(!this.preserveMultipleSlashes){for(let o=1;oe.length)}partsMatch(t,e,s=!1){let i=0,n=0,o=[],h="";for(;ib?e=e.slice(y):b>y&&(t=t.slice(b)))}}let{optimizationLevel:n=1}=this.options;n>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var o=0,h=0,a=t.length,l=e.length;o>> no match, partial?`,t,u,e,d),u===a))}let p;if(typeof c=="string"?(p=f===c,this.debug("string match",c,f,p)):(p=c.test(f),this.debug("pattern match",c,f,p)),!p)return!1}if(o===a&&h===l)return!0;if(o===a)return s;if(h===l)return o===a-1&&t[o]==="";throw new Error("wtf?")}braceExpand(){return Ye(this.pattern,this.options)}parse(t){lt(t);let e=this.options;if(t==="**")return k;if(t==="")return"";let s,i=null;(s=t.match(li))?i=e.dot?fi:ci:(s=t.match(Qs))?i=(e.nocase?e.dot?ii:si:e.dot?ei:ti)(s[1]):(s=t.match(ui))?i=(e.nocase?e.dot?pi:di:e.dot?mi:gi)(s):(s=t.match(ri))?i=e.dot?oi:ni:(s=t.match(hi))&&(i=ai);let n=Q.fromGlob(t,this.options).toMMPattern();return i&&typeof n=="object"&&Reflect.defineProperty(n,"test",{value:i}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let e=this.options,s=e.noglobstar?bi:e.dot?Si:Ei,i=new Set(e.nocase?["i"]:[]),n=t.map(a=>{let l=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))i.add(f);return typeof c=="string"?Ri(c):c===k?k:c._src});return l.forEach((c,f)=>{let u=l[f+1],d=l[f-1];c!==k||d===k||(d===void 0?u!==void 0&&u!==k?l[f+1]="(?:\\/|"+s+"\\/)?"+u:l[f]=s:u===void 0?l[f-1]=d+"(?:\\/|"+s+")?":u!==k&&(l[f-1]=d+"(?:\\/|\\/"+s+"\\/)"+u,l[f+1]=k))}),l.filter(c=>c!==k).join("/")}).join("|"),[o,h]=t.length>1?["(?:",")"]:["",""];n="^"+o+n+h+"$",this.negate&&(n="^(?!"+n+").+$");try{this.regexp=new RegExp(n,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&e)return!0;let s=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let n=this.set;this.debug(this.pattern,"set",n);let o=i[i.length-1];if(!o)for(let h=i.length-2;!o&&h>=0;h--)o=i[h];for(let h=0;h{typeof se.emitWarning=="function"?se.emitWarning(r,t,e,s):console.error(`[${e}] ${t}: ${r}`)},Ft=globalThis.AbortController,Xe=globalThis.AbortSignal;if(typeof Ft>"u"){Xe=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(s,i){this._onabort.push(i)}},Ft=class{constructor(){t()}signal=new Xe;abort(s){if(!this.signal.aborted){this.signal.reason=s,this.signal.aborted=!0;for(let i of this.signal._onabort)i(s);this.signal.onabort?.(s)}}};let r=se.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{r&&(r=!1,Qe("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var ki=r=>!Ze.has(r),Vr=Symbol("type"),J=r=>r&&r===Math.floor(r)&&r>0&&isFinite(r),ts=r=>J(r)?r<=Math.pow(2,8)?Uint8Array:r<=Math.pow(2,16)?Uint16Array:r<=Math.pow(2,32)?Uint32Array:r<=Number.MAX_SAFE_INTEGER?st:null:null,st=class extends Array{constructor(t){super(t),this.fill(0)}},ie=class r{heap;length;static#t=!1;static create(t){let e=ts(t);if(!e)return[];r.#t=!0;let s=new r(t,e);return r.#t=!1,s}constructor(t,e){if(!r.#t)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},ft=class r{#t;#s;#n;#i;#h;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#l;#f;#a;#o;#e;#m;#w;#d;#u;#S;#g;#A;#R;#E;#b;#C;#p;static unsafeExposeInternals(t){return{starts:t.#R,ttls:t.#E,sizes:t.#A,keyMap:t.#a,keyList:t.#o,valList:t.#e,next:t.#m,prev:t.#w,get head(){return t.#d},get tail(){return t.#u},free:t.#S,isBackgroundFetch:e=>t.#c(e),backgroundFetch:(e,s,i,n)=>t.#_(e,s,i,n),moveToTail:e=>t.#N(e),indexes:e=>t.#T(e),rindexes:e=>t.#O(e),isStale:e=>t.#y(e)}}get max(){return this.#t}get maxSize(){return this.#s}get calculatedSize(){return this.#f}get size(){return this.#l}get fetchMethod(){return this.#h}get dispose(){return this.#n}get disposeAfter(){return this.#i}constructor(t){let{max:e=0,ttl:s,ttlResolution:i=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:a,dispose:l,disposeAfter:c,noDisposeOnSet:f,noUpdateTTL:u,maxSize:d=0,maxEntrySize:m=0,sizeCalculation:p,fetchMethod:w,noDeleteOnFetchRejection:g,noDeleteOnStaleGet:S,allowStaleOnFetchRejection:b,allowStaleOnFetchAbort:y,ignoreFetchAbort:E}=t;if(e!==0&&!J(e))throw new TypeError("max option must be a nonnegative integer");let x=e?ts(e):Array;if(!x)throw new Error("invalid max value: "+e);if(this.#t=e,this.#s=d,this.maxEntrySize=m||this.#s,this.sizeCalculation=p,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#h=w,this.#C=!!w,this.#a=new Map,this.#o=new Array(e).fill(void 0),this.#e=new Array(e).fill(void 0),this.#m=new x(e),this.#w=new x(e),this.#d=0,this.#u=0,this.#S=ie.create(e),this.#l=0,this.#f=0,typeof l=="function"&&(this.#n=l),typeof c=="function"?(this.#i=c,this.#g=[]):(this.#i=void 0,this.#g=void 0),this.#b=!!this.#n,this.#p=!!this.#i,this.noDisposeOnSet=!!f,this.noUpdateTTL=!!u,this.noDeleteOnFetchRejection=!!g,this.allowStaleOnFetchRejection=!!b,this.allowStaleOnFetchAbort=!!y,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(this.#s!==0&&!J(this.#s))throw new TypeError("maxSize must be a positive integer if specified");if(!J(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#D()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!S,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=J(i)||i===0?i:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!J(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#F()}if(this.#t===0&&this.ttl===0&&this.#s===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#t&&!this.#s){let z="LRU_CACHE_UNBOUNDED";ki(z)&&(Ze.add(z),Qe("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",z,r))}}getRemainingTTL(t){return this.#a.has(t)?1/0:0}#F(){let t=new st(this.#t),e=new st(this.#t);this.#E=t,this.#R=e,this.#r=(n,o,h=et.now())=>{if(e[n]=o!==0?h:0,t[n]=o,o!==0&&this.ttlAutopurge){let a=setTimeout(()=>{this.#y(n)&&this.delete(this.#o[n])},o+1);a.unref&&a.unref()}},this.#k=n=>{e[n]=t[n]!==0?et.now():0},this.#v=(n,o)=>{if(t[o]){let h=t[o],a=e[o];if(!h||!a)return;n.ttl=h,n.start=a,n.now=s||i();let l=n.now-a;n.remainingTTL=h-l}};let s=0,i=()=>{let n=et.now();if(this.ttlResolution>0){s=n;let o=setTimeout(()=>s=0,this.ttlResolution);o.unref&&o.unref()}return n};this.getRemainingTTL=n=>{let o=this.#a.get(n);if(o===void 0)return 0;let h=t[o],a=e[o];if(!h||!a)return 1/0;let l=(s||i())-a;return h-l},this.#y=n=>{let o=e[n],h=t[n];return!!h&&!!o&&(s||i())-o>h}}#k=()=>{};#v=()=>{};#r=()=>{};#y=()=>!1;#D(){let t=new st(this.#t);this.#f=0,this.#A=t,this.#x=e=>{this.#f-=t[e],t[e]=0},this.#j=(e,s,i,n)=>{if(this.#c(s))return 0;if(!J(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,e),!J(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#L=(e,s,i)=>{if(t[e]=s,this.#s){let n=this.#s-t[e];for(;this.#f>n;)this.#M(!0)}this.#f+=t[e],i&&(i.entrySize=s,i.totalCalculatedSize=this.#f)}}#x=t=>{};#L=(t,e,s)=>{};#j=(t,e,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:t=this.allowStale}={}){if(this.#l)for(let e=this.#u;!(!this.#z(e)||((t||!this.#y(e))&&(yield e),e===this.#d));)e=this.#w[e]}*#O({allowStale:t=this.allowStale}={}){if(this.#l)for(let e=this.#d;!(!this.#z(e)||((t||!this.#y(e))&&(yield e),e===this.#u));)e=this.#m[e]}#z(t){return t!==void 0&&this.#a.get(this.#o[t])===t}*entries(){for(let t of this.#T())this.#e[t]!==void 0&&this.#o[t]!==void 0&&!this.#c(this.#e[t])&&(yield[this.#o[t],this.#e[t]])}*rentries(){for(let t of this.#O())this.#e[t]!==void 0&&this.#o[t]!==void 0&&!this.#c(this.#e[t])&&(yield[this.#o[t],this.#e[t]])}*keys(){for(let t of this.#T()){let e=this.#o[t];e!==void 0&&!this.#c(this.#e[t])&&(yield e)}}*rkeys(){for(let t of this.#O()){let e=this.#o[t];e!==void 0&&!this.#c(this.#e[t])&&(yield e)}}*values(){for(let t of this.#T())this.#e[t]!==void 0&&!this.#c(this.#e[t])&&(yield this.#e[t])}*rvalues(){for(let t of this.#O())this.#e[t]!==void 0&&!this.#c(this.#e[t])&&(yield this.#e[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(let s of this.#T()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;if(n!==void 0&&t(n,this.#o[s],this))return this.get(this.#o[s],e)}}forEach(t,e=this){for(let s of this.#T()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(e,n,this.#o[s],this)}}rforEach(t,e=this){for(let s of this.#O()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(e,n,this.#o[s],this)}}purgeStale(){let t=!1;for(let e of this.#O({allowStale:!0}))this.#y(e)&&(this.delete(this.#o[e]),t=!0);return t}info(t){let e=this.#a.get(t);if(e===void 0)return;let s=this.#e[e],i=this.#c(s)?s.__staleWhileFetching:s;if(i===void 0)return;let n={value:i};if(this.#E&&this.#R){let o=this.#E[e],h=this.#R[e];if(o&&h){let a=o-(et.now()-h);n.ttl=a,n.start=Date.now()}}return this.#A&&(n.size=this.#A[e]),n}dump(){let t=[];for(let e of this.#T({allowStale:!0})){let s=this.#o[e],i=this.#e[e],n=this.#c(i)?i.__staleWhileFetching:i;if(n===void 0||s===void 0)continue;let o={value:n};if(this.#E&&this.#R){o.ttl=this.#E[e];let h=et.now()-this.#R[e];o.start=Math.floor(Date.now()-h)}this.#A&&(o.size=this.#A[e]),t.unshift([s,o])}return t}load(t){this.clear();for(let[e,s]of t){if(s.start){let i=Date.now()-s.start;s.start=et.now()-i}this.set(e,s.value,s)}}set(t,e,s={}){if(e===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:a}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,c=this.#j(t,e,s.size||0,h);if(this.maxEntrySize&&c>this.maxEntrySize)return a&&(a.set="miss",a.maxEntrySizeExceeded=!0),this.delete(t),this;let f=this.#l===0?void 0:this.#a.get(t);if(f===void 0)f=this.#l===0?this.#u:this.#S.length!==0?this.#S.pop():this.#l===this.#t?this.#M(!1):this.#l,this.#o[f]=t,this.#e[f]=e,this.#a.set(t,f),this.#m[this.#u]=f,this.#w[f]=this.#u,this.#u=f,this.#l++,this.#L(f,c,a),a&&(a.set="add"),l=!1;else{this.#N(f);let u=this.#e[f];if(e!==u){if(this.#C&&this.#c(u)){u.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:d}=u;d!==void 0&&!o&&(this.#b&&this.#n?.(d,t,"set"),this.#p&&this.#g?.push([d,t,"set"]))}else o||(this.#b&&this.#n?.(u,t,"set"),this.#p&&this.#g?.push([u,t,"set"]));if(this.#x(f),this.#L(f,c,a),this.#e[f]=e,a){a.set="replace";let d=u&&this.#c(u)?u.__staleWhileFetching:u;d!==void 0&&(a.oldValue=d)}}else a&&(a.set="update")}if(i!==0&&!this.#E&&this.#F(),this.#E&&(l||this.#r(f,i,n),a&&this.#v(a,f)),!o&&this.#p&&this.#g){let u=this.#g,d;for(;d=u?.shift();)this.#i?.(...d)}return this}pop(){try{for(;this.#l;){let t=this.#e[this.#d];if(this.#M(!0),this.#c(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#p&&this.#g){let t=this.#g,e;for(;e=t?.shift();)this.#i?.(...e)}}}#M(t){let e=this.#d,s=this.#o[e],i=this.#e[e];return this.#C&&this.#c(i)?i.__abortController.abort(new Error("evicted")):(this.#b||this.#p)&&(this.#b&&this.#n?.(i,s,"evict"),this.#p&&this.#g?.push([i,s,"evict"])),this.#x(e),t&&(this.#o[e]=void 0,this.#e[e]=void 0,this.#S.push(e)),this.#l===1?(this.#d=this.#u=0,this.#S.length=0):this.#d=this.#m[e],this.#a.delete(s),this.#l--,e}has(t,e={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=e,n=this.#a.get(t);if(n!==void 0){let o=this.#e[n];if(this.#c(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#y(n))i&&(i.has="stale",this.#v(i,n));else return s&&this.#k(n),i&&(i.has="hit",this.#v(i,n)),!0}else i&&(i.has="miss");return!1}peek(t,e={}){let{allowStale:s=this.allowStale}=e,i=this.#a.get(t);if(i===void 0||!s&&this.#y(i))return;let n=this.#e[i];return this.#c(n)?n.__staleWhileFetching:n}#_(t,e,s,i){let n=e===void 0?void 0:this.#e[e];if(this.#c(n))return n;let o=new Ft,{signal:h}=s;h?.addEventListener("abort",()=>o.abort(h.reason),{signal:o.signal});let a={signal:o.signal,options:s,context:i},l=(p,w=!1)=>{let{aborted:g}=o.signal,S=s.ignoreFetchAbort&&p!==void 0;if(s.status&&(g&&!w?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,S&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),g&&!S&&!w)return f(o.signal.reason);let b=d;return this.#e[e]===d&&(p===void 0?b.__staleWhileFetching?this.#e[e]=b.__staleWhileFetching:this.delete(t):(s.status&&(s.status.fetchUpdated=!0),this.set(t,p,a.options))),p},c=p=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=p),f(p)),f=p=>{let{aborted:w}=o.signal,g=w&&s.allowStaleOnFetchAbort,S=g||s.allowStaleOnFetchRejection,b=S||s.noDeleteOnFetchRejection,y=d;if(this.#e[e]===d&&(!b||y.__staleWhileFetching===void 0?this.delete(t):g||(this.#e[e]=y.__staleWhileFetching)),S)return s.status&&y.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),y.__staleWhileFetching;if(y.__returned===y)throw p},u=(p,w)=>{let g=this.#h?.(t,n,a);g&&g instanceof Promise&&g.then(S=>p(S===void 0?void 0:S),w),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(p(void 0),s.allowStaleOnFetchAbort&&(p=S=>l(S,!0)))})};s.status&&(s.status.fetchDispatched=!0);let d=new Promise(u).then(l,c),m=Object.assign(d,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return e===void 0?(this.set(t,m,{...a.options,status:void 0}),e=this.#a.get(t)):this.#e[e]=m,m}#c(t){if(!this.#C)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof Ft}async fetch(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:u=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:p,forceRefresh:w=!1,status:g,signal:S}=e;if(!this.#C)return g&&(g.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,status:g});let b={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:h,size:a,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:m,ignoreFetchAbort:d,status:g,signal:S},y=this.#a.get(t);if(y===void 0){g&&(g.fetch="miss");let E=this.#_(t,y,b,p);return E.__returned=E}else{let E=this.#e[y];if(this.#c(E)){let Ct=s&&E.__staleWhileFetching!==void 0;return g&&(g.fetch="inflight",Ct&&(g.returnedStale=!0)),Ct?E.__staleWhileFetching:E.__returned=E}let x=this.#y(y);if(!w&&!x)return g&&(g.fetch="hit"),this.#N(y),i&&this.#k(y),g&&this.#v(g,y),E;let z=this.#_(t,y,b,p),B=z.__staleWhileFetching!==void 0&&s;return g&&(g.fetch=x?"stale":"refresh",B&&x&&(g.returnedStale=!0)),B?z.__staleWhileFetching:z.__returned=z}}get(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=e,h=this.#a.get(t);if(h!==void 0){let a=this.#e[h],l=this.#c(a);return o&&this.#v(o,h),this.#y(h)?(o&&(o.get="stale"),l?(o&&s&&a.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?a.__staleWhileFetching:void 0):(n||this.delete(t),o&&s&&(o.returnedStale=!0),s?a:void 0)):(o&&(o.get="hit"),l?a.__staleWhileFetching:(this.#N(h),i&&this.#k(h),a))}else o&&(o.get="miss")}#I(t,e){this.#w[e]=t,this.#m[t]=e}#N(t){t!==this.#u&&(t===this.#d?this.#d=this.#m[t]:this.#I(this.#w[t],this.#m[t]),this.#I(this.#u,t),this.#u=t)}delete(t){let e=!1;if(this.#l!==0){let s=this.#a.get(t);if(s!==void 0)if(e=!0,this.#l===1)this.clear();else{this.#x(s);let i=this.#e[s];if(this.#c(i)?i.__abortController.abort(new Error("deleted")):(this.#b||this.#p)&&(this.#b&&this.#n?.(i,t,"delete"),this.#p&&this.#g?.push([i,t,"delete"])),this.#a.delete(t),this.#o[s]=void 0,this.#e[s]=void 0,s===this.#u)this.#u=this.#w[s];else if(s===this.#d)this.#d=this.#m[s];else{let n=this.#w[s];this.#m[n]=this.#m[s];let o=this.#m[s];this.#w[o]=this.#w[s]}this.#l--,this.#S.push(s)}}if(this.#p&&this.#g?.length){let s=this.#g,i;for(;i=s?.shift();)this.#i?.(...i)}return e}clear(){for(let t of this.#O({allowStale:!0})){let e=this.#e[t];if(this.#c(e))e.__abortController.abort(new Error("deleted"));else{let s=this.#o[t];this.#b&&this.#n?.(e,s,"delete"),this.#p&&this.#g?.push([e,s,"delete"])}}if(this.#a.clear(),this.#e.fill(void 0),this.#o.fill(void 0),this.#E&&this.#R&&(this.#E.fill(0),this.#R.fill(0)),this.#A&&this.#A.fill(0),this.#d=0,this.#u=0,this.#S.length=0,this.#f=0,this.#l=0,this.#p&&this.#g){let t=this.#g,e;for(;e=t?.shift();)this.#i?.(...e)}}};import{posix as Ii,win32 as de}from"path";import{fileURLToPath as Pi}from"url";import*as $i from"fs";import{lstatSync as Wi,readdir as Bi,readdirSync as Ui,readlinkSync as Gi,realpathSync as Hi}from"fs";import{lstat as Ji,readdir as Ki,readlink as Vi,realpath as Yi}from"fs/promises";import{EventEmitter as ce}from"events";import ns from"stream";import{StringDecoder as Ci}from"string_decoder";var es=typeof process=="object"&&process?process:{stdout:null,stderr:null},Oi=r=>!!r&&typeof r=="object"&&(r instanceof V||r instanceof ns||Fi(r)||Di(r)),Fi=r=>!!r&&typeof r=="object"&&r instanceof ce&&typeof r.pipe=="function"&&r.pipe!==ns.Writable.prototype.pipe,Di=r=>!!r&&typeof r=="object"&&r instanceof ce&&typeof r.write=="function"&&typeof r.end=="function",H=Symbol("EOF"),q=Symbol("maybeEmitEnd"),K=Symbol("emittedEnd"),Dt=Symbol("emittingEnd"),ut=Symbol("emittedError"),Mt=Symbol("closed"),ss=Symbol("read"),Nt=Symbol("flush"),is=Symbol("flushChunk"),P=Symbol("encoding"),it=Symbol("decoder"),T=Symbol("flowing"),dt=Symbol("paused"),rt=Symbol("resume"),A=Symbol("buffer"),D=Symbol("pipes"),R=Symbol("bufferLength"),re=Symbol("bufferPush"),_t=Symbol("bufferShift"),C=Symbol("objectMode"),v=Symbol("destroyed"),ne=Symbol("error"),oe=Symbol("emitData"),rs=Symbol("emitEnd"),he=Symbol("emitEnd2"),U=Symbol("async"),ae=Symbol("abort"),Lt=Symbol("aborted"),pt=Symbol("signal"),X=Symbol("dataListeners"),N=Symbol("discarded"),mt=r=>Promise.resolve().then(r),Mi=r=>r(),Ni=r=>r==="end"||r==="finish"||r==="prefinish",_i=r=>r instanceof ArrayBuffer||!!r&&typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,Li=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),jt=class{src;dest;opts;ondrain;constructor(t,e,s){this.src=t,this.dest=e,this.opts=s,this.ondrain=()=>t[rt](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},le=class extends jt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,e,s){super(t,e,s),this.proxyErrors=i=>e.emit("error",i),t.on("error",this.proxyErrors)}},ji=r=>!!r.objectMode,zi=r=>!r.objectMode&&!!r.encoding&&r.encoding!=="buffer",V=class extends ce{[T]=!1;[dt]=!1;[D]=[];[A]=[];[C];[P];[U];[it];[H]=!1;[K]=!1;[Dt]=!1;[Mt]=!1;[ut]=null;[R]=0;[v]=!1;[pt];[Lt]=!1;[X]=0;[N]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");ji(e)?(this[C]=!0,this[P]=null):zi(e)?(this[P]=e.encoding,this[C]=!1):(this[C]=!1,this[P]=null),this[U]=!!e.async,this[it]=this[P]?new Ci(this[P]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[A]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[D]});let{signal:s}=e;s&&(this[pt]=s,s.aborted?this[ae]():s.addEventListener("abort",()=>this[ae]()))}get bufferLength(){return this[R]}get encoding(){return this[P]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[C]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[U]}set async(t){this[U]=this[U]||!!t}[ae](){this[Lt]=!0,this.emit("abort",this[pt]?.reason),this.destroy(this[pt]?.reason)}get aborted(){return this[Lt]}set aborted(t){}write(t,e,s){if(this[Lt])return!1;if(this[H])throw new Error("write after end");if(this[v])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof e=="function"&&(s=e,e="utf8"),e||(e="utf8");let i=this[U]?mt:Mi;if(!this[C]&&!Buffer.isBuffer(t)){if(Li(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(_i(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[C]?(this[T]&&this[R]!==0&&this[Nt](!0),this[T]?this.emit("data",t):this[re](t),this[R]!==0&&this.emit("readable"),s&&i(s),this[T]):t.length?(typeof t=="string"&&!(e===this[P]&&!this[it]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[P]&&(t=this[it].write(t)),this[T]&&this[R]!==0&&this[Nt](!0),this[T]?this.emit("data",t):this[re](t),this[R]!==0&&this.emit("readable"),s&&i(s),this[T]):(this[R]!==0&&this.emit("readable"),s&&i(s),this[T])}read(t){if(this[v])return null;if(this[N]=!1,this[R]===0||t===0||t&&t>this[R])return this[q](),null;this[C]&&(t=null),this[A].length>1&&!this[C]&&(this[A]=[this[P]?this[A].join(""):Buffer.concat(this[A],this[R])]);let e=this[ss](t||null,this[A][0]);return this[q](),e}[ss](t,e){if(this[C])this[_t]();else{let s=e;t===s.length||t===null?this[_t]():typeof s=="string"?(this[A][0]=s.slice(t),e=s.slice(0,t),this[R]-=t):(this[A][0]=s.subarray(t),e=s.subarray(0,t),this[R]-=t)}return this.emit("data",e),!this[A].length&&!this[H]&&this.emit("drain"),e}end(t,e,s){return typeof t=="function"&&(s=t,t=void 0),typeof e=="function"&&(s=e,e="utf8"),t!==void 0&&this.write(t,e),s&&this.once("end",s),this[H]=!0,this.writable=!1,(this[T]||!this[dt])&&this[q](),this}[rt](){this[v]||(!this[X]&&!this[D].length&&(this[N]=!0),this[dt]=!1,this[T]=!0,this.emit("resume"),this[A].length?this[Nt]():this[H]?this[q]():this.emit("drain"))}resume(){return this[rt]()}pause(){this[T]=!1,this[dt]=!0,this[N]=!1}get destroyed(){return this[v]}get flowing(){return this[T]}get paused(){return this[dt]}[re](t){this[C]?this[R]+=1:this[R]+=t.length,this[A].push(t)}[_t](){return this[C]?this[R]-=1:this[R]-=this[A][0].length,this[A].shift()}[Nt](t=!1){do;while(this[is](this[_t]())&&this[A].length);!t&&!this[A].length&&!this[H]&&this.emit("drain")}[is](t){return this.emit("data",t),this[T]}pipe(t,e){if(this[v])return t;this[N]=!1;let s=this[K];return e=e||{},t===es.stdout||t===es.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,s?e.end&&t.end():(this[D].push(e.proxyErrors?new le(this,t,e):new jt(this,t,e)),this[U]?mt(()=>this[rt]()):this[rt]()),t}unpipe(t){let e=this[D].find(s=>s.dest===t);e&&(this[D].length===1?(this[T]&&this[X]===0&&(this[T]=!1),this[D]=[]):this[D].splice(this[D].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let s=super.on(t,e);if(t==="data")this[N]=!1,this[X]++,!this[D].length&&!this[T]&&this[rt]();else if(t==="readable"&&this[R]!==0)super.emit("readable");else if(Ni(t)&&this[K])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[ut]){let i=e;this[U]?mt(()=>i.call(this,this[ut])):i.call(this,this[ut])}return s}removeListener(t,e){return this.off(t,e)}off(t,e){let s=super.off(t,e);return t==="data"&&(this[X]=this.listeners("data").length,this[X]===0&&!this[N]&&!this[D].length&&(this[T]=!1)),s}removeAllListeners(t){let e=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[X]=0,!this[N]&&!this[D].length&&(this[T]=!1)),e}get emittedEnd(){return this[K]}[q](){!this[Dt]&&!this[K]&&!this[v]&&this[A].length===0&&this[H]&&(this[Dt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Mt]&&this.emit("close"),this[Dt]=!1)}emit(t,...e){let s=e[0];if(t!=="error"&&t!=="close"&&t!==v&&this[v])return!1;if(t==="data")return!this[C]&&!s?!1:this[U]?(mt(()=>this[oe](s)),!0):this[oe](s);if(t==="end")return this[rs]();if(t==="close"){if(this[Mt]=!0,!this[K]&&!this[v])return!1;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(t==="error"){this[ut]=s,super.emit(ne,s);let n=!this[pt]||this.listeners("error").length?super.emit("error",s):!1;return this[q](),n}else if(t==="resume"){let n=super.emit("resume");return this[q](),n}else if(t==="finish"||t==="prefinish"){let n=super.emit(t);return this.removeAllListeners(t),n}let i=super.emit(t,...e);return this[q](),i}[oe](t){for(let s of this[D])s.dest.write(t)===!1&&this.pause();let e=this[N]?!1:super.emit("data",t);return this[q](),e}[rs](){return this[K]?!1:(this[K]=!0,this.readable=!1,this[U]?(mt(()=>this[he]()),!0):this[he]())}[he](){if(this[it]){let e=this[it].end();if(e){for(let s of this[D])s.dest.write(e);this[N]||super.emit("data",e)}}for(let e of this[D])e.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[C]||(t.dataLength=0);let e=this.promise();return this.on("data",s=>{t.push(s),this[C]||(t.dataLength+=s.length)}),await e,t}async concat(){if(this[C])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[P]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(v,()=>e(new Error("stream destroyed"))),this.on("error",s=>e(s)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[N]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[H])return e();let n,o,h=f=>{this.off("data",a),this.off("end",l),this.off(v,c),e(),o(f)},a=f=>{this.off("error",h),this.off("end",l),this.off(v,c),this.pause(),n({value:f,done:!!this[H]})},l=()=>{this.off("error",h),this.off("data",a),this.off(v,c),e(),n({done:!0,value:void 0})},c=()=>h(new Error("stream destroyed"));return new Promise((f,u)=>{o=u,n=f,this.once(v,c),this.once("error",h),this.once("end",l),this.once("data",a)})},throw:e,return:e,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[N]=!1;let t=!1,e=()=>(this.pause(),this.off(ne,e),this.off(v,e),this.off("end",e),t=!0,{done:!0,value:void 0}),s=()=>{if(t)return e();let i=this.read();return i===null?e():{done:!1,value:i}};return this.once("end",e),this.once(ne,e),this.once(v,e),{next:s,throw:e,return:e,[Symbol.iterator](){return this}}}destroy(t){if(this[v])return t?this.emit("error",t):this.emit(v),this;this[v]=!0,this[N]=!0,this[A].length=0,this[R]=0;let e=this;return typeof e.close=="function"&&!this[Mt]&&e.close(),t?this.emit("error",t):this.emit(v),this}static get isStream(){return Oi}};var qi=Hi.native,wt={lstatSync:Wi,readdir:Bi,readdirSync:Ui,readlinkSync:Gi,realpathSync:qi,promises:{lstat:Ji,readdir:Ki,readlink:Vi,realpath:Yi}},cs=r=>!r||r===wt||r===$i?wt:{...wt,...r,promises:{...wt.promises,...r.promises||{}}},fs=/^\\\\\?\\([a-z]:)\\?$/i,Xi=r=>r.replace(/\//g,"\\").replace(fs,"$1\\"),Zi=/[\\\/]/,j=0,us=1,ds=2,G=4,ps=6,ms=8,Z=10,gs=12,L=15,gt=~L,fe=16,os=32,yt=64,$=128,zt=256,Pt=512,hs=yt|$|Pt,Qi=1023,ue=r=>r.isFile()?ms:r.isDirectory()?G:r.isSymbolicLink()?Z:r.isCharacterDevice()?ds:r.isBlockDevice()?ps:r.isSocket()?gs:r.isFIFO()?us:j,as=new Map,bt=r=>{let t=as.get(r);if(t)return t;let e=r.normalize("NFKD");return as.set(r,e),e},ls=new Map,It=r=>{let t=ls.get(r);if(t)return t;let e=bt(r.toLowerCase());return ls.set(r,e),e},$t=class extends ft{constructor(){super({max:256})}},pe=class extends ft{constructor(t=16*1024){super({maxSize:t,sizeCalculation:e=>e.length+1})}},ws=Symbol("PathScurry setAsCwd"),O=class{name;root;roots;parent;nocase;#t;#s;get dev(){return this.#s}#n;get mode(){return this.#n}#i;get nlink(){return this.#i}#h;get uid(){return this.#h}#l;get gid(){return this.#l}#f;get rdev(){return this.#f}#a;get blksize(){return this.#a}#o;get ino(){return this.#o}#e;get size(){return this.#e}#m;get blocks(){return this.#m}#w;get atimeMs(){return this.#w}#d;get mtimeMs(){return this.#d}#u;get ctimeMs(){return this.#u}#S;get birthtimeMs(){return this.#S}#g;get atime(){return this.#g}#A;get mtime(){return this.#A}#R;get ctime(){return this.#R}#E;get birthtime(){return this.#E}#b;#C;#p;#F;#k;#v;#r;#y;#D;#x;get path(){return(this.parent||this).fullpath()}constructor(t,e=j,s,i,n,o,h){this.name=t,this.#b=n?It(t):bt(t),this.#r=e&Qi,this.nocase=n,this.roots=i,this.root=s||this,this.#y=o,this.#p=h.fullpath,this.#k=h.relative,this.#v=h.relativePosix,this.parent=h.parent,this.parent?this.#t=this.parent.#t:this.#t=cs(h.fs)}depth(){return this.#C!==void 0?this.#C:this.parent?this.#C=this.parent.depth()+1:this.#C=0}childrenCache(){return this.#y}resolve(t){if(!t)return this;let e=this.getRootString(t),i=t.substring(e.length).split(this.splitSep);return e?this.getRoot(e).#L(i):this.#L(i)}#L(t){let e=this;for(let s of t)e=e.child(s);return e}children(){let t=this.#y.get(this);if(t)return t;let e=Object.assign([],{provisional:0});return this.#y.set(this,e),this.#r&=~fe,e}child(t,e){if(t===""||t===".")return this;if(t==="..")return this.parent||this;let s=this.children(),i=this.nocase?It(t):bt(t);for(let a of s)if(a.#b===i)return a;let n=this.parent?this.sep:"",o=this.#p?this.#p+n+t:void 0,h=this.newChild(t,j,{...e,parent:this,fullpath:o});return this.canReaddir()||(h.#r|=$),s.push(h),h}relative(){if(this.#k!==void 0)return this.#k;let t=this.name,e=this.parent;if(!e)return this.#k=this.name;let s=e.relative();return s+(!s||!e.parent?"":this.sep)+t}relativePosix(){if(this.sep==="/")return this.relative();if(this.#v!==void 0)return this.#v;let t=this.name,e=this.parent;if(!e)return this.#v=this.fullpathPosix();let s=e.relativePosix();return s+(!s||!e.parent?"":"/")+t}fullpath(){if(this.#p!==void 0)return this.#p;let t=this.name,e=this.parent;if(!e)return this.#p=this.name;let i=e.fullpath()+(e.parent?this.sep:"")+t;return this.#p=i}fullpathPosix(){if(this.#F!==void 0)return this.#F;if(this.sep==="/")return this.#F=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(i)?this.#F=`//?/${i}`:this.#F=i}let t=this.parent,e=t.fullpathPosix(),s=e+(!e||!t.parent?"":"/")+this.name;return this.#F=s}isUnknown(){return(this.#r&L)===j}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#r&L)===ms}isDirectory(){return(this.#r&L)===G}isCharacterDevice(){return(this.#r&L)===ds}isBlockDevice(){return(this.#r&L)===ps}isFIFO(){return(this.#r&L)===us}isSocket(){return(this.#r&L)===gs}isSymbolicLink(){return(this.#r&Z)===Z}lstatCached(){return this.#r&os?this:void 0}readlinkCached(){return this.#D}realpathCached(){return this.#x}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#D)return!0;if(!this.parent)return!1;let t=this.#r&L;return!(t!==j&&t!==Z||this.#r&zt||this.#r&$)}calledReaddir(){return!!(this.#r&fe)}isENOENT(){return!!(this.#r&$)}isNamed(t){return this.nocase?this.#b===It(t):this.#b===bt(t)}async readlink(){let t=this.#D;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=await this.#t.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(e);if(s)return this.#D=s}catch(e){this.#I(e.code);return}}readlinkSync(){let t=this.#D;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=this.#t.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(e);if(s)return this.#D=s}catch(e){this.#I(e.code);return}}#j(t){this.#r|=fe;for(let e=t.provisional;es(null,t))}readdirCB(t,e=!1){if(!this.canReaddir()){e?t(null,[]):queueMicrotask(()=>t(null,[]));return}let s=this.children();if(this.calledReaddir()){let n=s.slice(0,s.provisional);e?t(null,n):queueMicrotask(()=>t(null,n));return}if(this.#$.push(t),this.#W)return;this.#W=!0;let i=this.fullpath();this.#t.readdir(i,{withFileTypes:!0},(n,o)=>{if(n)this.#_(n.code),s.provisional=0;else{for(let h of o)this.#N(h,s);this.#j(s)}this.#q(s.slice(0,s.provisional))})}#P;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();if(this.#P)await this.#P;else{let s=()=>{};this.#P=new Promise(i=>s=i);try{for(let i of await this.#t.promises.readdir(e,{withFileTypes:!0}))this.#N(i,t);this.#j(t)}catch(i){this.#_(i.code),t.provisional=0}this.#P=void 0,s()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();try{for(let s of this.#t.readdirSync(e,{withFileTypes:!0}))this.#N(s,t);this.#j(t)}catch(s){this.#_(s.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#r&hs)return!1;let t=L&this.#r;return t===j||t===G||t===Z}shouldWalk(t,e){return(this.#r&G)===G&&!(this.#r&hs)&&!t.has(this)&&(!e||e(this))}async realpath(){if(this.#x)return this.#x;if(!((Pt|zt|$)&this.#r))try{let t=await this.#t.promises.realpath(this.fullpath());return this.#x=this.resolve(t)}catch{this.#z()}}realpathSync(){if(this.#x)return this.#x;if(!((Pt|zt|$)&this.#r))try{let t=this.#t.realpathSync(this.fullpath());return this.#x=this.resolve(t)}catch{this.#z()}}[ws](t){if(t===this)return;let e=new Set([]),s=[],i=this;for(;i&&i.parent;)e.add(i),i.#k=s.join(this.sep),i.#v=s.join("/"),i=i.parent,s.push("..");for(i=t;i&&i.parent&&!e.has(i);)i.#k=void 0,i.#v=void 0,i=i.parent}},Wt=class r extends O{sep="\\";splitSep=Zi;constructor(t,e=j,s,i,n,o,h){super(t,e,s,i,n,o,h)}newChild(t,e=j,s={}){return new r(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return de.parse(t).root}getRoot(t){if(t=Xi(t.toUpperCase()),t===this.root.name)return this.root;for(let[e,s]of Object.entries(this.roots))if(this.sameRoot(t,e))return this.roots[t]=s;return this.roots[t]=new nt(t,this).root}sameRoot(t,e=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(fs,"$1\\"),t===e}},Bt=class r extends O{splitSep="/";sep="/";constructor(t,e=j,s,i,n,o,h){super(t,e,s,i,n,o,h)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,e=j,s={}){return new r(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}},Ut=class{root;rootPath;roots;cwd;#t;#s;#n;nocase;#i;constructor(t=process.cwd(),e,s,{nocase:i,childrenCacheSize:n=16*1024,fs:o=wt}={}){this.#i=cs(o),(t instanceof URL||t.startsWith("file://"))&&(t=Pi(t));let h=e.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(h),this.#t=new $t,this.#s=new $t,this.#n=new pe(n);let a=h.substring(this.rootPath.length).split(s);if(a.length===1&&!a[0]&&a.pop(),i===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=i,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let l=this.root,c=a.length-1,f=e.sep,u=this.rootPath,d=!1;for(let m of a){let p=c--;l=l.child(m,{relative:new Array(p).fill("..").join(f),relativePosix:new Array(p).fill("..").join("/"),fullpath:u+=(d?"":f)+m}),d=!0}this.cwd=l}depth(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let e="";for(let n=t.length-1;n>=0;n--){let o=t[n];if(!(!o||o===".")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#t.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpath();return this.#t.set(e,i),i}resolvePosix(...t){let e="";for(let n=t.length-1;n>=0;n--){let o=t[n];if(!(!o||o===".")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#s.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpathPosix();return this.#s.set(e,i),i}relative(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,e={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s}=e;if(t.canReaddir()){let i=await t.readdir();return s?i:i.map(n=>n.name)}else return[]}readdirSync(t=this.cwd,e={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0}=e;return t.canReaddir()?s?t.readdirSync():t.readdirSync().map(i=>i.name):[]}async lstat(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=await t.readlink();return e?s:s?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=t.readlinkSync();return e?s:s?.fullpath()}async realpath(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=await t.realpath();return e?s:s?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=t.realpathSync();return e?s:s?.fullpath()}async walk(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=[];(!n||n(t))&&h.push(s?t:t.fullpath());let a=new Set,l=(f,u)=>{a.add(f),f.readdirCB((d,m)=>{if(d)return u(d);let p=m.length;if(!p)return u();let w=()=>{--p===0&&u()};for(let g of m)(!n||n(g))&&h.push(s?g:g.fullpath()),i&&g.isSymbolicLink()?g.realpath().then(S=>S?.isUnknown()?S.lstat():S).then(S=>S?.shouldWalk(a,o)?l(S,w):w()):g.shouldWalk(a,o)?l(g,w):w()},!0)},c=t;return new Promise((f,u)=>{l(c,d=>{if(d)return u(d);f(h)})})}walkSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=[];(!n||n(t))&&h.push(s?t:t.fullpath());let a=new Set([t]);for(let l of a){let c=l.readdirSync();for(let f of c){(!n||n(f))&&h.push(s?f:f.fullpath());let u=f;if(f.isSymbolicLink()){if(!(i&&(u=f.realpathSync())))continue;u.isUnknown()&&u.lstatSync()}u.shouldWalk(a,o)&&a.add(u)}}return h}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,e={}){return typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd),this.stream(t,e)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e;(!n||n(t))&&(yield s?t:t.fullpath());let h=new Set([t]);for(let a of h){let l=a.readdirSync();for(let c of l){(!n||n(c))&&(yield s?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(i&&(f=c.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(h,o)&&h.add(f)}}}stream(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=new V({objectMode:!0});(!n||n(t))&&h.write(s?t:t.fullpath());let a=new Set,l=[t],c=0,f=()=>{let u=!1;for(;!u;){let d=l.shift();if(!d){c===0&&h.end();return}c++,a.add(d);let m=(w,g,S=!1)=>{if(w)return h.emit("error",w);if(i&&!S){let b=[];for(let y of g)y.isSymbolicLink()&&b.push(y.realpath().then(E=>E?.isUnknown()?E.lstat():E));if(b.length){Promise.all(b).then(()=>m(null,g,!0));return}}for(let b of g)b&&(!n||n(b))&&(h.write(s?b:b.fullpath())||(u=!0));c--;for(let b of g){let y=b.realpathCached()||b;y.shouldWalk(a,o)&&l.push(y)}u&&!h.flowing?h.once("drain",f):p||f()},p=!0;d.readdirCB(m,!0),p=!1}};return f(),h}streamSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=new V({objectMode:!0}),a=new Set;(!n||n(t))&&h.write(s?t:t.fullpath());let l=[t],c=0,f=()=>{let u=!1;for(;!u;){let d=l.shift();if(!d){c===0&&h.end();return}c++,a.add(d);let m=d.readdirSync();for(let p of m)(!n||n(p))&&(h.write(s?p:p.fullpath())||(u=!0));c--;for(let p of m){let w=p;if(p.isSymbolicLink()){if(!(i&&(w=p.realpathSync())))continue;w.isUnknown()&&w.lstatSync()}w.shouldWalk(a,o)&&l.push(w)}}u&&!h.flowing&&h.once("drain",f)};return f(),h}chdir(t=this.cwd){let e=this.cwd;this.cwd=typeof t=="string"?this.cwd.resolve(t):t,this.cwd[ws](e)}},nt=class extends Ut{sep="\\";constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,de,"\\",{...e,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(t){return de.parse(t).root.toUpperCase()}newRoot(t){return new Wt(this.rootPath,G,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")||t.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(t)}},ot=class extends Ut{sep="/";constructor(t=process.cwd(),e={}){let{nocase:s=!1}=e;super(t,Ii,"/",{...e,nocase:s}),this.nocase=s}parseRootPath(t){return"/"}newRoot(t){return new Bt(this.rootPath,G,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")}},St=class extends ot{constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,{...e,nocase:s})}},an=process.platform==="win32"?Wt:Bt,ys=process.platform==="win32"?nt:process.platform==="darwin"?St:ot;import{fileURLToPath as rr}from"url";var tr=r=>r.length>=1,er=r=>r.length>=1,ht=class r{#t;#s;#n;length;#i;#h;#l;#f;#a;#o;#e=!0;constructor(t,e,s,i){if(!tr(t))throw new TypeError("empty pattern list");if(!er(e))throw new TypeError("empty glob list");if(e.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#t=t,this.#s=e,this.#n=s,this.#i=i,this.#n===0){if(this.isUNC()){let[n,o,h,a,...l]=this.#t,[c,f,u,d,...m]=this.#s;l[0]===""&&(l.shift(),m.shift());let p=[n,o,h,a,""].join("/"),w=[c,f,u,d,""].join("/");this.#t=[p,...l],this.#s=[w,...m],this.length=this.#t.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#t,[h,...a]=this.#s;o[0]===""&&(o.shift(),a.shift());let l=n+"/",c=h+"/";this.#t=[l,...o],this.#s=[c,...a],this.length=this.#t.length}}}pattern(){return this.#t[this.#n]}isString(){return typeof this.#t[this.#n]=="string"}isGlobstar(){return this.#t[this.#n]===k}isRegExp(){return this.#t[this.#n]instanceof RegExp}globString(){return this.#l=this.#l||(this.#n===0?this.isAbsolute()?this.#s[0]+this.#s.slice(1).join("/"):this.#s.join("/"):this.#s.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#h!==void 0?this.#h:this.hasMore()?(this.#h=new r(this.#t,this.#s,this.#n+1,this.#i),this.#h.#o=this.#o,this.#h.#a=this.#a,this.#h.#f=this.#f,this.#h):this.#h=null}isUNC(){let t=this.#t;return this.#a!==void 0?this.#a:this.#a=this.#i==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#t;return this.#f!==void 0?this.#f:this.#f=this.#i==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#t;return this.#o!==void 0?this.#o:this.#o=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#t[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#e)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#e?!1:(this.#e=!1,!0)}};var sr=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Et=class{relative;relativeChildren;absolute;absoluteChildren;constructor(t,{nobrace:e,nocase:s,noext:i,noglobstar:n,platform:o=sr}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[];let h={dot:!0,nobrace:e,nocase:s,noext:i,noglobstar:n,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let a of t){let l=new M(a,h);for(let c=0;c[t,!!(e&2),!!(e&1)])}},we=class{store=new Map;add(t,e){if(!t.canReaddir())return;let s=this.store.get(t);s?s.find(i=>i.globString()===e.globString())||s.push(e):this.store.set(t,[e])}get(t){let e=this.store.get(t);if(!e)throw new Error("attempting to walk unknown path");return e}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}},vt=class r{hasWalkedCache;matches=new ge;subwalks=new we;patterns;follow;dot;opts;constructor(t,e){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=e?e.copy():new me}processPatterns(t,e){this.patterns=e;let s=e.map(i=>[t,i]);for(let[i,n]of s){this.hasWalkedCache.storeWalked(i,n);let o=n.root(),h=n.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let a,l,c=!1;for(;typeof(a=n.pattern())=="string"&&(l=n.rest());)i=i.resolve(a),n=l,c=!0;if(a=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(i,n))continue;this.hasWalkedCache.storeWalked(i,n)}if(typeof a=="string"){let f=a===".."||a===""||a===".";this.matches.add(i.resolve(a),h,f);continue}else if(a===k){(!i.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(i,n);let f=l?.pattern(),u=l?.rest();if(!l||(f===""||f===".")&&!u)this.matches.add(i,h,f===""||f===".");else if(f===".."){let d=i.parent||i;u?this.hasWalkedCache.hasWalked(d,u)||this.subwalks.add(d,u):this.matches.add(d,h,!0)}}else a instanceof RegExp&&this.subwalks.add(i,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new r(this.opts,this.hasWalkedCache)}filterEntries(t,e){let s=this.subwalks.get(t),i=this.child();for(let n of e)for(let o of s){let h=o.isAbsolute(),a=o.pattern(),l=o.rest();a===k?i.testGlobstar(n,o,l,h):a instanceof RegExp?i.testRegExp(n,a,l,h):i.testString(n,a,l,h)}return i}testGlobstar(t,e,s,i){if((this.dot||!t.name.startsWith("."))&&(e.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,e):t.isSymbolicLink()&&(s&&e.checkFollowGlobstar()?this.subwalks.add(t,s):e.markFollowGlobstar()&&this.subwalks.add(t,e)))),s){let n=s.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,s.rest(),i);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,s)}else n instanceof RegExp&&this.testRegExp(t,n,s.rest(),i)}}testRegExp(t,e,s,i){e.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,e,s,i){t.isNamed(e)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}};var ir=(r,t)=>typeof r=="string"?new Et([r],t):Array.isArray(r)?new Et(r,t):r,Gt=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#t=[];#s;#n;signal;maxDepth;constructor(t,e,s){this.patterns=t,this.path=e,this.opts=s,this.#n=!s.posix&&s.platform==="win32"?"\\":"/",s.ignore&&(this.#s=ir(s.ignore,s)),this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener("abort",()=>{this.#t.length=0}))}#i(t){return this.seen.has(t)||!!this.#s?.ignored?.(t)}#h(t){return!!this.#s?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#t.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#t.push(t):t())}async matchCheck(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||await t.realpath(),!s)return;t=s}let n=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&n?.isSymbolicLink()){let o=await n.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(n,e)}matchCheckTest(t,e){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!e||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#i(t)?t:void 0}matchCheckSync(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||t.realpathSync(),!s)return;t=s}let n=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&n?.isSymbolicLink()){let o=n.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(n,e)}matchFinish(t,e){if(this.#i(t))return;let s=this.opts.absolute===void 0?e:this.opts.absolute;this.seen.add(t);let i=this.opts.mark&&t.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(t);else if(s){let n=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(n+i)}else{let n=this.opts.posix?t.relativePosix():t.relative(),o=this.opts.dotRelative&&!n.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(n?o+n+i:"."+i)}}async match(t,e,s){let i=await this.matchCheck(t,s);i&&this.matchFinish(i,e)}matchSync(t,e,s){let i=this.matchCheckSync(t,s);i&&this.matchFinish(i,e)}walkCB(t,e,s){this.signal?.aborted&&s(),this.walkCB2(t,e,new vt(this.opts),s)}walkCB2(t,e,s,i){if(this.#h(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(t,e,s,i));return}s.processPatterns(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||(n++,this.match(h,a,l).then(()=>o()));for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;n++;let a=h.readdirCached();h.calledReaddir()?this.walkCB3(h,a,s,o):h.readdirCB((l,c)=>this.walkCB3(h,c,s,o),!0)}o()}walkCB3(t,e,s,i){s=s.filterEntries(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||(n++,this.match(h,a,l).then(()=>o()));for(let[h,a]of s.subwalks.entries())n++,this.walkCB2(h,a,s.child(),o);o()}walkCBSync(t,e,s){this.signal?.aborted&&s(),this.walkCB2Sync(t,e,new vt(this.opts),s)}walkCB2Sync(t,e,s,i){if(this.#h(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(t,e,s,i));return}s.processPatterns(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||this.matchSync(h,a,l);for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;n++;let a=h.readdirSync();this.walkCB3Sync(h,a,s,o)}o()}walkCB3Sync(t,e,s,i){s=s.filterEntries(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||this.matchSync(h,a,l);for(let[h,a]of s.subwalks.entries())n++,this.walkCB2Sync(h,a,s.child(),o);o()}},xt=class extends Gt{matches;constructor(t,e,s){super(t,e,s),this.matches=new Set}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,e)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?e(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},Tt=class extends Gt{results;constructor(t,e,s){super(t,e,s),this.results=new V({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var nr=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",W=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;opts;patterns;constructor(t,e){if(!e)throw new TypeError("glob options required");if(this.withFileTypes=!!e.withFileTypes,this.signal=e.signal,this.follow=!!e.follow,this.dot=!!e.dot,this.dotRelative=!!e.dotRelative,this.nodir=!!e.nodir,this.mark=!!e.mark,e.cwd?(e.cwd instanceof URL||e.cwd.startsWith("file://"))&&(e.cwd=rr(e.cwd)):this.cwd="",this.cwd=e.cwd||"",this.root=e.root,this.magicalBraces=!!e.magicalBraces,this.nobrace=!!e.nobrace,this.noext=!!e.noext,this.realpath=!!e.realpath,this.absolute=e.absolute,this.noglobstar=!!e.noglobstar,this.matchBase=!!e.matchBase,this.maxDepth=typeof e.maxDepth=="number"?e.maxDepth:1/0,this.stat=!!e.stat,this.ignore=e.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof t=="string"&&(t=[t]),this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(a=>a.replace(/\\/g,"/"))),this.matchBase){if(e.noglobstar)throw new TypeError("base matching requires globstar");t=t.map(a=>a.includes("/")?a:`./**/${a}`)}if(this.pattern=t,this.platform=e.platform||nr,this.opts={...e,platform:this.platform},e.scurry){if(this.scurry=e.scurry,e.nocase!==void 0&&e.nocase!==e.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let a=e.platform==="win32"?nt:e.platform==="darwin"?St:e.platform?ot:ys;this.scurry=new a(this.cwd,{nocase:e.nocase,fs:e.fs})}this.nocase=this.scurry.nocase;let s=this.platform==="darwin"||this.platform==="win32",i={...e,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},n=this.pattern.map(a=>new M(a,i)),[o,h]=n.reduce((a,l)=>(a[0].push(...l.set),a[1].push(...l.globParts),a),[[],[]]);this.patterns=o.map((a,l)=>{let c=h[l];if(!c)throw new Error("invalid pattern object");return new ht(a,c,0,this.platform)})}async walk(){return[...await new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).walk()]}walkSync(){return[...new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).walkSync()]}stream(){return new Tt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).stream()}streamSync(){return new Tt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};var ye=(r,t={})=>{Array.isArray(r)||(r=[r]);for(let e of r)if(new M(e,t).hasMagic())return!0;return!1};function Ht(r,t={}){return new W(r,t).streamSync()}function Es(r,t={}){return new W(r,t).stream()}function qt(r,t={}){return new W(r,t).walkSync()}async function bs(r,t={}){return new W(r,t).walk()}function Jt(r,t={}){return new W(r,t).iterateSync()}function vs(r,t={}){return new W(r,t).iterate()}var or=Ht,hr=Object.assign(Es,{sync:Ht}),ar=Jt,lr=Object.assign(vs,{sync:Jt}),cr=Object.assign(qt,{stream:Ht,iterate:Jt}),Ss=Object.assign(bs,{glob:bs,globSync:qt,sync:cr,globStream:Es,stream:hr,globStreamSync:Ht,streamSync:or,globIterate:vs,iterate:lr,globIterateSync:Jt,iterateSync:ar,Glob:W,hasMagic:ye,escape:tt,unescape:I});Ss.glob=Ss;import fr from"node:fs";function xs(r){return JSON.parse(fr.readFileSync(r).toString("utf-8"))}function Kt(r){return xs(r)}function be(r){return xs(r)}function Y(r){return(process.env[`INPUT_${r.toUpperCase()}`]||"").trim()}function Ts(r){let t=ur(r);Vt.mkdirSync(Yt.join(At.cwd(),r.analyzerDirectory),{recursive:!0});let e=Yt.join(At.cwd(),r.analyzerDirectory,"bundle_analysis.json");Vt.writeFileSync(e,JSON.stringify(t,null,2)),Xt.log(`Wrote ${e}`)}function Se(r){return r.metafiles.flatMap(t=>qt(Yt.join(At.cwd(),t),{nodir:!0}).map(e=>({relativePath:Yt.relative(At.cwd(),e),absolutePath:e})))}function ur(r){let t={};return Se(r).reduce((e,{relativePath:s,absolutePath:i})=>{try{Vt.accessSync(i,Vt.constants.R_OK)}catch{Xt.error(`No meta file found at "${i}" - a path to meta file may be wrong, or esbuild is not executed.`),At.exit(1)}let n=Kt(i);return Object.entries(n.outputs).reduce((o,h)=>{let[a,l]=h;return r.includeExtensions.some(c=>a.toLowerCase().endsWith(c))&&(o[`${s} -> ${a}`]={bytes:l.bytes,metafile:s,outfile:a}),o},e),e},t)}function ks(r){let t=!1,e=`## \u{1F4E6} esbuild Bundle Analysis for ${r.name} +>>> no match, partial?`,t,u,e,d),u===a))}let p;if(typeof c=="string"?(p=f===c,this.debug("string match",c,f,p)):(p=c.test(f),this.debug("pattern match",c,f,p)),!p)return!1}if(o===a&&h===l)return!0;if(o===a)return s;if(h===l)return o===a-1&&t[o]==="";throw new Error("wtf?")}braceExpand(){return Ye(this.pattern,this.options)}parse(t){lt(t);let e=this.options;if(t==="**")return k;if(t==="")return"";let s,i=null;(s=t.match(li))?i=e.dot?fi:ci:(s=t.match(Qs))?i=(e.nocase?e.dot?ii:si:e.dot?ei:ti)(s[1]):(s=t.match(ui))?i=(e.nocase?e.dot?pi:di:e.dot?mi:gi)(s):(s=t.match(ri))?i=e.dot?oi:ni:(s=t.match(hi))&&(i=ai);let n=Q.fromGlob(t,this.options).toMMPattern();return i&&typeof n=="object"&&Reflect.defineProperty(n,"test",{value:i}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let e=this.options,s=e.noglobstar?bi:e.dot?Si:Ei,i=new Set(e.nocase?["i"]:[]),n=t.map(a=>{let l=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))i.add(f);return typeof c=="string"?Ri(c):c===k?k:c._src});return l.forEach((c,f)=>{let u=l[f+1],d=l[f-1];c!==k||d===k||(d===void 0?u!==void 0&&u!==k?l[f+1]="(?:\\/|"+s+"\\/)?"+u:l[f]=s:u===void 0?l[f-1]=d+"(?:\\/|"+s+")?":u!==k&&(l[f-1]=d+"(?:\\/|\\/"+s+"\\/)"+u,l[f+1]=k))}),l.filter(c=>c!==k).join("/")}).join("|"),[o,h]=t.length>1?["(?:",")"]:["",""];n="^"+o+n+h+"$",this.negate&&(n="^(?!"+n+").+$");try{this.regexp=new RegExp(n,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&e)return!0;let s=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let n=this.set;this.debug(this.pattern,"set",n);let o=i[i.length-1];if(!o)for(let h=i.length-2;!o&&h>=0;h--)o=i[h];for(let h=0;h{typeof se.emitWarning=="function"?se.emitWarning(r,t,e,s):console.error(`[${e}] ${t}: ${r}`)},Ft=globalThis.AbortController,Xe=globalThis.AbortSignal;if(typeof Ft>"u"){Xe=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(s,i){this._onabort.push(i)}},Ft=class{constructor(){t()}signal=new Xe;abort(s){if(!this.signal.aborted){this.signal.reason=s,this.signal.aborted=!0;for(let i of this.signal._onabort)i(s);this.signal.onabort?.(s)}}};let r=se.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{r&&(r=!1,Qe("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var ki=r=>!Ze.has(r),Vr=Symbol("type"),J=r=>r&&r===Math.floor(r)&&r>0&&isFinite(r),ts=r=>J(r)?r<=Math.pow(2,8)?Uint8Array:r<=Math.pow(2,16)?Uint16Array:r<=Math.pow(2,32)?Uint32Array:r<=Number.MAX_SAFE_INTEGER?st:null:null,st=class extends Array{constructor(t){super(t),this.fill(0)}},ie=class r{heap;length;static#t=!1;static create(t){let e=ts(t);if(!e)return[];r.#t=!0;let s=new r(t,e);return r.#t=!1,s}constructor(t,e){if(!r.#t)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},ft=class r{#t;#s;#n;#i;#h;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#l;#f;#a;#o;#e;#m;#w;#d;#u;#S;#g;#A;#R;#E;#b;#C;#p;static unsafeExposeInternals(t){return{starts:t.#R,ttls:t.#E,sizes:t.#A,keyMap:t.#a,keyList:t.#o,valList:t.#e,next:t.#m,prev:t.#w,get head(){return t.#d},get tail(){return t.#u},free:t.#S,isBackgroundFetch:e=>t.#c(e),backgroundFetch:(e,s,i,n)=>t.#_(e,s,i,n),moveToTail:e=>t.#M(e),indexes:e=>t.#T(e),rindexes:e=>t.#O(e),isStale:e=>t.#y(e)}}get max(){return this.#t}get maxSize(){return this.#s}get calculatedSize(){return this.#f}get size(){return this.#l}get fetchMethod(){return this.#h}get dispose(){return this.#n}get disposeAfter(){return this.#i}constructor(t){let{max:e=0,ttl:s,ttlResolution:i=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:a,dispose:l,disposeAfter:c,noDisposeOnSet:f,noUpdateTTL:u,maxSize:d=0,maxEntrySize:m=0,sizeCalculation:p,fetchMethod:w,noDeleteOnFetchRejection:g,noDeleteOnStaleGet:S,allowStaleOnFetchRejection:b,allowStaleOnFetchAbort:y,ignoreFetchAbort:E}=t;if(e!==0&&!J(e))throw new TypeError("max option must be a nonnegative integer");let x=e?ts(e):Array;if(!x)throw new Error("invalid max value: "+e);if(this.#t=e,this.#s=d,this.maxEntrySize=m||this.#s,this.sizeCalculation=p,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#h=w,this.#C=!!w,this.#a=new Map,this.#o=new Array(e).fill(void 0),this.#e=new Array(e).fill(void 0),this.#m=new x(e),this.#w=new x(e),this.#d=0,this.#u=0,this.#S=ie.create(e),this.#l=0,this.#f=0,typeof l=="function"&&(this.#n=l),typeof c=="function"?(this.#i=c,this.#g=[]):(this.#i=void 0,this.#g=void 0),this.#b=!!this.#n,this.#p=!!this.#i,this.noDisposeOnSet=!!f,this.noUpdateTTL=!!u,this.noDeleteOnFetchRejection=!!g,this.allowStaleOnFetchRejection=!!b,this.allowStaleOnFetchAbort=!!y,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(this.#s!==0&&!J(this.#s))throw new TypeError("maxSize must be a positive integer if specified");if(!J(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#D()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!S,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=J(i)||i===0?i:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!J(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#F()}if(this.#t===0&&this.ttl===0&&this.#s===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#t&&!this.#s){let z="LRU_CACHE_UNBOUNDED";ki(z)&&(Ze.add(z),Qe("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",z,r))}}getRemainingTTL(t){return this.#a.has(t)?1/0:0}#F(){let t=new st(this.#t),e=new st(this.#t);this.#E=t,this.#R=e,this.#r=(n,o,h=et.now())=>{if(e[n]=o!==0?h:0,t[n]=o,o!==0&&this.ttlAutopurge){let a=setTimeout(()=>{this.#y(n)&&this.delete(this.#o[n])},o+1);a.unref&&a.unref()}},this.#k=n=>{e[n]=t[n]!==0?et.now():0},this.#v=(n,o)=>{if(t[o]){let h=t[o],a=e[o];if(!h||!a)return;n.ttl=h,n.start=a,n.now=s||i();let l=n.now-a;n.remainingTTL=h-l}};let s=0,i=()=>{let n=et.now();if(this.ttlResolution>0){s=n;let o=setTimeout(()=>s=0,this.ttlResolution);o.unref&&o.unref()}return n};this.getRemainingTTL=n=>{let o=this.#a.get(n);if(o===void 0)return 0;let h=t[o],a=e[o];if(!h||!a)return 1/0;let l=(s||i())-a;return h-l},this.#y=n=>{let o=e[n],h=t[n];return!!h&&!!o&&(s||i())-o>h}}#k=()=>{};#v=()=>{};#r=()=>{};#y=()=>!1;#D(){let t=new st(this.#t);this.#f=0,this.#A=t,this.#x=e=>{this.#f-=t[e],t[e]=0},this.#j=(e,s,i,n)=>{if(this.#c(s))return 0;if(!J(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,e),!J(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#L=(e,s,i)=>{if(t[e]=s,this.#s){let n=this.#s-t[e];for(;this.#f>n;)this.#N(!0)}this.#f+=t[e],i&&(i.entrySize=s,i.totalCalculatedSize=this.#f)}}#x=t=>{};#L=(t,e,s)=>{};#j=(t,e,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:t=this.allowStale}={}){if(this.#l)for(let e=this.#u;!(!this.#z(e)||((t||!this.#y(e))&&(yield e),e===this.#d));)e=this.#w[e]}*#O({allowStale:t=this.allowStale}={}){if(this.#l)for(let e=this.#d;!(!this.#z(e)||((t||!this.#y(e))&&(yield e),e===this.#u));)e=this.#m[e]}#z(t){return t!==void 0&&this.#a.get(this.#o[t])===t}*entries(){for(let t of this.#T())this.#e[t]!==void 0&&this.#o[t]!==void 0&&!this.#c(this.#e[t])&&(yield[this.#o[t],this.#e[t]])}*rentries(){for(let t of this.#O())this.#e[t]!==void 0&&this.#o[t]!==void 0&&!this.#c(this.#e[t])&&(yield[this.#o[t],this.#e[t]])}*keys(){for(let t of this.#T()){let e=this.#o[t];e!==void 0&&!this.#c(this.#e[t])&&(yield e)}}*rkeys(){for(let t of this.#O()){let e=this.#o[t];e!==void 0&&!this.#c(this.#e[t])&&(yield e)}}*values(){for(let t of this.#T())this.#e[t]!==void 0&&!this.#c(this.#e[t])&&(yield this.#e[t])}*rvalues(){for(let t of this.#O())this.#e[t]!==void 0&&!this.#c(this.#e[t])&&(yield this.#e[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(let s of this.#T()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;if(n!==void 0&&t(n,this.#o[s],this))return this.get(this.#o[s],e)}}forEach(t,e=this){for(let s of this.#T()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(e,n,this.#o[s],this)}}rforEach(t,e=this){for(let s of this.#O()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(e,n,this.#o[s],this)}}purgeStale(){let t=!1;for(let e of this.#O({allowStale:!0}))this.#y(e)&&(this.delete(this.#o[e]),t=!0);return t}info(t){let e=this.#a.get(t);if(e===void 0)return;let s=this.#e[e],i=this.#c(s)?s.__staleWhileFetching:s;if(i===void 0)return;let n={value:i};if(this.#E&&this.#R){let o=this.#E[e],h=this.#R[e];if(o&&h){let a=o-(et.now()-h);n.ttl=a,n.start=Date.now()}}return this.#A&&(n.size=this.#A[e]),n}dump(){let t=[];for(let e of this.#T({allowStale:!0})){let s=this.#o[e],i=this.#e[e],n=this.#c(i)?i.__staleWhileFetching:i;if(n===void 0||s===void 0)continue;let o={value:n};if(this.#E&&this.#R){o.ttl=this.#E[e];let h=et.now()-this.#R[e];o.start=Math.floor(Date.now()-h)}this.#A&&(o.size=this.#A[e]),t.unshift([s,o])}return t}load(t){this.clear();for(let[e,s]of t){if(s.start){let i=Date.now()-s.start;s.start=et.now()-i}this.set(e,s.value,s)}}set(t,e,s={}){if(e===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:a}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,c=this.#j(t,e,s.size||0,h);if(this.maxEntrySize&&c>this.maxEntrySize)return a&&(a.set="miss",a.maxEntrySizeExceeded=!0),this.delete(t),this;let f=this.#l===0?void 0:this.#a.get(t);if(f===void 0)f=this.#l===0?this.#u:this.#S.length!==0?this.#S.pop():this.#l===this.#t?this.#N(!1):this.#l,this.#o[f]=t,this.#e[f]=e,this.#a.set(t,f),this.#m[this.#u]=f,this.#w[f]=this.#u,this.#u=f,this.#l++,this.#L(f,c,a),a&&(a.set="add"),l=!1;else{this.#M(f);let u=this.#e[f];if(e!==u){if(this.#C&&this.#c(u)){u.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:d}=u;d!==void 0&&!o&&(this.#b&&this.#n?.(d,t,"set"),this.#p&&this.#g?.push([d,t,"set"]))}else o||(this.#b&&this.#n?.(u,t,"set"),this.#p&&this.#g?.push([u,t,"set"]));if(this.#x(f),this.#L(f,c,a),this.#e[f]=e,a){a.set="replace";let d=u&&this.#c(u)?u.__staleWhileFetching:u;d!==void 0&&(a.oldValue=d)}}else a&&(a.set="update")}if(i!==0&&!this.#E&&this.#F(),this.#E&&(l||this.#r(f,i,n),a&&this.#v(a,f)),!o&&this.#p&&this.#g){let u=this.#g,d;for(;d=u?.shift();)this.#i?.(...d)}return this}pop(){try{for(;this.#l;){let t=this.#e[this.#d];if(this.#N(!0),this.#c(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#p&&this.#g){let t=this.#g,e;for(;e=t?.shift();)this.#i?.(...e)}}}#N(t){let e=this.#d,s=this.#o[e],i=this.#e[e];return this.#C&&this.#c(i)?i.__abortController.abort(new Error("evicted")):(this.#b||this.#p)&&(this.#b&&this.#n?.(i,s,"evict"),this.#p&&this.#g?.push([i,s,"evict"])),this.#x(e),t&&(this.#o[e]=void 0,this.#e[e]=void 0,this.#S.push(e)),this.#l===1?(this.#d=this.#u=0,this.#S.length=0):this.#d=this.#m[e],this.#a.delete(s),this.#l--,e}has(t,e={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=e,n=this.#a.get(t);if(n!==void 0){let o=this.#e[n];if(this.#c(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#y(n))i&&(i.has="stale",this.#v(i,n));else return s&&this.#k(n),i&&(i.has="hit",this.#v(i,n)),!0}else i&&(i.has="miss");return!1}peek(t,e={}){let{allowStale:s=this.allowStale}=e,i=this.#a.get(t);if(i===void 0||!s&&this.#y(i))return;let n=this.#e[i];return this.#c(n)?n.__staleWhileFetching:n}#_(t,e,s,i){let n=e===void 0?void 0:this.#e[e];if(this.#c(n))return n;let o=new Ft,{signal:h}=s;h?.addEventListener("abort",()=>o.abort(h.reason),{signal:o.signal});let a={signal:o.signal,options:s,context:i},l=(p,w=!1)=>{let{aborted:g}=o.signal,S=s.ignoreFetchAbort&&p!==void 0;if(s.status&&(g&&!w?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,S&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),g&&!S&&!w)return f(o.signal.reason);let b=d;return this.#e[e]===d&&(p===void 0?b.__staleWhileFetching?this.#e[e]=b.__staleWhileFetching:this.delete(t):(s.status&&(s.status.fetchUpdated=!0),this.set(t,p,a.options))),p},c=p=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=p),f(p)),f=p=>{let{aborted:w}=o.signal,g=w&&s.allowStaleOnFetchAbort,S=g||s.allowStaleOnFetchRejection,b=S||s.noDeleteOnFetchRejection,y=d;if(this.#e[e]===d&&(!b||y.__staleWhileFetching===void 0?this.delete(t):g||(this.#e[e]=y.__staleWhileFetching)),S)return s.status&&y.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),y.__staleWhileFetching;if(y.__returned===y)throw p},u=(p,w)=>{let g=this.#h?.(t,n,a);g&&g instanceof Promise&&g.then(S=>p(S===void 0?void 0:S),w),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(p(void 0),s.allowStaleOnFetchAbort&&(p=S=>l(S,!0)))})};s.status&&(s.status.fetchDispatched=!0);let d=new Promise(u).then(l,c),m=Object.assign(d,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return e===void 0?(this.set(t,m,{...a.options,status:void 0}),e=this.#a.get(t)):this.#e[e]=m,m}#c(t){if(!this.#C)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof Ft}async fetch(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:u=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:p,forceRefresh:w=!1,status:g,signal:S}=e;if(!this.#C)return g&&(g.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,status:g});let b={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:h,size:a,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:m,ignoreFetchAbort:d,status:g,signal:S},y=this.#a.get(t);if(y===void 0){g&&(g.fetch="miss");let E=this.#_(t,y,b,p);return E.__returned=E}else{let E=this.#e[y];if(this.#c(E)){let Ct=s&&E.__staleWhileFetching!==void 0;return g&&(g.fetch="inflight",Ct&&(g.returnedStale=!0)),Ct?E.__staleWhileFetching:E.__returned=E}let x=this.#y(y);if(!w&&!x)return g&&(g.fetch="hit"),this.#M(y),i&&this.#k(y),g&&this.#v(g,y),E;let z=this.#_(t,y,b,p),B=z.__staleWhileFetching!==void 0&&s;return g&&(g.fetch=x?"stale":"refresh",B&&x&&(g.returnedStale=!0)),B?z.__staleWhileFetching:z.__returned=z}}get(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=e,h=this.#a.get(t);if(h!==void 0){let a=this.#e[h],l=this.#c(a);return o&&this.#v(o,h),this.#y(h)?(o&&(o.get="stale"),l?(o&&s&&a.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?a.__staleWhileFetching:void 0):(n||this.delete(t),o&&s&&(o.returnedStale=!0),s?a:void 0)):(o&&(o.get="hit"),l?a.__staleWhileFetching:(this.#M(h),i&&this.#k(h),a))}else o&&(o.get="miss")}#I(t,e){this.#w[e]=t,this.#m[t]=e}#M(t){t!==this.#u&&(t===this.#d?this.#d=this.#m[t]:this.#I(this.#w[t],this.#m[t]),this.#I(this.#u,t),this.#u=t)}delete(t){let e=!1;if(this.#l!==0){let s=this.#a.get(t);if(s!==void 0)if(e=!0,this.#l===1)this.clear();else{this.#x(s);let i=this.#e[s];if(this.#c(i)?i.__abortController.abort(new Error("deleted")):(this.#b||this.#p)&&(this.#b&&this.#n?.(i,t,"delete"),this.#p&&this.#g?.push([i,t,"delete"])),this.#a.delete(t),this.#o[s]=void 0,this.#e[s]=void 0,s===this.#u)this.#u=this.#w[s];else if(s===this.#d)this.#d=this.#m[s];else{let n=this.#w[s];this.#m[n]=this.#m[s];let o=this.#m[s];this.#w[o]=this.#w[s]}this.#l--,this.#S.push(s)}}if(this.#p&&this.#g?.length){let s=this.#g,i;for(;i=s?.shift();)this.#i?.(...i)}return e}clear(){for(let t of this.#O({allowStale:!0})){let e=this.#e[t];if(this.#c(e))e.__abortController.abort(new Error("deleted"));else{let s=this.#o[t];this.#b&&this.#n?.(e,s,"delete"),this.#p&&this.#g?.push([e,s,"delete"])}}if(this.#a.clear(),this.#e.fill(void 0),this.#o.fill(void 0),this.#E&&this.#R&&(this.#E.fill(0),this.#R.fill(0)),this.#A&&this.#A.fill(0),this.#d=0,this.#u=0,this.#S.length=0,this.#f=0,this.#l=0,this.#p&&this.#g){let t=this.#g,e;for(;e=t?.shift();)this.#i?.(...e)}}};import{posix as Ii,win32 as de}from"path";import{fileURLToPath as Pi}from"url";import*as $i from"fs";import{lstatSync as Wi,readdir as Bi,readdirSync as Ui,readlinkSync as Gi,realpathSync as Hi}from"fs";import{lstat as Ji,readdir as Ki,readlink as Vi,realpath as Yi}from"fs/promises";import{EventEmitter as ce}from"events";import ns from"stream";import{StringDecoder as Ci}from"string_decoder";var es=typeof process=="object"&&process?process:{stdout:null,stderr:null},Oi=r=>!!r&&typeof r=="object"&&(r instanceof V||r instanceof ns||Fi(r)||Di(r)),Fi=r=>!!r&&typeof r=="object"&&r instanceof ce&&typeof r.pipe=="function"&&r.pipe!==ns.Writable.prototype.pipe,Di=r=>!!r&&typeof r=="object"&&r instanceof ce&&typeof r.write=="function"&&typeof r.end=="function",H=Symbol("EOF"),q=Symbol("maybeEmitEnd"),K=Symbol("emittedEnd"),Dt=Symbol("emittingEnd"),ut=Symbol("emittedError"),Nt=Symbol("closed"),ss=Symbol("read"),Mt=Symbol("flush"),is=Symbol("flushChunk"),P=Symbol("encoding"),it=Symbol("decoder"),T=Symbol("flowing"),dt=Symbol("paused"),rt=Symbol("resume"),A=Symbol("buffer"),D=Symbol("pipes"),R=Symbol("bufferLength"),re=Symbol("bufferPush"),_t=Symbol("bufferShift"),C=Symbol("objectMode"),v=Symbol("destroyed"),ne=Symbol("error"),oe=Symbol("emitData"),rs=Symbol("emitEnd"),he=Symbol("emitEnd2"),U=Symbol("async"),ae=Symbol("abort"),Lt=Symbol("aborted"),pt=Symbol("signal"),X=Symbol("dataListeners"),M=Symbol("discarded"),mt=r=>Promise.resolve().then(r),Ni=r=>r(),Mi=r=>r==="end"||r==="finish"||r==="prefinish",_i=r=>r instanceof ArrayBuffer||!!r&&typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,Li=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),jt=class{src;dest;opts;ondrain;constructor(t,e,s){this.src=t,this.dest=e,this.opts=s,this.ondrain=()=>t[rt](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},le=class extends jt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,e,s){super(t,e,s),this.proxyErrors=i=>e.emit("error",i),t.on("error",this.proxyErrors)}},ji=r=>!!r.objectMode,zi=r=>!r.objectMode&&!!r.encoding&&r.encoding!=="buffer",V=class extends ce{[T]=!1;[dt]=!1;[D]=[];[A]=[];[C];[P];[U];[it];[H]=!1;[K]=!1;[Dt]=!1;[Nt]=!1;[ut]=null;[R]=0;[v]=!1;[pt];[Lt]=!1;[X]=0;[M]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");ji(e)?(this[C]=!0,this[P]=null):zi(e)?(this[P]=e.encoding,this[C]=!1):(this[C]=!1,this[P]=null),this[U]=!!e.async,this[it]=this[P]?new Ci(this[P]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[A]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[D]});let{signal:s}=e;s&&(this[pt]=s,s.aborted?this[ae]():s.addEventListener("abort",()=>this[ae]()))}get bufferLength(){return this[R]}get encoding(){return this[P]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[C]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[U]}set async(t){this[U]=this[U]||!!t}[ae](){this[Lt]=!0,this.emit("abort",this[pt]?.reason),this.destroy(this[pt]?.reason)}get aborted(){return this[Lt]}set aborted(t){}write(t,e,s){if(this[Lt])return!1;if(this[H])throw new Error("write after end");if(this[v])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof e=="function"&&(s=e,e="utf8"),e||(e="utf8");let i=this[U]?mt:Ni;if(!this[C]&&!Buffer.isBuffer(t)){if(Li(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(_i(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[C]?(this[T]&&this[R]!==0&&this[Mt](!0),this[T]?this.emit("data",t):this[re](t),this[R]!==0&&this.emit("readable"),s&&i(s),this[T]):t.length?(typeof t=="string"&&!(e===this[P]&&!this[it]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[P]&&(t=this[it].write(t)),this[T]&&this[R]!==0&&this[Mt](!0),this[T]?this.emit("data",t):this[re](t),this[R]!==0&&this.emit("readable"),s&&i(s),this[T]):(this[R]!==0&&this.emit("readable"),s&&i(s),this[T])}read(t){if(this[v])return null;if(this[M]=!1,this[R]===0||t===0||t&&t>this[R])return this[q](),null;this[C]&&(t=null),this[A].length>1&&!this[C]&&(this[A]=[this[P]?this[A].join(""):Buffer.concat(this[A],this[R])]);let e=this[ss](t||null,this[A][0]);return this[q](),e}[ss](t,e){if(this[C])this[_t]();else{let s=e;t===s.length||t===null?this[_t]():typeof s=="string"?(this[A][0]=s.slice(t),e=s.slice(0,t),this[R]-=t):(this[A][0]=s.subarray(t),e=s.subarray(0,t),this[R]-=t)}return this.emit("data",e),!this[A].length&&!this[H]&&this.emit("drain"),e}end(t,e,s){return typeof t=="function"&&(s=t,t=void 0),typeof e=="function"&&(s=e,e="utf8"),t!==void 0&&this.write(t,e),s&&this.once("end",s),this[H]=!0,this.writable=!1,(this[T]||!this[dt])&&this[q](),this}[rt](){this[v]||(!this[X]&&!this[D].length&&(this[M]=!0),this[dt]=!1,this[T]=!0,this.emit("resume"),this[A].length?this[Mt]():this[H]?this[q]():this.emit("drain"))}resume(){return this[rt]()}pause(){this[T]=!1,this[dt]=!0,this[M]=!1}get destroyed(){return this[v]}get flowing(){return this[T]}get paused(){return this[dt]}[re](t){this[C]?this[R]+=1:this[R]+=t.length,this[A].push(t)}[_t](){return this[C]?this[R]-=1:this[R]-=this[A][0].length,this[A].shift()}[Mt](t=!1){do;while(this[is](this[_t]())&&this[A].length);!t&&!this[A].length&&!this[H]&&this.emit("drain")}[is](t){return this.emit("data",t),this[T]}pipe(t,e){if(this[v])return t;this[M]=!1;let s=this[K];return e=e||{},t===es.stdout||t===es.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,s?e.end&&t.end():(this[D].push(e.proxyErrors?new le(this,t,e):new jt(this,t,e)),this[U]?mt(()=>this[rt]()):this[rt]()),t}unpipe(t){let e=this[D].find(s=>s.dest===t);e&&(this[D].length===1?(this[T]&&this[X]===0&&(this[T]=!1),this[D]=[]):this[D].splice(this[D].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let s=super.on(t,e);if(t==="data")this[M]=!1,this[X]++,!this[D].length&&!this[T]&&this[rt]();else if(t==="readable"&&this[R]!==0)super.emit("readable");else if(Mi(t)&&this[K])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[ut]){let i=e;this[U]?mt(()=>i.call(this,this[ut])):i.call(this,this[ut])}return s}removeListener(t,e){return this.off(t,e)}off(t,e){let s=super.off(t,e);return t==="data"&&(this[X]=this.listeners("data").length,this[X]===0&&!this[M]&&!this[D].length&&(this[T]=!1)),s}removeAllListeners(t){let e=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[X]=0,!this[M]&&!this[D].length&&(this[T]=!1)),e}get emittedEnd(){return this[K]}[q](){!this[Dt]&&!this[K]&&!this[v]&&this[A].length===0&&this[H]&&(this[Dt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Nt]&&this.emit("close"),this[Dt]=!1)}emit(t,...e){let s=e[0];if(t!=="error"&&t!=="close"&&t!==v&&this[v])return!1;if(t==="data")return!this[C]&&!s?!1:this[U]?(mt(()=>this[oe](s)),!0):this[oe](s);if(t==="end")return this[rs]();if(t==="close"){if(this[Nt]=!0,!this[K]&&!this[v])return!1;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(t==="error"){this[ut]=s,super.emit(ne,s);let n=!this[pt]||this.listeners("error").length?super.emit("error",s):!1;return this[q](),n}else if(t==="resume"){let n=super.emit("resume");return this[q](),n}else if(t==="finish"||t==="prefinish"){let n=super.emit(t);return this.removeAllListeners(t),n}let i=super.emit(t,...e);return this[q](),i}[oe](t){for(let s of this[D])s.dest.write(t)===!1&&this.pause();let e=this[M]?!1:super.emit("data",t);return this[q](),e}[rs](){return this[K]?!1:(this[K]=!0,this.readable=!1,this[U]?(mt(()=>this[he]()),!0):this[he]())}[he](){if(this[it]){let e=this[it].end();if(e){for(let s of this[D])s.dest.write(e);this[M]||super.emit("data",e)}}for(let e of this[D])e.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[C]||(t.dataLength=0);let e=this.promise();return this.on("data",s=>{t.push(s),this[C]||(t.dataLength+=s.length)}),await e,t}async concat(){if(this[C])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[P]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(v,()=>e(new Error("stream destroyed"))),this.on("error",s=>e(s)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[M]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[H])return e();let n,o,h=f=>{this.off("data",a),this.off("end",l),this.off(v,c),e(),o(f)},a=f=>{this.off("error",h),this.off("end",l),this.off(v,c),this.pause(),n({value:f,done:!!this[H]})},l=()=>{this.off("error",h),this.off("data",a),this.off(v,c),e(),n({done:!0,value:void 0})},c=()=>h(new Error("stream destroyed"));return new Promise((f,u)=>{o=u,n=f,this.once(v,c),this.once("error",h),this.once("end",l),this.once("data",a)})},throw:e,return:e,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[M]=!1;let t=!1,e=()=>(this.pause(),this.off(ne,e),this.off(v,e),this.off("end",e),t=!0,{done:!0,value:void 0}),s=()=>{if(t)return e();let i=this.read();return i===null?e():{done:!1,value:i}};return this.once("end",e),this.once(ne,e),this.once(v,e),{next:s,throw:e,return:e,[Symbol.iterator](){return this}}}destroy(t){if(this[v])return t?this.emit("error",t):this.emit(v),this;this[v]=!0,this[M]=!0,this[A].length=0,this[R]=0;let e=this;return typeof e.close=="function"&&!this[Nt]&&e.close(),t?this.emit("error",t):this.emit(v),this}static get isStream(){return Oi}};var qi=Hi.native,wt={lstatSync:Wi,readdir:Bi,readdirSync:Ui,readlinkSync:Gi,realpathSync:qi,promises:{lstat:Ji,readdir:Ki,readlink:Vi,realpath:Yi}},cs=r=>!r||r===wt||r===$i?wt:{...wt,...r,promises:{...wt.promises,...r.promises||{}}},fs=/^\\\\\?\\([a-z]:)\\?$/i,Xi=r=>r.replace(/\//g,"\\").replace(fs,"$1\\"),Zi=/[\\\/]/,j=0,us=1,ds=2,G=4,ps=6,ms=8,Z=10,gs=12,L=15,gt=~L,fe=16,os=32,yt=64,$=128,zt=256,Pt=512,hs=yt|$|Pt,Qi=1023,ue=r=>r.isFile()?ms:r.isDirectory()?G:r.isSymbolicLink()?Z:r.isCharacterDevice()?ds:r.isBlockDevice()?ps:r.isSocket()?gs:r.isFIFO()?us:j,as=new Map,bt=r=>{let t=as.get(r);if(t)return t;let e=r.normalize("NFKD");return as.set(r,e),e},ls=new Map,It=r=>{let t=ls.get(r);if(t)return t;let e=bt(r.toLowerCase());return ls.set(r,e),e},$t=class extends ft{constructor(){super({max:256})}},pe=class extends ft{constructor(t=16*1024){super({maxSize:t,sizeCalculation:e=>e.length+1})}},ws=Symbol("PathScurry setAsCwd"),O=class{name;root;roots;parent;nocase;#t;#s;get dev(){return this.#s}#n;get mode(){return this.#n}#i;get nlink(){return this.#i}#h;get uid(){return this.#h}#l;get gid(){return this.#l}#f;get rdev(){return this.#f}#a;get blksize(){return this.#a}#o;get ino(){return this.#o}#e;get size(){return this.#e}#m;get blocks(){return this.#m}#w;get atimeMs(){return this.#w}#d;get mtimeMs(){return this.#d}#u;get ctimeMs(){return this.#u}#S;get birthtimeMs(){return this.#S}#g;get atime(){return this.#g}#A;get mtime(){return this.#A}#R;get ctime(){return this.#R}#E;get birthtime(){return this.#E}#b;#C;#p;#F;#k;#v;#r;#y;#D;#x;get path(){return(this.parent||this).fullpath()}constructor(t,e=j,s,i,n,o,h){this.name=t,this.#b=n?It(t):bt(t),this.#r=e&Qi,this.nocase=n,this.roots=i,this.root=s||this,this.#y=o,this.#p=h.fullpath,this.#k=h.relative,this.#v=h.relativePosix,this.parent=h.parent,this.parent?this.#t=this.parent.#t:this.#t=cs(h.fs)}depth(){return this.#C!==void 0?this.#C:this.parent?this.#C=this.parent.depth()+1:this.#C=0}childrenCache(){return this.#y}resolve(t){if(!t)return this;let e=this.getRootString(t),i=t.substring(e.length).split(this.splitSep);return e?this.getRoot(e).#L(i):this.#L(i)}#L(t){let e=this;for(let s of t)e=e.child(s);return e}children(){let t=this.#y.get(this);if(t)return t;let e=Object.assign([],{provisional:0});return this.#y.set(this,e),this.#r&=~fe,e}child(t,e){if(t===""||t===".")return this;if(t==="..")return this.parent||this;let s=this.children(),i=this.nocase?It(t):bt(t);for(let a of s)if(a.#b===i)return a;let n=this.parent?this.sep:"",o=this.#p?this.#p+n+t:void 0,h=this.newChild(t,j,{...e,parent:this,fullpath:o});return this.canReaddir()||(h.#r|=$),s.push(h),h}relative(){if(this.#k!==void 0)return this.#k;let t=this.name,e=this.parent;if(!e)return this.#k=this.name;let s=e.relative();return s+(!s||!e.parent?"":this.sep)+t}relativePosix(){if(this.sep==="/")return this.relative();if(this.#v!==void 0)return this.#v;let t=this.name,e=this.parent;if(!e)return this.#v=this.fullpathPosix();let s=e.relativePosix();return s+(!s||!e.parent?"":"/")+t}fullpath(){if(this.#p!==void 0)return this.#p;let t=this.name,e=this.parent;if(!e)return this.#p=this.name;let i=e.fullpath()+(e.parent?this.sep:"")+t;return this.#p=i}fullpathPosix(){if(this.#F!==void 0)return this.#F;if(this.sep==="/")return this.#F=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(i)?this.#F=`//?/${i}`:this.#F=i}let t=this.parent,e=t.fullpathPosix(),s=e+(!e||!t.parent?"":"/")+this.name;return this.#F=s}isUnknown(){return(this.#r&L)===j}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#r&L)===ms}isDirectory(){return(this.#r&L)===G}isCharacterDevice(){return(this.#r&L)===ds}isBlockDevice(){return(this.#r&L)===ps}isFIFO(){return(this.#r&L)===us}isSocket(){return(this.#r&L)===gs}isSymbolicLink(){return(this.#r&Z)===Z}lstatCached(){return this.#r&os?this:void 0}readlinkCached(){return this.#D}realpathCached(){return this.#x}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#D)return!0;if(!this.parent)return!1;let t=this.#r&L;return!(t!==j&&t!==Z||this.#r&zt||this.#r&$)}calledReaddir(){return!!(this.#r&fe)}isENOENT(){return!!(this.#r&$)}isNamed(t){return this.nocase?this.#b===It(t):this.#b===bt(t)}async readlink(){let t=this.#D;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=await this.#t.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(e);if(s)return this.#D=s}catch(e){this.#I(e.code);return}}readlinkSync(){let t=this.#D;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=this.#t.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(e);if(s)return this.#D=s}catch(e){this.#I(e.code);return}}#j(t){this.#r|=fe;for(let e=t.provisional;es(null,t))}readdirCB(t,e=!1){if(!this.canReaddir()){e?t(null,[]):queueMicrotask(()=>t(null,[]));return}let s=this.children();if(this.calledReaddir()){let n=s.slice(0,s.provisional);e?t(null,n):queueMicrotask(()=>t(null,n));return}if(this.#$.push(t),this.#W)return;this.#W=!0;let i=this.fullpath();this.#t.readdir(i,{withFileTypes:!0},(n,o)=>{if(n)this.#_(n.code),s.provisional=0;else{for(let h of o)this.#M(h,s);this.#j(s)}this.#q(s.slice(0,s.provisional))})}#P;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();if(this.#P)await this.#P;else{let s=()=>{};this.#P=new Promise(i=>s=i);try{for(let i of await this.#t.promises.readdir(e,{withFileTypes:!0}))this.#M(i,t);this.#j(t)}catch(i){this.#_(i.code),t.provisional=0}this.#P=void 0,s()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();try{for(let s of this.#t.readdirSync(e,{withFileTypes:!0}))this.#M(s,t);this.#j(t)}catch(s){this.#_(s.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#r&hs)return!1;let t=L&this.#r;return t===j||t===G||t===Z}shouldWalk(t,e){return(this.#r&G)===G&&!(this.#r&hs)&&!t.has(this)&&(!e||e(this))}async realpath(){if(this.#x)return this.#x;if(!((Pt|zt|$)&this.#r))try{let t=await this.#t.promises.realpath(this.fullpath());return this.#x=this.resolve(t)}catch{this.#z()}}realpathSync(){if(this.#x)return this.#x;if(!((Pt|zt|$)&this.#r))try{let t=this.#t.realpathSync(this.fullpath());return this.#x=this.resolve(t)}catch{this.#z()}}[ws](t){if(t===this)return;let e=new Set([]),s=[],i=this;for(;i&&i.parent;)e.add(i),i.#k=s.join(this.sep),i.#v=s.join("/"),i=i.parent,s.push("..");for(i=t;i&&i.parent&&!e.has(i);)i.#k=void 0,i.#v=void 0,i=i.parent}},Wt=class r extends O{sep="\\";splitSep=Zi;constructor(t,e=j,s,i,n,o,h){super(t,e,s,i,n,o,h)}newChild(t,e=j,s={}){return new r(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return de.parse(t).root}getRoot(t){if(t=Xi(t.toUpperCase()),t===this.root.name)return this.root;for(let[e,s]of Object.entries(this.roots))if(this.sameRoot(t,e))return this.roots[t]=s;return this.roots[t]=new nt(t,this).root}sameRoot(t,e=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(fs,"$1\\"),t===e}},Bt=class r extends O{splitSep="/";sep="/";constructor(t,e=j,s,i,n,o,h){super(t,e,s,i,n,o,h)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,e=j,s={}){return new r(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}},Ut=class{root;rootPath;roots;cwd;#t;#s;#n;nocase;#i;constructor(t=process.cwd(),e,s,{nocase:i,childrenCacheSize:n=16*1024,fs:o=wt}={}){this.#i=cs(o),(t instanceof URL||t.startsWith("file://"))&&(t=Pi(t));let h=e.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(h),this.#t=new $t,this.#s=new $t,this.#n=new pe(n);let a=h.substring(this.rootPath.length).split(s);if(a.length===1&&!a[0]&&a.pop(),i===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=i,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let l=this.root,c=a.length-1,f=e.sep,u=this.rootPath,d=!1;for(let m of a){let p=c--;l=l.child(m,{relative:new Array(p).fill("..").join(f),relativePosix:new Array(p).fill("..").join("/"),fullpath:u+=(d?"":f)+m}),d=!0}this.cwd=l}depth(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let e="";for(let n=t.length-1;n>=0;n--){let o=t[n];if(!(!o||o===".")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#t.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpath();return this.#t.set(e,i),i}resolvePosix(...t){let e="";for(let n=t.length-1;n>=0;n--){let o=t[n];if(!(!o||o===".")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#s.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpathPosix();return this.#s.set(e,i),i}relative(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,e={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s}=e;if(t.canReaddir()){let i=await t.readdir();return s?i:i.map(n=>n.name)}else return[]}readdirSync(t=this.cwd,e={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0}=e;return t.canReaddir()?s?t.readdirSync():t.readdirSync().map(i=>i.name):[]}async lstat(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=await t.readlink();return e?s:s?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=t.readlinkSync();return e?s:s?.fullpath()}async realpath(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=await t.realpath();return e?s:s?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=t.realpathSync();return e?s:s?.fullpath()}async walk(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=[];(!n||n(t))&&h.push(s?t:t.fullpath());let a=new Set,l=(f,u)=>{a.add(f),f.readdirCB((d,m)=>{if(d)return u(d);let p=m.length;if(!p)return u();let w=()=>{--p===0&&u()};for(let g of m)(!n||n(g))&&h.push(s?g:g.fullpath()),i&&g.isSymbolicLink()?g.realpath().then(S=>S?.isUnknown()?S.lstat():S).then(S=>S?.shouldWalk(a,o)?l(S,w):w()):g.shouldWalk(a,o)?l(g,w):w()},!0)},c=t;return new Promise((f,u)=>{l(c,d=>{if(d)return u(d);f(h)})})}walkSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=[];(!n||n(t))&&h.push(s?t:t.fullpath());let a=new Set([t]);for(let l of a){let c=l.readdirSync();for(let f of c){(!n||n(f))&&h.push(s?f:f.fullpath());let u=f;if(f.isSymbolicLink()){if(!(i&&(u=f.realpathSync())))continue;u.isUnknown()&&u.lstatSync()}u.shouldWalk(a,o)&&a.add(u)}}return h}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,e={}){return typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd),this.stream(t,e)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e;(!n||n(t))&&(yield s?t:t.fullpath());let h=new Set([t]);for(let a of h){let l=a.readdirSync();for(let c of l){(!n||n(c))&&(yield s?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(i&&(f=c.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(h,o)&&h.add(f)}}}stream(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=new V({objectMode:!0});(!n||n(t))&&h.write(s?t:t.fullpath());let a=new Set,l=[t],c=0,f=()=>{let u=!1;for(;!u;){let d=l.shift();if(!d){c===0&&h.end();return}c++,a.add(d);let m=(w,g,S=!1)=>{if(w)return h.emit("error",w);if(i&&!S){let b=[];for(let y of g)y.isSymbolicLink()&&b.push(y.realpath().then(E=>E?.isUnknown()?E.lstat():E));if(b.length){Promise.all(b).then(()=>m(null,g,!0));return}}for(let b of g)b&&(!n||n(b))&&(h.write(s?b:b.fullpath())||(u=!0));c--;for(let b of g){let y=b.realpathCached()||b;y.shouldWalk(a,o)&&l.push(y)}u&&!h.flowing?h.once("drain",f):p||f()},p=!0;d.readdirCB(m,!0),p=!1}};return f(),h}streamSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=new V({objectMode:!0}),a=new Set;(!n||n(t))&&h.write(s?t:t.fullpath());let l=[t],c=0,f=()=>{let u=!1;for(;!u;){let d=l.shift();if(!d){c===0&&h.end();return}c++,a.add(d);let m=d.readdirSync();for(let p of m)(!n||n(p))&&(h.write(s?p:p.fullpath())||(u=!0));c--;for(let p of m){let w=p;if(p.isSymbolicLink()){if(!(i&&(w=p.realpathSync())))continue;w.isUnknown()&&w.lstatSync()}w.shouldWalk(a,o)&&l.push(w)}}u&&!h.flowing&&h.once("drain",f)};return f(),h}chdir(t=this.cwd){let e=this.cwd;this.cwd=typeof t=="string"?this.cwd.resolve(t):t,this.cwd[ws](e)}},nt=class extends Ut{sep="\\";constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,de,"\\",{...e,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(t){return de.parse(t).root.toUpperCase()}newRoot(t){return new Wt(this.rootPath,G,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")||t.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(t)}},ot=class extends Ut{sep="/";constructor(t=process.cwd(),e={}){let{nocase:s=!1}=e;super(t,Ii,"/",{...e,nocase:s}),this.nocase=s}parseRootPath(t){return"/"}newRoot(t){return new Bt(this.rootPath,G,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")}},St=class extends ot{constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,{...e,nocase:s})}},an=process.platform==="win32"?Wt:Bt,ys=process.platform==="win32"?nt:process.platform==="darwin"?St:ot;import{fileURLToPath as rr}from"url";var tr=r=>r.length>=1,er=r=>r.length>=1,ht=class r{#t;#s;#n;length;#i;#h;#l;#f;#a;#o;#e=!0;constructor(t,e,s,i){if(!tr(t))throw new TypeError("empty pattern list");if(!er(e))throw new TypeError("empty glob list");if(e.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#t=t,this.#s=e,this.#n=s,this.#i=i,this.#n===0){if(this.isUNC()){let[n,o,h,a,...l]=this.#t,[c,f,u,d,...m]=this.#s;l[0]===""&&(l.shift(),m.shift());let p=[n,o,h,a,""].join("/"),w=[c,f,u,d,""].join("/");this.#t=[p,...l],this.#s=[w,...m],this.length=this.#t.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#t,[h,...a]=this.#s;o[0]===""&&(o.shift(),a.shift());let l=n+"/",c=h+"/";this.#t=[l,...o],this.#s=[c,...a],this.length=this.#t.length}}}pattern(){return this.#t[this.#n]}isString(){return typeof this.#t[this.#n]=="string"}isGlobstar(){return this.#t[this.#n]===k}isRegExp(){return this.#t[this.#n]instanceof RegExp}globString(){return this.#l=this.#l||(this.#n===0?this.isAbsolute()?this.#s[0]+this.#s.slice(1).join("/"):this.#s.join("/"):this.#s.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#h!==void 0?this.#h:this.hasMore()?(this.#h=new r(this.#t,this.#s,this.#n+1,this.#i),this.#h.#o=this.#o,this.#h.#a=this.#a,this.#h.#f=this.#f,this.#h):this.#h=null}isUNC(){let t=this.#t;return this.#a!==void 0?this.#a:this.#a=this.#i==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#t;return this.#f!==void 0?this.#f:this.#f=this.#i==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#t;return this.#o!==void 0?this.#o:this.#o=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#t[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#e)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#e?!1:(this.#e=!1,!0)}};var sr=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Et=class{relative;relativeChildren;absolute;absoluteChildren;constructor(t,{nobrace:e,nocase:s,noext:i,noglobstar:n,platform:o=sr}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[];let h={dot:!0,nobrace:e,nocase:s,noext:i,noglobstar:n,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let a of t){let l=new N(a,h);for(let c=0;c[t,!!(e&2),!!(e&1)])}},we=class{store=new Map;add(t,e){if(!t.canReaddir())return;let s=this.store.get(t);s?s.find(i=>i.globString()===e.globString())||s.push(e):this.store.set(t,[e])}get(t){let e=this.store.get(t);if(!e)throw new Error("attempting to walk unknown path");return e}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}},vt=class r{hasWalkedCache;matches=new ge;subwalks=new we;patterns;follow;dot;opts;constructor(t,e){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=e?e.copy():new me}processPatterns(t,e){this.patterns=e;let s=e.map(i=>[t,i]);for(let[i,n]of s){this.hasWalkedCache.storeWalked(i,n);let o=n.root(),h=n.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let a,l,c=!1;for(;typeof(a=n.pattern())=="string"&&(l=n.rest());)i=i.resolve(a),n=l,c=!0;if(a=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(i,n))continue;this.hasWalkedCache.storeWalked(i,n)}if(typeof a=="string"){let f=a===".."||a===""||a===".";this.matches.add(i.resolve(a),h,f);continue}else if(a===k){(!i.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(i,n);let f=l?.pattern(),u=l?.rest();if(!l||(f===""||f===".")&&!u)this.matches.add(i,h,f===""||f===".");else if(f===".."){let d=i.parent||i;u?this.hasWalkedCache.hasWalked(d,u)||this.subwalks.add(d,u):this.matches.add(d,h,!0)}}else a instanceof RegExp&&this.subwalks.add(i,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new r(this.opts,this.hasWalkedCache)}filterEntries(t,e){let s=this.subwalks.get(t),i=this.child();for(let n of e)for(let o of s){let h=o.isAbsolute(),a=o.pattern(),l=o.rest();a===k?i.testGlobstar(n,o,l,h):a instanceof RegExp?i.testRegExp(n,a,l,h):i.testString(n,a,l,h)}return i}testGlobstar(t,e,s,i){if((this.dot||!t.name.startsWith("."))&&(e.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,e):t.isSymbolicLink()&&(s&&e.checkFollowGlobstar()?this.subwalks.add(t,s):e.markFollowGlobstar()&&this.subwalks.add(t,e)))),s){let n=s.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,s.rest(),i);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,s)}else n instanceof RegExp&&this.testRegExp(t,n,s.rest(),i)}}testRegExp(t,e,s,i){e.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,e,s,i){t.isNamed(e)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}};var ir=(r,t)=>typeof r=="string"?new Et([r],t):Array.isArray(r)?new Et(r,t):r,Gt=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#t=[];#s;#n;signal;maxDepth;constructor(t,e,s){this.patterns=t,this.path=e,this.opts=s,this.#n=!s.posix&&s.platform==="win32"?"\\":"/",s.ignore&&(this.#s=ir(s.ignore,s)),this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener("abort",()=>{this.#t.length=0}))}#i(t){return this.seen.has(t)||!!this.#s?.ignored?.(t)}#h(t){return!!this.#s?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#t.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#t.push(t):t())}async matchCheck(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||await t.realpath(),!s)return;t=s}let n=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&n?.isSymbolicLink()){let o=await n.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(n,e)}matchCheckTest(t,e){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!e||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#i(t)?t:void 0}matchCheckSync(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||t.realpathSync(),!s)return;t=s}let n=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&n?.isSymbolicLink()){let o=n.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(n,e)}matchFinish(t,e){if(this.#i(t))return;let s=this.opts.absolute===void 0?e:this.opts.absolute;this.seen.add(t);let i=this.opts.mark&&t.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(t);else if(s){let n=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(n+i)}else{let n=this.opts.posix?t.relativePosix():t.relative(),o=this.opts.dotRelative&&!n.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(n?o+n+i:"."+i)}}async match(t,e,s){let i=await this.matchCheck(t,s);i&&this.matchFinish(i,e)}matchSync(t,e,s){let i=this.matchCheckSync(t,s);i&&this.matchFinish(i,e)}walkCB(t,e,s){this.signal?.aborted&&s(),this.walkCB2(t,e,new vt(this.opts),s)}walkCB2(t,e,s,i){if(this.#h(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(t,e,s,i));return}s.processPatterns(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||(n++,this.match(h,a,l).then(()=>o()));for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;n++;let a=h.readdirCached();h.calledReaddir()?this.walkCB3(h,a,s,o):h.readdirCB((l,c)=>this.walkCB3(h,c,s,o),!0)}o()}walkCB3(t,e,s,i){s=s.filterEntries(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||(n++,this.match(h,a,l).then(()=>o()));for(let[h,a]of s.subwalks.entries())n++,this.walkCB2(h,a,s.child(),o);o()}walkCBSync(t,e,s){this.signal?.aborted&&s(),this.walkCB2Sync(t,e,new vt(this.opts),s)}walkCB2Sync(t,e,s,i){if(this.#h(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(t,e,s,i));return}s.processPatterns(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||this.matchSync(h,a,l);for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;n++;let a=h.readdirSync();this.walkCB3Sync(h,a,s,o)}o()}walkCB3Sync(t,e,s,i){s=s.filterEntries(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||this.matchSync(h,a,l);for(let[h,a]of s.subwalks.entries())n++,this.walkCB2Sync(h,a,s.child(),o);o()}},xt=class extends Gt{matches;constructor(t,e,s){super(t,e,s),this.matches=new Set}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,e)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?e(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},Tt=class extends Gt{results;constructor(t,e,s){super(t,e,s),this.results=new V({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var nr=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",W=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;opts;patterns;constructor(t,e){if(!e)throw new TypeError("glob options required");if(this.withFileTypes=!!e.withFileTypes,this.signal=e.signal,this.follow=!!e.follow,this.dot=!!e.dot,this.dotRelative=!!e.dotRelative,this.nodir=!!e.nodir,this.mark=!!e.mark,e.cwd?(e.cwd instanceof URL||e.cwd.startsWith("file://"))&&(e.cwd=rr(e.cwd)):this.cwd="",this.cwd=e.cwd||"",this.root=e.root,this.magicalBraces=!!e.magicalBraces,this.nobrace=!!e.nobrace,this.noext=!!e.noext,this.realpath=!!e.realpath,this.absolute=e.absolute,this.noglobstar=!!e.noglobstar,this.matchBase=!!e.matchBase,this.maxDepth=typeof e.maxDepth=="number"?e.maxDepth:1/0,this.stat=!!e.stat,this.ignore=e.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof t=="string"&&(t=[t]),this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(a=>a.replace(/\\/g,"/"))),this.matchBase){if(e.noglobstar)throw new TypeError("base matching requires globstar");t=t.map(a=>a.includes("/")?a:`./**/${a}`)}if(this.pattern=t,this.platform=e.platform||nr,this.opts={...e,platform:this.platform},e.scurry){if(this.scurry=e.scurry,e.nocase!==void 0&&e.nocase!==e.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let a=e.platform==="win32"?nt:e.platform==="darwin"?St:e.platform?ot:ys;this.scurry=new a(this.cwd,{nocase:e.nocase,fs:e.fs})}this.nocase=this.scurry.nocase;let s=this.platform==="darwin"||this.platform==="win32",i={...e,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},n=this.pattern.map(a=>new N(a,i)),[o,h]=n.reduce((a,l)=>(a[0].push(...l.set),a[1].push(...l.globParts),a),[[],[]]);this.patterns=o.map((a,l)=>{let c=h[l];if(!c)throw new Error("invalid pattern object");return new ht(a,c,0,this.platform)})}async walk(){return[...await new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).walk()]}walkSync(){return[...new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).walkSync()]}stream(){return new Tt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).stream()}streamSync(){return new Tt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};var ye=(r,t={})=>{Array.isArray(r)||(r=[r]);for(let e of r)if(new N(e,t).hasMagic())return!0;return!1};function Ht(r,t={}){return new W(r,t).streamSync()}function Es(r,t={}){return new W(r,t).stream()}function qt(r,t={}){return new W(r,t).walkSync()}async function bs(r,t={}){return new W(r,t).walk()}function Jt(r,t={}){return new W(r,t).iterateSync()}function vs(r,t={}){return new W(r,t).iterate()}var or=Ht,hr=Object.assign(Es,{sync:Ht}),ar=Jt,lr=Object.assign(vs,{sync:Jt}),cr=Object.assign(qt,{stream:Ht,iterate:Jt}),Ss=Object.assign(bs,{glob:bs,globSync:qt,sync:cr,globStream:Es,stream:hr,globStreamSync:Ht,streamSync:or,globIterate:vs,iterate:lr,globIterateSync:Jt,iterateSync:ar,Glob:W,hasMagic:ye,escape:tt,unescape:I});Ss.glob=Ss;import fr from"node:fs";function xs(r){return JSON.parse(fr.readFileSync(r).toString("utf-8"))}function Kt(r){return xs(r)}function be(r){return xs(r)}function Y(r){return(process.env[`INPUT_${r.toUpperCase()}`]||"").trim()}function Ts(r){let t=ur(r);Vt.mkdirSync(Yt.join(At.cwd(),r.analyzerDirectory),{recursive:!0});let e=Yt.join(At.cwd(),r.analyzerDirectory,"bundle_analysis.json");Vt.writeFileSync(e,JSON.stringify(t,null,2)),Xt.log(`Wrote ${e}`)}function Se(r){return r.metafiles.flatMap(t=>qt(Yt.join(At.cwd(),t),{nodir:!0}).map(e=>({relativePath:Yt.relative(At.cwd(),e),absolutePath:e})))}function ur(r){let t={};return Se(r).reduce((e,{relativePath:s,absolutePath:i})=>{try{Vt.accessSync(i,Vt.constants.R_OK)}catch{Xt.error(`No meta file found at "${i}" - a path to meta file may be wrong, or esbuild is not executed.`),At.exit(1)}let n=Kt(i);return Object.entries(n.outputs).reduce((o,h)=>{let[a,l]=h;return r.includeExtensions.some(c=>a.toLowerCase().endsWith(c))&&(o[`${s} -> ${a}`]={bytes:l.bytes,metafile:s,outfile:a}),o},e),e},t)}function ks(r){let t=!1,e=`## \u{1F4E6} esbuild Bundle Analysis for ${r.name} This analysis was generated by [esbuild-bundle-analyzer](https://github.com/exoego/esbuild-bundle-analyzer). \u{1F916} `,s=be(Rt.join(process.cwd(),r.analyzerDirectory,"bundle_analysis.json")),i=mr(r),n=gr(r),h=[...new Set([...Object.keys(s),...Object.keys(i)])].sort().map(a=>{let l=s[a],c=i[a];if(!l)return t=!0,{...c,baseBytes:-1,remark:"deleted",tree:void 0};let f=n.get(Cs(l.metafile,l.outfile));if(!c)return t=!0,{...l,baseBytes:-1,remark:"added",tree:f};let u=l.bytes-c.bytes;return u!==0&&(t=!0),{...l,baseBytes:c.bytes,tree:f,remark:Math.sign(u)?"increased":"decreased"}});t?(e+=wr(h,r.percentExtraAttention),e+=br(h,r.topNLargestPaths),e+=pr(r)):e+="This PR introduced no changes to the esbuild bundle! \u{1F64C}",e+=``,dr(r,e)}function Cs(r,t){return`${r} -> ${t}`}function dr(r,t){ve.mkdirSync(Rt.join(process.cwd(),r.analyzerDirectory),{recursive:!0}),ve.writeFileSync(Rt.join(process.cwd(),r.analyzerDirectory,"bundle_analysis_comment.txt"),t.trim())}function pr(r){return r.showDetails?` @@ -15,7 +15,7 @@ This analysis was generated by [esbuild-bundle-analyzer](https://github.com/exoe
  • \u{1F195}: The out file is newly found: will be added to base branch.
  • -`:""}function mr(r){try{return be(Rt.join(process.cwd(),r.analyzerDirectory,"base/bundle/bundle_analysis.json"))}catch{return{}}}function gr(r){function t(i){let n={name:"",path:"",value:0,children:[]};for(let[o,{bytesInOutput:h}]of Object.entries(i)){let a=o.split("/");e(n,a,h)}return n}function e(i,n,o){let h=n.shift();if(h===void 0){i.value+=o;return}let a=i.children.find(l=>l.name===h);a||(a={name:h,path:`${i.path}/${h}`.replace(/^\//,""),value:0,children:[]},i.children.push(a)),i.value+=o,e(a,n,o)}let s=new Map;if(r.topNLargestPaths<=0)return s;for(let{relativePath:i,absolutePath:n}of Se(r)){let o=Kt(n);for(let[h,a]of Object.entries(o.outputs)){let l=t(a.inputs);s.set(Cs(i,h),l),ve.writeFileSync(Rt.join(process.cwd(),r.analyzerDirectory,"tree.json"),JSON.stringify(l,null,2))}}return s}var Zt="\xA0";function xe(r){let t=r<0?"-":"",e=Math.abs(r);if(e<1e3)return`${t}${e}${Zt}B`;if(e<1e3*1e3)return`${t}${(e/1e3).toFixed(2)}${Zt}KB`;if(e<1e3*1e3*1e3)return`${t}${(e/1e3/1e3).toFixed(2)}${Zt}MB`;if(e<1e3*1e3*1e3*1e3)return`${t}${(e/1e3/1e3/1e3).toFixed(2)}${Zt}GB`;throw new Error("Too large file size!! Are you sure?")}function wr(r,t){return` +`:""}function mr(r){try{let t=be(Rt.join(process.cwd(),r.analyzerDirectory,"base/bundle/bundle_analysis.json"));return console.info("Base analysis found.",t),t}catch{return console.warn("No base analysis found. First setup or all artifacts are expired."),{}}}function gr(r){function t(i){let n={name:"",path:"",value:0,children:[]};for(let[o,{bytesInOutput:h}]of Object.entries(i)){let a=o.split("/");e(n,a,h)}return n}function e(i,n,o){let h=n.shift();if(h===void 0){i.value+=o;return}let a=i.children.find(l=>l.name===h);a||(a={name:h,path:`${i.path}/${h}`.replace(/^\//,""),value:0,children:[]},i.children.push(a)),i.value+=o,e(a,n,o)}let s=new Map;if(r.topNLargestPaths<=0)return s;for(let{relativePath:i,absolutePath:n}of Se(r)){let o=Kt(n);for(let[h,a]of Object.entries(o.outputs)){let l=t(a.inputs);s.set(Cs(i,h),l),ve.writeFileSync(Rt.join(process.cwd(),r.analyzerDirectory,"tree.json"),JSON.stringify(l,null,2))}}return s}var Zt="\xA0";function xe(r){let t=r<0?"-":"",e=Math.abs(r);if(e<1e3)return`${t}${e}${Zt}B`;if(e<1e3*1e3)return`${t}${(e/1e3).toFixed(2)}${Zt}KB`;if(e<1e3*1e3*1e3)return`${t}${(e/1e3/1e3).toFixed(2)}${Zt}MB`;if(e<1e3*1e3*1e3*1e3)return`${t}${(e/1e3/1e3/1e3).toFixed(2)}${Zt}GB`;throw new Error("Too large file size!! Are you sure?")}function wr(r,t){return` Meta File | Out File | Size (raw) | Note ----------|----------|-----------:|------ ${r.map(s=>`${s.metafile} | ${s.outfile} | ${Er(s)} | ${vr(s,t)} @@ -31,4 +31,4 @@ ${r.map(s=>`${s.metafile} | ${s.outfile} | ${Er(s)} | ${vr(s,t)} `}if(o){let h=i-n[0].value,a=As(h,i);e+=`| (other) | ${Rs(a,h)} | `}}return e+=` `,e}function Rs(r,t){return`\${{\\color{Goldenrod}{ ${Sr(r/100)} }}}$ ${r.toFixed(1)}%, ${xe(t)}`}var Os=["","\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588"],Ee=1/(Os.length-1);function Sr(r,t=25,e=0,s=1){let i=r*t,n=Math.floor(i),o=i-n,h=Math.round(Ee*Math.floor(o/Ee)/Ee);return"\u2588".repeat(n)+Os[h]}function Er(r){return xe(r.bytes)}function vr(r,t){if(r.remark==="deleted")return"\u{1F5D1}\uFE0F Deleted";if(r.remark==="added")return"\u{1F195} Added";let e=r.bytes-r.baseBytes;if(e!==0){let s=e/r.baseBytes*100;return`${xr(s,t)}${xe(e)} (${Fs(s)}${s.toFixed(1)}%)`}return"\u2705 No change"}function Fs(r){return r<0?"":"+"}function xr(r,t){let e;return r>0&&r=t?e="\u203C\uFE0F":e="\u2705 ",`${e} ${Fs(r)}`}function Ar(){let r=Y("metafiles");if(!r)throw new Error("metafiles is not specified");let t=Y("name");if(!t)throw new Error("name is not specified");return{percentExtraAttention:Number.parseInt(Y("percent_extra_attention")||"20",10),showDetails:["true","True","TRUE"].includes(Y("show_details")||"true"),topNLargestPaths:Number.parseInt(Y("top_n_largest_paths")||"20",10),includeExtensions:(Y("include_extensions")||".js,.mjs,.cjs").split(","),name:t,analyzerDirectory:Y("analyze_directory")||".analyzer",metafiles:r.split(",")}}function Rr(r=Ar()){Ts(r),ks(r)}import.meta.url===Tr(process.argv[1]).href&&Rr();export{Rr as run}; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9jb21wYXJlLnRzIiwgIi4uL3NyYy9yZXBvcnQudHMiLCAiLi4vc3JjL3V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBcIi4vY29tcGFyZVwiO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IElucHV0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGdldFNpbmdsZUlucHV0IH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gZ2V0SW5wdXQoKTogSW5wdXQge1xuXHRjb25zdCByYXdNZXRhZmlsZXMgPSBnZXRTaW5nbGVJbnB1dChcIm1ldGFmaWxlc1wiKTtcblx0aWYgKCFyYXdNZXRhZmlsZXMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJtZXRhZmlsZXMgaXMgbm90IHNwZWNpZmllZFwiKTtcblx0fVxuXHRjb25zdCBuYW1lID0gZ2V0U2luZ2xlSW5wdXQoXCJuYW1lXCIpO1xuXHRpZiAoIW5hbWUpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJuYW1lIGlzIG5vdCBzcGVjaWZpZWRcIik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHRwZXJjZW50RXh0cmFBdHRlbnRpb246IE51bWJlci5wYXJzZUludChcblx0XHRcdGdldFNpbmdsZUlucHV0KFwicGVyY2VudF9leHRyYV9hdHRlbnRpb25cIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRzaG93RGV0YWlsczogW1widHJ1ZVwiLCBcIlRydWVcIiwgXCJUUlVFXCJdLmluY2x1ZGVzKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJzaG93X2RldGFpbHNcIikgfHwgXCJ0cnVlXCIsXG5cdFx0KSxcblx0XHR0b3BOTGFyZ2VzdFBhdGhzOiBOdW1iZXIucGFyc2VJbnQoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcInRvcF9uX2xhcmdlc3RfcGF0aHNcIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRpbmNsdWRlRXh0ZW5zaW9uczogKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJpbmNsdWRlX2V4dGVuc2lvbnNcIikgfHwgXCIuanMsLm1qcywuY2pzXCJcblx0XHQpLnNwbGl0KFwiLFwiKSxcblx0XHRuYW1lLFxuXHRcdGFuYWx5emVyRGlyZWN0b3J5OiBnZXRTaW5nbGVJbnB1dChcImFuYWx5emVfZGlyZWN0b3J5XCIpIHx8IFwiLmFuYWx5emVyXCIsXG5cdFx0bWV0YWZpbGVzOiByYXdNZXRhZmlsZXMuc3BsaXQoXCIsXCIpLFxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGlucHV0OiBJbnB1dCA9IGdldElucHV0KCkpOiB2b2lkIHtcblx0cmVwb3J0KGlucHV0KTtcblx0Y29tcGFyZShpbnB1dCk7XG59XG5cbmlmIChpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwocHJvY2Vzcy5hcmd2WzFdKS5ocmVmKSB7XG5cdHJ1bigpO1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZmluZE1ldGFmaWxlcyB9IGZyb20gXCIuL3JlcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBDb21wYXJlUmVzdWx0LCBJbnB1dCwgUmVwb3J0LCBUcmVlTWFwTm9kZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBsb2FkQW5hbHlzaXNKc29uLCBsb2FkTWV0YUZpbGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZShpbnB1dDogSW5wdXQpOiB2b2lkIHtcblx0bGV0IGhhc0FueUNoYW5nZSA9IGZhbHNlO1xuXHRsZXQgb3V0cHV0ID0gYCMjIFx1RDgzRFx1RENFNiBlc2J1aWxkIEJ1bmRsZSBBbmFseXNpcyBmb3IgJHtpbnB1dC5uYW1lfVxuXG5UaGlzIGFuYWx5c2lzIHdhcyBnZW5lcmF0ZWQgYnkgW2VzYnVpbGQtYnVuZGxlLWFuYWx5emVyXShodHRwczovL2dpdGh1Yi5jb20vZXhvZWdvL2VzYnVpbGQtYnVuZGxlLWFuYWx5emVyKS4gXHVEODNFXHVERDE2XG5gO1xuXG5cdGNvbnN0IGN1cnJlbnQgPSBsb2FkQW5hbHlzaXNKc29uKFxuXHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJidW5kbGVfYW5hbHlzaXMuanNvblwiKSxcblx0KTtcblx0Y29uc3QgYmFzZSA9IGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0KTtcblxuXHRjb25zdCBmaWxlVHJlZSA9IGJ1aWxkRmlsZVRyZWUoaW5wdXQpO1xuXG5cdGNvbnN0IGFsbE91dEZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHQuLi5uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhjdXJyZW50KSwgLi4uT2JqZWN0LmtleXMoYmFzZSldKSxcblx0XS5zb3J0KCk7XG5cblx0Y29uc3QgY29tcGFyaXNvbjogQXJyYXk8Q29tcGFyZVJlc3VsdD4gPSBhbGxPdXRGaWxlcy5tYXAoKG91dGZpbGUpID0+IHtcblx0XHRjb25zdCBjdXJyZW50U3RhdHMgPSBjdXJyZW50W291dGZpbGVdO1xuXHRcdGNvbnN0IGJhc2VTdGF0cyA9IGJhc2Vbb3V0ZmlsZV07XG5cblx0XHRpZiAoIWN1cnJlbnRTdGF0cykge1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLmJhc2VTdGF0cyxcblx0XHRcdFx0YmFzZUJ5dGVzOiAtMSxcblx0XHRcdFx0cmVtYXJrOiBcImRlbGV0ZWRcIixcblx0XHRcdFx0dHJlZTogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCB0cmVlID0gZmlsZVRyZWUuZ2V0KFxuXHRcdFx0dHJlZUtleShjdXJyZW50U3RhdHMubWV0YWZpbGUsIGN1cnJlbnRTdGF0cy5vdXRmaWxlKSxcblx0XHQpO1xuXHRcdGlmICghYmFzZVN0YXRzKSB7XG5cdFx0XHRoYXNBbnlDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIHsgLi4uY3VycmVudFN0YXRzLCBiYXNlQnl0ZXM6IC0xLCByZW1hcms6IFwiYWRkZWRcIiwgdHJlZSB9O1xuXHRcdH1cblxuXHRcdGNvbnN0IGRpZmYgPSBjdXJyZW50U3RhdHMuYnl0ZXMgLSBiYXNlU3RhdHMuYnl0ZXM7XG5cdFx0aWYgKGRpZmYgIT09IDApIHtcblx0XHRcdGhhc0FueUNoYW5nZSA9IHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHQuLi5jdXJyZW50U3RhdHMsXG5cdFx0XHRiYXNlQnl0ZXM6IGJhc2VTdGF0cy5ieXRlcyxcblx0XHRcdHRyZWUsXG5cdFx0XHRyZW1hcms6IE1hdGguc2lnbihkaWZmKSA/IFwiaW5jcmVhc2VkXCIgOiBcImRlY3JlYXNlZFwiLFxuXHRcdH07XG5cdH0pO1xuXG5cdGlmIChoYXNBbnlDaGFuZ2UpIHtcblx0XHRvdXRwdXQgKz0gbWFya2Rvd25UYWJsZShjb21wYXJpc29uLCBpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb24pO1xuXHRcdG91dHB1dCArPSBmaWxlU2l6ZVRhYmxlKGNvbXBhcmlzb24sIGlucHV0LnRvcE5MYXJnZXN0UGF0aHMpO1xuXHRcdG91dHB1dCArPSBkZXRhaWwoaW5wdXQpO1xuXHR9IGVsc2Uge1xuXHRcdG91dHB1dCArPSBcIlRoaXMgUFIgaW50cm9kdWNlZCBubyBjaGFuZ2VzIHRvIHRoZSBlc2J1aWxkIGJ1bmRsZSEgXHVEODNEXHVERTRDXCI7XG5cdH1cblxuXHQvLyB3ZSBhZGQgdGhpcyB0YWcgc28gdGhhdCBvdXIgYWN0aW9uIGNhbiBiZSBhYmxlIHRvIGVhc2lseSBhbmRcblx0Ly8gY29uc2lzdGVudGx5IGZpbmQgdGhlIHJpZ2h0IGNvbW1lbnQgdG8gZWRpdCBhcyBtb3JlIGNvbW1pdHMgYXJlIHB1c2hlZC5cblx0b3V0cHV0ICs9IGA8IS0tIF9fRVNCVUlMRF9CVU5ETEVfJHtpbnB1dC5uYW1lfSAtLT5gO1xuXG5cdHdyaXRlQ29tbWVudChpbnB1dCwgb3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gdHJlZUtleShtZXRhZmlsZTogc3RyaW5nLCBvdXRmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYCR7bWV0YWZpbGV9IC0+ICR7b3V0ZmlsZX1gO1xufVxuXG4vLyBXcml0ZSB0aGUgb3V0cHV0IHRvIGEgZmlsZSB3aGljaCBpcyBsYXRlciByZWFkIGluXG4vLyBhcyBjb21tZW50IGNvbnRlbnRzIGJ5IHRoZSBhY3Rpb25zIHdvcmtmbG93LlxuZnVuY3Rpb24gd3JpdGVDb21tZW50KGlucHV0OiBJbnB1dCwgb3V0cHV0OiBzdHJpbmcpOiB2b2lkIHtcblx0ZnMubWtkaXJTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSksIHtcblx0XHRyZWN1cnNpdmU6IHRydWUsXG5cdH0pO1xuXHRmcy53cml0ZUZpbGVTeW5jKFxuXHRcdHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYnVuZGxlX2FuYWx5c2lzX2NvbW1lbnQudHh0XCIsXG5cdFx0KSxcblx0XHRvdXRwdXQudHJpbSgpLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBkZXRhaWwoaW5wdXQ6IElucHV0KTogc3RyaW5nIHtcblx0aWYgKCFpbnB1dC5zaG93RGV0YWlscykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cdHJldHVybiBgXFxuPGRldGFpbHM+XG48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PlxuPHA+TmV4dCB0byB0aGUgc2l6ZSBpcyBob3cgbXVjaCB0aGUgc2l6ZSBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBjb21wYXJlZCB3aXRoIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGlzIFBSLjwvcD5cbjx1bD5cbjxsaT5cdTIwM0NcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGJ5ICR7aW5wdXQucGVyY2VudEV4dHJhQXR0ZW50aW9ufSUgb3IgbW9yZS4gU3BlY2lhbCBhdHRlbnRpb24gc2hvdWxkIGJlIGdpdmVuIHRvIHRoaXMuPC9saT5cbjxsaT5cdTI2QTBcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGluIGFjY2VwdGFibGUgcmFuZ2UgKGxvd2VyIHRoYW4gJHtpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb259JSkuPC9saT5cbjxsaT5cdTI3MDU6IE5vIGNoYW5nZSBvciBldmVuIGRvd25zaXplZC48L2xpPlxuPGxpPlx1RDgzRFx1REREMVx1RkUwRjogVGhlIG91dCBmaWxlIGlzIGRlbGV0ZWQ6IG5vdCBmb3VuZCBpbiBiYXNlIGJyYW5jaC48L2xpPlxuPGxpPlx1RDgzQ1x1REQ5NTogVGhlIG91dCBmaWxlIGlzIG5ld2x5IGZvdW5kOiB3aWxsIGJlIGFkZGVkIHRvIGJhc2UgYnJhbmNoLjwvbGk+XG48L3VsPlxuPC9kZXRhaWxzPlxcbmA7XG59XG5cbmZ1bmN0aW9uIGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGxvYWRBbmFseXNpc0pzb24oXG5cdFx0XHRwYXRoLmpvaW4oXG5cdFx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRcdGlucHV0LmFuYWx5emVyRGlyZWN0b3J5LFxuXHRcdFx0XHRcImJhc2UvYnVuZGxlL2J1bmRsZV9hbmFseXNpcy5qc29uXCIsXG5cdFx0XHQpLFxuXHRcdCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHQvLyBFbXB0eSBpZiBubyBiYXNlIGFuYWx5c2lzIGZvdW5kLlxuXHRcdC8vIFRoaXMgaXMgYSBjYXNlIHdoZW4gYW5hbHl6ZXIgaXMgZmlyc3Qgc2V0IHVwIG9yIGFsbCBhcnRpZmFjdHMgYXJlIGV4cGlyZWQuXG5cdFx0cmV0dXJuIHt9O1xuXHR9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRmlsZVRyZWUoaW5wdXQ6IElucHV0KSB7XG5cdGZ1bmN0aW9uIGJ1aWxkUm9vdChcblx0XHRpbnB1dDogUmVjb3JkPHN0cmluZywgeyBieXRlc0luT3V0cHV0OiBudW1iZXIgfT4sXG5cdCk6IFRyZWVNYXBOb2RlIHtcblx0XHRjb25zdCByb290OiBUcmVlTWFwTm9kZSA9IHsgbmFtZTogXCJcIiwgcGF0aDogXCJcIiwgdmFsdWU6IDAsIGNoaWxkcmVuOiBbXSB9O1xuXHRcdGZvciAoY29uc3QgW2ZpbGVQYXRoLCB7IGJ5dGVzSW5PdXRwdXQgfV0gb2YgT2JqZWN0LmVudHJpZXMoaW5wdXQpKSB7XG5cdFx0XHRjb25zdCBkaXJlY3RvcmllcyA9IGZpbGVQYXRoLnNwbGl0KFwiL1wiKTtcblx0XHRcdGJ1aWxkTm9kZShyb290LCBkaXJlY3RvcmllcywgYnl0ZXNJbk91dHB1dCk7XG5cdFx0fVxuXHRcdHJldHVybiByb290O1xuXHR9XG5cblx0ZnVuY3Rpb24gYnVpbGROb2RlKFxuXHRcdG5vZGU6IFRyZWVNYXBOb2RlLFxuXHRcdHBhdGhzOiBBcnJheTxzdHJpbmc+LFxuXHRcdHZhbHVlOiBudW1iZXIsXG5cdCk6IHZvaWQge1xuXHRcdGNvbnN0IGZpcnN0ID0gcGF0aHMuc2hpZnQoKTtcblx0XHRpZiAoZmlyc3QgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Ly8gbGVhZiBub2RlIChmaWxlKVxuXHRcdFx0bm9kZS52YWx1ZSArPSB2YWx1ZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0bGV0IGNoaWxkID0gbm9kZS5jaGlsZHJlbi5maW5kKChjaGlsZCkgPT4gY2hpbGQubmFtZSA9PT0gZmlyc3QpO1xuXHRcdGlmICghY2hpbGQpIHtcblx0XHRcdGNoaWxkID0ge1xuXHRcdFx0XHRuYW1lOiBmaXJzdCxcblx0XHRcdFx0cGF0aDogYCR7bm9kZS5wYXRofS8ke2ZpcnN0fWAucmVwbGFjZSgvXlxcLy8sIFwiXCIpLFxuXHRcdFx0XHR2YWx1ZTogMCxcblx0XHRcdFx0Y2hpbGRyZW46IFtdLFxuXHRcdFx0fTtcblx0XHRcdG5vZGUuY2hpbGRyZW4ucHVzaChjaGlsZCk7XG5cdFx0fVxuXHRcdG5vZGUudmFsdWUgKz0gdmFsdWU7XG5cdFx0YnVpbGROb2RlKGNoaWxkLCBwYXRocywgdmFsdWUpO1xuXHR9XG5cblx0Y29uc3QgdHJlZXMgPSBuZXcgTWFwPHN0cmluZywgVHJlZU1hcE5vZGU+KCk7XG5cdGlmIChpbnB1dC50b3BOTGFyZ2VzdFBhdGhzIDw9IDApIHtcblx0XHQvLyBTa2lwIGJ1aWxkaW5nIHRyZWUgaWYgd2UgZG9uJ3QgbmVlZCBpdC5cblx0XHRyZXR1cm4gdHJlZXM7XG5cdH1cblx0Zm9yIChjb25zdCB7IHJlbGF0aXZlUGF0aCwgYWJzb2x1dGVQYXRoIH0gb2YgZmluZE1ldGFmaWxlcyhpbnB1dCkpIHtcblx0XHRjb25zdCBtZXRhZmlsZUpzb24gPSBsb2FkTWV0YUZpbGUoYWJzb2x1dGVQYXRoKTtcblx0XHRmb3IgKGNvbnN0IFtvdXRmaWxlLCBidWlsZE1ldGFdIG9mIE9iamVjdC5lbnRyaWVzKG1ldGFmaWxlSnNvbi5vdXRwdXRzKSkge1xuXHRcdFx0Y29uc3QgdHJlZSA9IGJ1aWxkUm9vdChidWlsZE1ldGEuaW5wdXRzKTtcblx0XHRcdHRyZWVzLnNldCh0cmVlS2V5KHJlbGF0aXZlUGF0aCwgb3V0ZmlsZSksIHRyZWUpO1xuXG5cdFx0XHRmcy53cml0ZUZpbGVTeW5jKFxuXHRcdFx0XHRwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnksIFwidHJlZS5qc29uXCIpLFxuXHRcdFx0XHRKU09OLnN0cmluZ2lmeSh0cmVlLCBudWxsLCAyKSxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB0cmVlcztcbn1cblxuY29uc3Qgc3BhY2VyID0gXCJcdTAwQTBcIjtcbmZ1bmN0aW9uIGZpbGVzaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuXHRjb25zdCBzaWduID0gYnl0ZXMgPCAwID8gXCItXCIgOiBcIlwiO1xuXHRjb25zdCBuID0gTWF0aC5hYnMoYnl0ZXMpO1xuXHRpZiAobiA8IDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0ke259JHtzcGFjZXJ9QmA7XG5cdH1cblx0aWYgKG4gPCAxMDAwICogMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7KG4gLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfUtCYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwICogMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7KG4gLyAxMDAwIC8gMTAwMCkudG9GaXhlZCgyKX0ke3NwYWNlcn1NQmA7XG5cdH1cblx0aWYgKG4gPCAxMDAwICogMTAwMCAqIDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDAgLyAxMDAwIC8gMTAwMCkudG9GaXhlZCgyKX0ke3NwYWNlcn1HQmA7XG5cdH1cblx0dGhyb3cgbmV3IEVycm9yKFwiVG9vIGxhcmdlIGZpbGUgc2l6ZSEhIEFyZSB5b3Ugc3VyZT9cIik7XG59XG5cbmZ1bmN0aW9uIG1hcmtkb3duVGFibGUoXG5cdGRhdGE6IEFycmF5PENvbXBhcmVSZXN1bHQ+LFxuXHRyZWRUaHJlc2hvbGQ6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGNvbnN0IHJvd3MgPSBkYXRhXG5cdFx0Lm1hcCgoZCkgPT4ge1xuXHRcdFx0cmV0dXJuIGAke2QubWV0YWZpbGV9IHwgJHtkLm91dGZpbGV9IHwgJHtyZW5kZXJTaXplKGQpfSB8ICR7cmVuZGVyTm90ZShcblx0XHRcdFx0ZCxcblx0XHRcdFx0cmVkVGhyZXNob2xkLFxuXHRcdFx0KX1cXG5gO1xuXHRcdH0pXG5cdFx0LmpvaW4oXCJcIik7XG5cblx0cmV0dXJuIGBcbk1ldGEgRmlsZSB8IE91dCBGaWxlICB8IFNpemUgKHJhdykgfCBOb3RlIFxuLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS0tOnwtLS0tLS1cbiR7cm93c31gO1xufVxuXG4vKipcbiAqIEZpbmQgdGhlIHRvcCBOIGxhcmdlc3Qgbm9kZXMgaW4gcm9vdCB0cmVlLlxuICogRGlnIG5vZGVzIHVudGlsIHRoZSBkZXB0aCBvZiAzLlxuICovXG5mdW5jdGlvbiBmaW5kTGFyZ2VEaXJlY3Rvcmllcyhyb290OiBUcmVlTWFwTm9kZSwgTjogbnVtYmVyKSB7XG5cdGNvbnN0IG5vZGVzOiBUcmVlTWFwTm9kZVtdID0gW107XG5cdGNvbnN0IHF1ZXVlOiBBcnJheTx7IG5vZGU6IFRyZWVNYXBOb2RlOyBkZXB0aDogbnVtYmVyIH0+ID0gW1xuXHRcdHsgbm9kZTogcm9vdCwgZGVwdGg6IDAgfSxcblx0XTtcblx0d2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcblx0XHRjb25zdCBzaGlmdCA9IHF1ZXVlLnNoaWZ0KCk7XG5cdFx0aWYgKCFzaGlmdCkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGNvbnN0IHsgbm9kZSwgZGVwdGggfSA9IHNoaWZ0O1xuXHRcdGlmIChkZXB0aCA9PT0gMykge1xuXHRcdFx0bm9kZXMucHVzaChub2RlKTtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcblx0XHRcdG5vZGVzLnB1c2gobm9kZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvciAoY29uc3QgaXRlbSBvZiBub2RlLmNoaWxkcmVuKSB7XG5cdFx0XHRcdHF1ZXVlLnB1c2goeyBub2RlOiBpdGVtLCBkZXB0aDogZGVwdGggKyAxIH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRjb25zdCBsYXJnZU5vZGVzID0gbm9kZXMuc29ydCgoYSwgYikgPT4gYi52YWx1ZSAtIGEudmFsdWUpLnNsaWNlKDAsIE4pO1xuXHRyZXR1cm4ge1xuXHRcdGxhcmdlTm9kZXMsXG5cdFx0aGFzT3RoZXI6IG5vZGVzLmxlbmd0aCA+IE4sXG5cdH07XG59XG5cbmZ1bmN0aW9uIGZpeGVkUGVyY2VudChuOiBudW1iZXIsIGQ6IG51bWJlcik6IG51bWJlciB7XG5cdHJldHVybiBOdW1iZXIucGFyc2VGbG9hdCgoKG4gLyBkKSAqIDEwMCkudG9GaXhlZCgxKSk7XG59XG5cbmZ1bmN0aW9uIGZpbGVTaXplVGFibGUoXG5cdGRhdGE6IEFycmF5PENvbXBhcmVSZXN1bHQ+LFxuXHR0b3BOTGFyZ2VzdFBhdGhzOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRpZiAoZGF0YS5sZW5ndGggPT09IDAgfHwgdG9wTkxhcmdlc3RQYXRocyA8PSAwKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblx0bGV0IG91dHB1dCA9IFwiXCI7XG5cdG91dHB1dCArPSBcIjxkZXRhaWxzPlxcblwiO1xuXHRvdXRwdXQgKz0gXCI8c3VtbWFyeT5MYXJnZXN0IHBhdGhzPC9zdW1tYXJ5PlxcblwiO1xuXHRvdXRwdXQgKz0gYFRoZXNlIHZpc3VhbGl6YXRpb24gc2hvd3MgdG9wICR7dG9wTkxhcmdlc3RQYXRoc30gbGFyZ2VzdCBwYXRocyBpbiB0aGUgYnVuZGxlLlxcbmA7XG5cdGZvciAoY29uc3QgZCBvZiBkYXRhKSB7XG5cdFx0b3V0cHV0ICs9IFwiXFxuXCI7XG5cdFx0b3V0cHV0ICs9IGAjIyBNZXRhIGZpbGU6ICR7ZC5tZXRhZmlsZX0sIE91dCBmaWxlOiAke2Qub3V0ZmlsZX1cXG5gO1xuXHRcdGlmICghZC50cmVlKSB7XG5cdFx0XHRvdXRwdXQgKz0gXCJcdUZFMEZcdUZFMEZcdUQ4M0RcdURERDFcdUZFMEZEZWxldGVkXFxuXCI7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cdFx0b3V0cHV0ICs9IFwifCBQYXRoIHwgU2l6ZSB8XFxuXCI7XG5cdFx0b3V0cHV0ICs9IFwifC0tLS0tLXwtLS0tLS0tfFxcblwiO1xuXHRcdGNvbnN0IHRvdGFsU2l6ZSA9IGQudHJlZS52YWx1ZTtcblx0XHRjb25zdCB7IGxhcmdlTm9kZXMsIGhhc090aGVyIH0gPSBmaW5kTGFyZ2VEaXJlY3Rvcmllcyhcblx0XHRcdGQudHJlZSxcblx0XHRcdHRvcE5MYXJnZXN0UGF0aHMsXG5cdFx0KTtcblx0XHRmb3IgKGNvbnN0IHsgcGF0aCwgdmFsdWUgfSBvZiBsYXJnZU5vZGVzKSB7XG5cdFx0XHRjb25zdCBwZXJjZW50ID0gZml4ZWRQZXJjZW50KHZhbHVlLCB0b3RhbFNpemUpO1xuXHRcdFx0b3V0cHV0ICs9IGB8ICR7cGF0aH0gfCAke3JlbmRlckJhcihwZXJjZW50LCB2YWx1ZSl9IHxcXG5gO1xuXHRcdH1cblx0XHRpZiAoaGFzT3RoZXIpIHtcblx0XHRcdGNvbnN0IG90aGVyU2l6ZSA9IHRvdGFsU2l6ZSAtIGxhcmdlTm9kZXNbMF0udmFsdWU7XG5cdFx0XHRjb25zdCBvdGhlclBlcmNlbnQgPSBmaXhlZFBlcmNlbnQob3RoZXJTaXplLCB0b3RhbFNpemUpO1xuXHRcdFx0b3V0cHV0ICs9IGB8IChvdGhlcikgfCAke3JlbmRlckJhcihvdGhlclBlcmNlbnQsIG90aGVyU2l6ZSl9IHxcXG5gO1xuXHRcdH1cblx0fVxuXHRvdXRwdXQgKz0gXCI8L2RldGFpbHM+XFxuXCI7XG5cdHJldHVybiBvdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckJhcihwZXJjZW50OiBudW1iZXIsIGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuXHRjb25zdCBiYXIgPSBwcm9ncmVzcyhwZXJjZW50IC8gMTAwKTtcblx0cmV0dXJuIGBcXCR7e1xcXFxjb2xvcntHb2xkZW5yb2R9eyAke2Jhcn0gfX19XFwkICR7cGVyY2VudC50b0ZpeGVkKFxuXHRcdDEsXG5cdCl9JSwgJHtmaWxlc2l6ZShieXRlcyl9YDtcbn1cblxuLy8gQmxvY2sgcHJvZ3Jlc3Npb24gaXMgMS84ID0gMC4xMjVcbmNvbnN0IGJsb2NrcyA9IFtcIlwiLCBcIlx1MjU4RlwiLCBcIlx1MjU4RVwiLCBcIlx1MjU4RFwiLCBcIlx1MjU4Q1wiLCBcIlx1MjU4QlwiLCBcIlx1MjU4QVwiLCBcIlx1MjU4OVwiLCBcIlx1MjU4OFwiXTtcbmNvbnN0IHByb2dyZXNzaW9uID0gMSAvIChibG9ja3MubGVuZ3RoIC0gMSk7XG5mdW5jdGlvbiBwcm9ncmVzcyh2YWx1ZTogbnVtYmVyLCBsZW5ndGggPSAyNSwgdm1pbiA9IDAuMCwgdm1heCA9IDEuMCkge1xuXHRjb25zdCB2ID0gdmFsdWUgKiBsZW5ndGg7XG5cdGNvbnN0IGludGVnZXJQYXJ0ID0gTWF0aC5mbG9vcih2KTtcblx0Y29uc3QgZnJhY3Rpb25hbFBhcnQgPSB2IC0gaW50ZWdlclBhcnQ7XG5cdGNvbnN0IGkgPSBNYXRoLnJvdW5kKFxuXHRcdChwcm9ncmVzc2lvbiAqIE1hdGguZmxvb3IoZnJhY3Rpb25hbFBhcnQgLyBwcm9ncmVzc2lvbikpIC8gcHJvZ3Jlc3Npb24sXG5cdCk7XG5cdHJldHVybiBcIlx1MjU4OFwiLnJlcGVhdChpbnRlZ2VyUGFydCkgKyBibG9ja3NbaV07XG59XG5cbmZ1bmN0aW9uIHJlbmRlclNpemUoZDogQ29tcGFyZVJlc3VsdCk6IHN0cmluZyB7XG5cdHJldHVybiBmaWxlc2l6ZShkLmJ5dGVzKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyTm90ZShkOiBDb21wYXJlUmVzdWx0LCByZWRUaHJlc2hvbGQ6IG51bWJlcik6IHN0cmluZyB7XG5cdGlmIChkLnJlbWFyayA9PT0gXCJkZWxldGVkXCIpIHtcblx0XHRyZXR1cm4gXCJcdUQ4M0RcdURERDFcdUZFMEYgRGVsZXRlZFwiO1xuXHR9XG5cdGlmIChkLnJlbWFyayA9PT0gXCJhZGRlZFwiKSB7XG5cdFx0cmV0dXJuIFwiXHVEODNDXHVERDk1IEFkZGVkXCI7XG5cdH1cblx0Y29uc3QgZGlmZiA9IGQuYnl0ZXMgLSBkLmJhc2VCeXRlcztcblx0aWYgKGRpZmYgIT09IDApIHtcblx0XHRjb25zdCBwZXJjZW50Q2hhbmdlID0gKGRpZmYgLyBkLmJhc2VCeXRlcykgKiAxMDA7XG5cdFx0cmV0dXJuIGAke3JlbmRlclN0YXR1c0luZGljYXRvcihwZXJjZW50Q2hhbmdlLCByZWRUaHJlc2hvbGQpfSR7ZmlsZXNpemUoXG5cdFx0XHRkaWZmLFxuXHRcdCl9ICgke3NpZ24ocGVyY2VudENoYW5nZSl9JHtwZXJjZW50Q2hhbmdlLnRvRml4ZWQoMSl9JSlgO1xuXHR9XG5cdHJldHVybiBcIlx1MjcwNSAgTm8gY2hhbmdlXCI7XG59XG5cbmZ1bmN0aW9uIHNpZ24obnVtOiBudW1iZXIpOiBzdHJpbmcge1xuXHRyZXR1cm4gbnVtIDwgMCA/IFwiXCIgOiBcIitcIjtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU3RhdHVzSW5kaWNhdG9yKFxuXHRwZXJjZW50Q2hhbmdlOiBudW1iZXIsXG5cdHJlZFRocmVzaG9sZDogbnVtYmVyLFxuKTogc3RyaW5nIHtcblx0bGV0IHJlczogc3RyaW5nO1xuXHRpZiAocGVyY2VudENoYW5nZSA+IDAgJiYgcGVyY2VudENoYW5nZSA8IHJlZFRocmVzaG9sZCkge1xuXHRcdHJlcyA9IFwiXHUyNkEwXHVGRTBGXCI7XG5cdH0gZWxzZSBpZiAocGVyY2VudENoYW5nZSA+PSByZWRUaHJlc2hvbGQpIHtcblx0XHRyZXMgPSBcIlx1MjAzQ1x1RkUwRlwiO1xuXHR9IGVsc2Uge1xuXHRcdHJlcyA9IFwiXHUyNzA1IFwiO1xuXHR9XG5cdHJldHVybiBgJHtyZXN9ICR7c2lnbihwZXJjZW50Q2hhbmdlKX1gO1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSBcIm5vZGU6cHJvY2Vzc1wiO1xuXG5pbXBvcnQgKiBhcyBjb25zb2xlIGZyb20gXCJub2RlOmNvbnNvbGVcIjtcbmltcG9ydCB7IGdsb2JTeW5jIH0gZnJvbSBcImdsb2JcIjtcbmltcG9ydCB0eXBlIHsgSW5wdXQsIFJlcG9ydCB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBsb2FkTWV0YUZpbGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0KGlucHV0OiBJbnB1dCk6IHZvaWQge1xuXHRjb25zdCBhbGxQYWdlU2l6ZXMgPSBnZXRBbGxQYWdlU2l6ZXMoaW5wdXQpO1xuXHRmcy5ta2RpclN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGlucHV0LmFuYWx5emVyRGlyZWN0b3J5KSwge1xuXHRcdHJlY3Vyc2l2ZTogdHJ1ZSxcblx0fSk7XG5cdGNvbnN0IHJlc3VsdEpzb25QYXRoID0gcGF0aC5qb2luKFxuXHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0aW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnksXG5cdFx0XCJidW5kbGVfYW5hbHlzaXMuanNvblwiLFxuXHQpO1xuXHRmcy53cml0ZUZpbGVTeW5jKHJlc3VsdEpzb25QYXRoLCBKU09OLnN0cmluZ2lmeShhbGxQYWdlU2l6ZXMsIG51bGwsIDIpKTtcblx0Y29uc29sZS5sb2coYFdyb3RlICR7cmVzdWx0SnNvblBhdGh9YCk7XG59XG5cbmludGVyZmFjZSBNZXRhZmlsZVBhdGgge1xuXHRyZWFkb25seSByZWxhdGl2ZVBhdGg6IHN0cmluZztcblx0cmVhZG9ubHkgYWJzb2x1dGVQYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTWV0YWZpbGVzKGlucHV0OiBJbnB1dCk6IE1ldGFmaWxlUGF0aFtdIHtcblx0cmV0dXJuIGlucHV0Lm1ldGFmaWxlcy5mbGF0TWFwKChtZXRhZmlsZSkgPT4ge1xuXHRcdHJldHVybiBnbG9iU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgbWV0YWZpbGUpLCB7XG5cdFx0XHRub2RpcjogdHJ1ZSxcblx0XHR9KS5tYXAoKG1ldGFGaWxlUGF0aCkgPT4ge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0cmVsYXRpdmVQYXRoOiBwYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIG1ldGFGaWxlUGF0aCksXG5cdFx0XHRcdGFic29sdXRlUGF0aDogbWV0YUZpbGVQYXRoLFxuXHRcdFx0fTtcblx0XHR9KTtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbFBhZ2VTaXplcyhpbnB1dDogSW5wdXQpOiBSZXBvcnQge1xuXHRjb25zdCBhY2M6IFJlcG9ydCA9IHt9O1xuXHRyZXR1cm4gZmluZE1ldGFmaWxlcyhpbnB1dCkucmVkdWNlKChhY2MsIHsgcmVsYXRpdmVQYXRoLCBhYnNvbHV0ZVBhdGggfSkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRmcy5hY2Nlc3NTeW5jKGFic29sdXRlUGF0aCwgZnMuY29uc3RhbnRzLlJfT0spO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0Y29uc29sZS5lcnJvcihcblx0XHRcdFx0YE5vIG1ldGEgZmlsZSBmb3VuZCBhdCBcIiR7YWJzb2x1dGVQYXRofVwiIC0gYSBwYXRoIHRvIG1ldGEgZmlsZSBtYXkgYmUgd3JvbmcsIG9yIGVzYnVpbGQgaXMgbm90IGV4ZWN1dGVkLmAsXG5cdFx0XHQpO1xuXHRcdFx0cHJvY2Vzcy5leGl0KDEpO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1ldGFGaWxlSnNvbiA9IGxvYWRNZXRhRmlsZShhYnNvbHV0ZVBhdGgpO1xuXHRcdE9iamVjdC5lbnRyaWVzKG1ldGFGaWxlSnNvbi5vdXRwdXRzKS5yZWR1Y2UoKGFjYywgb3V0cHV0KSA9PiB7XG5cdFx0XHRjb25zdCBbb3V0ZmlsZSwgYnVpbGRNZXRhXSA9IG91dHB1dDtcblx0XHRcdGlmIChcblx0XHRcdFx0IWlucHV0LmluY2x1ZGVFeHRlbnNpb25zLnNvbWUoKGV4dCkgPT5cblx0XHRcdFx0XHRvdXRmaWxlLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoZXh0KSxcblx0XHRcdFx0KVxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiBhY2M7XG5cdFx0XHR9XG5cdFx0XHRhY2NbYCR7cmVsYXRpdmVQYXRofSAtPiAke291dGZpbGV9YF0gPSB7XG5cdFx0XHRcdGJ5dGVzOiBidWlsZE1ldGEuYnl0ZXMsXG5cdFx0XHRcdG1ldGFmaWxlOiByZWxhdGl2ZVBhdGgsXG5cdFx0XHRcdG91dGZpbGUsXG5cdFx0XHR9O1xuXHRcdFx0cmV0dXJuIGFjYztcblx0XHR9LCBhY2MpO1xuXHRcdHJldHVybiBhY2M7XG5cdH0sIGFjYyk7XG59XG4iLCAiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5cbmltcG9ydCB0eXBlIHsgTWV0YWZpbGUgfSBmcm9tIFwiZXNidWlsZFwiO1xuaW1wb3J0IHR5cGUgeyBSZXBvcnQgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5mdW5jdGlvbiBsb2FkSnNvbkZpbGUocGF0aDogc3RyaW5nKSB7XG5cdHJldHVybiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoKS50b1N0cmluZyhcInV0Zi04XCIpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRNZXRhRmlsZShwYXRoOiBzdHJpbmcpOiBNZXRhZmlsZSB7XG5cdHJldHVybiBsb2FkSnNvbkZpbGUocGF0aCkgYXMgTWV0YWZpbGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQW5hbHlzaXNKc29uKHBhdGg6IHN0cmluZyk6IFJlcG9ydCB7XG5cdHJldHVybiBsb2FkSnNvbkZpbGUocGF0aCkgYXMgUmVwb3J0O1xufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYWN0aW9ucy90b29sa2l0L2Jsb2IvODFhNzNhYmE4YmVkZDUzMmY2ZWRkY2M0MWVkM2EwZmFkOGIxY2ZlYi9wYWNrYWdlcy9jb3JlL3NyYy9jb3JlLnRzI0wxMjZcbmV4cG9ydCBmdW5jdGlvbiBnZXRTaW5nbGVJbnB1dChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCB2YWwgPSBwcm9jZXNzLmVudltgSU5QVVRfJHtuYW1lLnRvVXBwZXJDYXNlKCl9YF0gfHwgXCJcIjtcblx0cmV0dXJuIHZhbC50cmltKCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAic3NHQUFBLE9BQVMsaUJBQUFBLE9BQXFCLFdDQTlCLE9BQU9DLE9BQVEsVUFDZixPQUFPQyxPQUFVLFlDRGpCLE9BQU9DLE9BQVEsVUFDZixPQUFPQyxPQUFVLFlBQ2pCLE9BQU9DLE9BQWEsZUFFcEIsVUFBWUMsT0FBYTs7NDAyRENKekIsT0FBT0MsT0FBUSxVQUtmLFNBQVNDLEdBQWFDLEVBQWMsQ0FDbkMsT0FBTyxLQUFLLE1BQU1GLEdBQUcsYUFBYUUsQ0FBSSxFQUFFLFNBQVMsT0FBTyxDQUFDLENBQzFELENBRU8sU0FBU0MsR0FBYUQsRUFBd0IsQ0FDcEQsT0FBT0Qs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Q3JDQSxFQUFlLGNBQWMsR0FBSyxNQUNuQyxFQUNBLGlCQUFrQixPQUFPLFNBQ3hCQSxFQUFlLHFCQUFxQixHQUFLLEtBQ3pDLEVBQ0QsRUFDQSxtQkFDQ0EsRUFBZSxvQkFBb0IsR0FBSyxpQkFDdkMsTUFBTSxHQUFHLEVBQ1gsS0FBQUMsRUFDQSxrQkFBbUJELEVBQWUsbUJBQW1CLEdBQUssWUFDMUQsVUFBV0QsRUFBYSxNQUFNLEdBQUcsQ0FDbEMsQ0FDRCxDQUVPLFNBQVNHLEdBQUlDLEVBQWVMLEdBQVMsRUFBUyxDQUNwRE0sR0FBT0QsQ0FBSyxFQUNaRSxHQUFRRixDQUFLLENBQ2QsQ0FFSSxZQUFZLE1BQVFHLEdBQWMsUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQ3RESixHQUFJIiwKICAibmFtZXMiOiBbInBhdGhUb0ZpbGVVUkwiLCAiZnMiLCAicGF0aCIsICJmcyIsICJwYXRoIiwgInByb2Nlc3MiLCAiY29uc29sZSIsICJmcyIsICJsb2FkSnNvbkZpbGUiLCAicGF0aCIsICJsb2FkTWV0YUZpbGUiLCAibG9hZEFuYWx5c2lzSnNvbiIsICJnZXRTaW5nbGVJbnB1dCIsICJuYW1lIiwgInJlcG9ydCIsICJpbnB1dCIsICJhbGxQYWdlU2l6ZXMiLCAiZ2V0QWxsUGFnZVNpemVzIiwgImZzIiwgInBhdGgiLCAicHJvY2VzcyIsICJyZXN1bHRKc29uUGF0aCIsICJmaW5kTWV0YWZpbGVzIiwgIm1ldGFmaWxlIiwgImdsb2JTeW5jIiwgIm1ldGFGaWxlUGF0aCIsICJhY2MiLCAicmVsYXRpdmVQYXRoIiwgImFic29sdXRlUGF0aCIsICJtZXRhRmlsZUpzb24iLCAibG9hZE1ldGFGaWxlIiwgIm91dHB1dCIsICJvdXRmaWxlIiwgImJ1aWxkTWV0YSIsICJleHQiLCAiY29tcGFyZSIsICJpbnB1dCIsICJoYXNBbnlDaGFuZ2UiLCAib3V0cHV0IiwgImN1cnJlbnQiLCAibG9hZEFuYWx5c2lzSnNvbiIsICJwYXRoIiwgImJhc2UiLCAibG9hZEJhc2VBbmFseXNpc0pzb24iLCAiZmlsZVRyZWUiLCAiYnVpbGRGaWxlVHJlZSIsICJjb21wYXJpc29uIiwgIm91dGZpbGUiLCAiY3VycmVudFN0YXRzIiwgImJhc2VTdGF0cyIsICJ0cmVlIiwgInRyZWVLZXkiLCAiZGlmZiIsICJtYXJrZG93blRhYmxlIiwgImZpbGVTaXplVGFibGUiLCAiZGV0YWlsIiwgIndyaXRlQ29tbWVudCIsICJtZXRhZmlsZSIsICJmcyIsICJidWlsZFJvb3QiLCAicm9vdCIsICJmaWxlUGF0aCIsICJieXRlc0luT3V0cHV0IiwgImRpcmVjdG9yaWVzIiwgImJ1aWxkTm9kZSIsICJub2RlIiwgInBhdGhzIiwgInZhbHVlIiwgImZpcnN0IiwgImNoaWxkIiwgInRyZWVzIiwgInJlbGF0aXZlUGF0aCIsICJhYnNvbHV0ZVBhdGgiLCAiZmluZE1ldGFmaWxlcyIsICJtZXRhZmlsZUpzb24iLCAibG9hZE1ldGFGaWxlIiwgImJ1aWxkTWV0YSIsICJzcGFjZXIiLCAiZmlsZXNpemUiLCAiYnl0ZXMiLCAic2lnbiIsICJuIiwgImRhdGEiLCAicmVkVGhyZXNob2xkIiwgImQiLCAicmVuZGVyU2l6ZSIsICJyZW5kZXJOb3RlIiwgImZpbmRMYXJnZURpcmVjdG9yaWVzIiwgIk4iLCAibm9kZXMiLCAicXVldWUiLCAic2hpZnQiLCAiZGVwdGgiLCAiaXRlbSIsICJhIiwgImIiLCAiZml4ZWRQZXJjZW50IiwgInRvcE5MYXJnZXN0UGF0aHMiLCAidG90YWxTaXplIiwgImxhcmdlTm9kZXMiLCAiaGFzT3RoZXIiLCAicGVyY2VudCIsICJyZW5kZXJCYXIiLCAib3RoZXJTaXplIiwgIm90aGVyUGVyY2VudCIsICJwcm9ncmVzcyIsICJibG9ja3MiLCAicHJvZ3Jlc3Npb24iLCAibGVuZ3RoIiwgInZtaW4iLCAidm1heCIsICJ2IiwgImludGVnZXJQYXJ0IiwgImZyYWN0aW9uYWxQYXJ0IiwgImkiLCAicGVyY2VudENoYW5nZSIsICJyZW5kZXJTdGF0dXNJbmRpY2F0b3IiLCAibnVtIiwgInJlcyIsICJnZXRJbnB1dCIsICJyYXdNZXRhZmlsZXMiLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJydW4iLCAiaW5wdXQiLCAicmVwb3J0IiwgImNvbXBhcmUiLCAicGF0aFRvRmlsZVVSTCJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9jb21wYXJlLnRzIiwgIi4uL3NyYy9yZXBvcnQudHMiLCAiLi4vc3JjL3V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBcIi4vY29tcGFyZVwiO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IElucHV0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGdldFNpbmdsZUlucHV0IH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gZ2V0SW5wdXQoKTogSW5wdXQge1xuXHRjb25zdCByYXdNZXRhZmlsZXMgPSBnZXRTaW5nbGVJbnB1dChcIm1ldGFmaWxlc1wiKTtcblx0aWYgKCFyYXdNZXRhZmlsZXMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJtZXRhZmlsZXMgaXMgbm90IHNwZWNpZmllZFwiKTtcblx0fVxuXHRjb25zdCBuYW1lID0gZ2V0U2luZ2xlSW5wdXQoXCJuYW1lXCIpO1xuXHRpZiAoIW5hbWUpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJuYW1lIGlzIG5vdCBzcGVjaWZpZWRcIik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHRwZXJjZW50RXh0cmFBdHRlbnRpb246IE51bWJlci5wYXJzZUludChcblx0XHRcdGdldFNpbmdsZUlucHV0KFwicGVyY2VudF9leHRyYV9hdHRlbnRpb25cIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRzaG93RGV0YWlsczogW1widHJ1ZVwiLCBcIlRydWVcIiwgXCJUUlVFXCJdLmluY2x1ZGVzKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJzaG93X2RldGFpbHNcIikgfHwgXCJ0cnVlXCIsXG5cdFx0KSxcblx0XHR0b3BOTGFyZ2VzdFBhdGhzOiBOdW1iZXIucGFyc2VJbnQoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcInRvcF9uX2xhcmdlc3RfcGF0aHNcIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRpbmNsdWRlRXh0ZW5zaW9uczogKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJpbmNsdWRlX2V4dGVuc2lvbnNcIikgfHwgXCIuanMsLm1qcywuY2pzXCJcblx0XHQpLnNwbGl0KFwiLFwiKSxcblx0XHRuYW1lLFxuXHRcdGFuYWx5emVyRGlyZWN0b3J5OiBnZXRTaW5nbGVJbnB1dChcImFuYWx5emVfZGlyZWN0b3J5XCIpIHx8IFwiLmFuYWx5emVyXCIsXG5cdFx0bWV0YWZpbGVzOiByYXdNZXRhZmlsZXMuc3BsaXQoXCIsXCIpLFxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGlucHV0OiBJbnB1dCA9IGdldElucHV0KCkpOiB2b2lkIHtcblx0cmVwb3J0KGlucHV0KTtcblx0Y29tcGFyZShpbnB1dCk7XG59XG5cbmlmIChpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwocHJvY2Vzcy5hcmd2WzFdKS5ocmVmKSB7XG5cdHJ1bigpO1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZmluZE1ldGFmaWxlcyB9IGZyb20gXCIuL3JlcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBDb21wYXJlUmVzdWx0LCBJbnB1dCwgUmVwb3J0LCBUcmVlTWFwTm9kZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBsb2FkQW5hbHlzaXNKc29uLCBsb2FkTWV0YUZpbGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZShpbnB1dDogSW5wdXQpOiB2b2lkIHtcblx0bGV0IGhhc0FueUNoYW5nZSA9IGZhbHNlO1xuXHRsZXQgb3V0cHV0ID0gYCMjIFx1RDgzRFx1RENFNiBlc2J1aWxkIEJ1bmRsZSBBbmFseXNpcyBmb3IgJHtpbnB1dC5uYW1lfVxuXG5UaGlzIGFuYWx5c2lzIHdhcyBnZW5lcmF0ZWQgYnkgW2VzYnVpbGQtYnVuZGxlLWFuYWx5emVyXShodHRwczovL2dpdGh1Yi5jb20vZXhvZWdvL2VzYnVpbGQtYnVuZGxlLWFuYWx5emVyKS4gXHVEODNFXHVERDE2XG5gO1xuXG5cdGNvbnN0IGN1cnJlbnQgPSBsb2FkQW5hbHlzaXNKc29uKFxuXHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJidW5kbGVfYW5hbHlzaXMuanNvblwiKSxcblx0KTtcblx0Y29uc3QgYmFzZSA9IGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0KTtcblxuXHRjb25zdCBmaWxlVHJlZSA9IGJ1aWxkRmlsZVRyZWUoaW5wdXQpO1xuXG5cdGNvbnN0IGFsbE91dEZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHQuLi5uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhjdXJyZW50KSwgLi4uT2JqZWN0LmtleXMoYmFzZSldKSxcblx0XS5zb3J0KCk7XG5cblx0Y29uc3QgY29tcGFyaXNvbjogQXJyYXk8Q29tcGFyZVJlc3VsdD4gPSBhbGxPdXRGaWxlcy5tYXAoKG91dGZpbGUpID0+IHtcblx0XHRjb25zdCBjdXJyZW50U3RhdHMgPSBjdXJyZW50W291dGZpbGVdO1xuXHRcdGNvbnN0IGJhc2VTdGF0cyA9IGJhc2Vbb3V0ZmlsZV07XG5cblx0XHRpZiAoIWN1cnJlbnRTdGF0cykge1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLmJhc2VTdGF0cyxcblx0XHRcdFx0YmFzZUJ5dGVzOiAtMSxcblx0XHRcdFx0cmVtYXJrOiBcImRlbGV0ZWRcIixcblx0XHRcdFx0dHJlZTogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCB0cmVlID0gZmlsZVRyZWUuZ2V0KFxuXHRcdFx0dHJlZUtleShjdXJyZW50U3RhdHMubWV0YWZpbGUsIGN1cnJlbnRTdGF0cy5vdXRmaWxlKSxcblx0XHQpO1xuXHRcdGlmICghYmFzZVN0YXRzKSB7XG5cdFx0XHRoYXNBbnlDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIHsgLi4uY3VycmVudFN0YXRzLCBiYXNlQnl0ZXM6IC0xLCByZW1hcms6IFwiYWRkZWRcIiwgdHJlZSB9O1xuXHRcdH1cblxuXHRcdGNvbnN0IGRpZmYgPSBjdXJyZW50U3RhdHMuYnl0ZXMgLSBiYXNlU3RhdHMuYnl0ZXM7XG5cdFx0aWYgKGRpZmYgIT09IDApIHtcblx0XHRcdGhhc0FueUNoYW5nZSA9IHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHQuLi5jdXJyZW50U3RhdHMsXG5cdFx0XHRiYXNlQnl0ZXM6IGJhc2VTdGF0cy5ieXRlcyxcblx0XHRcdHRyZWUsXG5cdFx0XHRyZW1hcms6IE1hdGguc2lnbihkaWZmKSA/IFwiaW5jcmVhc2VkXCIgOiBcImRlY3JlYXNlZFwiLFxuXHRcdH07XG5cdH0pO1xuXG5cdGlmIChoYXNBbnlDaGFuZ2UpIHtcblx0XHRvdXRwdXQgKz0gbWFya2Rvd25UYWJsZShjb21wYXJpc29uLCBpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb24pO1xuXHRcdG91dHB1dCArPSBmaWxlU2l6ZVRhYmxlKGNvbXBhcmlzb24sIGlucHV0LnRvcE5MYXJnZXN0UGF0aHMpO1xuXHRcdG91dHB1dCArPSBkZXRhaWwoaW5wdXQpO1xuXHR9IGVsc2Uge1xuXHRcdG91dHB1dCArPSBcIlRoaXMgUFIgaW50cm9kdWNlZCBubyBjaGFuZ2VzIHRvIHRoZSBlc2J1aWxkIGJ1bmRsZSEgXHVEODNEXHVERTRDXCI7XG5cdH1cblxuXHQvLyB3ZSBhZGQgdGhpcyB0YWcgc28gdGhhdCBvdXIgYWN0aW9uIGNhbiBiZSBhYmxlIHRvIGVhc2lseSBhbmRcblx0Ly8gY29uc2lzdGVudGx5IGZpbmQgdGhlIHJpZ2h0IGNvbW1lbnQgdG8gZWRpdCBhcyBtb3JlIGNvbW1pdHMgYXJlIHB1c2hlZC5cblx0b3V0cHV0ICs9IGA8IS0tIF9fRVNCVUlMRF9CVU5ETEVfJHtpbnB1dC5uYW1lfSAtLT5gO1xuXG5cdHdyaXRlQ29tbWVudChpbnB1dCwgb3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gdHJlZUtleShtZXRhZmlsZTogc3RyaW5nLCBvdXRmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYCR7bWV0YWZpbGV9IC0+ICR7b3V0ZmlsZX1gO1xufVxuXG4vLyBXcml0ZSB0aGUgb3V0cHV0IHRvIGEgZmlsZSB3aGljaCBpcyBsYXRlciByZWFkIGluXG4vLyBhcyBjb21tZW50IGNvbnRlbnRzIGJ5IHRoZSBhY3Rpb25zIHdvcmtmbG93LlxuZnVuY3Rpb24gd3JpdGVDb21tZW50KGlucHV0OiBJbnB1dCwgb3V0cHV0OiBzdHJpbmcpOiB2b2lkIHtcblx0ZnMubWtkaXJTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSksIHtcblx0XHRyZWN1cnNpdmU6IHRydWUsXG5cdH0pO1xuXHRmcy53cml0ZUZpbGVTeW5jKFxuXHRcdHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYnVuZGxlX2FuYWx5c2lzX2NvbW1lbnQudHh0XCIsXG5cdFx0KSxcblx0XHRvdXRwdXQudHJpbSgpLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBkZXRhaWwoaW5wdXQ6IElucHV0KTogc3RyaW5nIHtcblx0aWYgKCFpbnB1dC5zaG93RGV0YWlscykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cdHJldHVybiBgXFxuPGRldGFpbHM+XG48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PlxuPHA+TmV4dCB0byB0aGUgc2l6ZSBpcyBob3cgbXVjaCB0aGUgc2l6ZSBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBjb21wYXJlZCB3aXRoIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGlzIFBSLjwvcD5cbjx1bD5cbjxsaT5cdTIwM0NcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGJ5ICR7aW5wdXQucGVyY2VudEV4dHJhQXR0ZW50aW9ufSUgb3IgbW9yZS4gU3BlY2lhbCBhdHRlbnRpb24gc2hvdWxkIGJlIGdpdmVuIHRvIHRoaXMuPC9saT5cbjxsaT5cdTI2QTBcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGluIGFjY2VwdGFibGUgcmFuZ2UgKGxvd2VyIHRoYW4gJHtpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb259JSkuPC9saT5cbjxsaT5cdTI3MDU6IE5vIGNoYW5nZSBvciBldmVuIGRvd25zaXplZC48L2xpPlxuPGxpPlx1RDgzRFx1REREMVx1RkUwRjogVGhlIG91dCBmaWxlIGlzIGRlbGV0ZWQ6IG5vdCBmb3VuZCBpbiBiYXNlIGJyYW5jaC48L2xpPlxuPGxpPlx1RDgzQ1x1REQ5NTogVGhlIG91dCBmaWxlIGlzIG5ld2x5IGZvdW5kOiB3aWxsIGJlIGFkZGVkIHRvIGJhc2UgYnJhbmNoLjwvbGk+XG48L3VsPlxuPC9kZXRhaWxzPlxcbmA7XG59XG5cbmZ1bmN0aW9uIGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgcmVwb3J0ID0gbG9hZEFuYWx5c2lzSnNvbihcblx0XHRcdHBhdGguam9pbihcblx0XHRcdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRcdFx0aW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnksXG5cdFx0XHRcdFwiYmFzZS9idW5kbGUvYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0XHRcdCksXG5cdFx0KTtcblx0XHRjb25zb2xlLmluZm8oXCJCYXNlIGFuYWx5c2lzIGZvdW5kLlwiLCByZXBvcnQpO1xuXHRcdHJldHVybiByZXBvcnQ7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcIk5vIGJhc2UgYW5hbHlzaXMgZm91bmQuIEZpcnN0IHNldHVwIG9yIGFsbCBhcnRpZmFjdHMgYXJlIGV4cGlyZWQuXCIsXG5cdFx0KTtcblx0XHRyZXR1cm4ge307XG5cdH1cbn1cblxuZnVuY3Rpb24gYnVpbGRGaWxlVHJlZShpbnB1dDogSW5wdXQpIHtcblx0ZnVuY3Rpb24gYnVpbGRSb290KFxuXHRcdGlucHV0OiBSZWNvcmQ8c3RyaW5nLCB7IGJ5dGVzSW5PdXRwdXQ6IG51bWJlciB9Pixcblx0KTogVHJlZU1hcE5vZGUge1xuXHRcdGNvbnN0IHJvb3Q6IFRyZWVNYXBOb2RlID0geyBuYW1lOiBcIlwiLCBwYXRoOiBcIlwiLCB2YWx1ZTogMCwgY2hpbGRyZW46IFtdIH07XG5cdFx0Zm9yIChjb25zdCBbZmlsZVBhdGgsIHsgYnl0ZXNJbk91dHB1dCB9XSBvZiBPYmplY3QuZW50cmllcyhpbnB1dCkpIHtcblx0XHRcdGNvbnN0IGRpcmVjdG9yaWVzID0gZmlsZVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0YnVpbGROb2RlKHJvb3QsIGRpcmVjdG9yaWVzLCBieXRlc0luT3V0cHV0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHJvb3Q7XG5cdH1cblxuXHRmdW5jdGlvbiBidWlsZE5vZGUoXG5cdFx0bm9kZTogVHJlZU1hcE5vZGUsXG5cdFx0cGF0aHM6IEFycmF5PHN0cmluZz4sXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgZmlyc3QgPSBwYXRocy5zaGlmdCgpO1xuXHRcdGlmIChmaXJzdCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBsZWFmIG5vZGUgKGZpbGUpXG5cdFx0XHRub2RlLnZhbHVlICs9IHZhbHVlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRsZXQgY2hpbGQgPSBub2RlLmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5uYW1lID09PSBmaXJzdCk7XG5cdFx0aWYgKCFjaGlsZCkge1xuXHRcdFx0Y2hpbGQgPSB7XG5cdFx0XHRcdG5hbWU6IGZpcnN0LFxuXHRcdFx0XHRwYXRoOiBgJHtub2RlLnBhdGh9LyR7Zmlyc3R9YC5yZXBsYWNlKC9eXFwvLywgXCJcIiksXG5cdFx0XHRcdHZhbHVlOiAwLFxuXHRcdFx0XHRjaGlsZHJlbjogW10sXG5cdFx0XHR9O1xuXHRcdFx0bm9kZS5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcblx0XHR9XG5cdFx0bm9kZS52YWx1ZSArPSB2YWx1ZTtcblx0XHRidWlsZE5vZGUoY2hpbGQsIHBhdGhzLCB2YWx1ZSk7XG5cdH1cblxuXHRjb25zdCB0cmVlcyA9IG5ldyBNYXA8c3RyaW5nLCBUcmVlTWFwTm9kZT4oKTtcblx0aWYgKGlucHV0LnRvcE5MYXJnZXN0UGF0aHMgPD0gMCkge1xuXHRcdC8vIFNraXAgYnVpbGRpbmcgdHJlZSBpZiB3ZSBkb24ndCBuZWVkIGl0LlxuXHRcdHJldHVybiB0cmVlcztcblx0fVxuXHRmb3IgKGNvbnN0IHsgcmVsYXRpdmVQYXRoLCBhYnNvbHV0ZVBhdGggfSBvZiBmaW5kTWV0YWZpbGVzKGlucHV0KSkge1xuXHRcdGNvbnN0IG1ldGFmaWxlSnNvbiA9IGxvYWRNZXRhRmlsZShhYnNvbHV0ZVBhdGgpO1xuXHRcdGZvciAoY29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gb2YgT2JqZWN0LmVudHJpZXMobWV0YWZpbGVKc29uLm91dHB1dHMpKSB7XG5cdFx0XHRjb25zdCB0cmVlID0gYnVpbGRSb290KGJ1aWxkTWV0YS5pbnB1dHMpO1xuXHRcdFx0dHJlZXMuc2V0KHRyZWVLZXkocmVsYXRpdmVQYXRoLCBvdXRmaWxlKSwgdHJlZSk7XG5cblx0XHRcdGZzLndyaXRlRmlsZVN5bmMoXG5cdFx0XHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJ0cmVlLmpzb25cIiksXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRyZWUsIG51bGwsIDIpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRyZWVzO1xufVxuXG5jb25zdCBzcGFjZXIgPSBcIlx1MDBBMFwiO1xuZnVuY3Rpb24gZmlsZXNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IHNpZ24gPSBieXRlcyA8IDAgPyBcIi1cIiA6IFwiXCI7XG5cdGNvbnN0IG4gPSBNYXRoLmFicyhieXRlcyk7XG5cdGlmIChuIDwgMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7bn0ke3NwYWNlcn1CYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9S0JgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDAgLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfU1CYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwICogMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCAvIDEwMDAgLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfUdCYDtcblx0fVxuXHR0aHJvdyBuZXcgRXJyb3IoXCJUb28gbGFyZ2UgZmlsZSBzaXplISEgQXJlIHlvdSBzdXJlP1wiKTtcbn1cblxuZnVuY3Rpb24gbWFya2Rvd25UYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHJlZFRocmVzaG9sZDogbnVtYmVyLFxuKTogc3RyaW5nIHtcblx0Y29uc3Qgcm93cyA9IGRhdGFcblx0XHQubWFwKChkKSA9PiB7XG5cdFx0XHRyZXR1cm4gYCR7ZC5tZXRhZmlsZX0gfCAke2Qub3V0ZmlsZX0gfCAke3JlbmRlclNpemUoZCl9IHwgJHtyZW5kZXJOb3RlKFxuXHRcdFx0XHRkLFxuXHRcdFx0XHRyZWRUaHJlc2hvbGQsXG5cdFx0XHQpfVxcbmA7XG5cdFx0fSlcblx0XHQuam9pbihcIlwiKTtcblxuXHRyZXR1cm4gYFxuTWV0YSBGaWxlIHwgT3V0IEZpbGUgIHwgU2l6ZSAocmF3KSB8IE5vdGUgXG4tLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS06fC0tLS0tLVxuJHtyb3dzfWA7XG59XG5cbi8qKlxuICogRmluZCB0aGUgdG9wIE4gbGFyZ2VzdCBub2RlcyBpbiByb290IHRyZWUuXG4gKiBEaWcgbm9kZXMgdW50aWwgdGhlIGRlcHRoIG9mIDMuXG4gKi9cbmZ1bmN0aW9uIGZpbmRMYXJnZURpcmVjdG9yaWVzKHJvb3Q6IFRyZWVNYXBOb2RlLCBOOiBudW1iZXIpIHtcblx0Y29uc3Qgbm9kZXM6IFRyZWVNYXBOb2RlW10gPSBbXTtcblx0Y29uc3QgcXVldWU6IEFycmF5PHsgbm9kZTogVHJlZU1hcE5vZGU7IGRlcHRoOiBudW1iZXIgfT4gPSBbXG5cdFx0eyBub2RlOiByb290LCBkZXB0aDogMCB9LFxuXHRdO1xuXHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IHNoaWZ0ID0gcXVldWUuc2hpZnQoKTtcblx0XHRpZiAoIXNoaWZ0KSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0Y29uc3QgeyBub2RlLCBkZXB0aCB9ID0gc2hpZnQ7XG5cdFx0aWYgKGRlcHRoID09PSAzKSB7XG5cdFx0XHRub2Rlcy5wdXNoKG5vZGUpO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0bm9kZXMucHVzaChub2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yIChjb25zdCBpdGVtIG9mIG5vZGUuY2hpbGRyZW4pIHtcblx0XHRcdFx0cXVldWUucHVzaCh7IG5vZGU6IGl0ZW0sIGRlcHRoOiBkZXB0aCArIDEgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGxhcmdlTm9kZXMgPSBub2Rlcy5zb3J0KChhLCBiKSA9PiBiLnZhbHVlIC0gYS52YWx1ZSkuc2xpY2UoMCwgTik7XG5cdHJldHVybiB7XG5cdFx0bGFyZ2VOb2Rlcyxcblx0XHRoYXNPdGhlcjogbm9kZXMubGVuZ3RoID4gTixcblx0fTtcbn1cblxuZnVuY3Rpb24gZml4ZWRQZXJjZW50KG46IG51bWJlciwgZDogbnVtYmVyKTogbnVtYmVyIHtcblx0cmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KCgobiAvIGQpICogMTAwKS50b0ZpeGVkKDEpKTtcbn1cblxuZnVuY3Rpb24gZmlsZVNpemVUYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHRvcE5MYXJnZXN0UGF0aHM6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGlmIChkYXRhLmxlbmd0aCA9PT0gMCB8fCB0b3BOTGFyZ2VzdFBhdGhzIDw9IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRsZXQgb3V0cHV0ID0gXCJcIjtcblx0b3V0cHV0ICs9IFwiPGRldGFpbHM+XFxuXCI7XG5cdG91dHB1dCArPSBcIjxzdW1tYXJ5Pkxhcmdlc3QgcGF0aHM8L3N1bW1hcnk+XFxuXCI7XG5cdG91dHB1dCArPSBgVGhlc2UgdmlzdWFsaXphdGlvbiBzaG93cyB0b3AgJHt0b3BOTGFyZ2VzdFBhdGhzfSBsYXJnZXN0IHBhdGhzIGluIHRoZSBidW5kbGUuXFxuYDtcblx0Zm9yIChjb25zdCBkIG9mIGRhdGEpIHtcblx0XHRvdXRwdXQgKz0gXCJcXG5cIjtcblx0XHRvdXRwdXQgKz0gYCMjIE1ldGEgZmlsZTogJHtkLm1ldGFmaWxlfSwgT3V0IGZpbGU6ICR7ZC5vdXRmaWxlfVxcbmA7XG5cdFx0aWYgKCFkLnRyZWUpIHtcblx0XHRcdG91dHB1dCArPSBcIlx1RkUwRlx1RkUwRlx1RDgzRFx1REREMVx1RkUwRkRlbGV0ZWRcXG5cIjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRvdXRwdXQgKz0gXCJ8IFBhdGggfCBTaXplIHxcXG5cIjtcblx0XHRvdXRwdXQgKz0gXCJ8LS0tLS0tfC0tLS0tLS18XFxuXCI7XG5cdFx0Y29uc3QgdG90YWxTaXplID0gZC50cmVlLnZhbHVlO1xuXHRcdGNvbnN0IHsgbGFyZ2VOb2RlcywgaGFzT3RoZXIgfSA9IGZpbmRMYXJnZURpcmVjdG9yaWVzKFxuXHRcdFx0ZC50cmVlLFxuXHRcdFx0dG9wTkxhcmdlc3RQYXRocyxcblx0XHQpO1xuXHRcdGZvciAoY29uc3QgeyBwYXRoLCB2YWx1ZSB9IG9mIGxhcmdlTm9kZXMpIHtcblx0XHRcdGNvbnN0IHBlcmNlbnQgPSBmaXhlZFBlcmNlbnQodmFsdWUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgJHtwYXRofSB8ICR7cmVuZGVyQmFyKHBlcmNlbnQsIHZhbHVlKX0gfFxcbmA7XG5cdFx0fVxuXHRcdGlmIChoYXNPdGhlcikge1xuXHRcdFx0Y29uc3Qgb3RoZXJTaXplID0gdG90YWxTaXplIC0gbGFyZ2VOb2Rlc1swXS52YWx1ZTtcblx0XHRcdGNvbnN0IG90aGVyUGVyY2VudCA9IGZpeGVkUGVyY2VudChvdGhlclNpemUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgKG90aGVyKSB8ICR7cmVuZGVyQmFyKG90aGVyUGVyY2VudCwgb3RoZXJTaXplKX0gfFxcbmA7XG5cdFx0fVxuXHR9XG5cdG91dHB1dCArPSBcIjwvZGV0YWlscz5cXG5cIjtcblx0cmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQmFyKHBlcmNlbnQ6IG51bWJlciwgYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IGJhciA9IHByb2dyZXNzKHBlcmNlbnQgLyAxMDApO1xuXHRyZXR1cm4gYFxcJHt7XFxcXGNvbG9ye0dvbGRlbnJvZH17ICR7YmFyfSB9fX1cXCQgJHtwZXJjZW50LnRvRml4ZWQoXG5cdFx0MSxcblx0KX0lLCAke2ZpbGVzaXplKGJ5dGVzKX1gO1xufVxuXG4vLyBCbG9jayBwcm9ncmVzc2lvbiBpcyAxLzggPSAwLjEyNVxuY29uc3QgYmxvY2tzID0gW1wiXCIsIFwiXHUyNThGXCIsIFwiXHUyNThFXCIsIFwiXHUyNThEXCIsIFwiXHUyNThDXCIsIFwiXHUyNThCXCIsIFwiXHUyNThBXCIsIFwiXHUyNTg5XCIsIFwiXHUyNTg4XCJdO1xuY29uc3QgcHJvZ3Jlc3Npb24gPSAxIC8gKGJsb2Nrcy5sZW5ndGggLSAxKTtcbmZ1bmN0aW9uIHByb2dyZXNzKHZhbHVlOiBudW1iZXIsIGxlbmd0aCA9IDI1LCB2bWluID0gMC4wLCB2bWF4ID0gMS4wKSB7XG5cdGNvbnN0IHYgPSB2YWx1ZSAqIGxlbmd0aDtcblx0Y29uc3QgaW50ZWdlclBhcnQgPSBNYXRoLmZsb29yKHYpO1xuXHRjb25zdCBmcmFjdGlvbmFsUGFydCA9IHYgLSBpbnRlZ2VyUGFydDtcblx0Y29uc3QgaSA9IE1hdGgucm91bmQoXG5cdFx0KHByb2dyZXNzaW9uICogTWF0aC5mbG9vcihmcmFjdGlvbmFsUGFydCAvIHByb2dyZXNzaW9uKSkgLyBwcm9ncmVzc2lvbixcblx0KTtcblx0cmV0dXJuIFwiXHUyNTg4XCIucmVwZWF0KGludGVnZXJQYXJ0KSArIGJsb2Nrc1tpXTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU2l6ZShkOiBDb21wYXJlUmVzdWx0KTogc3RyaW5nIHtcblx0cmV0dXJuIGZpbGVzaXplKGQuYnl0ZXMpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJOb3RlKGQ6IENvbXBhcmVSZXN1bHQsIHJlZFRocmVzaG9sZDogbnVtYmVyKTogc3RyaW5nIHtcblx0aWYgKGQucmVtYXJrID09PSBcImRlbGV0ZWRcIikge1xuXHRcdHJldHVybiBcIlx1RDgzRFx1REREMVx1RkUwRiBEZWxldGVkXCI7XG5cdH1cblx0aWYgKGQucmVtYXJrID09PSBcImFkZGVkXCIpIHtcblx0XHRyZXR1cm4gXCJcdUQ4M0NcdUREOTUgQWRkZWRcIjtcblx0fVxuXHRjb25zdCBkaWZmID0gZC5ieXRlcyAtIGQuYmFzZUJ5dGVzO1xuXHRpZiAoZGlmZiAhPT0gMCkge1xuXHRcdGNvbnN0IHBlcmNlbnRDaGFuZ2UgPSAoZGlmZiAvIGQuYmFzZUJ5dGVzKSAqIDEwMDtcblx0XHRyZXR1cm4gYCR7cmVuZGVyU3RhdHVzSW5kaWNhdG9yKHBlcmNlbnRDaGFuZ2UsIHJlZFRocmVzaG9sZCl9JHtmaWxlc2l6ZShcblx0XHRcdGRpZmYsXG5cdFx0KX0gKCR7c2lnbihwZXJjZW50Q2hhbmdlKX0ke3BlcmNlbnRDaGFuZ2UudG9GaXhlZCgxKX0lKWA7XG5cdH1cblx0cmV0dXJuIFwiXHUyNzA1ICBObyBjaGFuZ2VcIjtcbn1cblxuZnVuY3Rpb24gc2lnbihudW06IG51bWJlcik6IHN0cmluZyB7XG5cdHJldHVybiBudW0gPCAwID8gXCJcIiA6IFwiK1wiO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTdGF0dXNJbmRpY2F0b3IoXG5cdHBlcmNlbnRDaGFuZ2U6IG51bWJlcixcblx0cmVkVGhyZXNob2xkOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRsZXQgcmVzOiBzdHJpbmc7XG5cdGlmIChwZXJjZW50Q2hhbmdlID4gMCAmJiBwZXJjZW50Q2hhbmdlIDwgcmVkVGhyZXNob2xkKSB7XG5cdFx0cmVzID0gXCJcdTI2QTBcdUZFMEZcIjtcblx0fSBlbHNlIGlmIChwZXJjZW50Q2hhbmdlID49IHJlZFRocmVzaG9sZCkge1xuXHRcdHJlcyA9IFwiXHUyMDNDXHVGRTBGXCI7XG5cdH0gZWxzZSB7XG5cdFx0cmVzID0gXCJcdTI3MDUgXCI7XG5cdH1cblx0cmV0dXJuIGAke3Jlc30gJHtzaWduKHBlcmNlbnRDaGFuZ2UpfWA7XG59XG4iLCAiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbmltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IHsgZ2xvYlN5bmMgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dCwgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvcnQoaW5wdXQ6IElucHV0KTogdm9pZCB7XG5cdGNvbnN0IGFsbFBhZ2VTaXplcyA9IGdldEFsbFBhZ2VTaXplcyhpbnB1dCk7XG5cdGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnkpLCB7XG5cdFx0cmVjdXJzaXZlOiB0cnVlLFxuXHR9KTtcblx0Y29uc3QgcmVzdWx0SnNvblBhdGggPSBwYXRoLmpvaW4oXG5cdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcImJ1bmRsZV9hbmFseXNpcy5qc29uXCIsXG5cdCk7XG5cdGZzLndyaXRlRmlsZVN5bmMocmVzdWx0SnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGFsbFBhZ2VTaXplcywgbnVsbCwgMikpO1xuXHRjb25zb2xlLmxvZyhgV3JvdGUgJHtyZXN1bHRKc29uUGF0aH1gKTtcbn1cblxuaW50ZXJmYWNlIE1ldGFmaWxlUGF0aCB7XG5cdHJlYWRvbmx5IHJlbGF0aXZlUGF0aDogc3RyaW5nO1xuXHRyZWFkb25seSBhYnNvbHV0ZVBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNZXRhZmlsZXMoaW5wdXQ6IElucHV0KTogTWV0YWZpbGVQYXRoW10ge1xuXHRyZXR1cm4gaW5wdXQubWV0YWZpbGVzLmZsYXRNYXAoKG1ldGFmaWxlKSA9PiB7XG5cdFx0cmV0dXJuIGdsb2JTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBtZXRhZmlsZSksIHtcblx0XHRcdG5vZGlyOiB0cnVlLFxuXHRcdH0pLm1hcCgobWV0YUZpbGVQYXRoKSA9PiB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRyZWxhdGl2ZVBhdGg6IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgbWV0YUZpbGVQYXRoKSxcblx0XHRcdFx0YWJzb2x1dGVQYXRoOiBtZXRhRmlsZVBhdGgsXG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsUGFnZVNpemVzKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdGNvbnN0IGFjYzogUmVwb3J0ID0ge307XG5cdHJldHVybiBmaW5kTWV0YWZpbGVzKGlucHV0KS5yZWR1Y2UoKGFjYywgeyByZWxhdGl2ZVBhdGgsIGFic29sdXRlUGF0aCB9KSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVQYXRoLCBmcy5jb25zdGFudHMuUl9PSyk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XHRgTm8gbWV0YSBmaWxlIGZvdW5kIGF0IFwiJHthYnNvbHV0ZVBhdGh9XCIgLSBhIHBhdGggdG8gbWV0YSBmaWxlIG1heSBiZSB3cm9uZywgb3IgZXNidWlsZCBpcyBub3QgZXhlY3V0ZWQuYCxcblx0XHRcdCk7XG5cdFx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWV0YUZpbGVKc29uID0gbG9hZE1ldGFGaWxlKGFic29sdXRlUGF0aCk7XG5cdFx0T2JqZWN0LmVudHJpZXMobWV0YUZpbGVKc29uLm91dHB1dHMpLnJlZHVjZSgoYWNjLCBvdXRwdXQpID0+IHtcblx0XHRcdGNvbnN0IFtvdXRmaWxlLCBidWlsZE1ldGFdID0gb3V0cHV0O1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQhaW5wdXQuaW5jbHVkZUV4dGVuc2lvbnMuc29tZSgoZXh0KSA9PlxuXHRcdFx0XHRcdG91dGZpbGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChleHQpLFxuXHRcdFx0XHQpXG5cdFx0XHQpIHtcblx0XHRcdFx0cmV0dXJuIGFjYztcblx0XHRcdH1cblx0XHRcdGFjY1tgJHtyZWxhdGl2ZVBhdGh9IC0+ICR7b3V0ZmlsZX1gXSA9IHtcblx0XHRcdFx0Ynl0ZXM6IGJ1aWxkTWV0YS5ieXRlcyxcblx0XHRcdFx0bWV0YWZpbGU6IHJlbGF0aXZlUGF0aCxcblx0XHRcdFx0b3V0ZmlsZSxcblx0XHRcdH07XG5cdFx0XHRyZXR1cm4gYWNjO1xuXHRcdH0sIGFjYyk7XG5cdFx0cmV0dXJuIGFjYztcblx0fSwgYWNjKTtcbn1cbiIsICJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcblxuaW1wb3J0IHR5cGUgeyBNZXRhZmlsZSB9IGZyb20gXCJlc2J1aWxkXCI7XG5pbXBvcnQgdHlwZSB7IFJlcG9ydCB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGxvYWRKc29uRmlsZShwYXRoOiBzdHJpbmcpIHtcblx0cmV0dXJuIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhdGgpLnRvU3RyaW5nKFwidXRmLThcIikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZE1ldGFGaWxlKHBhdGg6IHN0cmluZyk6IE1ldGFmaWxlIHtcblx0cmV0dXJuIGxvYWRKc29uRmlsZShwYXRoKSBhcyBNZXRhZmlsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBbmFseXNpc0pzb24ocGF0aDogc3RyaW5nKTogUmVwb3J0IHtcblx0cmV0dXJuIGxvYWRKc29uRmlsZShwYXRoKSBhcyBSZXBvcnQ7XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hY3Rpb25zL3Rvb2xraXQvYmxvYi84MWE3M2FiYThiZWRkNTMyZjZlZGRjYzQxZWQzYTBmYWQ4YjFjZmViL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmUudHMjTDEyNlxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbmdsZUlucHV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IHZhbCA9IHByb2Nlc3MuZW52W2BJTlBVVF8ke25hbWUudG9VcHBlckNhc2UoKX1gXSB8fCBcIlwiO1xuXHRyZXR1cm4gdmFsLnRyaW0oKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJzc0dBQUEsT0FBUyxpQkFBQUEsT0FBcUIsV0NBOUIsT0FBT0MsT0FBUSxVQUNmLE9BQU9DLE9BQVUsWUNEakIsT0FBT0MsT0FBUSxVQUNmLE9BQU9DLE9BQVUsWUFDakIsT0FBT0MsT0FBYSxlQUVwQixVQUFZQyxPQUFhOzs0MDJEQ0p6QixPQUFPQyxPQUFRLFVBS2YsU0FBU0MsR0FBYUMsRUFBYyxDQUNuQyxPQUFPLEtBQUssTUFBTUYsR0FBRyxhQUFhRSxDQUFJ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TUFBTSxJQUFJLE1BQU0sdUJBQXVCLEVBRXhDLE1BQU8sQ0FDTixzQkFBdUIsT0FBTyxTQUM3QkQsRUFBZSx5QkFBeUIsR0FBSyxLQUM3QyxFQUNELEVBQ0EsWUFBYSxDQUFDLE9BQVEsT0FBUSxNQUFNLEVBQUUsU0FDckNBLEVBQWUsY0FBYyxHQUFLLE1BQ25DLEVBQ0EsaUJBQWtCLE9BQU8sU0FDeEJBLEVBQWUscUJBQXFCLEdBQUssS0FDekMsRUFDRCxFQUNBLG1CQUNDQSxFQUFlLG9CQUFvQixHQUFLLGlCQUN2QyxNQUFNLEdBQUcsRUFDWCxLQUFBQyxFQUNBLGtCQUFtQkQsRUFBZSxtQkFBbUIsR0FBSyxZQUMxRCxVQUFXRCxFQUFhLE1BQU0sR0FBRyxDQUNsQyxDQUNELENBRU8sU0FBU0csR0FBSUMsRUFBZUwsR0FBUyxFQUFTLENBQ3BETSxHQUFPRCxDQUFLLEVBQ1pFLEdBQVFGLENBQUssQ0FDZCxDQUVJLFlBQVksTUFBUUcsR0FBYyxRQUFRLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFDdERKLEdBQUkiLAogICJuYW1lcyI6IFsicGF0aFRvRmlsZVVSTCIsICJmcyIsICJwYXRoIiwgImZzIiwgInBhdGgiLCAicHJvY2VzcyIsICJjb25zb2xlIiwgImZzIiwgImxvYWRKc29uRmlsZSIsICJwYXRoIiwgImxvYWRNZXRhRmlsZSIsICJsb2FkQW5hbHlzaXNKc29uIiwgImdldFNpbmdsZUlucHV0IiwgIm5hbWUiLCAicmVwb3J0IiwgImlucHV0IiwgImFsbFBhZ2VTaXplcyIsICJnZXRBbGxQYWdlU2l6ZXMiLCAiZnMiLCAicGF0aCIsICJwcm9jZXNzIiwgInJlc3VsdEpzb25QYXRoIiwgImZpbmRNZXRhZmlsZXMiLCAibWV0YWZpbGUiLCAiZ2xvYlN5bmMiLCAibWV0YUZpbGVQYXRoIiwgImFjYyIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgIm1ldGFGaWxlSnNvbiIsICJsb2FkTWV0YUZpbGUiLCAib3V0cHV0IiwgIm91dGZpbGUiLCAiYnVpbGRNZXRhIiwgImV4dCIsICJjb21wYXJlIiwgImlucHV0IiwgImhhc0FueUNoYW5nZSIsICJvdXRwdXQiLCAiY3VycmVudCIsICJsb2FkQW5hbHlzaXNKc29uIiwgInBhdGgiLCAiYmFzZSIsICJsb2FkQmFzZUFuYWx5c2lzSnNvbiIsICJmaWxlVHJlZSIsICJidWlsZEZpbGVUcmVlIiwgImNvbXBhcmlzb24iLCAib3V0ZmlsZSIsICJjdXJyZW50U3RhdHMiLCAiYmFzZVN0YXRzIiwgInRyZWUiLCAidHJlZUtleSIsICJkaWZmIiwgIm1hcmtkb3duVGFibGUiLCAiZmlsZVNpemVUYWJsZSIsICJkZXRhaWwiLCAid3JpdGVDb21tZW50IiwgIm1ldGFmaWxlIiwgImZzIiwgInJlcG9ydCIsICJidWlsZFJvb3QiLCAicm9vdCIsICJmaWxlUGF0aCIsICJieXRlc0luT3V0cHV0IiwgImRpcmVjdG9yaWVzIiwgImJ1aWxkTm9kZSIsICJub2RlIiwgInBhdGhzIiwgInZhbHVlIiwgImZpcnN0IiwgImNoaWxkIiwgInRyZWVzIiwgInJlbGF0aXZlUGF0aCIsICJhYnNvbHV0ZVBhdGgiLCAiZmluZE1ldGFmaWxlcyIsICJtZXRhZmlsZUpzb24iLCAibG9hZE1ldGFGaWxlIiwgImJ1aWxkTWV0YSIsICJzcGFjZXIiLCAiZmlsZXNpemUiLCAiYnl0ZXMiLCAic2lnbiIsICJuIiwgImRhdGEiLCAicmVkVGhyZXNob2xkIiwgImQiLCAicmVuZGVyU2l6ZSIsICJyZW5kZXJOb3RlIiwgImZpbmRMYXJnZURpcmVjdG9yaWVzIiwgIk4iLCAibm9kZXMiLCAicXVldWUiLCAic2hpZnQiLCAiZGVwdGgiLCAiaXRlbSIsICJhIiwgImIiLCAiZml4ZWRQZXJjZW50IiwgInRvcE5MYXJnZXN0UGF0aHMiLCAidG90YWxTaXplIiwgImxhcmdlTm9kZXMiLCAiaGFzT3RoZXIiLCAicGVyY2VudCIsICJyZW5kZXJCYXIiLCAib3RoZXJTaXplIiwgIm90aGVyUGVyY2VudCIsICJwcm9ncmVzcyIsICJibG9ja3MiLCAicHJvZ3Jlc3Npb24iLCAibGVuZ3RoIiwgInZtaW4iLCAidm1heCIsICJ2IiwgImludGVnZXJQYXJ0IiwgImZyYWN0aW9uYWxQYXJ0IiwgImkiLCAicGVyY2VudENoYW5nZSIsICJyZW5kZXJTdGF0dXNJbmRpY2F0b3IiLCAibnVtIiwgInJlcyIsICJnZXRJbnB1dCIsICJyYXdNZXRhZmlsZXMiLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJydW4iLCAiaW5wdXQiLCAicmVwb3J0IiwgImNvbXBhcmUiLCAicGF0aFRvRmlsZVVSTCJdCn0K diff --git a/src/compare.ts b/src/compare.ts index 3ecdf0f..2262d98 100644 --- a/src/compare.ts +++ b/src/compare.ts @@ -110,16 +110,19 @@ function detail(input: Input): string { function loadBaseAnalysisJson(input: Input): Report { try { - return loadAnalysisJson( + const report = loadAnalysisJson( path.join( process.cwd(), input.analyzerDirectory, "base/bundle/bundle_analysis.json", ), ); + console.info("Base analysis found.", report); + return report; } catch (e) { - // Empty if no base analysis found. - // This is a case when analyzer is first set up or all artifacts are expired. + console.warn( + "No base analysis found. First setup or all artifacts are expired.", + ); return {}; } } From 9257df1456b5982ef893716eb624e03fd5d61483 Mon Sep 17 00:00:00 2001 From: exoego Date: Sun, 2 Jun 2024 09:05:24 +0900 Subject: [PATCH 5/6] If it is from a fork, run only on "pull_request_target" event --- .github/workflows/ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a7a0ef..2032bed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ on: - '*.md' pull_request: branches: [main] + pull_request_target: + branches: [main] + types: [opened, edited, synchronize, reopened] permissions: contents: read # for checkout repository @@ -16,6 +19,9 @@ jobs: build: runs-on: ubuntu-latest timeout-minutes: 5 + if: | + (github.event.pull_request.head.repo.fork == true && github.event_name == 'pull_request_target') || + (github.event.pull_request.head.repo.fork != true && github.event_name != 'pull_request_target') steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 From d7ce8b884a2123d918d3da9c0ebb4fe7799bdb86 Mon Sep 17 00:00:00 2001 From: exoego Date: Sun, 2 Jun 2024 09:13:41 +0900 Subject: [PATCH 6/6] rebuild --- dist/index.mjs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index a81bcf3..1fe4c8c 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -1,9 +1,9 @@ -var Ds=Object.create;var Te=Object.defineProperty;var Ns=Object.getOwnPropertyDescriptor;var Ms=Object.getOwnPropertyNames;var _s=Object.getPrototypeOf,Ls=Object.prototype.hasOwnProperty;var Ae=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports);var js=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ms(t))!Ls.call(r,i)&&i!==e&&Te(r,i,{get:()=>t[i],enumerable:!(s=Ns(t,i))||s.enumerable});return r};var zs=(r,t,e)=>(e=r!=null?Ds(_s(r)):{},js(t||!r||!r.__esModule?Te(e,"default",{value:r,enumerable:!0}):e,r));var Fe=Ae((Cr,Oe)=>{"use strict";Oe.exports=ke;function ke(r,t,e){r instanceof RegExp&&(r=Re(r,e)),t instanceof RegExp&&(t=Re(t,e));var s=Ce(r,t,e);return s&&{start:s[0],end:s[1],pre:e.slice(0,s[0]),body:e.slice(s[0]+r.length,s[1]),post:e.slice(s[1]+t.length)}}function Re(r,t){var e=t.match(r);return e?e[0]:null}ke.range=Ce;function Ce(r,t,e){var s,i,n,o,h,a=e.indexOf(r),l=e.indexOf(t,a+1),c=a;if(a>=0&&l>0){if(r===t)return[a,l];for(s=[],n=e.length;c>=0&&!h;)c==a?(s.push(c),a=e.indexOf(r,c+1)):s.length==1?h=[s.pop(),l]:(i=s.pop(),i=0?a:l;s.length&&(h=[n,o])}return h}});var Ie=Ae((Or,ze)=>{var De=Fe();ze.exports=$s;var Ne="\0SLASH"+Math.random()+"\0",Me="\0OPEN"+Math.random()+"\0",te="\0CLOSE"+Math.random()+"\0",_e="\0COMMA"+Math.random()+"\0",Le="\0PERIOD"+Math.random()+"\0";function Qt(r){return parseInt(r,10)==r?parseInt(r,10):r.charCodeAt(0)}function Is(r){return r.split("\\\\").join(Ne).split("\\{").join(Me).split("\\}").join(te).split("\\,").join(_e).split("\\.").join(Le)}function Ps(r){return r.split(Ne).join("\\").split(Me).join("{").split(te).join("}").split(_e).join(",").split(Le).join(".")}function je(r){if(!r)return[""];var t=[],e=De("{","}",r);if(!e)return r.split(",");var s=e.pre,i=e.body,n=e.post,o=s.split(",");o[o.length-1]+="{"+i+"}";var h=je(n);return n.length&&(o[o.length-1]+=h.shift(),o.push.apply(o,h)),t.push.apply(t,o),t}function $s(r){return r?(r.substr(0,2)==="{}"&&(r="\\{\\}"+r.substr(2)),at(Is(r),!0).map(Ps)):[]}function Ws(r){return"{"+r+"}"}function Bs(r){return/^-?0\d/.test(r)}function Us(r,t){return r<=t}function Gs(r,t){return r>=t}function at(r,t){var e=[],s=De("{","}",r);if(!s)return[r];var i=s.pre,n=s.post.length?at(s.post,!1):[""];if(/\$$/.test(s.pre))for(var o=0;o=0;if(!c&&!f)return s.post.match(/,.*\}/)?(r=s.pre+"{"+s.body+te+s.post,at(r)):[r];var u;if(c)u=s.body.split(/\.\./);else if(u=je(s.body),u.length===1&&(u=at(u[0],!1).map(Ws),u.length===1))return n.map(function(Ct){return s.pre+u[0]+Ct});var d;if(c){var m=Qt(u[0]),p=Qt(u[1]),w=Math.max(u[0].length,u[1].length),g=u.length==3?Math.abs(Qt(u[2])):1,S=Us,b=p0){var kt=new Array(z+1).join("0");E<0?x="-"+kt+x.slice(1):x=kt+x}}d.push(x)}}else{d=[];for(var B=0;B{if(typeof r!="string")throw new TypeError("invalid pattern");if(r.length>65536)throw new TypeError("pattern is too long")};var Hs={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},ct=r=>r.replace(/[[\]\\-]/g,"\\$&"),qs=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Pe=r=>r.join(""),$e=(r,t)=>{let e=t;if(r.charAt(e)!=="[")throw new Error("not in a brace expression");let s=[],i=[],n=e+1,o=!1,h=!1,a=!1,l=!1,c=e,f="";t:for(;nf?s.push(ct(f)+"-"+ct(p)):p===f&&s.push(ct(p)),f="",n++;continue}if(r.startsWith("-]",n+1)){s.push(ct(p+"-")),n+=2;continue}if(r.startsWith("-",n+1)){f=p,n+=2;continue}s.push(ct(p)),n++}if(ct?r.replace(/\[([^\/\\])\]/g,"$1"):r.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");var Js=new Set(["!","?","+","*","@"]),We=r=>Js.has(r),Ks="(?!(?:^|/)\\.\\.?(?:$|/))",Ot="(?!\\.)",Vs=new Set(["[","."]),Ys=new Set(["..","."]),Xs=new Set("().*{}+?[]^$\\!"),Zs=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ee="[^/]",Be=ee+"*?",Ue=ee+"+?",Q=class r{type;#t;#s;#n=!1;#i=[];#h;#l;#f;#a=!1;#o;#e;#m=!1;constructor(t,e,s={}){this.type=t,t&&(this.#s=!0),this.#h=e,this.#t=this.#h?this.#h.#t:this,this.#o=this.#t===this?s:this.#t.#o,this.#f=this.#t===this?[]:this.#t.#f,t==="!"&&!this.#t.#a&&this.#f.push(this),this.#l=this.#h?this.#h.#i.length:0}get hasMagic(){if(this.#s!==void 0)return this.#s;for(let t of this.#i)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#s=!0;return this.#s}toString(){return this.#e!==void 0?this.#e:this.type?this.#e=this.type+"("+this.#i.map(t=>String(t)).join("|")+")":this.#e=this.#i.map(t=>String(t)).join("")}#w(){if(this!==this.#t)throw new Error("should only call on root");if(this.#a)return this;this.toString(),this.#a=!0;let t;for(;t=this.#f.pop();){if(t.type!=="!")continue;let e=t,s=e.#h;for(;s;){for(let i=e.#l+1;!s.type&&itypeof e=="string"?e:e.toJSON()):[this.type,...this.#i.map(e=>e.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&this.#h?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#h?.isStart())return!1;if(this.#l===0)return!0;let t=this.#h;for(let e=0;e{let[m,p,w,g]=typeof d=="string"?r.#S(d,this.#s,a):d.toRegExpSource(t);return this.#s=this.#s||w,this.#n=this.#n||g,m}).join(""),c="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&Ys.has(this.#i[0]))){let m=Vs,p=e&&m.has(l.charAt(0))||l.startsWith("\\.")&&m.has(l.charAt(2))||l.startsWith("\\.\\.")&&m.has(l.charAt(4)),w=!e&&!t&&m.has(l.charAt(0));c=p?Ks:w?Ot:""}let f="";return this.isEnd()&&this.#t.#a&&this.#h?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,I(l),this.#s=!!this.#s,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#u(e);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let a=this.toString();return this.#i=[a],this.type=null,this.#s=void 0,[a,I(this.toString()),!1,!1]}let o=!s||t||e||!Ot?"":this.#u(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let h="";if(this.type==="!"&&this.#m)h=(this.isStart()&&!e?Ot:"")+Ue;else{let a=this.type==="!"?"))"+(this.isStart()&&!e&&!t?Ot:"")+Be+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;h=i+n+a}return[h,I(n),this.#s=!!this.#s,this.#n]}#u(t){return this.#i.map(e=>{if(typeof e=="string")throw new Error("string type in extglob ast??");let[s,i,n,o]=e.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join("|")}static#S(t,e,s=!1){let i=!1,n="",o=!1;for(let h=0;ht?r.replace(/[?*()[\]]/g,"[$&]"):r.replace(/[?*()[\]\\]/g,"\\$&");var F=(r,t,e={})=>(lt(t),!e.nocomment&&t.charAt(0)==="#"?!1:new N(t,e).match(r)),Qs=/^\*+([^+@!?\*\[\(]*)$/,ti=r=>t=>!t.startsWith(".")&&t.endsWith(r),ei=r=>t=>t.endsWith(r),si=r=>(r=r.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(r)),ii=r=>(r=r.toLowerCase(),t=>t.toLowerCase().endsWith(r)),ri=/^\*+\.\*+$/,ni=r=>!r.startsWith(".")&&r.includes("."),oi=r=>r!=="."&&r!==".."&&r.includes("."),hi=/^\.\*+$/,ai=r=>r!=="."&&r!==".."&&r.startsWith("."),li=/^\*+$/,ci=r=>r.length!==0&&!r.startsWith("."),fi=r=>r.length!==0&&r!=="."&&r!=="..",ui=/^\?+([^+@!?\*\[\(]*)?$/,di=([r,t=""])=>{let e=Je([r]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},pi=([r,t=""])=>{let e=Ke([r]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},mi=([r,t=""])=>{let e=Ke([r]);return t?s=>e(s)&&s.endsWith(t):e},gi=([r,t=""])=>{let e=Je([r]);return t?s=>e(s)&&s.endsWith(t):e},Je=([r])=>{let t=r.length;return e=>e.length===t&&!e.startsWith(".")},Ke=([r])=>{let t=r.length;return e=>e.length===t&&e!=="."&&e!==".."},Ve=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Ge={win32:{sep:"\\"},posix:{sep:"/"}},wi=Ve==="win32"?Ge.win32.sep:Ge.posix.sep;F.sep=wi;var k=Symbol("globstar **");F.GLOBSTAR=k;var yi="[^/]",bi=yi+"*?",Si="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Ei="(?:(?!(?:\\/|^)\\.).)*?",vi=(r,t={})=>e=>F(e,r,t);F.filter=vi;var _=(r,t={})=>Object.assign({},r,t),xi=r=>{if(!r||typeof r!="object"||!Object.keys(r).length)return F;let t=F;return Object.assign((s,i,n={})=>t(s,i,_(r,n)),{Minimatch:class extends t.Minimatch{constructor(i,n={}){super(i,_(r,n))}static defaults(i){return t.defaults(_(r,i)).Minimatch}},AST:class extends t.AST{constructor(i,n,o={}){super(i,n,_(r,o))}static fromGlob(i,n={}){return t.AST.fromGlob(i,_(r,n))}},unescape:(s,i={})=>t.unescape(s,_(r,i)),escape:(s,i={})=>t.escape(s,_(r,i)),filter:(s,i={})=>t.filter(s,_(r,i)),defaults:s=>t.defaults(_(r,s)),makeRe:(s,i={})=>t.makeRe(s,_(r,i)),braceExpand:(s,i={})=>t.braceExpand(s,_(r,i)),match:(s,i,n={})=>t.match(s,i,_(r,n)),sep:t.sep,GLOBSTAR:k})};F.defaults=xi;var Ye=(r,t={})=>(lt(r),t.nobrace||!/\{(?:(?!\{).)*\}/.test(r)?[r]:(0,qe.default)(r));F.braceExpand=Ye;var Ti=(r,t={})=>new N(r,t).makeRe();F.makeRe=Ti;var Ai=(r,t,e={})=>{let s=new N(t,e);return r=r.filter(i=>s.match(i)),s.options.nonull&&!r.length&&r.push(t),r};F.match=Ai;var He=/[?*]|[+@!]\(.*?\)|\[|\]/,Ri=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),N=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){lt(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Ve,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=e.windowsNoMagicRoot!==void 0?e.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let e of t)if(typeof e!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,e=this.options;if(!e.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...n)=>console.error(...n)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(n=>this.slashSplit(n));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((n,o,h)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=n[0]===""&&n[1]===""&&(n[2]==="?"||!He.test(n[2]))&&!He.test(n[3]),l=/^[a-z]:/i.test(n[0]);if(a)return[...n.slice(0,4),...n.slice(4).map(c=>this.parse(c))];if(l)return[n[0],...n.slice(1).map(c=>this.parse(c))]}return n.map(a=>this.parse(a))});if(this.debug(this.pattern,i),this.set=i.filter(n=>n.indexOf(!1)===-1),this.isWindows)for(let n=0;n=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):e>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(e=>{let s=-1;for(;(s=e.indexOf("**",s+1))!==-1;){let i=s;for(;e[i+1]==="**";)i++;i!==s&&e.splice(s,i-s)}return e})}levelOneOptimize(t){return t.map(e=>(e=e.reduce((s,i)=>{let n=s[s.length-1];return i==="**"&&n==="**"?s:i===".."&&n&&n!==".."&&n!=="."&&n!=="**"?(s.pop(),s):(s.push(i),s)},[]),e.length===0?[""]:e))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&s.splice(i+1,o-i);let h=s[i+1],a=s[i+2],l=s[i+3];if(h!==".."||!a||a==="."||a===".."||!l||l==="."||l==="..")continue;e=!0,s.splice(i,1);let c=s.slice(0);c[i]="**",t.push(c),i--}if(!this.preserveMultipleSlashes){for(let o=1;oe.length)}partsMatch(t,e,s=!1){let i=0,n=0,o=[],h="";for(;ib?e=e.slice(y):b>y&&(t=t.slice(b)))}}let{optimizationLevel:n=1}=this.options;n>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var o=0,h=0,a=t.length,l=e.length;o>> no match, partial?`,t,u,e,d),u===a))}let p;if(typeof c=="string"?(p=f===c,this.debug("string match",c,f,p)):(p=c.test(f),this.debug("pattern match",c,f,p)),!p)return!1}if(o===a&&h===l)return!0;if(o===a)return s;if(h===l)return o===a-1&&t[o]==="";throw new Error("wtf?")}braceExpand(){return Ye(this.pattern,this.options)}parse(t){lt(t);let e=this.options;if(t==="**")return k;if(t==="")return"";let s,i=null;(s=t.match(li))?i=e.dot?fi:ci:(s=t.match(Qs))?i=(e.nocase?e.dot?ii:si:e.dot?ei:ti)(s[1]):(s=t.match(ui))?i=(e.nocase?e.dot?pi:di:e.dot?mi:gi)(s):(s=t.match(ri))?i=e.dot?oi:ni:(s=t.match(hi))&&(i=ai);let n=Q.fromGlob(t,this.options).toMMPattern();return i&&typeof n=="object"&&Reflect.defineProperty(n,"test",{value:i}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let e=this.options,s=e.noglobstar?bi:e.dot?Si:Ei,i=new Set(e.nocase?["i"]:[]),n=t.map(a=>{let l=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))i.add(f);return typeof c=="string"?Ri(c):c===k?k:c._src});return l.forEach((c,f)=>{let u=l[f+1],d=l[f-1];c!==k||d===k||(d===void 0?u!==void 0&&u!==k?l[f+1]="(?:\\/|"+s+"\\/)?"+u:l[f]=s:u===void 0?l[f-1]=d+"(?:\\/|"+s+")?":u!==k&&(l[f-1]=d+"(?:\\/|\\/"+s+"\\/)"+u,l[f+1]=k))}),l.filter(c=>c!==k).join("/")}).join("|"),[o,h]=t.length>1?["(?:",")"]:["",""];n="^"+o+n+h+"$",this.negate&&(n="^(?!"+n+").+$");try{this.regexp=new RegExp(n,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&e)return!0;let s=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let n=this.set;this.debug(this.pattern,"set",n);let o=i[i.length-1];if(!o)for(let h=i.length-2;!o&&h>=0;h--)o=i[h];for(let h=0;h{typeof se.emitWarning=="function"?se.emitWarning(r,t,e,s):console.error(`[${e}] ${t}: ${r}`)},Ft=globalThis.AbortController,Xe=globalThis.AbortSignal;if(typeof Ft>"u"){Xe=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(s,i){this._onabort.push(i)}},Ft=class{constructor(){t()}signal=new Xe;abort(s){if(!this.signal.aborted){this.signal.reason=s,this.signal.aborted=!0;for(let i of this.signal._onabort)i(s);this.signal.onabort?.(s)}}};let r=se.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{r&&(r=!1,Qe("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var ki=r=>!Ze.has(r),Vr=Symbol("type"),J=r=>r&&r===Math.floor(r)&&r>0&&isFinite(r),ts=r=>J(r)?r<=Math.pow(2,8)?Uint8Array:r<=Math.pow(2,16)?Uint16Array:r<=Math.pow(2,32)?Uint32Array:r<=Number.MAX_SAFE_INTEGER?st:null:null,st=class extends Array{constructor(t){super(t),this.fill(0)}},ie=class r{heap;length;static#t=!1;static create(t){let e=ts(t);if(!e)return[];r.#t=!0;let s=new r(t,e);return r.#t=!1,s}constructor(t,e){if(!r.#t)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},ft=class r{#t;#s;#n;#i;#h;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#l;#f;#a;#o;#e;#m;#w;#d;#u;#S;#g;#A;#R;#E;#b;#C;#p;static unsafeExposeInternals(t){return{starts:t.#R,ttls:t.#E,sizes:t.#A,keyMap:t.#a,keyList:t.#o,valList:t.#e,next:t.#m,prev:t.#w,get head(){return t.#d},get tail(){return t.#u},free:t.#S,isBackgroundFetch:e=>t.#c(e),backgroundFetch:(e,s,i,n)=>t.#_(e,s,i,n),moveToTail:e=>t.#M(e),indexes:e=>t.#T(e),rindexes:e=>t.#O(e),isStale:e=>t.#y(e)}}get max(){return this.#t}get maxSize(){return this.#s}get calculatedSize(){return this.#f}get size(){return this.#l}get fetchMethod(){return this.#h}get dispose(){return this.#n}get disposeAfter(){return this.#i}constructor(t){let{max:e=0,ttl:s,ttlResolution:i=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:a,dispose:l,disposeAfter:c,noDisposeOnSet:f,noUpdateTTL:u,maxSize:d=0,maxEntrySize:m=0,sizeCalculation:p,fetchMethod:w,noDeleteOnFetchRejection:g,noDeleteOnStaleGet:S,allowStaleOnFetchRejection:b,allowStaleOnFetchAbort:y,ignoreFetchAbort:E}=t;if(e!==0&&!J(e))throw new TypeError("max option must be a nonnegative integer");let x=e?ts(e):Array;if(!x)throw new Error("invalid max value: "+e);if(this.#t=e,this.#s=d,this.maxEntrySize=m||this.#s,this.sizeCalculation=p,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#h=w,this.#C=!!w,this.#a=new Map,this.#o=new Array(e).fill(void 0),this.#e=new Array(e).fill(void 0),this.#m=new x(e),this.#w=new x(e),this.#d=0,this.#u=0,this.#S=ie.create(e),this.#l=0,this.#f=0,typeof l=="function"&&(this.#n=l),typeof c=="function"?(this.#i=c,this.#g=[]):(this.#i=void 0,this.#g=void 0),this.#b=!!this.#n,this.#p=!!this.#i,this.noDisposeOnSet=!!f,this.noUpdateTTL=!!u,this.noDeleteOnFetchRejection=!!g,this.allowStaleOnFetchRejection=!!b,this.allowStaleOnFetchAbort=!!y,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(this.#s!==0&&!J(this.#s))throw new TypeError("maxSize must be a positive integer if specified");if(!J(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#D()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!S,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=J(i)||i===0?i:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!J(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#F()}if(this.#t===0&&this.ttl===0&&this.#s===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#t&&!this.#s){let z="LRU_CACHE_UNBOUNDED";ki(z)&&(Ze.add(z),Qe("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",z,r))}}getRemainingTTL(t){return this.#a.has(t)?1/0:0}#F(){let t=new st(this.#t),e=new st(this.#t);this.#E=t,this.#R=e,this.#r=(n,o,h=et.now())=>{if(e[n]=o!==0?h:0,t[n]=o,o!==0&&this.ttlAutopurge){let a=setTimeout(()=>{this.#y(n)&&this.delete(this.#o[n])},o+1);a.unref&&a.unref()}},this.#k=n=>{e[n]=t[n]!==0?et.now():0},this.#v=(n,o)=>{if(t[o]){let h=t[o],a=e[o];if(!h||!a)return;n.ttl=h,n.start=a,n.now=s||i();let l=n.now-a;n.remainingTTL=h-l}};let s=0,i=()=>{let n=et.now();if(this.ttlResolution>0){s=n;let o=setTimeout(()=>s=0,this.ttlResolution);o.unref&&o.unref()}return n};this.getRemainingTTL=n=>{let o=this.#a.get(n);if(o===void 0)return 0;let h=t[o],a=e[o];if(!h||!a)return 1/0;let l=(s||i())-a;return h-l},this.#y=n=>{let o=e[n],h=t[n];return!!h&&!!o&&(s||i())-o>h}}#k=()=>{};#v=()=>{};#r=()=>{};#y=()=>!1;#D(){let t=new st(this.#t);this.#f=0,this.#A=t,this.#x=e=>{this.#f-=t[e],t[e]=0},this.#j=(e,s,i,n)=>{if(this.#c(s))return 0;if(!J(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,e),!J(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#L=(e,s,i)=>{if(t[e]=s,this.#s){let n=this.#s-t[e];for(;this.#f>n;)this.#N(!0)}this.#f+=t[e],i&&(i.entrySize=s,i.totalCalculatedSize=this.#f)}}#x=t=>{};#L=(t,e,s)=>{};#j=(t,e,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:t=this.allowStale}={}){if(this.#l)for(let e=this.#u;!(!this.#z(e)||((t||!this.#y(e))&&(yield e),e===this.#d));)e=this.#w[e]}*#O({allowStale:t=this.allowStale}={}){if(this.#l)for(let e=this.#d;!(!this.#z(e)||((t||!this.#y(e))&&(yield e),e===this.#u));)e=this.#m[e]}#z(t){return t!==void 0&&this.#a.get(this.#o[t])===t}*entries(){for(let t of this.#T())this.#e[t]!==void 0&&this.#o[t]!==void 0&&!this.#c(this.#e[t])&&(yield[this.#o[t],this.#e[t]])}*rentries(){for(let t of this.#O())this.#e[t]!==void 0&&this.#o[t]!==void 0&&!this.#c(this.#e[t])&&(yield[this.#o[t],this.#e[t]])}*keys(){for(let t of this.#T()){let e=this.#o[t];e!==void 0&&!this.#c(this.#e[t])&&(yield e)}}*rkeys(){for(let t of this.#O()){let e=this.#o[t];e!==void 0&&!this.#c(this.#e[t])&&(yield e)}}*values(){for(let t of this.#T())this.#e[t]!==void 0&&!this.#c(this.#e[t])&&(yield this.#e[t])}*rvalues(){for(let t of this.#O())this.#e[t]!==void 0&&!this.#c(this.#e[t])&&(yield this.#e[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(let s of this.#T()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;if(n!==void 0&&t(n,this.#o[s],this))return this.get(this.#o[s],e)}}forEach(t,e=this){for(let s of this.#T()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(e,n,this.#o[s],this)}}rforEach(t,e=this){for(let s of this.#O()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(e,n,this.#o[s],this)}}purgeStale(){let t=!1;for(let e of this.#O({allowStale:!0}))this.#y(e)&&(this.delete(this.#o[e]),t=!0);return t}info(t){let e=this.#a.get(t);if(e===void 0)return;let s=this.#e[e],i=this.#c(s)?s.__staleWhileFetching:s;if(i===void 0)return;let n={value:i};if(this.#E&&this.#R){let o=this.#E[e],h=this.#R[e];if(o&&h){let a=o-(et.now()-h);n.ttl=a,n.start=Date.now()}}return this.#A&&(n.size=this.#A[e]),n}dump(){let t=[];for(let e of this.#T({allowStale:!0})){let s=this.#o[e],i=this.#e[e],n=this.#c(i)?i.__staleWhileFetching:i;if(n===void 0||s===void 0)continue;let o={value:n};if(this.#E&&this.#R){o.ttl=this.#E[e];let h=et.now()-this.#R[e];o.start=Math.floor(Date.now()-h)}this.#A&&(o.size=this.#A[e]),t.unshift([s,o])}return t}load(t){this.clear();for(let[e,s]of t){if(s.start){let i=Date.now()-s.start;s.start=et.now()-i}this.set(e,s.value,s)}}set(t,e,s={}){if(e===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:a}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,c=this.#j(t,e,s.size||0,h);if(this.maxEntrySize&&c>this.maxEntrySize)return a&&(a.set="miss",a.maxEntrySizeExceeded=!0),this.delete(t),this;let f=this.#l===0?void 0:this.#a.get(t);if(f===void 0)f=this.#l===0?this.#u:this.#S.length!==0?this.#S.pop():this.#l===this.#t?this.#N(!1):this.#l,this.#o[f]=t,this.#e[f]=e,this.#a.set(t,f),this.#m[this.#u]=f,this.#w[f]=this.#u,this.#u=f,this.#l++,this.#L(f,c,a),a&&(a.set="add"),l=!1;else{this.#M(f);let u=this.#e[f];if(e!==u){if(this.#C&&this.#c(u)){u.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:d}=u;d!==void 0&&!o&&(this.#b&&this.#n?.(d,t,"set"),this.#p&&this.#g?.push([d,t,"set"]))}else o||(this.#b&&this.#n?.(u,t,"set"),this.#p&&this.#g?.push([u,t,"set"]));if(this.#x(f),this.#L(f,c,a),this.#e[f]=e,a){a.set="replace";let d=u&&this.#c(u)?u.__staleWhileFetching:u;d!==void 0&&(a.oldValue=d)}}else a&&(a.set="update")}if(i!==0&&!this.#E&&this.#F(),this.#E&&(l||this.#r(f,i,n),a&&this.#v(a,f)),!o&&this.#p&&this.#g){let u=this.#g,d;for(;d=u?.shift();)this.#i?.(...d)}return this}pop(){try{for(;this.#l;){let t=this.#e[this.#d];if(this.#N(!0),this.#c(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#p&&this.#g){let t=this.#g,e;for(;e=t?.shift();)this.#i?.(...e)}}}#N(t){let e=this.#d,s=this.#o[e],i=this.#e[e];return this.#C&&this.#c(i)?i.__abortController.abort(new Error("evicted")):(this.#b||this.#p)&&(this.#b&&this.#n?.(i,s,"evict"),this.#p&&this.#g?.push([i,s,"evict"])),this.#x(e),t&&(this.#o[e]=void 0,this.#e[e]=void 0,this.#S.push(e)),this.#l===1?(this.#d=this.#u=0,this.#S.length=0):this.#d=this.#m[e],this.#a.delete(s),this.#l--,e}has(t,e={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=e,n=this.#a.get(t);if(n!==void 0){let o=this.#e[n];if(this.#c(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#y(n))i&&(i.has="stale",this.#v(i,n));else return s&&this.#k(n),i&&(i.has="hit",this.#v(i,n)),!0}else i&&(i.has="miss");return!1}peek(t,e={}){let{allowStale:s=this.allowStale}=e,i=this.#a.get(t);if(i===void 0||!s&&this.#y(i))return;let n=this.#e[i];return this.#c(n)?n.__staleWhileFetching:n}#_(t,e,s,i){let n=e===void 0?void 0:this.#e[e];if(this.#c(n))return n;let o=new Ft,{signal:h}=s;h?.addEventListener("abort",()=>o.abort(h.reason),{signal:o.signal});let a={signal:o.signal,options:s,context:i},l=(p,w=!1)=>{let{aborted:g}=o.signal,S=s.ignoreFetchAbort&&p!==void 0;if(s.status&&(g&&!w?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,S&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),g&&!S&&!w)return f(o.signal.reason);let b=d;return this.#e[e]===d&&(p===void 0?b.__staleWhileFetching?this.#e[e]=b.__staleWhileFetching:this.delete(t):(s.status&&(s.status.fetchUpdated=!0),this.set(t,p,a.options))),p},c=p=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=p),f(p)),f=p=>{let{aborted:w}=o.signal,g=w&&s.allowStaleOnFetchAbort,S=g||s.allowStaleOnFetchRejection,b=S||s.noDeleteOnFetchRejection,y=d;if(this.#e[e]===d&&(!b||y.__staleWhileFetching===void 0?this.delete(t):g||(this.#e[e]=y.__staleWhileFetching)),S)return s.status&&y.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),y.__staleWhileFetching;if(y.__returned===y)throw p},u=(p,w)=>{let g=this.#h?.(t,n,a);g&&g instanceof Promise&&g.then(S=>p(S===void 0?void 0:S),w),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(p(void 0),s.allowStaleOnFetchAbort&&(p=S=>l(S,!0)))})};s.status&&(s.status.fetchDispatched=!0);let d=new Promise(u).then(l,c),m=Object.assign(d,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return e===void 0?(this.set(t,m,{...a.options,status:void 0}),e=this.#a.get(t)):this.#e[e]=m,m}#c(t){if(!this.#C)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof Ft}async fetch(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:u=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:p,forceRefresh:w=!1,status:g,signal:S}=e;if(!this.#C)return g&&(g.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,status:g});let b={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:h,size:a,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:m,ignoreFetchAbort:d,status:g,signal:S},y=this.#a.get(t);if(y===void 0){g&&(g.fetch="miss");let E=this.#_(t,y,b,p);return E.__returned=E}else{let E=this.#e[y];if(this.#c(E)){let Ct=s&&E.__staleWhileFetching!==void 0;return g&&(g.fetch="inflight",Ct&&(g.returnedStale=!0)),Ct?E.__staleWhileFetching:E.__returned=E}let x=this.#y(y);if(!w&&!x)return g&&(g.fetch="hit"),this.#M(y),i&&this.#k(y),g&&this.#v(g,y),E;let z=this.#_(t,y,b,p),B=z.__staleWhileFetching!==void 0&&s;return g&&(g.fetch=x?"stale":"refresh",B&&x&&(g.returnedStale=!0)),B?z.__staleWhileFetching:z.__returned=z}}get(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=e,h=this.#a.get(t);if(h!==void 0){let a=this.#e[h],l=this.#c(a);return o&&this.#v(o,h),this.#y(h)?(o&&(o.get="stale"),l?(o&&s&&a.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?a.__staleWhileFetching:void 0):(n||this.delete(t),o&&s&&(o.returnedStale=!0),s?a:void 0)):(o&&(o.get="hit"),l?a.__staleWhileFetching:(this.#M(h),i&&this.#k(h),a))}else o&&(o.get="miss")}#I(t,e){this.#w[e]=t,this.#m[t]=e}#M(t){t!==this.#u&&(t===this.#d?this.#d=this.#m[t]:this.#I(this.#w[t],this.#m[t]),this.#I(this.#u,t),this.#u=t)}delete(t){let e=!1;if(this.#l!==0){let s=this.#a.get(t);if(s!==void 0)if(e=!0,this.#l===1)this.clear();else{this.#x(s);let i=this.#e[s];if(this.#c(i)?i.__abortController.abort(new Error("deleted")):(this.#b||this.#p)&&(this.#b&&this.#n?.(i,t,"delete"),this.#p&&this.#g?.push([i,t,"delete"])),this.#a.delete(t),this.#o[s]=void 0,this.#e[s]=void 0,s===this.#u)this.#u=this.#w[s];else if(s===this.#d)this.#d=this.#m[s];else{let n=this.#w[s];this.#m[n]=this.#m[s];let o=this.#m[s];this.#w[o]=this.#w[s]}this.#l--,this.#S.push(s)}}if(this.#p&&this.#g?.length){let s=this.#g,i;for(;i=s?.shift();)this.#i?.(...i)}return e}clear(){for(let t of this.#O({allowStale:!0})){let e=this.#e[t];if(this.#c(e))e.__abortController.abort(new Error("deleted"));else{let s=this.#o[t];this.#b&&this.#n?.(e,s,"delete"),this.#p&&this.#g?.push([e,s,"delete"])}}if(this.#a.clear(),this.#e.fill(void 0),this.#o.fill(void 0),this.#E&&this.#R&&(this.#E.fill(0),this.#R.fill(0)),this.#A&&this.#A.fill(0),this.#d=0,this.#u=0,this.#S.length=0,this.#f=0,this.#l=0,this.#p&&this.#g){let t=this.#g,e;for(;e=t?.shift();)this.#i?.(...e)}}};import{posix as Ii,win32 as de}from"path";import{fileURLToPath as Pi}from"url";import*as $i from"fs";import{lstatSync as Wi,readdir as Bi,readdirSync as Ui,readlinkSync as Gi,realpathSync as Hi}from"fs";import{lstat as Ji,readdir as Ki,readlink as Vi,realpath as Yi}from"fs/promises";import{EventEmitter as ce}from"events";import ns from"stream";import{StringDecoder as Ci}from"string_decoder";var es=typeof process=="object"&&process?process:{stdout:null,stderr:null},Oi=r=>!!r&&typeof r=="object"&&(r instanceof V||r instanceof ns||Fi(r)||Di(r)),Fi=r=>!!r&&typeof r=="object"&&r instanceof ce&&typeof r.pipe=="function"&&r.pipe!==ns.Writable.prototype.pipe,Di=r=>!!r&&typeof r=="object"&&r instanceof ce&&typeof r.write=="function"&&typeof r.end=="function",H=Symbol("EOF"),q=Symbol("maybeEmitEnd"),K=Symbol("emittedEnd"),Dt=Symbol("emittingEnd"),ut=Symbol("emittedError"),Nt=Symbol("closed"),ss=Symbol("read"),Mt=Symbol("flush"),is=Symbol("flushChunk"),P=Symbol("encoding"),it=Symbol("decoder"),T=Symbol("flowing"),dt=Symbol("paused"),rt=Symbol("resume"),A=Symbol("buffer"),D=Symbol("pipes"),R=Symbol("bufferLength"),re=Symbol("bufferPush"),_t=Symbol("bufferShift"),C=Symbol("objectMode"),v=Symbol("destroyed"),ne=Symbol("error"),oe=Symbol("emitData"),rs=Symbol("emitEnd"),he=Symbol("emitEnd2"),U=Symbol("async"),ae=Symbol("abort"),Lt=Symbol("aborted"),pt=Symbol("signal"),X=Symbol("dataListeners"),M=Symbol("discarded"),mt=r=>Promise.resolve().then(r),Ni=r=>r(),Mi=r=>r==="end"||r==="finish"||r==="prefinish",_i=r=>r instanceof ArrayBuffer||!!r&&typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,Li=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),jt=class{src;dest;opts;ondrain;constructor(t,e,s){this.src=t,this.dest=e,this.opts=s,this.ondrain=()=>t[rt](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},le=class extends jt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,e,s){super(t,e,s),this.proxyErrors=i=>e.emit("error",i),t.on("error",this.proxyErrors)}},ji=r=>!!r.objectMode,zi=r=>!r.objectMode&&!!r.encoding&&r.encoding!=="buffer",V=class extends ce{[T]=!1;[dt]=!1;[D]=[];[A]=[];[C];[P];[U];[it];[H]=!1;[K]=!1;[Dt]=!1;[Nt]=!1;[ut]=null;[R]=0;[v]=!1;[pt];[Lt]=!1;[X]=0;[M]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");ji(e)?(this[C]=!0,this[P]=null):zi(e)?(this[P]=e.encoding,this[C]=!1):(this[C]=!1,this[P]=null),this[U]=!!e.async,this[it]=this[P]?new Ci(this[P]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[A]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[D]});let{signal:s}=e;s&&(this[pt]=s,s.aborted?this[ae]():s.addEventListener("abort",()=>this[ae]()))}get bufferLength(){return this[R]}get encoding(){return this[P]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[C]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[U]}set async(t){this[U]=this[U]||!!t}[ae](){this[Lt]=!0,this.emit("abort",this[pt]?.reason),this.destroy(this[pt]?.reason)}get aborted(){return this[Lt]}set aborted(t){}write(t,e,s){if(this[Lt])return!1;if(this[H])throw new Error("write after end");if(this[v])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof e=="function"&&(s=e,e="utf8"),e||(e="utf8");let i=this[U]?mt:Ni;if(!this[C]&&!Buffer.isBuffer(t)){if(Li(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(_i(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[C]?(this[T]&&this[R]!==0&&this[Mt](!0),this[T]?this.emit("data",t):this[re](t),this[R]!==0&&this.emit("readable"),s&&i(s),this[T]):t.length?(typeof t=="string"&&!(e===this[P]&&!this[it]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[P]&&(t=this[it].write(t)),this[T]&&this[R]!==0&&this[Mt](!0),this[T]?this.emit("data",t):this[re](t),this[R]!==0&&this.emit("readable"),s&&i(s),this[T]):(this[R]!==0&&this.emit("readable"),s&&i(s),this[T])}read(t){if(this[v])return null;if(this[M]=!1,this[R]===0||t===0||t&&t>this[R])return this[q](),null;this[C]&&(t=null),this[A].length>1&&!this[C]&&(this[A]=[this[P]?this[A].join(""):Buffer.concat(this[A],this[R])]);let e=this[ss](t||null,this[A][0]);return this[q](),e}[ss](t,e){if(this[C])this[_t]();else{let s=e;t===s.length||t===null?this[_t]():typeof s=="string"?(this[A][0]=s.slice(t),e=s.slice(0,t),this[R]-=t):(this[A][0]=s.subarray(t),e=s.subarray(0,t),this[R]-=t)}return this.emit("data",e),!this[A].length&&!this[H]&&this.emit("drain"),e}end(t,e,s){return typeof t=="function"&&(s=t,t=void 0),typeof e=="function"&&(s=e,e="utf8"),t!==void 0&&this.write(t,e),s&&this.once("end",s),this[H]=!0,this.writable=!1,(this[T]||!this[dt])&&this[q](),this}[rt](){this[v]||(!this[X]&&!this[D].length&&(this[M]=!0),this[dt]=!1,this[T]=!0,this.emit("resume"),this[A].length?this[Mt]():this[H]?this[q]():this.emit("drain"))}resume(){return this[rt]()}pause(){this[T]=!1,this[dt]=!0,this[M]=!1}get destroyed(){return this[v]}get flowing(){return this[T]}get paused(){return this[dt]}[re](t){this[C]?this[R]+=1:this[R]+=t.length,this[A].push(t)}[_t](){return this[C]?this[R]-=1:this[R]-=this[A][0].length,this[A].shift()}[Mt](t=!1){do;while(this[is](this[_t]())&&this[A].length);!t&&!this[A].length&&!this[H]&&this.emit("drain")}[is](t){return this.emit("data",t),this[T]}pipe(t,e){if(this[v])return t;this[M]=!1;let s=this[K];return e=e||{},t===es.stdout||t===es.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,s?e.end&&t.end():(this[D].push(e.proxyErrors?new le(this,t,e):new jt(this,t,e)),this[U]?mt(()=>this[rt]()):this[rt]()),t}unpipe(t){let e=this[D].find(s=>s.dest===t);e&&(this[D].length===1?(this[T]&&this[X]===0&&(this[T]=!1),this[D]=[]):this[D].splice(this[D].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let s=super.on(t,e);if(t==="data")this[M]=!1,this[X]++,!this[D].length&&!this[T]&&this[rt]();else if(t==="readable"&&this[R]!==0)super.emit("readable");else if(Mi(t)&&this[K])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[ut]){let i=e;this[U]?mt(()=>i.call(this,this[ut])):i.call(this,this[ut])}return s}removeListener(t,e){return this.off(t,e)}off(t,e){let s=super.off(t,e);return t==="data"&&(this[X]=this.listeners("data").length,this[X]===0&&!this[M]&&!this[D].length&&(this[T]=!1)),s}removeAllListeners(t){let e=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[X]=0,!this[M]&&!this[D].length&&(this[T]=!1)),e}get emittedEnd(){return this[K]}[q](){!this[Dt]&&!this[K]&&!this[v]&&this[A].length===0&&this[H]&&(this[Dt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Nt]&&this.emit("close"),this[Dt]=!1)}emit(t,...e){let s=e[0];if(t!=="error"&&t!=="close"&&t!==v&&this[v])return!1;if(t==="data")return!this[C]&&!s?!1:this[U]?(mt(()=>this[oe](s)),!0):this[oe](s);if(t==="end")return this[rs]();if(t==="close"){if(this[Nt]=!0,!this[K]&&!this[v])return!1;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(t==="error"){this[ut]=s,super.emit(ne,s);let n=!this[pt]||this.listeners("error").length?super.emit("error",s):!1;return this[q](),n}else if(t==="resume"){let n=super.emit("resume");return this[q](),n}else if(t==="finish"||t==="prefinish"){let n=super.emit(t);return this.removeAllListeners(t),n}let i=super.emit(t,...e);return this[q](),i}[oe](t){for(let s of this[D])s.dest.write(t)===!1&&this.pause();let e=this[M]?!1:super.emit("data",t);return this[q](),e}[rs](){return this[K]?!1:(this[K]=!0,this.readable=!1,this[U]?(mt(()=>this[he]()),!0):this[he]())}[he](){if(this[it]){let e=this[it].end();if(e){for(let s of this[D])s.dest.write(e);this[M]||super.emit("data",e)}}for(let e of this[D])e.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[C]||(t.dataLength=0);let e=this.promise();return this.on("data",s=>{t.push(s),this[C]||(t.dataLength+=s.length)}),await e,t}async concat(){if(this[C])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[P]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(v,()=>e(new Error("stream destroyed"))),this.on("error",s=>e(s)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[M]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[H])return e();let n,o,h=f=>{this.off("data",a),this.off("end",l),this.off(v,c),e(),o(f)},a=f=>{this.off("error",h),this.off("end",l),this.off(v,c),this.pause(),n({value:f,done:!!this[H]})},l=()=>{this.off("error",h),this.off("data",a),this.off(v,c),e(),n({done:!0,value:void 0})},c=()=>h(new Error("stream destroyed"));return new Promise((f,u)=>{o=u,n=f,this.once(v,c),this.once("error",h),this.once("end",l),this.once("data",a)})},throw:e,return:e,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[M]=!1;let t=!1,e=()=>(this.pause(),this.off(ne,e),this.off(v,e),this.off("end",e),t=!0,{done:!0,value:void 0}),s=()=>{if(t)return e();let i=this.read();return i===null?e():{done:!1,value:i}};return this.once("end",e),this.once(ne,e),this.once(v,e),{next:s,throw:e,return:e,[Symbol.iterator](){return this}}}destroy(t){if(this[v])return t?this.emit("error",t):this.emit(v),this;this[v]=!0,this[M]=!0,this[A].length=0,this[R]=0;let e=this;return typeof e.close=="function"&&!this[Nt]&&e.close(),t?this.emit("error",t):this.emit(v),this}static get isStream(){return Oi}};var qi=Hi.native,wt={lstatSync:Wi,readdir:Bi,readdirSync:Ui,readlinkSync:Gi,realpathSync:qi,promises:{lstat:Ji,readdir:Ki,readlink:Vi,realpath:Yi}},cs=r=>!r||r===wt||r===$i?wt:{...wt,...r,promises:{...wt.promises,...r.promises||{}}},fs=/^\\\\\?\\([a-z]:)\\?$/i,Xi=r=>r.replace(/\//g,"\\").replace(fs,"$1\\"),Zi=/[\\\/]/,j=0,us=1,ds=2,G=4,ps=6,ms=8,Z=10,gs=12,L=15,gt=~L,fe=16,os=32,yt=64,$=128,zt=256,Pt=512,hs=yt|$|Pt,Qi=1023,ue=r=>r.isFile()?ms:r.isDirectory()?G:r.isSymbolicLink()?Z:r.isCharacterDevice()?ds:r.isBlockDevice()?ps:r.isSocket()?gs:r.isFIFO()?us:j,as=new Map,bt=r=>{let t=as.get(r);if(t)return t;let e=r.normalize("NFKD");return as.set(r,e),e},ls=new Map,It=r=>{let t=ls.get(r);if(t)return t;let e=bt(r.toLowerCase());return ls.set(r,e),e},$t=class extends ft{constructor(){super({max:256})}},pe=class extends ft{constructor(t=16*1024){super({maxSize:t,sizeCalculation:e=>e.length+1})}},ws=Symbol("PathScurry setAsCwd"),O=class{name;root;roots;parent;nocase;#t;#s;get dev(){return this.#s}#n;get mode(){return this.#n}#i;get nlink(){return this.#i}#h;get uid(){return this.#h}#l;get gid(){return this.#l}#f;get rdev(){return this.#f}#a;get blksize(){return this.#a}#o;get ino(){return this.#o}#e;get size(){return this.#e}#m;get blocks(){return this.#m}#w;get atimeMs(){return this.#w}#d;get mtimeMs(){return this.#d}#u;get ctimeMs(){return this.#u}#S;get birthtimeMs(){return this.#S}#g;get atime(){return this.#g}#A;get mtime(){return this.#A}#R;get ctime(){return this.#R}#E;get birthtime(){return this.#E}#b;#C;#p;#F;#k;#v;#r;#y;#D;#x;get path(){return(this.parent||this).fullpath()}constructor(t,e=j,s,i,n,o,h){this.name=t,this.#b=n?It(t):bt(t),this.#r=e&Qi,this.nocase=n,this.roots=i,this.root=s||this,this.#y=o,this.#p=h.fullpath,this.#k=h.relative,this.#v=h.relativePosix,this.parent=h.parent,this.parent?this.#t=this.parent.#t:this.#t=cs(h.fs)}depth(){return this.#C!==void 0?this.#C:this.parent?this.#C=this.parent.depth()+1:this.#C=0}childrenCache(){return this.#y}resolve(t){if(!t)return this;let e=this.getRootString(t),i=t.substring(e.length).split(this.splitSep);return e?this.getRoot(e).#L(i):this.#L(i)}#L(t){let e=this;for(let s of t)e=e.child(s);return e}children(){let t=this.#y.get(this);if(t)return t;let e=Object.assign([],{provisional:0});return this.#y.set(this,e),this.#r&=~fe,e}child(t,e){if(t===""||t===".")return this;if(t==="..")return this.parent||this;let s=this.children(),i=this.nocase?It(t):bt(t);for(let a of s)if(a.#b===i)return a;let n=this.parent?this.sep:"",o=this.#p?this.#p+n+t:void 0,h=this.newChild(t,j,{...e,parent:this,fullpath:o});return this.canReaddir()||(h.#r|=$),s.push(h),h}relative(){if(this.#k!==void 0)return this.#k;let t=this.name,e=this.parent;if(!e)return this.#k=this.name;let s=e.relative();return s+(!s||!e.parent?"":this.sep)+t}relativePosix(){if(this.sep==="/")return this.relative();if(this.#v!==void 0)return this.#v;let t=this.name,e=this.parent;if(!e)return this.#v=this.fullpathPosix();let s=e.relativePosix();return s+(!s||!e.parent?"":"/")+t}fullpath(){if(this.#p!==void 0)return this.#p;let t=this.name,e=this.parent;if(!e)return this.#p=this.name;let i=e.fullpath()+(e.parent?this.sep:"")+t;return this.#p=i}fullpathPosix(){if(this.#F!==void 0)return this.#F;if(this.sep==="/")return this.#F=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(i)?this.#F=`//?/${i}`:this.#F=i}let t=this.parent,e=t.fullpathPosix(),s=e+(!e||!t.parent?"":"/")+this.name;return this.#F=s}isUnknown(){return(this.#r&L)===j}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#r&L)===ms}isDirectory(){return(this.#r&L)===G}isCharacterDevice(){return(this.#r&L)===ds}isBlockDevice(){return(this.#r&L)===ps}isFIFO(){return(this.#r&L)===us}isSocket(){return(this.#r&L)===gs}isSymbolicLink(){return(this.#r&Z)===Z}lstatCached(){return this.#r&os?this:void 0}readlinkCached(){return this.#D}realpathCached(){return this.#x}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#D)return!0;if(!this.parent)return!1;let t=this.#r&L;return!(t!==j&&t!==Z||this.#r&zt||this.#r&$)}calledReaddir(){return!!(this.#r&fe)}isENOENT(){return!!(this.#r&$)}isNamed(t){return this.nocase?this.#b===It(t):this.#b===bt(t)}async readlink(){let t=this.#D;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=await this.#t.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(e);if(s)return this.#D=s}catch(e){this.#I(e.code);return}}readlinkSync(){let t=this.#D;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=this.#t.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(e);if(s)return this.#D=s}catch(e){this.#I(e.code);return}}#j(t){this.#r|=fe;for(let e=t.provisional;es(null,t))}readdirCB(t,e=!1){if(!this.canReaddir()){e?t(null,[]):queueMicrotask(()=>t(null,[]));return}let s=this.children();if(this.calledReaddir()){let n=s.slice(0,s.provisional);e?t(null,n):queueMicrotask(()=>t(null,n));return}if(this.#$.push(t),this.#W)return;this.#W=!0;let i=this.fullpath();this.#t.readdir(i,{withFileTypes:!0},(n,o)=>{if(n)this.#_(n.code),s.provisional=0;else{for(let h of o)this.#M(h,s);this.#j(s)}this.#q(s.slice(0,s.provisional))})}#P;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();if(this.#P)await this.#P;else{let s=()=>{};this.#P=new Promise(i=>s=i);try{for(let i of await this.#t.promises.readdir(e,{withFileTypes:!0}))this.#M(i,t);this.#j(t)}catch(i){this.#_(i.code),t.provisional=0}this.#P=void 0,s()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();try{for(let s of this.#t.readdirSync(e,{withFileTypes:!0}))this.#M(s,t);this.#j(t)}catch(s){this.#_(s.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#r&hs)return!1;let t=L&this.#r;return t===j||t===G||t===Z}shouldWalk(t,e){return(this.#r&G)===G&&!(this.#r&hs)&&!t.has(this)&&(!e||e(this))}async realpath(){if(this.#x)return this.#x;if(!((Pt|zt|$)&this.#r))try{let t=await this.#t.promises.realpath(this.fullpath());return this.#x=this.resolve(t)}catch{this.#z()}}realpathSync(){if(this.#x)return this.#x;if(!((Pt|zt|$)&this.#r))try{let t=this.#t.realpathSync(this.fullpath());return this.#x=this.resolve(t)}catch{this.#z()}}[ws](t){if(t===this)return;let e=new Set([]),s=[],i=this;for(;i&&i.parent;)e.add(i),i.#k=s.join(this.sep),i.#v=s.join("/"),i=i.parent,s.push("..");for(i=t;i&&i.parent&&!e.has(i);)i.#k=void 0,i.#v=void 0,i=i.parent}},Wt=class r extends O{sep="\\";splitSep=Zi;constructor(t,e=j,s,i,n,o,h){super(t,e,s,i,n,o,h)}newChild(t,e=j,s={}){return new r(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return de.parse(t).root}getRoot(t){if(t=Xi(t.toUpperCase()),t===this.root.name)return this.root;for(let[e,s]of Object.entries(this.roots))if(this.sameRoot(t,e))return this.roots[t]=s;return this.roots[t]=new nt(t,this).root}sameRoot(t,e=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(fs,"$1\\"),t===e}},Bt=class r extends O{splitSep="/";sep="/";constructor(t,e=j,s,i,n,o,h){super(t,e,s,i,n,o,h)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,e=j,s={}){return new r(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}},Ut=class{root;rootPath;roots;cwd;#t;#s;#n;nocase;#i;constructor(t=process.cwd(),e,s,{nocase:i,childrenCacheSize:n=16*1024,fs:o=wt}={}){this.#i=cs(o),(t instanceof URL||t.startsWith("file://"))&&(t=Pi(t));let h=e.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(h),this.#t=new $t,this.#s=new $t,this.#n=new pe(n);let a=h.substring(this.rootPath.length).split(s);if(a.length===1&&!a[0]&&a.pop(),i===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=i,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let l=this.root,c=a.length-1,f=e.sep,u=this.rootPath,d=!1;for(let m of a){let p=c--;l=l.child(m,{relative:new Array(p).fill("..").join(f),relativePosix:new Array(p).fill("..").join("/"),fullpath:u+=(d?"":f)+m}),d=!0}this.cwd=l}depth(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let e="";for(let n=t.length-1;n>=0;n--){let o=t[n];if(!(!o||o===".")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#t.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpath();return this.#t.set(e,i),i}resolvePosix(...t){let e="";for(let n=t.length-1;n>=0;n--){let o=t[n];if(!(!o||o===".")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#s.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpathPosix();return this.#s.set(e,i),i}relative(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,e={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s}=e;if(t.canReaddir()){let i=await t.readdir();return s?i:i.map(n=>n.name)}else return[]}readdirSync(t=this.cwd,e={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0}=e;return t.canReaddir()?s?t.readdirSync():t.readdirSync().map(i=>i.name):[]}async lstat(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=await t.readlink();return e?s:s?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=t.readlinkSync();return e?s:s?.fullpath()}async realpath(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=await t.realpath();return e?s:s?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=t.realpathSync();return e?s:s?.fullpath()}async walk(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=[];(!n||n(t))&&h.push(s?t:t.fullpath());let a=new Set,l=(f,u)=>{a.add(f),f.readdirCB((d,m)=>{if(d)return u(d);let p=m.length;if(!p)return u();let w=()=>{--p===0&&u()};for(let g of m)(!n||n(g))&&h.push(s?g:g.fullpath()),i&&g.isSymbolicLink()?g.realpath().then(S=>S?.isUnknown()?S.lstat():S).then(S=>S?.shouldWalk(a,o)?l(S,w):w()):g.shouldWalk(a,o)?l(g,w):w()},!0)},c=t;return new Promise((f,u)=>{l(c,d=>{if(d)return u(d);f(h)})})}walkSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=[];(!n||n(t))&&h.push(s?t:t.fullpath());let a=new Set([t]);for(let l of a){let c=l.readdirSync();for(let f of c){(!n||n(f))&&h.push(s?f:f.fullpath());let u=f;if(f.isSymbolicLink()){if(!(i&&(u=f.realpathSync())))continue;u.isUnknown()&&u.lstatSync()}u.shouldWalk(a,o)&&a.add(u)}}return h}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,e={}){return typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd),this.stream(t,e)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e;(!n||n(t))&&(yield s?t:t.fullpath());let h=new Set([t]);for(let a of h){let l=a.readdirSync();for(let c of l){(!n||n(c))&&(yield s?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(i&&(f=c.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(h,o)&&h.add(f)}}}stream(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=new V({objectMode:!0});(!n||n(t))&&h.write(s?t:t.fullpath());let a=new Set,l=[t],c=0,f=()=>{let u=!1;for(;!u;){let d=l.shift();if(!d){c===0&&h.end();return}c++,a.add(d);let m=(w,g,S=!1)=>{if(w)return h.emit("error",w);if(i&&!S){let b=[];for(let y of g)y.isSymbolicLink()&&b.push(y.realpath().then(E=>E?.isUnknown()?E.lstat():E));if(b.length){Promise.all(b).then(()=>m(null,g,!0));return}}for(let b of g)b&&(!n||n(b))&&(h.write(s?b:b.fullpath())||(u=!0));c--;for(let b of g){let y=b.realpathCached()||b;y.shouldWalk(a,o)&&l.push(y)}u&&!h.flowing?h.once("drain",f):p||f()},p=!0;d.readdirCB(m,!0),p=!1}};return f(),h}streamSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=new V({objectMode:!0}),a=new Set;(!n||n(t))&&h.write(s?t:t.fullpath());let l=[t],c=0,f=()=>{let u=!1;for(;!u;){let d=l.shift();if(!d){c===0&&h.end();return}c++,a.add(d);let m=d.readdirSync();for(let p of m)(!n||n(p))&&(h.write(s?p:p.fullpath())||(u=!0));c--;for(let p of m){let w=p;if(p.isSymbolicLink()){if(!(i&&(w=p.realpathSync())))continue;w.isUnknown()&&w.lstatSync()}w.shouldWalk(a,o)&&l.push(w)}}u&&!h.flowing&&h.once("drain",f)};return f(),h}chdir(t=this.cwd){let e=this.cwd;this.cwd=typeof t=="string"?this.cwd.resolve(t):t,this.cwd[ws](e)}},nt=class extends Ut{sep="\\";constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,de,"\\",{...e,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(t){return de.parse(t).root.toUpperCase()}newRoot(t){return new Wt(this.rootPath,G,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")||t.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(t)}},ot=class extends Ut{sep="/";constructor(t=process.cwd(),e={}){let{nocase:s=!1}=e;super(t,Ii,"/",{...e,nocase:s}),this.nocase=s}parseRootPath(t){return"/"}newRoot(t){return new Bt(this.rootPath,G,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")}},St=class extends ot{constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,{...e,nocase:s})}},an=process.platform==="win32"?Wt:Bt,ys=process.platform==="win32"?nt:process.platform==="darwin"?St:ot;import{fileURLToPath as rr}from"url";var tr=r=>r.length>=1,er=r=>r.length>=1,ht=class r{#t;#s;#n;length;#i;#h;#l;#f;#a;#o;#e=!0;constructor(t,e,s,i){if(!tr(t))throw new TypeError("empty pattern list");if(!er(e))throw new TypeError("empty glob list");if(e.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#t=t,this.#s=e,this.#n=s,this.#i=i,this.#n===0){if(this.isUNC()){let[n,o,h,a,...l]=this.#t,[c,f,u,d,...m]=this.#s;l[0]===""&&(l.shift(),m.shift());let p=[n,o,h,a,""].join("/"),w=[c,f,u,d,""].join("/");this.#t=[p,...l],this.#s=[w,...m],this.length=this.#t.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#t,[h,...a]=this.#s;o[0]===""&&(o.shift(),a.shift());let l=n+"/",c=h+"/";this.#t=[l,...o],this.#s=[c,...a],this.length=this.#t.length}}}pattern(){return this.#t[this.#n]}isString(){return typeof this.#t[this.#n]=="string"}isGlobstar(){return this.#t[this.#n]===k}isRegExp(){return this.#t[this.#n]instanceof RegExp}globString(){return this.#l=this.#l||(this.#n===0?this.isAbsolute()?this.#s[0]+this.#s.slice(1).join("/"):this.#s.join("/"):this.#s.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#h!==void 0?this.#h:this.hasMore()?(this.#h=new r(this.#t,this.#s,this.#n+1,this.#i),this.#h.#o=this.#o,this.#h.#a=this.#a,this.#h.#f=this.#f,this.#h):this.#h=null}isUNC(){let t=this.#t;return this.#a!==void 0?this.#a:this.#a=this.#i==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#t;return this.#f!==void 0?this.#f:this.#f=this.#i==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#t;return this.#o!==void 0?this.#o:this.#o=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#t[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#e)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#e?!1:(this.#e=!1,!0)}};var sr=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Et=class{relative;relativeChildren;absolute;absoluteChildren;constructor(t,{nobrace:e,nocase:s,noext:i,noglobstar:n,platform:o=sr}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[];let h={dot:!0,nobrace:e,nocase:s,noext:i,noglobstar:n,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let a of t){let l=new N(a,h);for(let c=0;c[t,!!(e&2),!!(e&1)])}},we=class{store=new Map;add(t,e){if(!t.canReaddir())return;let s=this.store.get(t);s?s.find(i=>i.globString()===e.globString())||s.push(e):this.store.set(t,[e])}get(t){let e=this.store.get(t);if(!e)throw new Error("attempting to walk unknown path");return e}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}},vt=class r{hasWalkedCache;matches=new ge;subwalks=new we;patterns;follow;dot;opts;constructor(t,e){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=e?e.copy():new me}processPatterns(t,e){this.patterns=e;let s=e.map(i=>[t,i]);for(let[i,n]of s){this.hasWalkedCache.storeWalked(i,n);let o=n.root(),h=n.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let a,l,c=!1;for(;typeof(a=n.pattern())=="string"&&(l=n.rest());)i=i.resolve(a),n=l,c=!0;if(a=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(i,n))continue;this.hasWalkedCache.storeWalked(i,n)}if(typeof a=="string"){let f=a===".."||a===""||a===".";this.matches.add(i.resolve(a),h,f);continue}else if(a===k){(!i.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(i,n);let f=l?.pattern(),u=l?.rest();if(!l||(f===""||f===".")&&!u)this.matches.add(i,h,f===""||f===".");else if(f===".."){let d=i.parent||i;u?this.hasWalkedCache.hasWalked(d,u)||this.subwalks.add(d,u):this.matches.add(d,h,!0)}}else a instanceof RegExp&&this.subwalks.add(i,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new r(this.opts,this.hasWalkedCache)}filterEntries(t,e){let s=this.subwalks.get(t),i=this.child();for(let n of e)for(let o of s){let h=o.isAbsolute(),a=o.pattern(),l=o.rest();a===k?i.testGlobstar(n,o,l,h):a instanceof RegExp?i.testRegExp(n,a,l,h):i.testString(n,a,l,h)}return i}testGlobstar(t,e,s,i){if((this.dot||!t.name.startsWith("."))&&(e.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,e):t.isSymbolicLink()&&(s&&e.checkFollowGlobstar()?this.subwalks.add(t,s):e.markFollowGlobstar()&&this.subwalks.add(t,e)))),s){let n=s.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,s.rest(),i);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,s)}else n instanceof RegExp&&this.testRegExp(t,n,s.rest(),i)}}testRegExp(t,e,s,i){e.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,e,s,i){t.isNamed(e)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}};var ir=(r,t)=>typeof r=="string"?new Et([r],t):Array.isArray(r)?new Et(r,t):r,Gt=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#t=[];#s;#n;signal;maxDepth;constructor(t,e,s){this.patterns=t,this.path=e,this.opts=s,this.#n=!s.posix&&s.platform==="win32"?"\\":"/",s.ignore&&(this.#s=ir(s.ignore,s)),this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener("abort",()=>{this.#t.length=0}))}#i(t){return this.seen.has(t)||!!this.#s?.ignored?.(t)}#h(t){return!!this.#s?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#t.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#t.push(t):t())}async matchCheck(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||await t.realpath(),!s)return;t=s}let n=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&n?.isSymbolicLink()){let o=await n.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(n,e)}matchCheckTest(t,e){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!e||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#i(t)?t:void 0}matchCheckSync(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||t.realpathSync(),!s)return;t=s}let n=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&n?.isSymbolicLink()){let o=n.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(n,e)}matchFinish(t,e){if(this.#i(t))return;let s=this.opts.absolute===void 0?e:this.opts.absolute;this.seen.add(t);let i=this.opts.mark&&t.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(t);else if(s){let n=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(n+i)}else{let n=this.opts.posix?t.relativePosix():t.relative(),o=this.opts.dotRelative&&!n.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(n?o+n+i:"."+i)}}async match(t,e,s){let i=await this.matchCheck(t,s);i&&this.matchFinish(i,e)}matchSync(t,e,s){let i=this.matchCheckSync(t,s);i&&this.matchFinish(i,e)}walkCB(t,e,s){this.signal?.aborted&&s(),this.walkCB2(t,e,new vt(this.opts),s)}walkCB2(t,e,s,i){if(this.#h(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(t,e,s,i));return}s.processPatterns(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||(n++,this.match(h,a,l).then(()=>o()));for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;n++;let a=h.readdirCached();h.calledReaddir()?this.walkCB3(h,a,s,o):h.readdirCB((l,c)=>this.walkCB3(h,c,s,o),!0)}o()}walkCB3(t,e,s,i){s=s.filterEntries(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||(n++,this.match(h,a,l).then(()=>o()));for(let[h,a]of s.subwalks.entries())n++,this.walkCB2(h,a,s.child(),o);o()}walkCBSync(t,e,s){this.signal?.aborted&&s(),this.walkCB2Sync(t,e,new vt(this.opts),s)}walkCB2Sync(t,e,s,i){if(this.#h(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(t,e,s,i));return}s.processPatterns(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||this.matchSync(h,a,l);for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;n++;let a=h.readdirSync();this.walkCB3Sync(h,a,s,o)}o()}walkCB3Sync(t,e,s,i){s=s.filterEntries(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||this.matchSync(h,a,l);for(let[h,a]of s.subwalks.entries())n++,this.walkCB2Sync(h,a,s.child(),o);o()}},xt=class extends Gt{matches;constructor(t,e,s){super(t,e,s),this.matches=new Set}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,e)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?e(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},Tt=class extends Gt{results;constructor(t,e,s){super(t,e,s),this.results=new V({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var nr=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",W=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;opts;patterns;constructor(t,e){if(!e)throw new TypeError("glob options required");if(this.withFileTypes=!!e.withFileTypes,this.signal=e.signal,this.follow=!!e.follow,this.dot=!!e.dot,this.dotRelative=!!e.dotRelative,this.nodir=!!e.nodir,this.mark=!!e.mark,e.cwd?(e.cwd instanceof URL||e.cwd.startsWith("file://"))&&(e.cwd=rr(e.cwd)):this.cwd="",this.cwd=e.cwd||"",this.root=e.root,this.magicalBraces=!!e.magicalBraces,this.nobrace=!!e.nobrace,this.noext=!!e.noext,this.realpath=!!e.realpath,this.absolute=e.absolute,this.noglobstar=!!e.noglobstar,this.matchBase=!!e.matchBase,this.maxDepth=typeof e.maxDepth=="number"?e.maxDepth:1/0,this.stat=!!e.stat,this.ignore=e.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof t=="string"&&(t=[t]),this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(a=>a.replace(/\\/g,"/"))),this.matchBase){if(e.noglobstar)throw new TypeError("base matching requires globstar");t=t.map(a=>a.includes("/")?a:`./**/${a}`)}if(this.pattern=t,this.platform=e.platform||nr,this.opts={...e,platform:this.platform},e.scurry){if(this.scurry=e.scurry,e.nocase!==void 0&&e.nocase!==e.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let a=e.platform==="win32"?nt:e.platform==="darwin"?St:e.platform?ot:ys;this.scurry=new a(this.cwd,{nocase:e.nocase,fs:e.fs})}this.nocase=this.scurry.nocase;let s=this.platform==="darwin"||this.platform==="win32",i={...e,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},n=this.pattern.map(a=>new N(a,i)),[o,h]=n.reduce((a,l)=>(a[0].push(...l.set),a[1].push(...l.globParts),a),[[],[]]);this.patterns=o.map((a,l)=>{let c=h[l];if(!c)throw new Error("invalid pattern object");return new ht(a,c,0,this.platform)})}async walk(){return[...await new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).walk()]}walkSync(){return[...new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).walkSync()]}stream(){return new Tt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).stream()}streamSync(){return new Tt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};var ye=(r,t={})=>{Array.isArray(r)||(r=[r]);for(let e of r)if(new N(e,t).hasMagic())return!0;return!1};function Ht(r,t={}){return new W(r,t).streamSync()}function Es(r,t={}){return new W(r,t).stream()}function qt(r,t={}){return new W(r,t).walkSync()}async function bs(r,t={}){return new W(r,t).walk()}function Jt(r,t={}){return new W(r,t).iterateSync()}function vs(r,t={}){return new W(r,t).iterate()}var or=Ht,hr=Object.assign(Es,{sync:Ht}),ar=Jt,lr=Object.assign(vs,{sync:Jt}),cr=Object.assign(qt,{stream:Ht,iterate:Jt}),Ss=Object.assign(bs,{glob:bs,globSync:qt,sync:cr,globStream:Es,stream:hr,globStreamSync:Ht,streamSync:or,globIterate:vs,iterate:lr,globIterateSync:Jt,iterateSync:ar,Glob:W,hasMagic:ye,escape:tt,unescape:I});Ss.glob=Ss;import fr from"node:fs";function xs(r){return JSON.parse(fr.readFileSync(r).toString("utf-8"))}function Kt(r){return xs(r)}function be(r){return xs(r)}function Y(r){return(process.env[`INPUT_${r.toUpperCase()}`]||"").trim()}function Ts(r){let t=ur(r);Vt.mkdirSync(Yt.join(At.cwd(),r.analyzerDirectory),{recursive:!0});let e=Yt.join(At.cwd(),r.analyzerDirectory,"bundle_analysis.json");Vt.writeFileSync(e,JSON.stringify(t,null,2)),Xt.log(`Wrote ${e}`)}function Se(r){return r.metafiles.flatMap(t=>qt(Yt.join(At.cwd(),t),{nodir:!0}).map(e=>({relativePath:Yt.relative(At.cwd(),e),absolutePath:e})))}function ur(r){let t={};return Se(r).reduce((e,{relativePath:s,absolutePath:i})=>{try{Vt.accessSync(i,Vt.constants.R_OK)}catch{Xt.error(`No meta file found at "${i}" - a path to meta file may be wrong, or esbuild is not executed.`),At.exit(1)}let n=Kt(i);return Object.entries(n.outputs).reduce((o,h)=>{let[a,l]=h;return r.includeExtensions.some(c=>a.toLowerCase().endsWith(c))&&(o[`${s} -> ${a}`]={bytes:l.bytes,metafile:s,outfile:a}),o},e),e},t)}function ks(r){let t=!1,e=`## \u{1F4E6} esbuild Bundle Analysis for ${r.name} +var Fs=Object.create;var Te=Object.defineProperty;var Ds=Object.getOwnPropertyDescriptor;var Ns=Object.getOwnPropertyNames;var _s=Object.getPrototypeOf,Ls=Object.prototype.hasOwnProperty;var Ce=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports);var js=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ns(t))!Ls.call(r,i)&&i!==e&&Te(r,i,{get:()=>t[i],enumerable:!(s=Ds(t,i))||s.enumerable});return r};var Is=(r,t,e)=>(e=r!=null?Fs(_s(r)):{},js(t||!r||!r.__esModule?Te(e,"default",{value:r,enumerable:!0}):e,r));var Me=Ce((kr,Oe)=>{"use strict";Oe.exports=Re;function Re(r,t,e){r instanceof RegExp&&(r=Ae(r,e)),t instanceof RegExp&&(t=Ae(t,e));var s=ke(r,t,e);return s&&{start:s[0],end:s[1],pre:e.slice(0,s[0]),body:e.slice(s[0]+r.length,s[1]),post:e.slice(s[1]+t.length)}}function Ae(r,t){var e=t.match(r);return e?e[0]:null}Re.range=ke;function ke(r,t,e){var s,i,n,o,h,a=e.indexOf(r),l=e.indexOf(t,a+1),c=a;if(a>=0&&l>0){if(r===t)return[a,l];for(s=[],n=e.length;c>=0&&!h;)c==a?(s.push(c),a=e.indexOf(r,c+1)):s.length==1?h=[s.pop(),l]:(i=s.pop(),i=0?a:l;s.length&&(h=[n,o])}return h}});var ze=Ce((Or,Ie)=>{var Fe=Me();Ie.exports=$s;var De="\0SLASH"+Math.random()+"\0",Ne="\0OPEN"+Math.random()+"\0",te="\0CLOSE"+Math.random()+"\0",_e="\0COMMA"+Math.random()+"\0",Le="\0PERIOD"+Math.random()+"\0";function Qt(r){return parseInt(r,10)==r?parseInt(r,10):r.charCodeAt(0)}function zs(r){return r.split("\\\\").join(De).split("\\{").join(Ne).split("\\}").join(te).split("\\,").join(_e).split("\\.").join(Le)}function Ps(r){return r.split(De).join("\\").split(Ne).join("{").split(te).join("}").split(_e).join(",").split(Le).join(".")}function je(r){if(!r)return[""];var t=[],e=Fe("{","}",r);if(!e)return r.split(",");var s=e.pre,i=e.body,n=e.post,o=s.split(",");o[o.length-1]+="{"+i+"}";var h=je(n);return n.length&&(o[o.length-1]+=h.shift(),o.push.apply(o,h)),t.push.apply(t,o),t}function $s(r){return r?(r.substr(0,2)==="{}"&&(r="\\{\\}"+r.substr(2)),lt(zs(r),!0).map(Ps)):[]}function Ws(r){return"{"+r+"}"}function Bs(r){return/^-?0\d/.test(r)}function Us(r,t){return r<=t}function Gs(r,t){return r>=t}function lt(r,t){var e=[],s=Fe("{","}",r);if(!s)return[r];var i=s.pre,n=s.post.length?lt(s.post,!1):[""];if(/\$$/.test(s.pre))for(var o=0;o=0;if(!c&&!f)return s.post.match(/,.*\}/)?(r=s.pre+"{"+s.body+te+s.post,lt(r)):[r];var u;if(c)u=s.body.split(/\.\./);else if(u=je(s.body),u.length===1&&(u=lt(u[0],!1).map(Ws),u.length===1))return n.map(function(kt){return s.pre+u[0]+kt});var d;if(c){var g=Qt(u[0]),p=Qt(u[1]),w=Math.max(u[0].length,u[1].length),m=u.length==3?Math.abs(Qt(u[2])):1,S=Us,b=p0){var Rt=new Array(I+1).join("0");E<0?x="-"+Rt+x.slice(1):x=Rt+x}}d.push(x)}}else{d=[];for(var B=0;B{if(typeof r!="string")throw new TypeError("invalid pattern");if(r.length>65536)throw new TypeError("pattern is too long")};var Hs={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},ft=r=>r.replace(/[[\]\\-]/g,"\\$&"),qs=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Pe=r=>r.join(""),$e=(r,t)=>{let e=t;if(r.charAt(e)!=="[")throw new Error("not in a brace expression");let s=[],i=[],n=e+1,o=!1,h=!1,a=!1,l=!1,c=e,f="";t:for(;nf?s.push(ft(f)+"-"+ft(p)):p===f&&s.push(ft(p)),f="",n++;continue}if(r.startsWith("-]",n+1)){s.push(ft(p+"-")),n+=2;continue}if(r.startsWith("-",n+1)){f=p,n+=2;continue}s.push(ft(p)),n++}if(ct?r.replace(/\[([^\/\\])\]/g,"$1"):r.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");var Js=new Set(["!","?","+","*","@"]),We=r=>Js.has(r),Ks="(?!(?:^|/)\\.\\.?(?:$|/))",Ot="(?!\\.)",Vs=new Set(["[","."]),Ys=new Set(["..","."]),Xs=new Set("().*{}+?[]^$\\!"),Zs=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ee="[^/]",Be=ee+"*?",Ue=ee+"+?",Q=class r{type;#t;#s;#n=!1;#i=[];#h;#l;#f;#a=!1;#o;#e;#m=!1;constructor(t,e,s={}){this.type=t,t&&(this.#s=!0),this.#h=e,this.#t=this.#h?this.#h.#t:this,this.#o=this.#t===this?s:this.#t.#o,this.#f=this.#t===this?[]:this.#t.#f,t==="!"&&!this.#t.#a&&this.#f.push(this),this.#l=this.#h?this.#h.#i.length:0}get hasMagic(){if(this.#s!==void 0)return this.#s;for(let t of this.#i)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#s=!0;return this.#s}toString(){return this.#e!==void 0?this.#e:this.type?this.#e=this.type+"("+this.#i.map(t=>String(t)).join("|")+")":this.#e=this.#i.map(t=>String(t)).join("")}#w(){if(this!==this.#t)throw new Error("should only call on root");if(this.#a)return this;this.toString(),this.#a=!0;let t;for(;t=this.#f.pop();){if(t.type!=="!")continue;let e=t,s=e.#h;for(;s;){for(let i=e.#l+1;!s.type&&itypeof e=="string"?e:e.toJSON()):[this.type,...this.#i.map(e=>e.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&this.#h?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#h?.isStart())return!1;if(this.#l===0)return!0;let t=this.#h;for(let e=0;e{let[g,p,w,m]=typeof d=="string"?r.#S(d,this.#s,a):d.toRegExpSource(t);return this.#s=this.#s||w,this.#n=this.#n||m,g}).join(""),c="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&Ys.has(this.#i[0]))){let g=Vs,p=e&&g.has(l.charAt(0))||l.startsWith("\\.")&&g.has(l.charAt(2))||l.startsWith("\\.\\.")&&g.has(l.charAt(4)),w=!e&&!t&&g.has(l.charAt(0));c=p?Ks:w?Ot:""}let f="";return this.isEnd()&&this.#t.#a&&this.#h?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,z(l),this.#s=!!this.#s,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#u(e);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let a=this.toString();return this.#i=[a],this.type=null,this.#s=void 0,[a,z(this.toString()),!1,!1]}let o=!s||t||e||!Ot?"":this.#u(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let h="";if(this.type==="!"&&this.#m)h=(this.isStart()&&!e?Ot:"")+Ue;else{let a=this.type==="!"?"))"+(this.isStart()&&!e&&!t?Ot:"")+Be+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;h=i+n+a}return[h,z(n),this.#s=!!this.#s,this.#n]}#u(t){return this.#i.map(e=>{if(typeof e=="string")throw new Error("string type in extglob ast??");let[s,i,n,o]=e.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join("|")}static#S(t,e,s=!1){let i=!1,n="",o=!1;for(let h=0;ht?r.replace(/[?*()[\]]/g,"[$&]"):r.replace(/[?*()[\]\\]/g,"\\$&");var M=(r,t,e={})=>(ct(t),!e.nocomment&&t.charAt(0)==="#"?!1:new D(t,e).match(r)),Qs=/^\*+([^+@!?\*\[\(]*)$/,ti=r=>t=>!t.startsWith(".")&&t.endsWith(r),ei=r=>t=>t.endsWith(r),si=r=>(r=r.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(r)),ii=r=>(r=r.toLowerCase(),t=>t.toLowerCase().endsWith(r)),ri=/^\*+\.\*+$/,ni=r=>!r.startsWith(".")&&r.includes("."),oi=r=>r!=="."&&r!==".."&&r.includes("."),hi=/^\.\*+$/,ai=r=>r!=="."&&r!==".."&&r.startsWith("."),li=/^\*+$/,ci=r=>r.length!==0&&!r.startsWith("."),fi=r=>r.length!==0&&r!=="."&&r!=="..",ui=/^\?+([^+@!?\*\[\(]*)?$/,di=([r,t=""])=>{let e=Je([r]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},pi=([r,t=""])=>{let e=Ke([r]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},mi=([r,t=""])=>{let e=Ke([r]);return t?s=>e(s)&&s.endsWith(t):e},gi=([r,t=""])=>{let e=Je([r]);return t?s=>e(s)&&s.endsWith(t):e},Je=([r])=>{let t=r.length;return e=>e.length===t&&!e.startsWith(".")},Ke=([r])=>{let t=r.length;return e=>e.length===t&&e!=="."&&e!==".."},Ve=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Ge={win32:{sep:"\\"},posix:{sep:"/"}},wi=Ve==="win32"?Ge.win32.sep:Ge.posix.sep;M.sep=wi;var R=Symbol("globstar **");M.GLOBSTAR=R;var yi="[^/]",bi=yi+"*?",Si="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Ei="(?:(?!(?:\\/|^)\\.).)*?",vi=(r,t={})=>e=>M(e,r,t);M.filter=vi;var _=(r,t={})=>Object.assign({},r,t),xi=r=>{if(!r||typeof r!="object"||!Object.keys(r).length)return M;let t=M;return Object.assign((s,i,n={})=>t(s,i,_(r,n)),{Minimatch:class extends t.Minimatch{constructor(i,n={}){super(i,_(r,n))}static defaults(i){return t.defaults(_(r,i)).Minimatch}},AST:class extends t.AST{constructor(i,n,o={}){super(i,n,_(r,o))}static fromGlob(i,n={}){return t.AST.fromGlob(i,_(r,n))}},unescape:(s,i={})=>t.unescape(s,_(r,i)),escape:(s,i={})=>t.escape(s,_(r,i)),filter:(s,i={})=>t.filter(s,_(r,i)),defaults:s=>t.defaults(_(r,s)),makeRe:(s,i={})=>t.makeRe(s,_(r,i)),braceExpand:(s,i={})=>t.braceExpand(s,_(r,i)),match:(s,i,n={})=>t.match(s,i,_(r,n)),sep:t.sep,GLOBSTAR:R})};M.defaults=xi;var Ye=(r,t={})=>(ct(r),t.nobrace||!/\{(?:(?!\{).)*\}/.test(r)?[r]:(0,qe.default)(r));M.braceExpand=Ye;var Ti=(r,t={})=>new D(r,t).makeRe();M.makeRe=Ti;var Ci=(r,t,e={})=>{let s=new D(t,e);return r=r.filter(i=>s.match(i)),s.options.nonull&&!r.length&&r.push(t),r};M.match=Ci;var He=/[?*]|[+@!]\(.*?\)|\[|\]/,Ai=r=>r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),D=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){ct(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Ve,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=e.windowsNoMagicRoot!==void 0?e.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let e of t)if(typeof e!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,e=this.options;if(!e.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...n)=>console.error(...n)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(n=>this.slashSplit(n));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((n,o,h)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=n[0]===""&&n[1]===""&&(n[2]==="?"||!He.test(n[2]))&&!He.test(n[3]),l=/^[a-z]:/i.test(n[0]);if(a)return[...n.slice(0,4),...n.slice(4).map(c=>this.parse(c))];if(l)return[n[0],...n.slice(1).map(c=>this.parse(c))]}return n.map(a=>this.parse(a))});if(this.debug(this.pattern,i),this.set=i.filter(n=>n.indexOf(!1)===-1),this.isWindows)for(let n=0;n=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):e>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(e=>{let s=-1;for(;(s=e.indexOf("**",s+1))!==-1;){let i=s;for(;e[i+1]==="**";)i++;i!==s&&e.splice(s,i-s)}return e})}levelOneOptimize(t){return t.map(e=>(e=e.reduce((s,i)=>{let n=s[s.length-1];return i==="**"&&n==="**"?s:i===".."&&n&&n!==".."&&n!=="."&&n!=="**"?(s.pop(),s):(s.push(i),s)},[]),e.length===0?[""]:e))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&s.splice(i+1,o-i);let h=s[i+1],a=s[i+2],l=s[i+3];if(h!==".."||!a||a==="."||a===".."||!l||l==="."||l==="..")continue;e=!0,s.splice(i,1);let c=s.slice(0);c[i]="**",t.push(c),i--}if(!this.preserveMultipleSlashes){for(let o=1;oe.length)}partsMatch(t,e,s=!1){let i=0,n=0,o=[],h="";for(;ib?e=e.slice(y):b>y&&(t=t.slice(b)))}}let{optimizationLevel:n=1}=this.options;n>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var o=0,h=0,a=t.length,l=e.length;o>> no match, partial?`,t,u,e,d),u===a))}let p;if(typeof c=="string"?(p=f===c,this.debug("string match",c,f,p)):(p=c.test(f),this.debug("pattern match",c,f,p)),!p)return!1}if(o===a&&h===l)return!0;if(o===a)return s;if(h===l)return o===a-1&&t[o]==="";throw new Error("wtf?")}braceExpand(){return Ye(this.pattern,this.options)}parse(t){ct(t);let e=this.options;if(t==="**")return R;if(t==="")return"";let s,i=null;(s=t.match(li))?i=e.dot?fi:ci:(s=t.match(Qs))?i=(e.nocase?e.dot?ii:si:e.dot?ei:ti)(s[1]):(s=t.match(ui))?i=(e.nocase?e.dot?pi:di:e.dot?mi:gi)(s):(s=t.match(ri))?i=e.dot?oi:ni:(s=t.match(hi))&&(i=ai);let n=Q.fromGlob(t,this.options).toMMPattern();return i&&typeof n=="object"&&Reflect.defineProperty(n,"test",{value:i}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let e=this.options,s=e.noglobstar?bi:e.dot?Si:Ei,i=new Set(e.nocase?["i"]:[]),n=t.map(a=>{let l=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))i.add(f);return typeof c=="string"?Ai(c):c===R?R:c._src});return l.forEach((c,f)=>{let u=l[f+1],d=l[f-1];c!==R||d===R||(d===void 0?u!==void 0&&u!==R?l[f+1]="(?:\\/|"+s+"\\/)?"+u:l[f]=s:u===void 0?l[f-1]=d+"(?:\\/|"+s+")?":u!==R&&(l[f-1]=d+"(?:\\/|\\/"+s+"\\/)"+u,l[f+1]=R))}),l.filter(c=>c!==R).join("/")}).join("|"),[o,h]=t.length>1?["(?:",")"]:["",""];n="^"+o+n+h+"$",this.negate&&(n="^(?!"+n+").+$");try{this.regexp=new RegExp(n,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&e)return!0;let s=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let n=this.set;this.debug(this.pattern,"set",n);let o=i[i.length-1];if(!o)for(let h=i.length-2;!o&&h>=0;h--)o=i[h];for(let h=0;h{typeof se.emitWarning=="function"?se.emitWarning(r,t,e,s):console.error(`[${e}] ${t}: ${r}`)},Mt=globalThis.AbortController,Xe=globalThis.AbortSignal;if(typeof Mt>"u"){Xe=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(s,i){this._onabort.push(i)}},Mt=class{constructor(){t()}signal=new Xe;abort(s){if(!this.signal.aborted){this.signal.reason=s,this.signal.aborted=!0;for(let i of this.signal._onabort)i(s);this.signal.onabort?.(s)}}};let r=se.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{r&&(r=!1,Qe("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var Ri=r=>!Ze.has(r),Vr=Symbol("type"),J=r=>r&&r===Math.floor(r)&&r>0&&isFinite(r),ts=r=>J(r)?r<=Math.pow(2,8)?Uint8Array:r<=Math.pow(2,16)?Uint16Array:r<=Math.pow(2,32)?Uint32Array:r<=Number.MAX_SAFE_INTEGER?st:null:null,st=class extends Array{constructor(t){super(t),this.fill(0)}},ie=class r{heap;length;static#t=!1;static create(t){let e=ts(t);if(!e)return[];r.#t=!0;let s=new r(t,e);return r.#t=!1,s}constructor(t,e){if(!r.#t)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},ut=class r{#t;#s;#n;#i;#h;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#l;#f;#a;#o;#e;#m;#w;#d;#u;#S;#g;#C;#A;#E;#b;#k;#p;static unsafeExposeInternals(t){return{starts:t.#A,ttls:t.#E,sizes:t.#C,keyMap:t.#a,keyList:t.#o,valList:t.#e,next:t.#m,prev:t.#w,get head(){return t.#d},get tail(){return t.#u},free:t.#S,isBackgroundFetch:e=>t.#c(e),backgroundFetch:(e,s,i,n)=>t.#_(e,s,i,n),moveToTail:e=>t.#N(e),indexes:e=>t.#T(e),rindexes:e=>t.#O(e),isStale:e=>t.#y(e)}}get max(){return this.#t}get maxSize(){return this.#s}get calculatedSize(){return this.#f}get size(){return this.#l}get fetchMethod(){return this.#h}get dispose(){return this.#n}get disposeAfter(){return this.#i}constructor(t){let{max:e=0,ttl:s,ttlResolution:i=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:a,dispose:l,disposeAfter:c,noDisposeOnSet:f,noUpdateTTL:u,maxSize:d=0,maxEntrySize:g=0,sizeCalculation:p,fetchMethod:w,noDeleteOnFetchRejection:m,noDeleteOnStaleGet:S,allowStaleOnFetchRejection:b,allowStaleOnFetchAbort:y,ignoreFetchAbort:E}=t;if(e!==0&&!J(e))throw new TypeError("max option must be a nonnegative integer");let x=e?ts(e):Array;if(!x)throw new Error("invalid max value: "+e);if(this.#t=e,this.#s=d,this.maxEntrySize=g||this.#s,this.sizeCalculation=p,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#h=w,this.#k=!!w,this.#a=new Map,this.#o=new Array(e).fill(void 0),this.#e=new Array(e).fill(void 0),this.#m=new x(e),this.#w=new x(e),this.#d=0,this.#u=0,this.#S=ie.create(e),this.#l=0,this.#f=0,typeof l=="function"&&(this.#n=l),typeof c=="function"?(this.#i=c,this.#g=[]):(this.#i=void 0,this.#g=void 0),this.#b=!!this.#n,this.#p=!!this.#i,this.noDisposeOnSet=!!f,this.noUpdateTTL=!!u,this.noDeleteOnFetchRejection=!!m,this.allowStaleOnFetchRejection=!!b,this.allowStaleOnFetchAbort=!!y,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(this.#s!==0&&!J(this.#s))throw new TypeError("maxSize must be a positive integer if specified");if(!J(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#F()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!S,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=J(i)||i===0?i:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!J(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#M()}if(this.#t===0&&this.ttl===0&&this.#s===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#t&&!this.#s){let I="LRU_CACHE_UNBOUNDED";Ri(I)&&(Ze.add(I),Qe("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",I,r))}}getRemainingTTL(t){return this.#a.has(t)?1/0:0}#M(){let t=new st(this.#t),e=new st(this.#t);this.#E=t,this.#A=e,this.#r=(n,o,h=et.now())=>{if(e[n]=o!==0?h:0,t[n]=o,o!==0&&this.ttlAutopurge){let a=setTimeout(()=>{this.#y(n)&&this.delete(this.#o[n])},o+1);a.unref&&a.unref()}},this.#R=n=>{e[n]=t[n]!==0?et.now():0},this.#v=(n,o)=>{if(t[o]){let h=t[o],a=e[o];if(!h||!a)return;n.ttl=h,n.start=a,n.now=s||i();let l=n.now-a;n.remainingTTL=h-l}};let s=0,i=()=>{let n=et.now();if(this.ttlResolution>0){s=n;let o=setTimeout(()=>s=0,this.ttlResolution);o.unref&&o.unref()}return n};this.getRemainingTTL=n=>{let o=this.#a.get(n);if(o===void 0)return 0;let h=t[o],a=e[o];if(!h||!a)return 1/0;let l=(s||i())-a;return h-l},this.#y=n=>{let o=e[n],h=t[n];return!!h&&!!o&&(s||i())-o>h}}#R=()=>{};#v=()=>{};#r=()=>{};#y=()=>!1;#F(){let t=new st(this.#t);this.#f=0,this.#C=t,this.#x=e=>{this.#f-=t[e],t[e]=0},this.#j=(e,s,i,n)=>{if(this.#c(s))return 0;if(!J(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,e),!J(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#L=(e,s,i)=>{if(t[e]=s,this.#s){let n=this.#s-t[e];for(;this.#f>n;)this.#D(!0)}this.#f+=t[e],i&&(i.entrySize=s,i.totalCalculatedSize=this.#f)}}#x=t=>{};#L=(t,e,s)=>{};#j=(t,e,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:t=this.allowStale}={}){if(this.#l)for(let e=this.#u;!(!this.#I(e)||((t||!this.#y(e))&&(yield e),e===this.#d));)e=this.#w[e]}*#O({allowStale:t=this.allowStale}={}){if(this.#l)for(let e=this.#d;!(!this.#I(e)||((t||!this.#y(e))&&(yield e),e===this.#u));)e=this.#m[e]}#I(t){return t!==void 0&&this.#a.get(this.#o[t])===t}*entries(){for(let t of this.#T())this.#e[t]!==void 0&&this.#o[t]!==void 0&&!this.#c(this.#e[t])&&(yield[this.#o[t],this.#e[t]])}*rentries(){for(let t of this.#O())this.#e[t]!==void 0&&this.#o[t]!==void 0&&!this.#c(this.#e[t])&&(yield[this.#o[t],this.#e[t]])}*keys(){for(let t of this.#T()){let e=this.#o[t];e!==void 0&&!this.#c(this.#e[t])&&(yield e)}}*rkeys(){for(let t of this.#O()){let e=this.#o[t];e!==void 0&&!this.#c(this.#e[t])&&(yield e)}}*values(){for(let t of this.#T())this.#e[t]!==void 0&&!this.#c(this.#e[t])&&(yield this.#e[t])}*rvalues(){for(let t of this.#O())this.#e[t]!==void 0&&!this.#c(this.#e[t])&&(yield this.#e[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(let s of this.#T()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;if(n!==void 0&&t(n,this.#o[s],this))return this.get(this.#o[s],e)}}forEach(t,e=this){for(let s of this.#T()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(e,n,this.#o[s],this)}}rforEach(t,e=this){for(let s of this.#O()){let i=this.#e[s],n=this.#c(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(e,n,this.#o[s],this)}}purgeStale(){let t=!1;for(let e of this.#O({allowStale:!0}))this.#y(e)&&(this.delete(this.#o[e]),t=!0);return t}info(t){let e=this.#a.get(t);if(e===void 0)return;let s=this.#e[e],i=this.#c(s)?s.__staleWhileFetching:s;if(i===void 0)return;let n={value:i};if(this.#E&&this.#A){let o=this.#E[e],h=this.#A[e];if(o&&h){let a=o-(et.now()-h);n.ttl=a,n.start=Date.now()}}return this.#C&&(n.size=this.#C[e]),n}dump(){let t=[];for(let e of this.#T({allowStale:!0})){let s=this.#o[e],i=this.#e[e],n=this.#c(i)?i.__staleWhileFetching:i;if(n===void 0||s===void 0)continue;let o={value:n};if(this.#E&&this.#A){o.ttl=this.#E[e];let h=et.now()-this.#A[e];o.start=Math.floor(Date.now()-h)}this.#C&&(o.size=this.#C[e]),t.unshift([s,o])}return t}load(t){this.clear();for(let[e,s]of t){if(s.start){let i=Date.now()-s.start;s.start=et.now()-i}this.set(e,s.value,s)}}set(t,e,s={}){if(e===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:a}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,c=this.#j(t,e,s.size||0,h);if(this.maxEntrySize&&c>this.maxEntrySize)return a&&(a.set="miss",a.maxEntrySizeExceeded=!0),this.delete(t),this;let f=this.#l===0?void 0:this.#a.get(t);if(f===void 0)f=this.#l===0?this.#u:this.#S.length!==0?this.#S.pop():this.#l===this.#t?this.#D(!1):this.#l,this.#o[f]=t,this.#e[f]=e,this.#a.set(t,f),this.#m[this.#u]=f,this.#w[f]=this.#u,this.#u=f,this.#l++,this.#L(f,c,a),a&&(a.set="add"),l=!1;else{this.#N(f);let u=this.#e[f];if(e!==u){if(this.#k&&this.#c(u)){u.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:d}=u;d!==void 0&&!o&&(this.#b&&this.#n?.(d,t,"set"),this.#p&&this.#g?.push([d,t,"set"]))}else o||(this.#b&&this.#n?.(u,t,"set"),this.#p&&this.#g?.push([u,t,"set"]));if(this.#x(f),this.#L(f,c,a),this.#e[f]=e,a){a.set="replace";let d=u&&this.#c(u)?u.__staleWhileFetching:u;d!==void 0&&(a.oldValue=d)}}else a&&(a.set="update")}if(i!==0&&!this.#E&&this.#M(),this.#E&&(l||this.#r(f,i,n),a&&this.#v(a,f)),!o&&this.#p&&this.#g){let u=this.#g,d;for(;d=u?.shift();)this.#i?.(...d)}return this}pop(){try{for(;this.#l;){let t=this.#e[this.#d];if(this.#D(!0),this.#c(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#p&&this.#g){let t=this.#g,e;for(;e=t?.shift();)this.#i?.(...e)}}}#D(t){let e=this.#d,s=this.#o[e],i=this.#e[e];return this.#k&&this.#c(i)?i.__abortController.abort(new Error("evicted")):(this.#b||this.#p)&&(this.#b&&this.#n?.(i,s,"evict"),this.#p&&this.#g?.push([i,s,"evict"])),this.#x(e),t&&(this.#o[e]=void 0,this.#e[e]=void 0,this.#S.push(e)),this.#l===1?(this.#d=this.#u=0,this.#S.length=0):this.#d=this.#m[e],this.#a.delete(s),this.#l--,e}has(t,e={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=e,n=this.#a.get(t);if(n!==void 0){let o=this.#e[n];if(this.#c(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#y(n))i&&(i.has="stale",this.#v(i,n));else return s&&this.#R(n),i&&(i.has="hit",this.#v(i,n)),!0}else i&&(i.has="miss");return!1}peek(t,e={}){let{allowStale:s=this.allowStale}=e,i=this.#a.get(t);if(i===void 0||!s&&this.#y(i))return;let n=this.#e[i];return this.#c(n)?n.__staleWhileFetching:n}#_(t,e,s,i){let n=e===void 0?void 0:this.#e[e];if(this.#c(n))return n;let o=new Mt,{signal:h}=s;h?.addEventListener("abort",()=>o.abort(h.reason),{signal:o.signal});let a={signal:o.signal,options:s,context:i},l=(p,w=!1)=>{let{aborted:m}=o.signal,S=s.ignoreFetchAbort&&p!==void 0;if(s.status&&(m&&!w?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,S&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),m&&!S&&!w)return f(o.signal.reason);let b=d;return this.#e[e]===d&&(p===void 0?b.__staleWhileFetching?this.#e[e]=b.__staleWhileFetching:this.delete(t):(s.status&&(s.status.fetchUpdated=!0),this.set(t,p,a.options))),p},c=p=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=p),f(p)),f=p=>{let{aborted:w}=o.signal,m=w&&s.allowStaleOnFetchAbort,S=m||s.allowStaleOnFetchRejection,b=S||s.noDeleteOnFetchRejection,y=d;if(this.#e[e]===d&&(!b||y.__staleWhileFetching===void 0?this.delete(t):m||(this.#e[e]=y.__staleWhileFetching)),S)return s.status&&y.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),y.__staleWhileFetching;if(y.__returned===y)throw p},u=(p,w)=>{let m=this.#h?.(t,n,a);m&&m instanceof Promise&&m.then(S=>p(S===void 0?void 0:S),w),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(p(void 0),s.allowStaleOnFetchAbort&&(p=S=>l(S,!0)))})};s.status&&(s.status.fetchDispatched=!0);let d=new Promise(u).then(l,c),g=Object.assign(d,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return e===void 0?(this.set(t,g,{...a.options,status:void 0}),e=this.#a.get(t)):this.#e[e]=g,g}#c(t){if(!this.#k)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof Mt}async fetch(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:u=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:g=this.allowStaleOnFetchAbort,context:p,forceRefresh:w=!1,status:m,signal:S}=e;if(!this.#k)return m&&(m.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,status:m});let b={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:h,size:a,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:g,ignoreFetchAbort:d,status:m,signal:S},y=this.#a.get(t);if(y===void 0){m&&(m.fetch="miss");let E=this.#_(t,y,b,p);return E.__returned=E}else{let E=this.#e[y];if(this.#c(E)){let kt=s&&E.__staleWhileFetching!==void 0;return m&&(m.fetch="inflight",kt&&(m.returnedStale=!0)),kt?E.__staleWhileFetching:E.__returned=E}let x=this.#y(y);if(!w&&!x)return m&&(m.fetch="hit"),this.#N(y),i&&this.#R(y),m&&this.#v(m,y),E;let I=this.#_(t,y,b,p),B=I.__staleWhileFetching!==void 0&&s;return m&&(m.fetch=x?"stale":"refresh",B&&x&&(m.returnedStale=!0)),B?I.__staleWhileFetching:I.__returned=I}}get(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=e,h=this.#a.get(t);if(h!==void 0){let a=this.#e[h],l=this.#c(a);return o&&this.#v(o,h),this.#y(h)?(o&&(o.get="stale"),l?(o&&s&&a.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?a.__staleWhileFetching:void 0):(n||this.delete(t),o&&s&&(o.returnedStale=!0),s?a:void 0)):(o&&(o.get="hit"),l?a.__staleWhileFetching:(this.#N(h),i&&this.#R(h),a))}else o&&(o.get="miss")}#z(t,e){this.#w[e]=t,this.#m[t]=e}#N(t){t!==this.#u&&(t===this.#d?this.#d=this.#m[t]:this.#z(this.#w[t],this.#m[t]),this.#z(this.#u,t),this.#u=t)}delete(t){let e=!1;if(this.#l!==0){let s=this.#a.get(t);if(s!==void 0)if(e=!0,this.#l===1)this.clear();else{this.#x(s);let i=this.#e[s];if(this.#c(i)?i.__abortController.abort(new Error("deleted")):(this.#b||this.#p)&&(this.#b&&this.#n?.(i,t,"delete"),this.#p&&this.#g?.push([i,t,"delete"])),this.#a.delete(t),this.#o[s]=void 0,this.#e[s]=void 0,s===this.#u)this.#u=this.#w[s];else if(s===this.#d)this.#d=this.#m[s];else{let n=this.#w[s];this.#m[n]=this.#m[s];let o=this.#m[s];this.#w[o]=this.#w[s]}this.#l--,this.#S.push(s)}}if(this.#p&&this.#g?.length){let s=this.#g,i;for(;i=s?.shift();)this.#i?.(...i)}return e}clear(){for(let t of this.#O({allowStale:!0})){let e=this.#e[t];if(this.#c(e))e.__abortController.abort(new Error("deleted"));else{let s=this.#o[t];this.#b&&this.#n?.(e,s,"delete"),this.#p&&this.#g?.push([e,s,"delete"])}}if(this.#a.clear(),this.#e.fill(void 0),this.#o.fill(void 0),this.#E&&this.#A&&(this.#E.fill(0),this.#A.fill(0)),this.#C&&this.#C.fill(0),this.#d=0,this.#u=0,this.#S.length=0,this.#f=0,this.#l=0,this.#p&&this.#g){let t=this.#g,e;for(;e=t?.shift();)this.#i?.(...e)}}};import{posix as zi,win32 as de}from"node:path";import{fileURLToPath as Pi}from"node:url";import{lstatSync as $i,readdir as Wi,readdirSync as Bi,readlinkSync as Ui,realpathSync as Gi}from"fs";import*as Hi from"node:fs";import{lstat as Ji,readdir as Ki,readlink as Vi,realpath as Yi}from"node:fs/promises";import{EventEmitter as ce}from"node:events";import ns from"node:stream";import{StringDecoder as ki}from"node:string_decoder";var es=typeof process=="object"&&process?process:{stdout:null,stderr:null},Oi=r=>!!r&&typeof r=="object"&&(r instanceof V||r instanceof ns||Mi(r)||Fi(r)),Mi=r=>!!r&&typeof r=="object"&&r instanceof ce&&typeof r.pipe=="function"&&r.pipe!==ns.Writable.prototype.pipe,Fi=r=>!!r&&typeof r=="object"&&r instanceof ce&&typeof r.write=="function"&&typeof r.end=="function",H=Symbol("EOF"),q=Symbol("maybeEmitEnd"),K=Symbol("emittedEnd"),Ft=Symbol("emittingEnd"),dt=Symbol("emittedError"),Dt=Symbol("closed"),ss=Symbol("read"),Nt=Symbol("flush"),is=Symbol("flushChunk"),P=Symbol("encoding"),it=Symbol("decoder"),T=Symbol("flowing"),pt=Symbol("paused"),rt=Symbol("resume"),C=Symbol("buffer"),F=Symbol("pipes"),A=Symbol("bufferLength"),re=Symbol("bufferPush"),_t=Symbol("bufferShift"),k=Symbol("objectMode"),v=Symbol("destroyed"),ne=Symbol("error"),oe=Symbol("emitData"),rs=Symbol("emitEnd"),he=Symbol("emitEnd2"),U=Symbol("async"),ae=Symbol("abort"),Lt=Symbol("aborted"),mt=Symbol("signal"),X=Symbol("dataListeners"),N=Symbol("discarded"),gt=r=>Promise.resolve().then(r),Di=r=>r(),Ni=r=>r==="end"||r==="finish"||r==="prefinish",_i=r=>r instanceof ArrayBuffer||!!r&&typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,Li=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),jt=class{src;dest;opts;ondrain;constructor(t,e,s){this.src=t,this.dest=e,this.opts=s,this.ondrain=()=>t[rt](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},le=class extends jt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,e,s){super(t,e,s),this.proxyErrors=i=>e.emit("error",i),t.on("error",this.proxyErrors)}},ji=r=>!!r.objectMode,Ii=r=>!r.objectMode&&!!r.encoding&&r.encoding!=="buffer",V=class extends ce{[T]=!1;[pt]=!1;[F]=[];[C]=[];[k];[P];[U];[it];[H]=!1;[K]=!1;[Ft]=!1;[Dt]=!1;[dt]=null;[A]=0;[v]=!1;[mt];[Lt]=!1;[X]=0;[N]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");ji(e)?(this[k]=!0,this[P]=null):Ii(e)?(this[P]=e.encoding,this[k]=!1):(this[k]=!1,this[P]=null),this[U]=!!e.async,this[it]=this[P]?new ki(this[P]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[C]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[F]});let{signal:s}=e;s&&(this[mt]=s,s.aborted?this[ae]():s.addEventListener("abort",()=>this[ae]()))}get bufferLength(){return this[A]}get encoding(){return this[P]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[k]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[U]}set async(t){this[U]=this[U]||!!t}[ae](){this[Lt]=!0,this.emit("abort",this[mt]?.reason),this.destroy(this[mt]?.reason)}get aborted(){return this[Lt]}set aborted(t){}write(t,e,s){if(this[Lt])return!1;if(this[H])throw new Error("write after end");if(this[v])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof e=="function"&&(s=e,e="utf8"),e||(e="utf8");let i=this[U]?gt:Di;if(!this[k]&&!Buffer.isBuffer(t)){if(Li(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(_i(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[k]?(this[T]&&this[A]!==0&&this[Nt](!0),this[T]?this.emit("data",t):this[re](t),this[A]!==0&&this.emit("readable"),s&&i(s),this[T]):t.length?(typeof t=="string"&&!(e===this[P]&&!this[it]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[P]&&(t=this[it].write(t)),this[T]&&this[A]!==0&&this[Nt](!0),this[T]?this.emit("data",t):this[re](t),this[A]!==0&&this.emit("readable"),s&&i(s),this[T]):(this[A]!==0&&this.emit("readable"),s&&i(s),this[T])}read(t){if(this[v])return null;if(this[N]=!1,this[A]===0||t===0||t&&t>this[A])return this[q](),null;this[k]&&(t=null),this[C].length>1&&!this[k]&&(this[C]=[this[P]?this[C].join(""):Buffer.concat(this[C],this[A])]);let e=this[ss](t||null,this[C][0]);return this[q](),e}[ss](t,e){if(this[k])this[_t]();else{let s=e;t===s.length||t===null?this[_t]():typeof s=="string"?(this[C][0]=s.slice(t),e=s.slice(0,t),this[A]-=t):(this[C][0]=s.subarray(t),e=s.subarray(0,t),this[A]-=t)}return this.emit("data",e),!this[C].length&&!this[H]&&this.emit("drain"),e}end(t,e,s){return typeof t=="function"&&(s=t,t=void 0),typeof e=="function"&&(s=e,e="utf8"),t!==void 0&&this.write(t,e),s&&this.once("end",s),this[H]=!0,this.writable=!1,(this[T]||!this[pt])&&this[q](),this}[rt](){this[v]||(!this[X]&&!this[F].length&&(this[N]=!0),this[pt]=!1,this[T]=!0,this.emit("resume"),this[C].length?this[Nt]():this[H]?this[q]():this.emit("drain"))}resume(){return this[rt]()}pause(){this[T]=!1,this[pt]=!0,this[N]=!1}get destroyed(){return this[v]}get flowing(){return this[T]}get paused(){return this[pt]}[re](t){this[k]?this[A]+=1:this[A]+=t.length,this[C].push(t)}[_t](){return this[k]?this[A]-=1:this[A]-=this[C][0].length,this[C].shift()}[Nt](t=!1){do;while(this[is](this[_t]())&&this[C].length);!t&&!this[C].length&&!this[H]&&this.emit("drain")}[is](t){return this.emit("data",t),this[T]}pipe(t,e){if(this[v])return t;this[N]=!1;let s=this[K];return e=e||{},t===es.stdout||t===es.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,s?e.end&&t.end():(this[F].push(e.proxyErrors?new le(this,t,e):new jt(this,t,e)),this[U]?gt(()=>this[rt]()):this[rt]()),t}unpipe(t){let e=this[F].find(s=>s.dest===t);e&&(this[F].length===1?(this[T]&&this[X]===0&&(this[T]=!1),this[F]=[]):this[F].splice(this[F].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let s=super.on(t,e);if(t==="data")this[N]=!1,this[X]++,!this[F].length&&!this[T]&&this[rt]();else if(t==="readable"&&this[A]!==0)super.emit("readable");else if(Ni(t)&&this[K])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[dt]){let i=e;this[U]?gt(()=>i.call(this,this[dt])):i.call(this,this[dt])}return s}removeListener(t,e){return this.off(t,e)}off(t,e){let s=super.off(t,e);return t==="data"&&(this[X]=this.listeners("data").length,this[X]===0&&!this[N]&&!this[F].length&&(this[T]=!1)),s}removeAllListeners(t){let e=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[X]=0,!this[N]&&!this[F].length&&(this[T]=!1)),e}get emittedEnd(){return this[K]}[q](){!this[Ft]&&!this[K]&&!this[v]&&this[C].length===0&&this[H]&&(this[Ft]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Dt]&&this.emit("close"),this[Ft]=!1)}emit(t,...e){let s=e[0];if(t!=="error"&&t!=="close"&&t!==v&&this[v])return!1;if(t==="data")return!this[k]&&!s?!1:this[U]?(gt(()=>this[oe](s)),!0):this[oe](s);if(t==="end")return this[rs]();if(t==="close"){if(this[Dt]=!0,!this[K]&&!this[v])return!1;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(t==="error"){this[dt]=s,super.emit(ne,s);let n=!this[mt]||this.listeners("error").length?super.emit("error",s):!1;return this[q](),n}else if(t==="resume"){let n=super.emit("resume");return this[q](),n}else if(t==="finish"||t==="prefinish"){let n=super.emit(t);return this.removeAllListeners(t),n}let i=super.emit(t,...e);return this[q](),i}[oe](t){for(let s of this[F])s.dest.write(t)===!1&&this.pause();let e=this[N]?!1:super.emit("data",t);return this[q](),e}[rs](){return this[K]?!1:(this[K]=!0,this.readable=!1,this[U]?(gt(()=>this[he]()),!0):this[he]())}[he](){if(this[it]){let e=this[it].end();if(e){for(let s of this[F])s.dest.write(e);this[N]||super.emit("data",e)}}for(let e of this[F])e.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[k]||(t.dataLength=0);let e=this.promise();return this.on("data",s=>{t.push(s),this[k]||(t.dataLength+=s.length)}),await e,t}async concat(){if(this[k])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[P]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(v,()=>e(new Error("stream destroyed"))),this.on("error",s=>e(s)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[N]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[H])return e();let n,o,h=f=>{this.off("data",a),this.off("end",l),this.off(v,c),e(),o(f)},a=f=>{this.off("error",h),this.off("end",l),this.off(v,c),this.pause(),n({value:f,done:!!this[H]})},l=()=>{this.off("error",h),this.off("data",a),this.off(v,c),e(),n({done:!0,value:void 0})},c=()=>h(new Error("stream destroyed"));return new Promise((f,u)=>{o=u,n=f,this.once(v,c),this.once("error",h),this.once("end",l),this.once("data",a)})},throw:e,return:e,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[N]=!1;let t=!1,e=()=>(this.pause(),this.off(ne,e),this.off(v,e),this.off("end",e),t=!0,{done:!0,value:void 0}),s=()=>{if(t)return e();let i=this.read();return i===null?e():{done:!1,value:i}};return this.once("end",e),this.once(ne,e),this.once(v,e),{next:s,throw:e,return:e,[Symbol.iterator](){return this}}}destroy(t){if(this[v])return t?this.emit("error",t):this.emit(v),this;this[v]=!0,this[N]=!0,this[C].length=0,this[A]=0;let e=this;return typeof e.close=="function"&&!this[Dt]&&e.close(),t?this.emit("error",t):this.emit(v),this}static get isStream(){return Oi}};var qi=Gi.native,yt={lstatSync:$i,readdir:Wi,readdirSync:Bi,readlinkSync:Ui,realpathSync:qi,promises:{lstat:Ji,readdir:Ki,readlink:Vi,realpath:Yi}},cs=r=>!r||r===yt||r===Hi?yt:{...yt,...r,promises:{...yt.promises,...r.promises||{}}},fs=/^\\\\\?\\([a-z]:)\\?$/i,Xi=r=>r.replace(/\//g,"\\").replace(fs,"$1\\"),Zi=/[\\\/]/,j=0,us=1,ds=2,G=4,ps=6,ms=8,Z=10,gs=12,L=15,wt=~L,fe=16,os=32,bt=64,$=128,It=256,Pt=512,hs=bt|$|Pt,Qi=1023,ue=r=>r.isFile()?ms:r.isDirectory()?G:r.isSymbolicLink()?Z:r.isCharacterDevice()?ds:r.isBlockDevice()?ps:r.isSocket()?gs:r.isFIFO()?us:j,as=new Map,St=r=>{let t=as.get(r);if(t)return t;let e=r.normalize("NFKD");return as.set(r,e),e},ls=new Map,zt=r=>{let t=ls.get(r);if(t)return t;let e=St(r.toLowerCase());return ls.set(r,e),e},$t=class extends ut{constructor(){super({max:256})}},pe=class extends ut{constructor(t=16*1024){super({maxSize:t,sizeCalculation:e=>e.length+1})}},ws=Symbol("PathScurry setAsCwd"),O=class{name;root;roots;parent;nocase;isCWD=!1;#t;#s;get dev(){return this.#s}#n;get mode(){return this.#n}#i;get nlink(){return this.#i}#h;get uid(){return this.#h}#l;get gid(){return this.#l}#f;get rdev(){return this.#f}#a;get blksize(){return this.#a}#o;get ino(){return this.#o}#e;get size(){return this.#e}#m;get blocks(){return this.#m}#w;get atimeMs(){return this.#w}#d;get mtimeMs(){return this.#d}#u;get ctimeMs(){return this.#u}#S;get birthtimeMs(){return this.#S}#g;get atime(){return this.#g}#C;get mtime(){return this.#C}#A;get ctime(){return this.#A}#E;get birthtime(){return this.#E}#b;#k;#p;#M;#R;#v;#r;#y;#F;#x;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(t,e=j,s,i,n,o,h){this.name=t,this.#b=n?zt(t):St(t),this.#r=e&Qi,this.nocase=n,this.roots=i,this.root=s||this,this.#y=o,this.#p=h.fullpath,this.#R=h.relative,this.#v=h.relativePosix,this.parent=h.parent,this.parent?this.#t=this.parent.#t:this.#t=cs(h.fs)}depth(){return this.#k!==void 0?this.#k:this.parent?this.#k=this.parent.depth()+1:this.#k=0}childrenCache(){return this.#y}resolve(t){if(!t)return this;let e=this.getRootString(t),i=t.substring(e.length).split(this.splitSep);return e?this.getRoot(e).#L(i):this.#L(i)}#L(t){let e=this;for(let s of t)e=e.child(s);return e}children(){let t=this.#y.get(this);if(t)return t;let e=Object.assign([],{provisional:0});return this.#y.set(this,e),this.#r&=~fe,e}child(t,e){if(t===""||t===".")return this;if(t==="..")return this.parent||this;let s=this.children(),i=this.nocase?zt(t):St(t);for(let a of s)if(a.#b===i)return a;let n=this.parent?this.sep:"",o=this.#p?this.#p+n+t:void 0,h=this.newChild(t,j,{...e,parent:this,fullpath:o});return this.canReaddir()||(h.#r|=$),s.push(h),h}relative(){if(this.isCWD)return"";if(this.#R!==void 0)return this.#R;let t=this.name,e=this.parent;if(!e)return this.#R=this.name;let s=e.relative();return s+(!s||!e.parent?"":this.sep)+t}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#v!==void 0)return this.#v;let t=this.name,e=this.parent;if(!e)return this.#v=this.fullpathPosix();let s=e.relativePosix();return s+(!s||!e.parent?"":"/")+t}fullpath(){if(this.#p!==void 0)return this.#p;let t=this.name,e=this.parent;if(!e)return this.#p=this.name;let i=e.fullpath()+(e.parent?this.sep:"")+t;return this.#p=i}fullpathPosix(){if(this.#M!==void 0)return this.#M;if(this.sep==="/")return this.#M=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(i)?this.#M=`//?/${i}`:this.#M=i}let t=this.parent,e=t.fullpathPosix(),s=e+(!e||!t.parent?"":"/")+this.name;return this.#M=s}isUnknown(){return(this.#r&L)===j}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#r&L)===ms}isDirectory(){return(this.#r&L)===G}isCharacterDevice(){return(this.#r&L)===ds}isBlockDevice(){return(this.#r&L)===ps}isFIFO(){return(this.#r&L)===us}isSocket(){return(this.#r&L)===gs}isSymbolicLink(){return(this.#r&Z)===Z}lstatCached(){return this.#r&os?this:void 0}readlinkCached(){return this.#F}realpathCached(){return this.#x}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#F)return!0;if(!this.parent)return!1;let t=this.#r&L;return!(t!==j&&t!==Z||this.#r&It||this.#r&$)}calledReaddir(){return!!(this.#r&fe)}isENOENT(){return!!(this.#r&$)}isNamed(t){return this.nocase?this.#b===zt(t):this.#b===St(t)}async readlink(){let t=this.#F;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=await this.#t.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(e);if(s)return this.#F=s}catch(e){this.#z(e.code);return}}readlinkSync(){let t=this.#F;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=this.#t.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(e);if(s)return this.#F=s}catch(e){this.#z(e.code);return}}#j(t){this.#r|=fe;for(let e=t.provisional;es(null,t))}readdirCB(t,e=!1){if(!this.canReaddir()){e?t(null,[]):queueMicrotask(()=>t(null,[]));return}let s=this.children();if(this.calledReaddir()){let n=s.slice(0,s.provisional);e?t(null,n):queueMicrotask(()=>t(null,n));return}if(this.#$.push(t),this.#W)return;this.#W=!0;let i=this.fullpath();this.#t.readdir(i,{withFileTypes:!0},(n,o)=>{if(n)this.#_(n.code),s.provisional=0;else{for(let h of o)this.#N(h,s);this.#j(s)}this.#q(s.slice(0,s.provisional))})}#P;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();if(this.#P)await this.#P;else{let s=()=>{};this.#P=new Promise(i=>s=i);try{for(let i of await this.#t.promises.readdir(e,{withFileTypes:!0}))this.#N(i,t);this.#j(t)}catch(i){this.#_(i.code),t.provisional=0}this.#P=void 0,s()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();try{for(let s of this.#t.readdirSync(e,{withFileTypes:!0}))this.#N(s,t);this.#j(t)}catch(s){this.#_(s.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#r&hs)return!1;let t=L&this.#r;return t===j||t===G||t===Z}shouldWalk(t,e){return(this.#r&G)===G&&!(this.#r&hs)&&!t.has(this)&&(!e||e(this))}async realpath(){if(this.#x)return this.#x;if(!((Pt|It|$)&this.#r))try{let t=await this.#t.promises.realpath(this.fullpath());return this.#x=this.resolve(t)}catch{this.#I()}}realpathSync(){if(this.#x)return this.#x;if(!((Pt|It|$)&this.#r))try{let t=this.#t.realpathSync(this.fullpath());return this.#x=this.resolve(t)}catch{this.#I()}}[ws](t){if(t===this)return;t.isCWD=!1,this.isCWD=!0;let e=new Set([]),s=[],i=this;for(;i&&i.parent;)e.add(i),i.#R=s.join(this.sep),i.#v=s.join("/"),i=i.parent,s.push("..");for(i=t;i&&i.parent&&!e.has(i);)i.#R=void 0,i.#v=void 0,i=i.parent}},Wt=class r extends O{sep="\\";splitSep=Zi;constructor(t,e=j,s,i,n,o,h){super(t,e,s,i,n,o,h)}newChild(t,e=j,s={}){return new r(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return de.parse(t).root}getRoot(t){if(t=Xi(t.toUpperCase()),t===this.root.name)return this.root;for(let[e,s]of Object.entries(this.roots))if(this.sameRoot(t,e))return this.roots[t]=s;return this.roots[t]=new nt(t,this).root}sameRoot(t,e=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(fs,"$1\\"),t===e}},Bt=class r extends O{splitSep="/";sep="/";constructor(t,e=j,s,i,n,o,h){super(t,e,s,i,n,o,h)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,e=j,s={}){return new r(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}},Ut=class{root;rootPath;roots;cwd;#t;#s;#n;nocase;#i;constructor(t=process.cwd(),e,s,{nocase:i,childrenCacheSize:n=16*1024,fs:o=yt}={}){this.#i=cs(o),(t instanceof URL||t.startsWith("file://"))&&(t=Pi(t));let h=e.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(h),this.#t=new $t,this.#s=new $t,this.#n=new pe(n);let a=h.substring(this.rootPath.length).split(s);if(a.length===1&&!a[0]&&a.pop(),i===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=i,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let l=this.root,c=a.length-1,f=e.sep,u=this.rootPath,d=!1;for(let g of a){let p=c--;l=l.child(g,{relative:new Array(p).fill("..").join(f),relativePosix:new Array(p).fill("..").join("/"),fullpath:u+=(d?"":f)+g}),d=!0}this.cwd=l}depth(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let e="";for(let n=t.length-1;n>=0;n--){let o=t[n];if(!(!o||o===".")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#t.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpath();return this.#t.set(e,i),i}resolvePosix(...t){let e="";for(let n=t.length-1;n>=0;n--){let o=t[n];if(!(!o||o===".")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#s.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpathPosix();return this.#s.set(e,i),i}relative(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,e={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s}=e;if(t.canReaddir()){let i=await t.readdir();return s?i:i.map(n=>n.name)}else return[]}readdirSync(t=this.cwd,e={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0}=e;return t.canReaddir()?s?t.readdirSync():t.readdirSync().map(i=>i.name):[]}async lstat(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=await t.readlink();return e?s:s?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=t.readlinkSync();return e?s:s?.fullpath()}async realpath(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=await t.realpath();return e?s:s?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t.withFileTypes,t=this.cwd);let s=t.realpathSync();return e?s:s?.fullpath()}async walk(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=[];(!n||n(t))&&h.push(s?t:t.fullpath());let a=new Set,l=(f,u)=>{a.add(f),f.readdirCB((d,g)=>{if(d)return u(d);let p=g.length;if(!p)return u();let w=()=>{--p===0&&u()};for(let m of g)(!n||n(m))&&h.push(s?m:m.fullpath()),i&&m.isSymbolicLink()?m.realpath().then(S=>S?.isUnknown()?S.lstat():S).then(S=>S?.shouldWalk(a,o)?l(S,w):w()):m.shouldWalk(a,o)?l(m,w):w()},!0)},c=t;return new Promise((f,u)=>{l(c,d=>{if(d)return u(d);f(h)})})}walkSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=[];(!n||n(t))&&h.push(s?t:t.fullpath());let a=new Set([t]);for(let l of a){let c=l.readdirSync();for(let f of c){(!n||n(f))&&h.push(s?f:f.fullpath());let u=f;if(f.isSymbolicLink()){if(!(i&&(u=f.realpathSync())))continue;u.isUnknown()&&u.lstatSync()}u.shouldWalk(a,o)&&a.add(u)}}return h}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,e={}){return typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd),this.stream(t,e)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e;(!n||n(t))&&(yield s?t:t.fullpath());let h=new Set([t]);for(let a of h){let l=a.readdirSync();for(let c of l){(!n||n(c))&&(yield s?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(i&&(f=c.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(h,o)&&h.add(f)}}}stream(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=new V({objectMode:!0});(!n||n(t))&&h.write(s?t:t.fullpath());let a=new Set,l=[t],c=0,f=()=>{let u=!1;for(;!u;){let d=l.shift();if(!d){c===0&&h.end();return}c++,a.add(d);let g=(w,m,S=!1)=>{if(w)return h.emit("error",w);if(i&&!S){let b=[];for(let y of m)y.isSymbolicLink()&&b.push(y.realpath().then(E=>E?.isUnknown()?E.lstat():E));if(b.length){Promise.all(b).then(()=>g(null,m,!0));return}}for(let b of m)b&&(!n||n(b))&&(h.write(s?b:b.fullpath())||(u=!0));c--;for(let b of m){let y=b.realpathCached()||b;y.shouldWalk(a,o)&&l.push(y)}u&&!h.flowing?h.once("drain",f):p||f()},p=!0;d.readdirCB(g,!0),p=!1}};return f(),h}streamSync(t=this.cwd,e={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof O||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:n,walkFilter:o}=e,h=new V({objectMode:!0}),a=new Set;(!n||n(t))&&h.write(s?t:t.fullpath());let l=[t],c=0,f=()=>{let u=!1;for(;!u;){let d=l.shift();if(!d){c===0&&h.end();return}c++,a.add(d);let g=d.readdirSync();for(let p of g)(!n||n(p))&&(h.write(s?p:p.fullpath())||(u=!0));c--;for(let p of g){let w=p;if(p.isSymbolicLink()){if(!(i&&(w=p.realpathSync())))continue;w.isUnknown()&&w.lstatSync()}w.shouldWalk(a,o)&&l.push(w)}}u&&!h.flowing&&h.once("drain",f)};return f(),h}chdir(t=this.cwd){let e=this.cwd;this.cwd=typeof t=="string"?this.cwd.resolve(t):t,this.cwd[ws](e)}},nt=class extends Ut{sep="\\";constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,de,"\\",{...e,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(t){return de.parse(t).root.toUpperCase()}newRoot(t){return new Wt(this.rootPath,G,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")||t.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(t)}},ot=class extends Ut{sep="/";constructor(t=process.cwd(),e={}){let{nocase:s=!1}=e;super(t,zi,"/",{...e,nocase:s}),this.nocase=s}parseRootPath(t){return"/"}newRoot(t){return new Bt(this.rootPath,G,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")}},Et=class extends ot{constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,{...e,nocase:s})}},an=process.platform==="win32"?Wt:Bt,ys=process.platform==="win32"?nt:process.platform==="darwin"?Et:ot;var tr=r=>r.length>=1,er=r=>r.length>=1,ht=class r{#t;#s;#n;length;#i;#h;#l;#f;#a;#o;#e=!0;constructor(t,e,s,i){if(!tr(t))throw new TypeError("empty pattern list");if(!er(e))throw new TypeError("empty glob list");if(e.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#t=t,this.#s=e,this.#n=s,this.#i=i,this.#n===0){if(this.isUNC()){let[n,o,h,a,...l]=this.#t,[c,f,u,d,...g]=this.#s;l[0]===""&&(l.shift(),g.shift());let p=[n,o,h,a,""].join("/"),w=[c,f,u,d,""].join("/");this.#t=[p,...l],this.#s=[w,...g],this.length=this.#t.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#t,[h,...a]=this.#s;o[0]===""&&(o.shift(),a.shift());let l=n+"/",c=h+"/";this.#t=[l,...o],this.#s=[c,...a],this.length=this.#t.length}}}pattern(){return this.#t[this.#n]}isString(){return typeof this.#t[this.#n]=="string"}isGlobstar(){return this.#t[this.#n]===R}isRegExp(){return this.#t[this.#n]instanceof RegExp}globString(){return this.#l=this.#l||(this.#n===0?this.isAbsolute()?this.#s[0]+this.#s.slice(1).join("/"):this.#s.join("/"):this.#s.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#h!==void 0?this.#h:this.hasMore()?(this.#h=new r(this.#t,this.#s,this.#n+1,this.#i),this.#h.#o=this.#o,this.#h.#a=this.#a,this.#h.#f=this.#f,this.#h):this.#h=null}isUNC(){let t=this.#t;return this.#a!==void 0?this.#a:this.#a=this.#i==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#t;return this.#f!==void 0?this.#f:this.#f=this.#i==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#t;return this.#o!==void 0?this.#o:this.#o=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#t[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#e)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#e?!1:(this.#e=!1,!0)}};var sr=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",at=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(t,{nobrace:e,nocase:s,noext:i,noglobstar:n,platform:o=sr}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=o,this.mmopts={dot:!0,nobrace:e,nocase:s,noext:i,noglobstar:n,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let h of t)this.add(h)}add(t){let e=new D(t,this.mmopts);for(let s=0;s[t,!!(e&2),!!(e&1)])}},we=class{store=new Map;add(t,e){if(!t.canReaddir())return;let s=this.store.get(t);s?s.find(i=>i.globString()===e.globString())||s.push(e):this.store.set(t,[e])}get(t){let e=this.store.get(t);if(!e)throw new Error("attempting to walk unknown path");return e}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}},vt=class r{hasWalkedCache;matches=new ge;subwalks=new we;patterns;follow;dot;opts;constructor(t,e){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=e?e.copy():new me}processPatterns(t,e){this.patterns=e;let s=e.map(i=>[t,i]);for(let[i,n]of s){this.hasWalkedCache.storeWalked(i,n);let o=n.root(),h=n.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let a,l,c=!1;for(;typeof(a=n.pattern())=="string"&&(l=n.rest());)i=i.resolve(a),n=l,c=!0;if(a=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(i,n))continue;this.hasWalkedCache.storeWalked(i,n)}if(typeof a=="string"){let f=a===".."||a===""||a===".";this.matches.add(i.resolve(a),h,f);continue}else if(a===R){(!i.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(i,n);let f=l?.pattern(),u=l?.rest();if(!l||(f===""||f===".")&&!u)this.matches.add(i,h,f===""||f===".");else if(f===".."){let d=i.parent||i;u?this.hasWalkedCache.hasWalked(d,u)||this.subwalks.add(d,u):this.matches.add(d,h,!0)}}else a instanceof RegExp&&this.subwalks.add(i,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new r(this.opts,this.hasWalkedCache)}filterEntries(t,e){let s=this.subwalks.get(t),i=this.child();for(let n of e)for(let o of s){let h=o.isAbsolute(),a=o.pattern(),l=o.rest();a===R?i.testGlobstar(n,o,l,h):a instanceof RegExp?i.testRegExp(n,a,l,h):i.testString(n,a,l,h)}return i}testGlobstar(t,e,s,i){if((this.dot||!t.name.startsWith("."))&&(e.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,e):t.isSymbolicLink()&&(s&&e.checkFollowGlobstar()?this.subwalks.add(t,s):e.markFollowGlobstar()&&this.subwalks.add(t,e)))),s){let n=s.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,s.rest(),i);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,s)}else n instanceof RegExp&&this.testRegExp(t,n,s.rest(),i)}}testRegExp(t,e,s,i){e.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,e,s,i){t.isNamed(e)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}};var ir=(r,t)=>typeof r=="string"?new at([r],t):Array.isArray(r)?new at(r,t):r,Gt=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#t=[];#s;#n;signal;maxDepth;includeChildMatches;constructor(t,e,s){if(this.patterns=t,this.path=e,this.opts=s,this.#n=!s.posix&&s.platform==="win32"?"\\":"/",this.includeChildMatches=s.includeChildMatches!==!1,(s.ignore||!this.includeChildMatches)&&(this.#s=ir(s.ignore??[],s),!this.includeChildMatches&&typeof this.#s.add!="function")){let i="cannot ignore child matches, ignore lacks add() method.";throw new Error(i)}this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener("abort",()=>{this.#t.length=0}))}#i(t){return this.seen.has(t)||!!this.#s?.ignored?.(t)}#h(t){return!!this.#s?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#t.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#t.push(t):t())}async matchCheck(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||await t.realpath(),!s)return;t=s}let n=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&n?.isSymbolicLink()){let o=await n.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(n,e)}matchCheckTest(t,e){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!e||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#i(t)?t:void 0}matchCheckSync(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||t.realpathSync(),!s)return;t=s}let n=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&n?.isSymbolicLink()){let o=n.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(n,e)}matchFinish(t,e){if(this.#i(t))return;if(!this.includeChildMatches&&this.#s?.add){let n=`${t.relativePosix()}/**`;this.#s.add(n)}let s=this.opts.absolute===void 0?e:this.opts.absolute;this.seen.add(t);let i=this.opts.mark&&t.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(t);else if(s){let n=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(n+i)}else{let n=this.opts.posix?t.relativePosix():t.relative(),o=this.opts.dotRelative&&!n.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(n?o+n+i:"."+i)}}async match(t,e,s){let i=await this.matchCheck(t,s);i&&this.matchFinish(i,e)}matchSync(t,e,s){let i=this.matchCheckSync(t,s);i&&this.matchFinish(i,e)}walkCB(t,e,s){this.signal?.aborted&&s(),this.walkCB2(t,e,new vt(this.opts),s)}walkCB2(t,e,s,i){if(this.#h(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(t,e,s,i));return}s.processPatterns(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||(n++,this.match(h,a,l).then(()=>o()));for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;n++;let a=h.readdirCached();h.calledReaddir()?this.walkCB3(h,a,s,o):h.readdirCB((l,c)=>this.walkCB3(h,c,s,o),!0)}o()}walkCB3(t,e,s,i){s=s.filterEntries(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||(n++,this.match(h,a,l).then(()=>o()));for(let[h,a]of s.subwalks.entries())n++,this.walkCB2(h,a,s.child(),o);o()}walkCBSync(t,e,s){this.signal?.aborted&&s(),this.walkCB2Sync(t,e,new vt(this.opts),s)}walkCB2Sync(t,e,s,i){if(this.#h(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(t,e,s,i));return}s.processPatterns(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||this.matchSync(h,a,l);for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;n++;let a=h.readdirSync();this.walkCB3Sync(h,a,s,o)}o()}walkCB3Sync(t,e,s,i){s=s.filterEntries(t,e);let n=1,o=()=>{--n===0&&i()};for(let[h,a,l]of s.matches.entries())this.#i(h)||this.matchSync(h,a,l);for(let[h,a]of s.subwalks.entries())n++,this.walkCB2Sync(h,a,s.child(),o);o()}},xt=class extends Gt{matches=new Set;constructor(t,e,s){super(t,e,s)}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,e)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?e(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},Tt=class extends Gt{results;constructor(t,e,s){super(t,e,s),this.results=new V({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var nr=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",W=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(t,e){if(!e)throw new TypeError("glob options required");if(this.withFileTypes=!!e.withFileTypes,this.signal=e.signal,this.follow=!!e.follow,this.dot=!!e.dot,this.dotRelative=!!e.dotRelative,this.nodir=!!e.nodir,this.mark=!!e.mark,e.cwd?(e.cwd instanceof URL||e.cwd.startsWith("file://"))&&(e.cwd=rr(e.cwd)):this.cwd="",this.cwd=e.cwd||"",this.root=e.root,this.magicalBraces=!!e.magicalBraces,this.nobrace=!!e.nobrace,this.noext=!!e.noext,this.realpath=!!e.realpath,this.absolute=e.absolute,this.includeChildMatches=e.includeChildMatches!==!1,this.noglobstar=!!e.noglobstar,this.matchBase=!!e.matchBase,this.maxDepth=typeof e.maxDepth=="number"?e.maxDepth:1/0,this.stat=!!e.stat,this.ignore=e.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof t=="string"&&(t=[t]),this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(a=>a.replace(/\\/g,"/"))),this.matchBase){if(e.noglobstar)throw new TypeError("base matching requires globstar");t=t.map(a=>a.includes("/")?a:`./**/${a}`)}if(this.pattern=t,this.platform=e.platform||nr,this.opts={...e,platform:this.platform},e.scurry){if(this.scurry=e.scurry,e.nocase!==void 0&&e.nocase!==e.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let a=e.platform==="win32"?nt:e.platform==="darwin"?Et:e.platform?ot:ys;this.scurry=new a(this.cwd,{nocase:e.nocase,fs:e.fs})}this.nocase=this.scurry.nocase;let s=this.platform==="darwin"||this.platform==="win32",i={...e,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},n=this.pattern.map(a=>new D(a,i)),[o,h]=n.reduce((a,l)=>(a[0].push(...l.set),a[1].push(...l.globParts),a),[[],[]]);this.patterns=o.map((a,l)=>{let c=h[l];if(!c)throw new Error("invalid pattern object");return new ht(a,c,0,this.platform)})}async walk(){return[...await new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new Tt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new Tt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};var ye=(r,t={})=>{Array.isArray(r)||(r=[r]);for(let e of r)if(new D(e,t).hasMagic())return!0;return!1};function Ht(r,t={}){return new W(r,t).streamSync()}function Es(r,t={}){return new W(r,t).stream()}function qt(r,t={}){return new W(r,t).walkSync()}async function bs(r,t={}){return new W(r,t).walk()}function Jt(r,t={}){return new W(r,t).iterateSync()}function vs(r,t={}){return new W(r,t).iterate()}var or=Ht,hr=Object.assign(Es,{sync:Ht}),ar=Jt,lr=Object.assign(vs,{sync:Jt}),cr=Object.assign(qt,{stream:Ht,iterate:Jt}),Ss=Object.assign(bs,{glob:bs,globSync:qt,sync:cr,globStream:Es,stream:hr,globStreamSync:Ht,streamSync:or,globIterate:vs,iterate:lr,globIterateSync:Jt,iterateSync:ar,Glob:W,hasMagic:ye,escape:tt,unescape:z});Ss.glob=Ss;import fr from"node:fs";function xs(r){return JSON.parse(fr.readFileSync(r).toString("utf-8"))}function Kt(r){return xs(r)}function be(r){return xs(r)}function Y(r){return(process.env[`INPUT_${r.toUpperCase()}`]||"").trim()}function Ts(r){let t=ur(r);Vt.mkdirSync(Yt.join(Ct.cwd(),r.analyzerDirectory),{recursive:!0});let e=Yt.join(Ct.cwd(),r.analyzerDirectory,"bundle_analysis.json");Vt.writeFileSync(e,JSON.stringify(t,null,2)),Xt.log(`Wrote ${e}`)}function Se(r){return r.metafiles.flatMap(t=>qt(Yt.join(Ct.cwd(),t),{nodir:!0}).map(e=>({relativePath:Yt.relative(Ct.cwd(),e),absolutePath:e})))}function ur(r){let t={};return Se(r).reduce((e,{relativePath:s,absolutePath:i})=>{try{Vt.accessSync(i,Vt.constants.R_OK)}catch{Xt.error(`No meta file found at "${i}" - a path to meta file may be wrong, or esbuild is not executed.`),Ct.exit(1)}let n=Kt(i);return Object.entries(n.outputs).reduce((o,h)=>{let[a,l]=h;return r.includeExtensions.some(c=>a.toLowerCase().endsWith(c))&&(o[`${s} -> ${a}`]={bytes:l.bytes,metafile:s,outfile:a}),o},e),e},t)}function Rs(r){let t=!1,e=`## \u{1F4E6} esbuild Bundle Analysis for ${r.name} This analysis was generated by [esbuild-bundle-analyzer](https://github.com/exoego/esbuild-bundle-analyzer). \u{1F916} -`,s=be(Rt.join(process.cwd(),r.analyzerDirectory,"bundle_analysis.json")),i=mr(r),n=gr(r),h=[...new Set([...Object.keys(s),...Object.keys(i)])].sort().map(a=>{let l=s[a],c=i[a];if(!l)return t=!0,{...c,baseBytes:-1,remark:"deleted",tree:void 0};let f=n.get(Cs(l.metafile,l.outfile));if(!c)return t=!0,{...l,baseBytes:-1,remark:"added",tree:f};let u=l.bytes-c.bytes;return u!==0&&(t=!0),{...l,baseBytes:c.bytes,tree:f,remark:Math.sign(u)?"increased":"decreased"}});t?(e+=wr(h,r.percentExtraAttention),e+=br(h,r.topNLargestPaths),e+=pr(r)):e+="This PR introduced no changes to the esbuild bundle! \u{1F64C}",e+=``,dr(r,e)}function Cs(r,t){return`${r} -> ${t}`}function dr(r,t){ve.mkdirSync(Rt.join(process.cwd(),r.analyzerDirectory),{recursive:!0}),ve.writeFileSync(Rt.join(process.cwd(),r.analyzerDirectory,"bundle_analysis_comment.txt"),t.trim())}function pr(r){return r.showDetails?` +`,s=be(At.join(process.cwd(),r.analyzerDirectory,"bundle_analysis.json")),i=mr(r),n=gr(r),h=[...new Set([...Object.keys(s),...Object.keys(i)])].sort().map(a=>{let l=s[a],c=i[a];if(!l)return t=!0,{...c,baseBytes:-1,remark:"deleted",tree:void 0};let f=n.get(ks(l.metafile,l.outfile));if(!c)return t=!0,{...l,baseBytes:-1,remark:"added",tree:f};let u=l.bytes-c.bytes;return u!==0&&(t=!0),{...l,baseBytes:c.bytes,tree:f,remark:Math.sign(u)?"increased":"decreased"}});t?(e+=wr(h,r.percentExtraAttention),e+=br(h,r.topNLargestPaths),e+=pr(r)):e+="This PR introduced no changes to the esbuild bundle! \u{1F64C}",e+=``,dr(r,e)}function ks(r,t){return`${r} -> ${t}`}function dr(r,t){ve.mkdirSync(At.join(process.cwd(),r.analyzerDirectory),{recursive:!0}),ve.writeFileSync(At.join(process.cwd(),r.analyzerDirectory,"bundle_analysis_comment.txt"),t.trim())}function pr(r){return r.showDetails?`
    Details

    Next to the size is how much the size has increased or decreased compared with the base branch of this PR.

    @@ -15,11 +15,11 @@ This analysis was generated by [esbuild-bundle-analyzer](https://github.com/exoe
  • \u{1F195}: The out file is newly found: will be added to base branch.
  • -`:""}function mr(r){try{let t=be(Rt.join(process.cwd(),r.analyzerDirectory,"base/bundle/bundle_analysis.json"));return console.info("Base analysis found.",t),t}catch{return console.warn("No base analysis found. First setup or all artifacts are expired."),{}}}function gr(r){function t(i){let n={name:"",path:"",value:0,children:[]};for(let[o,{bytesInOutput:h}]of Object.entries(i)){let a=o.split("/");e(n,a,h)}return n}function e(i,n,o){let h=n.shift();if(h===void 0){i.value+=o;return}let a=i.children.find(l=>l.name===h);a||(a={name:h,path:`${i.path}/${h}`.replace(/^\//,""),value:0,children:[]},i.children.push(a)),i.value+=o,e(a,n,o)}let s=new Map;if(r.topNLargestPaths<=0)return s;for(let{relativePath:i,absolutePath:n}of Se(r)){let o=Kt(n);for(let[h,a]of Object.entries(o.outputs)){let l=t(a.inputs);s.set(Cs(i,h),l),ve.writeFileSync(Rt.join(process.cwd(),r.analyzerDirectory,"tree.json"),JSON.stringify(l,null,2))}}return s}var Zt="\xA0";function xe(r){let t=r<0?"-":"",e=Math.abs(r);if(e<1e3)return`${t}${e}${Zt}B`;if(e<1e3*1e3)return`${t}${(e/1e3).toFixed(2)}${Zt}KB`;if(e<1e3*1e3*1e3)return`${t}${(e/1e3/1e3).toFixed(2)}${Zt}MB`;if(e<1e3*1e3*1e3*1e3)return`${t}${(e/1e3/1e3/1e3).toFixed(2)}${Zt}GB`;throw new Error("Too large file size!! Are you sure?")}function wr(r,t){return` +`:""}function mr(r){try{let t=be(At.join(process.cwd(),r.analyzerDirectory,"base/bundle/bundle_analysis.json"));return console.info("Base analysis found.",t),t}catch{return console.warn("No base analysis found. First setup or all artifacts are expired."),{}}}function gr(r){function t(i){let n={name:"",path:"",value:0,children:[]};for(let[o,{bytesInOutput:h}]of Object.entries(i)){let a=o.split("/");e(n,a,h)}return n}function e(i,n,o){let h=n.shift();if(h===void 0){i.value+=o;return}let a=i.children.find(l=>l.name===h);a||(a={name:h,path:`${i.path}/${h}`.replace(/^\//,""),value:0,children:[]},i.children.push(a)),i.value+=o,e(a,n,o)}let s=new Map;if(r.topNLargestPaths<=0)return s;for(let{relativePath:i,absolutePath:n}of Se(r)){let o=Kt(n);for(let[h,a]of Object.entries(o.outputs)){let l=t(a.inputs);s.set(ks(i,h),l),ve.writeFileSync(At.join(process.cwd(),r.analyzerDirectory,"tree.json"),JSON.stringify(l,null,2))}}return s}var Zt="\xA0";function xe(r){let t=r<0?"-":"",e=Math.abs(r);if(e<1e3)return`${t}${e}${Zt}B`;if(e<1e3*1e3)return`${t}${(e/1e3).toFixed(2)}${Zt}KB`;if(e<1e3*1e3*1e3)return`${t}${(e/1e3/1e3).toFixed(2)}${Zt}MB`;if(e<1e3*1e3*1e3*1e3)return`${t}${(e/1e3/1e3/1e3).toFixed(2)}${Zt}GB`;throw new Error("Too large file size!! Are you sure?")}function wr(r,t){return` Meta File | Out File | Size (raw) | Note ----------|----------|-----------:|------ ${r.map(s=>`${s.metafile} | ${s.outfile} | ${Er(s)} | ${vr(s,t)} -`).join("")}`}function yr(r,t){let e=[],s=[{node:r,depth:0}];for(;s.length>0;){let n=s.shift();if(!n)break;let{node:o,depth:h}=n;if(h===3){e.push(o);continue}if(o.children.length===0)e.push(o);else for(let a of o.children)s.push({node:a,depth:h+1})}return{largeNodes:e.sort((n,o)=>o.value-n.value).slice(0,t),hasOther:e.length>t}}function As(r,t){return Number.parseFloat((r/t*100).toFixed(1))}function br(r,t){if(r.length===0||t<=0)return"";let e="";e+=`
    +`).join("")}`}function yr(r,t){let e=[],s=[{node:r,depth:0}];for(;s.length>0;){let n=s.shift();if(!n)break;let{node:o,depth:h}=n;if(h===3){e.push(o);continue}if(o.children.length===0)e.push(o);else for(let a of o.children)s.push({node:a,depth:h+1})}return{largeNodes:e.sort((n,o)=>o.value-n.value).slice(0,t),hasOther:e.length>t}}function Cs(r,t){return Number.parseFloat((r/t*100).toFixed(1))}function br(r,t){if(r.length===0||t<=0)return"";let e="";e+=`
    `,e+=`Largest paths `,e+=`These visualization shows top ${t} largest paths in the bundle. `;for(let s of r){if(e+=` @@ -27,8 +27,8 @@ ${r.map(s=>`${s.metafile} | ${s.outfile} | ${Er(s)} | ${vr(s,t)} `,!s.tree){e+=`\uFE0F\uFE0F\u{1F5D1}\uFE0FDeleted `;continue}e+=`| Path | Size | `,e+=`|------|-------| -`;let i=s.tree.value,{largeNodes:n,hasOther:o}=yr(s.tree,t);for(let{path:h,value:a}of n){let l=As(a,i);e+=`| ${h} | ${Rs(l,a)} | -`}if(o){let h=i-n[0].value,a=As(h,i);e+=`| (other) | ${Rs(a,h)} | +`;let i=s.tree.value,{largeNodes:n,hasOther:o}=yr(s.tree,t);for(let{path:h,value:a}of n){let l=Cs(a,i);e+=`| ${h} | ${As(l,a)} | +`}if(o){let h=i-n[0].value,a=Cs(h,i);e+=`| (other) | ${As(a,h)} | `}}return e+=`
    -`,e}function Rs(r,t){return`\${{\\color{Goldenrod}{ ${Sr(r/100)} }}}$ ${r.toFixed(1)}%, ${xe(t)}`}var Os=["","\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588"],Ee=1/(Os.length-1);function Sr(r,t=25,e=0,s=1){let i=r*t,n=Math.floor(i),o=i-n,h=Math.round(Ee*Math.floor(o/Ee)/Ee);return"\u2588".repeat(n)+Os[h]}function Er(r){return xe(r.bytes)}function vr(r,t){if(r.remark==="deleted")return"\u{1F5D1}\uFE0F Deleted";if(r.remark==="added")return"\u{1F195} Added";let e=r.bytes-r.baseBytes;if(e!==0){let s=e/r.baseBytes*100;return`${xr(s,t)}${xe(e)} (${Fs(s)}${s.toFixed(1)}%)`}return"\u2705 No change"}function Fs(r){return r<0?"":"+"}function xr(r,t){let e;return r>0&&r=t?e="\u203C\uFE0F":e="\u2705 ",`${e} ${Fs(r)}`}function Ar(){let r=Y("metafiles");if(!r)throw new Error("metafiles is not specified");let t=Y("name");if(!t)throw new Error("name is not specified");return{percentExtraAttention:Number.parseInt(Y("percent_extra_attention")||"20",10),showDetails:["true","True","TRUE"].includes(Y("show_details")||"true"),topNLargestPaths:Number.parseInt(Y("top_n_largest_paths")||"20",10),includeExtensions:(Y("include_extensions")||".js,.mjs,.cjs").split(","),name:t,analyzerDirectory:Y("analyze_directory")||".analyzer",metafiles:r.split(",")}}function Rr(r=Ar()){Ts(r),ks(r)}import.meta.url===Tr(process.argv[1]).href&&Rr();export{Rr as run}; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9jb21wYXJlLnRzIiwgIi4uL3NyYy9yZXBvcnQudHMiLCAiLi4vc3JjL3V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBcIi4vY29tcGFyZVwiO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IElucHV0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGdldFNpbmdsZUlucHV0IH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gZ2V0SW5wdXQoKTogSW5wdXQge1xuXHRjb25zdCByYXdNZXRhZmlsZXMgPSBnZXRTaW5nbGVJbnB1dChcIm1ldGFmaWxlc1wiKTtcblx0aWYgKCFyYXdNZXRhZmlsZXMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJtZXRhZmlsZXMgaXMgbm90IHNwZWNpZmllZFwiKTtcblx0fVxuXHRjb25zdCBuYW1lID0gZ2V0U2luZ2xlSW5wdXQoXCJuYW1lXCIpO1xuXHRpZiAoIW5hbWUpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJuYW1lIGlzIG5vdCBzcGVjaWZpZWRcIik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHRwZXJjZW50RXh0cmFBdHRlbnRpb246IE51bWJlci5wYXJzZUludChcblx0XHRcdGdldFNpbmdsZUlucHV0KFwicGVyY2VudF9leHRyYV9hdHRlbnRpb25cIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRzaG93RGV0YWlsczogW1widHJ1ZVwiLCBcIlRydWVcIiwgXCJUUlVFXCJdLmluY2x1ZGVzKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJzaG93X2RldGFpbHNcIikgfHwgXCJ0cnVlXCIsXG5cdFx0KSxcblx0XHR0b3BOTGFyZ2VzdFBhdGhzOiBOdW1iZXIucGFyc2VJbnQoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcInRvcF9uX2xhcmdlc3RfcGF0aHNcIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRpbmNsdWRlRXh0ZW5zaW9uczogKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJpbmNsdWRlX2V4dGVuc2lvbnNcIikgfHwgXCIuanMsLm1qcywuY2pzXCJcblx0XHQpLnNwbGl0KFwiLFwiKSxcblx0XHRuYW1lLFxuXHRcdGFuYWx5emVyRGlyZWN0b3J5OiBnZXRTaW5nbGVJbnB1dChcImFuYWx5emVfZGlyZWN0b3J5XCIpIHx8IFwiLmFuYWx5emVyXCIsXG5cdFx0bWV0YWZpbGVzOiByYXdNZXRhZmlsZXMuc3BsaXQoXCIsXCIpLFxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGlucHV0OiBJbnB1dCA9IGdldElucHV0KCkpOiB2b2lkIHtcblx0cmVwb3J0KGlucHV0KTtcblx0Y29tcGFyZShpbnB1dCk7XG59XG5cbmlmIChpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwocHJvY2Vzcy5hcmd2WzFdKS5ocmVmKSB7XG5cdHJ1bigpO1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZmluZE1ldGFmaWxlcyB9IGZyb20gXCIuL3JlcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBDb21wYXJlUmVzdWx0LCBJbnB1dCwgUmVwb3J0LCBUcmVlTWFwTm9kZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBsb2FkQW5hbHlzaXNKc29uLCBsb2FkTWV0YUZpbGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZShpbnB1dDogSW5wdXQpOiB2b2lkIHtcblx0bGV0IGhhc0FueUNoYW5nZSA9IGZhbHNlO1xuXHRsZXQgb3V0cHV0ID0gYCMjIFx1RDgzRFx1RENFNiBlc2J1aWxkIEJ1bmRsZSBBbmFseXNpcyBmb3IgJHtpbnB1dC5uYW1lfVxuXG5UaGlzIGFuYWx5c2lzIHdhcyBnZW5lcmF0ZWQgYnkgW2VzYnVpbGQtYnVuZGxlLWFuYWx5emVyXShodHRwczovL2dpdGh1Yi5jb20vZXhvZWdvL2VzYnVpbGQtYnVuZGxlLWFuYWx5emVyKS4gXHVEODNFXHVERDE2XG5gO1xuXG5cdGNvbnN0IGN1cnJlbnQgPSBsb2FkQW5hbHlzaXNKc29uKFxuXHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJidW5kbGVfYW5hbHlzaXMuanNvblwiKSxcblx0KTtcblx0Y29uc3QgYmFzZSA9IGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0KTtcblxuXHRjb25zdCBmaWxlVHJlZSA9IGJ1aWxkRmlsZVRyZWUoaW5wdXQpO1xuXG5cdGNvbnN0IGFsbE91dEZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHQuLi5uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhjdXJyZW50KSwgLi4uT2JqZWN0LmtleXMoYmFzZSldKSxcblx0XS5zb3J0KCk7XG5cblx0Y29uc3QgY29tcGFyaXNvbjogQXJyYXk8Q29tcGFyZVJlc3VsdD4gPSBhbGxPdXRGaWxlcy5tYXAoKG91dGZpbGUpID0+IHtcblx0XHRjb25zdCBjdXJyZW50U3RhdHMgPSBjdXJyZW50W291dGZpbGVdO1xuXHRcdGNvbnN0IGJhc2VTdGF0cyA9IGJhc2Vbb3V0ZmlsZV07XG5cblx0XHRpZiAoIWN1cnJlbnRTdGF0cykge1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLmJhc2VTdGF0cyxcblx0XHRcdFx0YmFzZUJ5dGVzOiAtMSxcblx0XHRcdFx0cmVtYXJrOiBcImRlbGV0ZWRcIixcblx0XHRcdFx0dHJlZTogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCB0cmVlID0gZmlsZVRyZWUuZ2V0KFxuXHRcdFx0dHJlZUtleShjdXJyZW50U3RhdHMubWV0YWZpbGUsIGN1cnJlbnRTdGF0cy5vdXRmaWxlKSxcblx0XHQpO1xuXHRcdGlmICghYmFzZVN0YXRzKSB7XG5cdFx0XHRoYXNBbnlDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIHsgLi4uY3VycmVudFN0YXRzLCBiYXNlQnl0ZXM6IC0xLCByZW1hcms6IFwiYWRkZWRcIiwgdHJlZSB9O1xuXHRcdH1cblxuXHRcdGNvbnN0IGRpZmYgPSBjdXJyZW50U3RhdHMuYnl0ZXMgLSBiYXNlU3RhdHMuYnl0ZXM7XG5cdFx0aWYgKGRpZmYgIT09IDApIHtcblx0XHRcdGhhc0FueUNoYW5nZSA9IHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHQuLi5jdXJyZW50U3RhdHMsXG5cdFx0XHRiYXNlQnl0ZXM6IGJhc2VTdGF0cy5ieXRlcyxcblx0XHRcdHRyZWUsXG5cdFx0XHRyZW1hcms6IE1hdGguc2lnbihkaWZmKSA/IFwiaW5jcmVhc2VkXCIgOiBcImRlY3JlYXNlZFwiLFxuXHRcdH07XG5cdH0pO1xuXG5cdGlmIChoYXNBbnlDaGFuZ2UpIHtcblx0XHRvdXRwdXQgKz0gbWFya2Rvd25UYWJsZShjb21wYXJpc29uLCBpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb24pO1xuXHRcdG91dHB1dCArPSBmaWxlU2l6ZVRhYmxlKGNvbXBhcmlzb24sIGlucHV0LnRvcE5MYXJnZXN0UGF0aHMpO1xuXHRcdG91dHB1dCArPSBkZXRhaWwoaW5wdXQpO1xuXHR9IGVsc2Uge1xuXHRcdG91dHB1dCArPSBcIlRoaXMgUFIgaW50cm9kdWNlZCBubyBjaGFuZ2VzIHRvIHRoZSBlc2J1aWxkIGJ1bmRsZSEgXHVEODNEXHVERTRDXCI7XG5cdH1cblxuXHQvLyB3ZSBhZGQgdGhpcyB0YWcgc28gdGhhdCBvdXIgYWN0aW9uIGNhbiBiZSBhYmxlIHRvIGVhc2lseSBhbmRcblx0Ly8gY29uc2lzdGVudGx5IGZpbmQgdGhlIHJpZ2h0IGNvbW1lbnQgdG8gZWRpdCBhcyBtb3JlIGNvbW1pdHMgYXJlIHB1c2hlZC5cblx0b3V0cHV0ICs9IGA8IS0tIF9fRVNCVUlMRF9CVU5ETEVfJHtpbnB1dC5uYW1lfSAtLT5gO1xuXG5cdHdyaXRlQ29tbWVudChpbnB1dCwgb3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gdHJlZUtleShtZXRhZmlsZTogc3RyaW5nLCBvdXRmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYCR7bWV0YWZpbGV9IC0+ICR7b3V0ZmlsZX1gO1xufVxuXG4vLyBXcml0ZSB0aGUgb3V0cHV0IHRvIGEgZmlsZSB3aGljaCBpcyBsYXRlciByZWFkIGluXG4vLyBhcyBjb21tZW50IGNvbnRlbnRzIGJ5IHRoZSBhY3Rpb25zIHdvcmtmbG93LlxuZnVuY3Rpb24gd3JpdGVDb21tZW50KGlucHV0OiBJbnB1dCwgb3V0cHV0OiBzdHJpbmcpOiB2b2lkIHtcblx0ZnMubWtkaXJTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSksIHtcblx0XHRyZWN1cnNpdmU6IHRydWUsXG5cdH0pO1xuXHRmcy53cml0ZUZpbGVTeW5jKFxuXHRcdHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYnVuZGxlX2FuYWx5c2lzX2NvbW1lbnQudHh0XCIsXG5cdFx0KSxcblx0XHRvdXRwdXQudHJpbSgpLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBkZXRhaWwoaW5wdXQ6IElucHV0KTogc3RyaW5nIHtcblx0aWYgKCFpbnB1dC5zaG93RGV0YWlscykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cdHJldHVybiBgXFxuPGRldGFpbHM+XG48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PlxuPHA+TmV4dCB0byB0aGUgc2l6ZSBpcyBob3cgbXVjaCB0aGUgc2l6ZSBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBjb21wYXJlZCB3aXRoIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGlzIFBSLjwvcD5cbjx1bD5cbjxsaT5cdTIwM0NcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGJ5ICR7aW5wdXQucGVyY2VudEV4dHJhQXR0ZW50aW9ufSUgb3IgbW9yZS4gU3BlY2lhbCBhdHRlbnRpb24gc2hvdWxkIGJlIGdpdmVuIHRvIHRoaXMuPC9saT5cbjxsaT5cdTI2QTBcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGluIGFjY2VwdGFibGUgcmFuZ2UgKGxvd2VyIHRoYW4gJHtpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb259JSkuPC9saT5cbjxsaT5cdTI3MDU6IE5vIGNoYW5nZSBvciBldmVuIGRvd25zaXplZC48L2xpPlxuPGxpPlx1RDgzRFx1REREMVx1RkUwRjogVGhlIG91dCBmaWxlIGlzIGRlbGV0ZWQ6IG5vdCBmb3VuZCBpbiBiYXNlIGJyYW5jaC48L2xpPlxuPGxpPlx1RDgzQ1x1REQ5NTogVGhlIG91dCBmaWxlIGlzIG5ld2x5IGZvdW5kOiB3aWxsIGJlIGFkZGVkIHRvIGJhc2UgYnJhbmNoLjwvbGk+XG48L3VsPlxuPC9kZXRhaWxzPlxcbmA7XG59XG5cbmZ1bmN0aW9uIGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgcmVwb3J0ID0gbG9hZEFuYWx5c2lzSnNvbihcblx0XHRcdHBhdGguam9pbihcblx0XHRcdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRcdFx0aW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnksXG5cdFx0XHRcdFwiYmFzZS9idW5kbGUvYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0XHRcdCksXG5cdFx0KTtcblx0XHRjb25zb2xlLmluZm8oXCJCYXNlIGFuYWx5c2lzIGZvdW5kLlwiLCByZXBvcnQpO1xuXHRcdHJldHVybiByZXBvcnQ7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcIk5vIGJhc2UgYW5hbHlzaXMgZm91bmQuIEZpcnN0IHNldHVwIG9yIGFsbCBhcnRpZmFjdHMgYXJlIGV4cGlyZWQuXCIsXG5cdFx0KTtcblx0XHRyZXR1cm4ge307XG5cdH1cbn1cblxuZnVuY3Rpb24gYnVpbGRGaWxlVHJlZShpbnB1dDogSW5wdXQpIHtcblx0ZnVuY3Rpb24gYnVpbGRSb290KFxuXHRcdGlucHV0OiBSZWNvcmQ8c3RyaW5nLCB7IGJ5dGVzSW5PdXRwdXQ6IG51bWJlciB9Pixcblx0KTogVHJlZU1hcE5vZGUge1xuXHRcdGNvbnN0IHJvb3Q6IFRyZWVNYXBOb2RlID0geyBuYW1lOiBcIlwiLCBwYXRoOiBcIlwiLCB2YWx1ZTogMCwgY2hpbGRyZW46IFtdIH07XG5cdFx0Zm9yIChjb25zdCBbZmlsZVBhdGgsIHsgYnl0ZXNJbk91dHB1dCB9XSBvZiBPYmplY3QuZW50cmllcyhpbnB1dCkpIHtcblx0XHRcdGNvbnN0IGRpcmVjdG9yaWVzID0gZmlsZVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0YnVpbGROb2RlKHJvb3QsIGRpcmVjdG9yaWVzLCBieXRlc0luT3V0cHV0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHJvb3Q7XG5cdH1cblxuXHRmdW5jdGlvbiBidWlsZE5vZGUoXG5cdFx0bm9kZTogVHJlZU1hcE5vZGUsXG5cdFx0cGF0aHM6IEFycmF5PHN0cmluZz4sXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgZmlyc3QgPSBwYXRocy5zaGlmdCgpO1xuXHRcdGlmIChmaXJzdCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBsZWFmIG5vZGUgKGZpbGUpXG5cdFx0XHRub2RlLnZhbHVlICs9IHZhbHVlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRsZXQgY2hpbGQgPSBub2RlLmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5uYW1lID09PSBmaXJzdCk7XG5cdFx0aWYgKCFjaGlsZCkge1xuXHRcdFx0Y2hpbGQgPSB7XG5cdFx0XHRcdG5hbWU6IGZpcnN0LFxuXHRcdFx0XHRwYXRoOiBgJHtub2RlLnBhdGh9LyR7Zmlyc3R9YC5yZXBsYWNlKC9eXFwvLywgXCJcIiksXG5cdFx0XHRcdHZhbHVlOiAwLFxuXHRcdFx0XHRjaGlsZHJlbjogW10sXG5cdFx0XHR9O1xuXHRcdFx0bm9kZS5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcblx0XHR9XG5cdFx0bm9kZS52YWx1ZSArPSB2YWx1ZTtcblx0XHRidWlsZE5vZGUoY2hpbGQsIHBhdGhzLCB2YWx1ZSk7XG5cdH1cblxuXHRjb25zdCB0cmVlcyA9IG5ldyBNYXA8c3RyaW5nLCBUcmVlTWFwTm9kZT4oKTtcblx0aWYgKGlucHV0LnRvcE5MYXJnZXN0UGF0aHMgPD0gMCkge1xuXHRcdC8vIFNraXAgYnVpbGRpbmcgdHJlZSBpZiB3ZSBkb24ndCBuZWVkIGl0LlxuXHRcdHJldHVybiB0cmVlcztcblx0fVxuXHRmb3IgKGNvbnN0IHsgcmVsYXRpdmVQYXRoLCBhYnNvbHV0ZVBhdGggfSBvZiBmaW5kTWV0YWZpbGVzKGlucHV0KSkge1xuXHRcdGNvbnN0IG1ldGFmaWxlSnNvbiA9IGxvYWRNZXRhRmlsZShhYnNvbHV0ZVBhdGgpO1xuXHRcdGZvciAoY29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gb2YgT2JqZWN0LmVudHJpZXMobWV0YWZpbGVKc29uLm91dHB1dHMpKSB7XG5cdFx0XHRjb25zdCB0cmVlID0gYnVpbGRSb290KGJ1aWxkTWV0YS5pbnB1dHMpO1xuXHRcdFx0dHJlZXMuc2V0KHRyZWVLZXkocmVsYXRpdmVQYXRoLCBvdXRmaWxlKSwgdHJlZSk7XG5cblx0XHRcdGZzLndyaXRlRmlsZVN5bmMoXG5cdFx0XHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJ0cmVlLmpzb25cIiksXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRyZWUsIG51bGwsIDIpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRyZWVzO1xufVxuXG5jb25zdCBzcGFjZXIgPSBcIlx1MDBBMFwiO1xuZnVuY3Rpb24gZmlsZXNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IHNpZ24gPSBieXRlcyA8IDAgPyBcIi1cIiA6IFwiXCI7XG5cdGNvbnN0IG4gPSBNYXRoLmFicyhieXRlcyk7XG5cdGlmIChuIDwgMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7bn0ke3NwYWNlcn1CYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9S0JgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDAgLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfU1CYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwICogMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCAvIDEwMDAgLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfUdCYDtcblx0fVxuXHR0aHJvdyBuZXcgRXJyb3IoXCJUb28gbGFyZ2UgZmlsZSBzaXplISEgQXJlIHlvdSBzdXJlP1wiKTtcbn1cblxuZnVuY3Rpb24gbWFya2Rvd25UYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHJlZFRocmVzaG9sZDogbnVtYmVyLFxuKTogc3RyaW5nIHtcblx0Y29uc3Qgcm93cyA9IGRhdGFcblx0XHQubWFwKChkKSA9PiB7XG5cdFx0XHRyZXR1cm4gYCR7ZC5tZXRhZmlsZX0gfCAke2Qub3V0ZmlsZX0gfCAke3JlbmRlclNpemUoZCl9IHwgJHtyZW5kZXJOb3RlKFxuXHRcdFx0XHRkLFxuXHRcdFx0XHRyZWRUaHJlc2hvbGQsXG5cdFx0XHQpfVxcbmA7XG5cdFx0fSlcblx0XHQuam9pbihcIlwiKTtcblxuXHRyZXR1cm4gYFxuTWV0YSBGaWxlIHwgT3V0IEZpbGUgIHwgU2l6ZSAocmF3KSB8IE5vdGUgXG4tLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS06fC0tLS0tLVxuJHtyb3dzfWA7XG59XG5cbi8qKlxuICogRmluZCB0aGUgdG9wIE4gbGFyZ2VzdCBub2RlcyBpbiByb290IHRyZWUuXG4gKiBEaWcgbm9kZXMgdW50aWwgdGhlIGRlcHRoIG9mIDMuXG4gKi9cbmZ1bmN0aW9uIGZpbmRMYXJnZURpcmVjdG9yaWVzKHJvb3Q6IFRyZWVNYXBOb2RlLCBOOiBudW1iZXIpIHtcblx0Y29uc3Qgbm9kZXM6IFRyZWVNYXBOb2RlW10gPSBbXTtcblx0Y29uc3QgcXVldWU6IEFycmF5PHsgbm9kZTogVHJlZU1hcE5vZGU7IGRlcHRoOiBudW1iZXIgfT4gPSBbXG5cdFx0eyBub2RlOiByb290LCBkZXB0aDogMCB9LFxuXHRdO1xuXHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IHNoaWZ0ID0gcXVldWUuc2hpZnQoKTtcblx0XHRpZiAoIXNoaWZ0KSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0Y29uc3QgeyBub2RlLCBkZXB0aCB9ID0gc2hpZnQ7XG5cdFx0aWYgKGRlcHRoID09PSAzKSB7XG5cdFx0XHRub2Rlcy5wdXNoKG5vZGUpO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0bm9kZXMucHVzaChub2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yIChjb25zdCBpdGVtIG9mIG5vZGUuY2hpbGRyZW4pIHtcblx0XHRcdFx0cXVldWUucHVzaCh7IG5vZGU6IGl0ZW0sIGRlcHRoOiBkZXB0aCArIDEgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGxhcmdlTm9kZXMgPSBub2Rlcy5zb3J0KChhLCBiKSA9PiBiLnZhbHVlIC0gYS52YWx1ZSkuc2xpY2UoMCwgTik7XG5cdHJldHVybiB7XG5cdFx0bGFyZ2VOb2Rlcyxcblx0XHRoYXNPdGhlcjogbm9kZXMubGVuZ3RoID4gTixcblx0fTtcbn1cblxuZnVuY3Rpb24gZml4ZWRQZXJjZW50KG46IG51bWJlciwgZDogbnVtYmVyKTogbnVtYmVyIHtcblx0cmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KCgobiAvIGQpICogMTAwKS50b0ZpeGVkKDEpKTtcbn1cblxuZnVuY3Rpb24gZmlsZVNpemVUYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHRvcE5MYXJnZXN0UGF0aHM6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGlmIChkYXRhLmxlbmd0aCA9PT0gMCB8fCB0b3BOTGFyZ2VzdFBhdGhzIDw9IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRsZXQgb3V0cHV0ID0gXCJcIjtcblx0b3V0cHV0ICs9IFwiPGRldGFpbHM+XFxuXCI7XG5cdG91dHB1dCArPSBcIjxzdW1tYXJ5Pkxhcmdlc3QgcGF0aHM8L3N1bW1hcnk+XFxuXCI7XG5cdG91dHB1dCArPSBgVGhlc2UgdmlzdWFsaXphdGlvbiBzaG93cyB0b3AgJHt0b3BOTGFyZ2VzdFBhdGhzfSBsYXJnZXN0IHBhdGhzIGluIHRoZSBidW5kbGUuXFxuYDtcblx0Zm9yIChjb25zdCBkIG9mIGRhdGEpIHtcblx0XHRvdXRwdXQgKz0gXCJcXG5cIjtcblx0XHRvdXRwdXQgKz0gYCMjIE1ldGEgZmlsZTogJHtkLm1ldGFmaWxlfSwgT3V0IGZpbGU6ICR7ZC5vdXRmaWxlfVxcbmA7XG5cdFx0aWYgKCFkLnRyZWUpIHtcblx0XHRcdG91dHB1dCArPSBcIlx1RkUwRlx1RkUwRlx1RDgzRFx1REREMVx1RkUwRkRlbGV0ZWRcXG5cIjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRvdXRwdXQgKz0gXCJ8IFBhdGggfCBTaXplIHxcXG5cIjtcblx0XHRvdXRwdXQgKz0gXCJ8LS0tLS0tfC0tLS0tLS18XFxuXCI7XG5cdFx0Y29uc3QgdG90YWxTaXplID0gZC50cmVlLnZhbHVlO1xuXHRcdGNvbnN0IHsgbGFyZ2VOb2RlcywgaGFzT3RoZXIgfSA9IGZpbmRMYXJnZURpcmVjdG9yaWVzKFxuXHRcdFx0ZC50cmVlLFxuXHRcdFx0dG9wTkxhcmdlc3RQYXRocyxcblx0XHQpO1xuXHRcdGZvciAoY29uc3QgeyBwYXRoLCB2YWx1ZSB9IG9mIGxhcmdlTm9kZXMpIHtcblx0XHRcdGNvbnN0IHBlcmNlbnQgPSBmaXhlZFBlcmNlbnQodmFsdWUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgJHtwYXRofSB8ICR7cmVuZGVyQmFyKHBlcmNlbnQsIHZhbHVlKX0gfFxcbmA7XG5cdFx0fVxuXHRcdGlmIChoYXNPdGhlcikge1xuXHRcdFx0Y29uc3Qgb3RoZXJTaXplID0gdG90YWxTaXplIC0gbGFyZ2VOb2Rlc1swXS52YWx1ZTtcblx0XHRcdGNvbnN0IG90aGVyUGVyY2VudCA9IGZpeGVkUGVyY2VudChvdGhlclNpemUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgKG90aGVyKSB8ICR7cmVuZGVyQmFyKG90aGVyUGVyY2VudCwgb3RoZXJTaXplKX0gfFxcbmA7XG5cdFx0fVxuXHR9XG5cdG91dHB1dCArPSBcIjwvZGV0YWlscz5cXG5cIjtcblx0cmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQmFyKHBlcmNlbnQ6IG51bWJlciwgYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IGJhciA9IHByb2dyZXNzKHBlcmNlbnQgLyAxMDApO1xuXHRyZXR1cm4gYFxcJHt7XFxcXGNvbG9ye0dvbGRlbnJvZH17ICR7YmFyfSB9fX1cXCQgJHtwZXJjZW50LnRvRml4ZWQoXG5cdFx0MSxcblx0KX0lLCAke2ZpbGVzaXplKGJ5dGVzKX1gO1xufVxuXG4vLyBCbG9jayBwcm9ncmVzc2lvbiBpcyAxLzggPSAwLjEyNVxuY29uc3QgYmxvY2tzID0gW1wiXCIsIFwiXHUyNThGXCIsIFwiXHUyNThFXCIsIFwiXHUyNThEXCIsIFwiXHUyNThDXCIsIFwiXHUyNThCXCIsIFwiXHUyNThBXCIsIFwiXHUyNTg5XCIsIFwiXHUyNTg4XCJdO1xuY29uc3QgcHJvZ3Jlc3Npb24gPSAxIC8gKGJsb2Nrcy5sZW5ndGggLSAxKTtcbmZ1bmN0aW9uIHByb2dyZXNzKHZhbHVlOiBudW1iZXIsIGxlbmd0aCA9IDI1LCB2bWluID0gMC4wLCB2bWF4ID0gMS4wKSB7XG5cdGNvbnN0IHYgPSB2YWx1ZSAqIGxlbmd0aDtcblx0Y29uc3QgaW50ZWdlclBhcnQgPSBNYXRoLmZsb29yKHYpO1xuXHRjb25zdCBmcmFjdGlvbmFsUGFydCA9IHYgLSBpbnRlZ2VyUGFydDtcblx0Y29uc3QgaSA9IE1hdGgucm91bmQoXG5cdFx0KHByb2dyZXNzaW9uICogTWF0aC5mbG9vcihmcmFjdGlvbmFsUGFydCAvIHByb2dyZXNzaW9uKSkgLyBwcm9ncmVzc2lvbixcblx0KTtcblx0cmV0dXJuIFwiXHUyNTg4XCIucmVwZWF0KGludGVnZXJQYXJ0KSArIGJsb2Nrc1tpXTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU2l6ZShkOiBDb21wYXJlUmVzdWx0KTogc3RyaW5nIHtcblx0cmV0dXJuIGZpbGVzaXplKGQuYnl0ZXMpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJOb3RlKGQ6IENvbXBhcmVSZXN1bHQsIHJlZFRocmVzaG9sZDogbnVtYmVyKTogc3RyaW5nIHtcblx0aWYgKGQucmVtYXJrID09PSBcImRlbGV0ZWRcIikge1xuXHRcdHJldHVybiBcIlx1RDgzRFx1REREMVx1RkUwRiBEZWxldGVkXCI7XG5cdH1cblx0aWYgKGQucmVtYXJrID09PSBcImFkZGVkXCIpIHtcblx0XHRyZXR1cm4gXCJcdUQ4M0NcdUREOTUgQWRkZWRcIjtcblx0fVxuXHRjb25zdCBkaWZmID0gZC5ieXRlcyAtIGQuYmFzZUJ5dGVzO1xuXHRpZiAoZGlmZiAhPT0gMCkge1xuXHRcdGNvbnN0IHBlcmNlbnRDaGFuZ2UgPSAoZGlmZiAvIGQuYmFzZUJ5dGVzKSAqIDEwMDtcblx0XHRyZXR1cm4gYCR7cmVuZGVyU3RhdHVzSW5kaWNhdG9yKHBlcmNlbnRDaGFuZ2UsIHJlZFRocmVzaG9sZCl9JHtmaWxlc2l6ZShcblx0XHRcdGRpZmYsXG5cdFx0KX0gKCR7c2lnbihwZXJjZW50Q2hhbmdlKX0ke3BlcmNlbnRDaGFuZ2UudG9GaXhlZCgxKX0lKWA7XG5cdH1cblx0cmV0dXJuIFwiXHUyNzA1ICBObyBjaGFuZ2VcIjtcbn1cblxuZnVuY3Rpb24gc2lnbihudW06IG51bWJlcik6IHN0cmluZyB7XG5cdHJldHVybiBudW0gPCAwID8gXCJcIiA6IFwiK1wiO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTdGF0dXNJbmRpY2F0b3IoXG5cdHBlcmNlbnRDaGFuZ2U6IG51bWJlcixcblx0cmVkVGhyZXNob2xkOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRsZXQgcmVzOiBzdHJpbmc7XG5cdGlmIChwZXJjZW50Q2hhbmdlID4gMCAmJiBwZXJjZW50Q2hhbmdlIDwgcmVkVGhyZXNob2xkKSB7XG5cdFx0cmVzID0gXCJcdTI2QTBcdUZFMEZcIjtcblx0fSBlbHNlIGlmIChwZXJjZW50Q2hhbmdlID49IHJlZFRocmVzaG9sZCkge1xuXHRcdHJlcyA9IFwiXHUyMDNDXHVGRTBGXCI7XG5cdH0gZWxzZSB7XG5cdFx0cmVzID0gXCJcdTI3MDUgXCI7XG5cdH1cblx0cmV0dXJuIGAke3Jlc30gJHtzaWduKHBlcmNlbnRDaGFuZ2UpfWA7XG59XG4iLCAiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbmltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IHsgZ2xvYlN5bmMgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dCwgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvcnQoaW5wdXQ6IElucHV0KTogdm9pZCB7XG5cdGNvbnN0IGFsbFBhZ2VTaXplcyA9IGdldEFsbFBhZ2VTaXplcyhpbnB1dCk7XG5cdGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnkpLCB7XG5cdFx0cmVjdXJzaXZlOiB0cnVlLFxuXHR9KTtcblx0Y29uc3QgcmVzdWx0SnNvblBhdGggPSBwYXRoLmpvaW4oXG5cdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcImJ1bmRsZV9hbmFseXNpcy5qc29uXCIsXG5cdCk7XG5cdGZzLndyaXRlRmlsZVN5bmMocmVzdWx0SnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGFsbFBhZ2VTaXplcywgbnVsbCwgMikpO1xuXHRjb25zb2xlLmxvZyhgV3JvdGUgJHtyZXN1bHRKc29uUGF0aH1gKTtcbn1cblxuaW50ZXJmYWNlIE1ldGFmaWxlUGF0aCB7XG5cdHJlYWRvbmx5IHJlbGF0aXZlUGF0aDogc3RyaW5nO1xuXHRyZWFkb25seSBhYnNvbHV0ZVBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNZXRhZmlsZXMoaW5wdXQ6IElucHV0KTogTWV0YWZpbGVQYXRoW10ge1xuXHRyZXR1cm4gaW5wdXQubWV0YWZpbGVzLmZsYXRNYXAoKG1ldGFmaWxlKSA9PiB7XG5cdFx0cmV0dXJuIGdsb2JTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBtZXRhZmlsZSksIHtcblx0XHRcdG5vZGlyOiB0cnVlLFxuXHRcdH0pLm1hcCgobWV0YUZpbGVQYXRoKSA9PiB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRyZWxhdGl2ZVBhdGg6IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgbWV0YUZpbGVQYXRoKSxcblx0XHRcdFx0YWJzb2x1dGVQYXRoOiBtZXRhRmlsZVBhdGgsXG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsUGFnZVNpemVzKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdGNvbnN0IGFjYzogUmVwb3J0ID0ge307XG5cdHJldHVybiBmaW5kTWV0YWZpbGVzKGlucHV0KS5yZWR1Y2UoKGFjYywgeyByZWxhdGl2ZVBhdGgsIGFic29sdXRlUGF0aCB9KSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVQYXRoLCBmcy5jb25zdGFudHMuUl9PSyk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XHRgTm8gbWV0YSBmaWxlIGZvdW5kIGF0IFwiJHthYnNvbHV0ZVBhdGh9XCIgLSBhIHBhdGggdG8gbWV0YSBmaWxlIG1heSBiZSB3cm9uZywgb3IgZXNidWlsZCBpcyBub3QgZXhlY3V0ZWQuYCxcblx0XHRcdCk7XG5cdFx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWV0YUZpbGVKc29uID0gbG9hZE1ldGFGaWxlKGFic29sdXRlUGF0aCk7XG5cdFx0T2JqZWN0LmVudHJpZXMobWV0YUZpbGVKc29uLm91dHB1dHMpLnJlZHVjZSgoYWNjLCBvdXRwdXQpID0+IHtcblx0XHRcdGNvbnN0IFtvdXRmaWxlLCBidWlsZE1ldGFdID0gb3V0cHV0O1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQhaW5wdXQuaW5jbHVkZUV4dGVuc2lvbnMuc29tZSgoZXh0KSA9PlxuXHRcdFx0XHRcdG91dGZpbGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChleHQpLFxuXHRcdFx0XHQpXG5cdFx0XHQpIHtcblx0XHRcdFx0cmV0dXJuIGFjYztcblx0XHRcdH1cblx0XHRcdGFjY1tgJHtyZWxhdGl2ZVBhdGh9IC0+ICR7b3V0ZmlsZX1gXSA9IHtcblx0XHRcdFx0Ynl0ZXM6IGJ1aWxkTWV0YS5ieXRlcyxcblx0XHRcdFx0bWV0YWZpbGU6IHJlbGF0aXZlUGF0aCxcblx0XHRcdFx0b3V0ZmlsZSxcblx0XHRcdH07XG5cdFx0XHRyZXR1cm4gYWNjO1xuXHRcdH0sIGFjYyk7XG5cdFx0cmV0dXJuIGFjYztcblx0fSwgYWNjKTtcbn1cbiIsICJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcblxuaW1wb3J0IHR5cGUgeyBNZXRhZmlsZSB9IGZyb20gXCJlc2J1aWxkXCI7XG5pbXBvcnQgdHlwZSB7IFJlcG9ydCB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGxvYWRKc29uRmlsZShwYXRoOiBzdHJpbmcpIHtcblx0cmV0dXJuIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhdGgpLnRvU3RyaW5nKFwidXRmLThcIikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZE1ldGFGaWxlKHBhdGg6IHN0cmluZyk6IE1ldGFmaWxlIHtcblx0cmV0dXJuIGxvYWRKc29uRmlsZShwYXRoKSBhcyBNZXRhZmlsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBbmFseXNpc0pzb24ocGF0aDogc3RyaW5nKTogUmVwb3J0IHtcblx0cmV0dXJuIGxvYWRKc29uRmlsZShwYXRoKSBhcyBSZXBvcnQ7XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hY3Rpb25zL3Rvb2xraXQvYmxvYi84MWE3M2FiYThiZWRkNTMyZjZlZGRjYzQxZWQzYTBmYWQ4YjFjZmViL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmUudHMjTDEyNlxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbmdsZUlucHV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IHZhbCA9IHByb2Nlc3MuZW52W2BJTlBVVF8ke25hbWUudG9VcHBlckNhc2UoKX1gXSB8fCBcIlwiO1xuXHRyZXR1cm4gdmFsLnRyaW0oKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJzc0dBQUEsT0FBUyxpQkFBQUEsT0FBcUIsV0NBOUIsT0FBT0MsT0FBUSxVQUNmLE9BQU9DLE9BQVUsWUNEakIsT0FBT0MsT0FBUSxVQUNmLE9BQU9DLE9BQVUsWUFDakIsT0FBT0MsT0FBYSxlQUVwQixVQUFZQyxPQUFhOzs0MDJEQ0p6QixPQUFPQyxPQUFRLFVBS2YsU0FBU0MsR0FBYUMsRUFBYyxDQUNuQyxPQUFPLEtBQUssTUFBTUYsR0FBRyxhQUFhRSxDQUFJ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TUFBTSxJQUFJLE1BQU0sdUJBQXVCLEVBRXhDLE1BQU8sQ0FDTixzQkFBdUIsT0FBTyxTQUM3QkQsRUFBZSx5QkFBeUIsR0FBSyxLQUM3QyxFQUNELEVBQ0EsWUFBYSxDQUFDLE9BQVEsT0FBUSxNQUFNLEVBQUUsU0FDckNBLEVBQWUsY0FBYyxHQUFLLE1BQ25DLEVBQ0EsaUJBQWtCLE9BQU8sU0FDeEJBLEVBQWUscUJBQXFCLEdBQUssS0FDekMsRUFDRCxFQUNBLG1CQUNDQSxFQUFlLG9CQUFvQixHQUFLLGlCQUN2QyxNQUFNLEdBQUcsRUFDWCxLQUFBQyxFQUNBLGtCQUFtQkQsRUFBZSxtQkFBbUIsR0FBSyxZQUMxRCxVQUFXRCxFQUFhLE1BQU0sR0FBRyxDQUNsQyxDQUNELENBRU8sU0FBU0csR0FBSUMsRUFBZUwsR0FBUyxFQUFTLENBQ3BETSxHQUFPRCxDQUFLLEVBQ1pFLEdBQVFGLENBQUssQ0FDZCxDQUVJLFlBQVksTUFBUUcsR0FBYyxRQUFRLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFDdERKLEdBQUkiLAogICJuYW1lcyI6IFsicGF0aFRvRmlsZVVSTCIsICJmcyIsICJwYXRoIiwgImZzIiwgInBhdGgiLCAicHJvY2VzcyIsICJjb25zb2xlIiwgImZzIiwgImxvYWRKc29uRmlsZSIsICJwYXRoIiwgImxvYWRNZXRhRmlsZSIsICJsb2FkQW5hbHlzaXNKc29uIiwgImdldFNpbmdsZUlucHV0IiwgIm5hbWUiLCAicmVwb3J0IiwgImlucHV0IiwgImFsbFBhZ2VTaXplcyIsICJnZXRBbGxQYWdlU2l6ZXMiLCAiZnMiLCAicGF0aCIsICJwcm9jZXNzIiwgInJlc3VsdEpzb25QYXRoIiwgImZpbmRNZXRhZmlsZXMiLCAibWV0YWZpbGUiLCAiZ2xvYlN5bmMiLCAibWV0YUZpbGVQYXRoIiwgImFjYyIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgIm1ldGFGaWxlSnNvbiIsICJsb2FkTWV0YUZpbGUiLCAib3V0cHV0IiwgIm91dGZpbGUiLCAiYnVpbGRNZXRhIiwgImV4dCIsICJjb21wYXJlIiwgImlucHV0IiwgImhhc0FueUNoYW5nZSIsICJvdXRwdXQiLCAiY3VycmVudCIsICJsb2FkQW5hbHlzaXNKc29uIiwgInBhdGgiLCAiYmFzZSIsICJsb2FkQmFzZUFuYWx5c2lzSnNvbiIsICJmaWxlVHJlZSIsICJidWlsZEZpbGVUcmVlIiwgImNvbXBhcmlzb24iLCAib3V0ZmlsZSIsICJjdXJyZW50U3RhdHMiLCAiYmFzZVN0YXRzIiwgInRyZWUiLCAidHJlZUtleSIsICJkaWZmIiwgIm1hcmtkb3duVGFibGUiLCAiZmlsZVNpemVUYWJsZSIsICJkZXRhaWwiLCAid3JpdGVDb21tZW50IiwgIm1ldGFmaWxlIiwgImZzIiwgInJlcG9ydCIsICJidWlsZFJvb3QiLCAicm9vdCIsICJmaWxlUGF0aCIsICJieXRlc0luT3V0cHV0IiwgImRpcmVjdG9yaWVzIiwgImJ1aWxkTm9kZSIsICJub2RlIiwgInBhdGhzIiwgInZhbHVlIiwgImZpcnN0IiwgImNoaWxkIiwgInRyZWVzIiwgInJlbGF0aXZlUGF0aCIsICJhYnNvbHV0ZVBhdGgiLCAiZmluZE1ldGFmaWxlcyIsICJtZXRhZmlsZUpzb24iLCAibG9hZE1ldGFGaWxlIiwgImJ1aWxkTWV0YSIsICJzcGFjZXIiLCAiZmlsZXNpemUiLCAiYnl0ZXMiLCAic2lnbiIsICJuIiwgImRhdGEiLCAicmVkVGhyZXNob2xkIiwgImQiLCAicmVuZGVyU2l6ZSIsICJyZW5kZXJOb3RlIiwgImZpbmRMYXJnZURpcmVjdG9yaWVzIiwgIk4iLCAibm9kZXMiLCAicXVldWUiLCAic2hpZnQiLCAiZGVwdGgiLCAiaXRlbSIsICJhIiwgImIiLCAiZml4ZWRQZXJjZW50IiwgInRvcE5MYXJnZXN0UGF0aHMiLCAidG90YWxTaXplIiwgImxhcmdlTm9kZXMiLCAiaGFzT3RoZXIiLCAicGVyY2VudCIsICJyZW5kZXJCYXIiLCAib3RoZXJTaXplIiwgIm90aGVyUGVyY2VudCIsICJwcm9ncmVzcyIsICJibG9ja3MiLCAicHJvZ3Jlc3Npb24iLCAibGVuZ3RoIiwgInZtaW4iLCAidm1heCIsICJ2IiwgImludGVnZXJQYXJ0IiwgImZyYWN0aW9uYWxQYXJ0IiwgImkiLCAicGVyY2VudENoYW5nZSIsICJyZW5kZXJTdGF0dXNJbmRpY2F0b3IiLCAibnVtIiwgInJlcyIsICJnZXRJbnB1dCIsICJyYXdNZXRhZmlsZXMiLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJydW4iLCAiaW5wdXQiLCAicmVwb3J0IiwgImNvbXBhcmUiLCAicGF0aFRvRmlsZVVSTCJdCn0K +`,e}function As(r,t){return`\${{\\color{Goldenrod}{ ${Sr(r/100)} }}}$ ${r.toFixed(1)}%, ${xe(t)}`}var Os=["","\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588"],Ee=1/(Os.length-1);function Sr(r,t=25,e=0,s=1){let i=r*t,n=Math.floor(i),o=i-n,h=Math.round(Ee*Math.floor(o/Ee)/Ee);return"\u2588".repeat(n)+Os[h]}function Er(r){return xe(r.bytes)}function vr(r,t){if(r.remark==="deleted")return"\u{1F5D1}\uFE0F Deleted";if(r.remark==="added")return"\u{1F195} Added";let e=r.bytes-r.baseBytes;if(e!==0){let s=e/r.baseBytes*100;return`${xr(s,t)}${xe(e)} (${Ms(s)}${s.toFixed(1)}%)`}return"\u2705 No change"}function Ms(r){return r<0?"":"+"}function xr(r,t){let e;return r>0&&r=t?e="\u203C\uFE0F":e="\u2705 ",`${e} ${Ms(r)}`}function Cr(){let r=Y("metafiles");if(!r)throw new Error("metafiles is not specified");let t=Y("name");if(!t)throw new Error("name is not specified");return{percentExtraAttention:Number.parseInt(Y("percent_extra_attention")||"20",10),showDetails:["true","True","TRUE"].includes(Y("show_details")||"true"),topNLargestPaths:Number.parseInt(Y("top_n_largest_paths")||"20",10),includeExtensions:(Y("include_extensions")||".js,.mjs,.cjs").split(","),name:t,analyzerDirectory:Y("analyze_directory")||".analyzer",metafiles:r.split(",")}}function Ar(r=Cr()){Ts(r),Rs(r)}import.meta.url===Tr(process.argv[1]).href&&Ar();export{Ar as run}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9jb21wYXJlLnRzIiwgIi4uL3NyYy9yZXBvcnQudHMiLCAiLi4vc3JjL3V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBcIi4vY29tcGFyZVwiO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IElucHV0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGdldFNpbmdsZUlucHV0IH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gZ2V0SW5wdXQoKTogSW5wdXQge1xuXHRjb25zdCByYXdNZXRhZmlsZXMgPSBnZXRTaW5nbGVJbnB1dChcIm1ldGFmaWxlc1wiKTtcblx0aWYgKCFyYXdNZXRhZmlsZXMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJtZXRhZmlsZXMgaXMgbm90IHNwZWNpZmllZFwiKTtcblx0fVxuXHRjb25zdCBuYW1lID0gZ2V0U2luZ2xlSW5wdXQoXCJuYW1lXCIpO1xuXHRpZiAoIW5hbWUpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJuYW1lIGlzIG5vdCBzcGVjaWZpZWRcIik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHRwZXJjZW50RXh0cmFBdHRlbnRpb246IE51bWJlci5wYXJzZUludChcblx0XHRcdGdldFNpbmdsZUlucHV0KFwicGVyY2VudF9leHRyYV9hdHRlbnRpb25cIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRzaG93RGV0YWlsczogW1widHJ1ZVwiLCBcIlRydWVcIiwgXCJUUlVFXCJdLmluY2x1ZGVzKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJzaG93X2RldGFpbHNcIikgfHwgXCJ0cnVlXCIsXG5cdFx0KSxcblx0XHR0b3BOTGFyZ2VzdFBhdGhzOiBOdW1iZXIucGFyc2VJbnQoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcInRvcF9uX2xhcmdlc3RfcGF0aHNcIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRpbmNsdWRlRXh0ZW5zaW9uczogKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJpbmNsdWRlX2V4dGVuc2lvbnNcIikgfHwgXCIuanMsLm1qcywuY2pzXCJcblx0XHQpLnNwbGl0KFwiLFwiKSxcblx0XHRuYW1lLFxuXHRcdGFuYWx5emVyRGlyZWN0b3J5OiBnZXRTaW5nbGVJbnB1dChcImFuYWx5emVfZGlyZWN0b3J5XCIpIHx8IFwiLmFuYWx5emVyXCIsXG5cdFx0bWV0YWZpbGVzOiByYXdNZXRhZmlsZXMuc3BsaXQoXCIsXCIpLFxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGlucHV0OiBJbnB1dCA9IGdldElucHV0KCkpOiB2b2lkIHtcblx0cmVwb3J0KGlucHV0KTtcblx0Y29tcGFyZShpbnB1dCk7XG59XG5cbmlmIChpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwocHJvY2Vzcy5hcmd2WzFdKS5ocmVmKSB7XG5cdHJ1bigpO1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZmluZE1ldGFmaWxlcyB9IGZyb20gXCIuL3JlcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBDb21wYXJlUmVzdWx0LCBJbnB1dCwgUmVwb3J0LCBUcmVlTWFwTm9kZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBsb2FkQW5hbHlzaXNKc29uLCBsb2FkTWV0YUZpbGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZShpbnB1dDogSW5wdXQpOiB2b2lkIHtcblx0bGV0IGhhc0FueUNoYW5nZSA9IGZhbHNlO1xuXHRsZXQgb3V0cHV0ID0gYCMjIFx1RDgzRFx1RENFNiBlc2J1aWxkIEJ1bmRsZSBBbmFseXNpcyBmb3IgJHtpbnB1dC5uYW1lfVxuXG5UaGlzIGFuYWx5c2lzIHdhcyBnZW5lcmF0ZWQgYnkgW2VzYnVpbGQtYnVuZGxlLWFuYWx5emVyXShodHRwczovL2dpdGh1Yi5jb20vZXhvZWdvL2VzYnVpbGQtYnVuZGxlLWFuYWx5emVyKS4gXHVEODNFXHVERDE2XG5gO1xuXG5cdGNvbnN0IGN1cnJlbnQgPSBsb2FkQW5hbHlzaXNKc29uKFxuXHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJidW5kbGVfYW5hbHlzaXMuanNvblwiKSxcblx0KTtcblx0Y29uc3QgYmFzZSA9IGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0KTtcblxuXHRjb25zdCBmaWxlVHJlZSA9IGJ1aWxkRmlsZVRyZWUoaW5wdXQpO1xuXG5cdGNvbnN0IGFsbE91dEZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHQuLi5uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhjdXJyZW50KSwgLi4uT2JqZWN0LmtleXMoYmFzZSldKSxcblx0XS5zb3J0KCk7XG5cblx0Y29uc3QgY29tcGFyaXNvbjogQXJyYXk8Q29tcGFyZVJlc3VsdD4gPSBhbGxPdXRGaWxlcy5tYXAoKG91dGZpbGUpID0+IHtcblx0XHRjb25zdCBjdXJyZW50U3RhdHMgPSBjdXJyZW50W291dGZpbGVdO1xuXHRcdGNvbnN0IGJhc2VTdGF0cyA9IGJhc2Vbb3V0ZmlsZV07XG5cblx0XHRpZiAoIWN1cnJlbnRTdGF0cykge1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLmJhc2VTdGF0cyxcblx0XHRcdFx0YmFzZUJ5dGVzOiAtMSxcblx0XHRcdFx0cmVtYXJrOiBcImRlbGV0ZWRcIixcblx0XHRcdFx0dHJlZTogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCB0cmVlID0gZmlsZVRyZWUuZ2V0KFxuXHRcdFx0dHJlZUtleShjdXJyZW50U3RhdHMubWV0YWZpbGUsIGN1cnJlbnRTdGF0cy5vdXRmaWxlKSxcblx0XHQpO1xuXHRcdGlmICghYmFzZVN0YXRzKSB7XG5cdFx0XHRoYXNBbnlDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIHsgLi4uY3VycmVudFN0YXRzLCBiYXNlQnl0ZXM6IC0xLCByZW1hcms6IFwiYWRkZWRcIiwgdHJlZSB9O1xuXHRcdH1cblxuXHRcdGNvbnN0IGRpZmYgPSBjdXJyZW50U3RhdHMuYnl0ZXMgLSBiYXNlU3RhdHMuYnl0ZXM7XG5cdFx0aWYgKGRpZmYgIT09IDApIHtcblx0XHRcdGhhc0FueUNoYW5nZSA9IHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHQuLi5jdXJyZW50U3RhdHMsXG5cdFx0XHRiYXNlQnl0ZXM6IGJhc2VTdGF0cy5ieXRlcyxcblx0XHRcdHRyZWUsXG5cdFx0XHRyZW1hcms6IE1hdGguc2lnbihkaWZmKSA/IFwiaW5jcmVhc2VkXCIgOiBcImRlY3JlYXNlZFwiLFxuXHRcdH07XG5cdH0pO1xuXG5cdGlmIChoYXNBbnlDaGFuZ2UpIHtcblx0XHRvdXRwdXQgKz0gbWFya2Rvd25UYWJsZShjb21wYXJpc29uLCBpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb24pO1xuXHRcdG91dHB1dCArPSBmaWxlU2l6ZVRhYmxlKGNvbXBhcmlzb24sIGlucHV0LnRvcE5MYXJnZXN0UGF0aHMpO1xuXHRcdG91dHB1dCArPSBkZXRhaWwoaW5wdXQpO1xuXHR9IGVsc2Uge1xuXHRcdG91dHB1dCArPSBcIlRoaXMgUFIgaW50cm9kdWNlZCBubyBjaGFuZ2VzIHRvIHRoZSBlc2J1aWxkIGJ1bmRsZSEgXHVEODNEXHVERTRDXCI7XG5cdH1cblxuXHQvLyB3ZSBhZGQgdGhpcyB0YWcgc28gdGhhdCBvdXIgYWN0aW9uIGNhbiBiZSBhYmxlIHRvIGVhc2lseSBhbmRcblx0Ly8gY29uc2lzdGVudGx5IGZpbmQgdGhlIHJpZ2h0IGNvbW1lbnQgdG8gZWRpdCBhcyBtb3JlIGNvbW1pdHMgYXJlIHB1c2hlZC5cblx0b3V0cHV0ICs9IGA8IS0tIF9fRVNCVUlMRF9CVU5ETEVfJHtpbnB1dC5uYW1lfSAtLT5gO1xuXG5cdHdyaXRlQ29tbWVudChpbnB1dCwgb3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gdHJlZUtleShtZXRhZmlsZTogc3RyaW5nLCBvdXRmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYCR7bWV0YWZpbGV9IC0+ICR7b3V0ZmlsZX1gO1xufVxuXG4vLyBXcml0ZSB0aGUgb3V0cHV0IHRvIGEgZmlsZSB3aGljaCBpcyBsYXRlciByZWFkIGluXG4vLyBhcyBjb21tZW50IGNvbnRlbnRzIGJ5IHRoZSBhY3Rpb25zIHdvcmtmbG93LlxuZnVuY3Rpb24gd3JpdGVDb21tZW50KGlucHV0OiBJbnB1dCwgb3V0cHV0OiBzdHJpbmcpOiB2b2lkIHtcblx0ZnMubWtkaXJTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSksIHtcblx0XHRyZWN1cnNpdmU6IHRydWUsXG5cdH0pO1xuXHRmcy53cml0ZUZpbGVTeW5jKFxuXHRcdHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYnVuZGxlX2FuYWx5c2lzX2NvbW1lbnQudHh0XCIsXG5cdFx0KSxcblx0XHRvdXRwdXQudHJpbSgpLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBkZXRhaWwoaW5wdXQ6IElucHV0KTogc3RyaW5nIHtcblx0aWYgKCFpbnB1dC5zaG93RGV0YWlscykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cdHJldHVybiBgXFxuPGRldGFpbHM+XG48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PlxuPHA+TmV4dCB0byB0aGUgc2l6ZSBpcyBob3cgbXVjaCB0aGUgc2l6ZSBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBjb21wYXJlZCB3aXRoIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGlzIFBSLjwvcD5cbjx1bD5cbjxsaT5cdTIwM0NcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGJ5ICR7aW5wdXQucGVyY2VudEV4dHJhQXR0ZW50aW9ufSUgb3IgbW9yZS4gU3BlY2lhbCBhdHRlbnRpb24gc2hvdWxkIGJlIGdpdmVuIHRvIHRoaXMuPC9saT5cbjxsaT5cdTI2QTBcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGluIGFjY2VwdGFibGUgcmFuZ2UgKGxvd2VyIHRoYW4gJHtpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb259JSkuPC9saT5cbjxsaT5cdTI3MDU6IE5vIGNoYW5nZSBvciBldmVuIGRvd25zaXplZC48L2xpPlxuPGxpPlx1RDgzRFx1REREMVx1RkUwRjogVGhlIG91dCBmaWxlIGlzIGRlbGV0ZWQ6IG5vdCBmb3VuZCBpbiBiYXNlIGJyYW5jaC48L2xpPlxuPGxpPlx1RDgzQ1x1REQ5NTogVGhlIG91dCBmaWxlIGlzIG5ld2x5IGZvdW5kOiB3aWxsIGJlIGFkZGVkIHRvIGJhc2UgYnJhbmNoLjwvbGk+XG48L3VsPlxuPC9kZXRhaWxzPlxcbmA7XG59XG5cbmZ1bmN0aW9uIGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgcmVwb3J0ID0gbG9hZEFuYWx5c2lzSnNvbihcblx0XHRcdHBhdGguam9pbihcblx0XHRcdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRcdFx0aW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnksXG5cdFx0XHRcdFwiYmFzZS9idW5kbGUvYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0XHRcdCksXG5cdFx0KTtcblx0XHRjb25zb2xlLmluZm8oXCJCYXNlIGFuYWx5c2lzIGZvdW5kLlwiLCByZXBvcnQpO1xuXHRcdHJldHVybiByZXBvcnQ7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcIk5vIGJhc2UgYW5hbHlzaXMgZm91bmQuIEZpcnN0IHNldHVwIG9yIGFsbCBhcnRpZmFjdHMgYXJlIGV4cGlyZWQuXCIsXG5cdFx0KTtcblx0XHRyZXR1cm4ge307XG5cdH1cbn1cblxuZnVuY3Rpb24gYnVpbGRGaWxlVHJlZShpbnB1dDogSW5wdXQpIHtcblx0ZnVuY3Rpb24gYnVpbGRSb290KFxuXHRcdGlucHV0OiBSZWNvcmQ8c3RyaW5nLCB7IGJ5dGVzSW5PdXRwdXQ6IG51bWJlciB9Pixcblx0KTogVHJlZU1hcE5vZGUge1xuXHRcdGNvbnN0IHJvb3Q6IFRyZWVNYXBOb2RlID0geyBuYW1lOiBcIlwiLCBwYXRoOiBcIlwiLCB2YWx1ZTogMCwgY2hpbGRyZW46IFtdIH07XG5cdFx0Zm9yIChjb25zdCBbZmlsZVBhdGgsIHsgYnl0ZXNJbk91dHB1dCB9XSBvZiBPYmplY3QuZW50cmllcyhpbnB1dCkpIHtcblx0XHRcdGNvbnN0IGRpcmVjdG9yaWVzID0gZmlsZVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0YnVpbGROb2RlKHJvb3QsIGRpcmVjdG9yaWVzLCBieXRlc0luT3V0cHV0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHJvb3Q7XG5cdH1cblxuXHRmdW5jdGlvbiBidWlsZE5vZGUoXG5cdFx0bm9kZTogVHJlZU1hcE5vZGUsXG5cdFx0cGF0aHM6IEFycmF5PHN0cmluZz4sXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgZmlyc3QgPSBwYXRocy5zaGlmdCgpO1xuXHRcdGlmIChmaXJzdCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBsZWFmIG5vZGUgKGZpbGUpXG5cdFx0XHRub2RlLnZhbHVlICs9IHZhbHVlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRsZXQgY2hpbGQgPSBub2RlLmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5uYW1lID09PSBmaXJzdCk7XG5cdFx0aWYgKCFjaGlsZCkge1xuXHRcdFx0Y2hpbGQgPSB7XG5cdFx0XHRcdG5hbWU6IGZpcnN0LFxuXHRcdFx0XHRwYXRoOiBgJHtub2RlLnBhdGh9LyR7Zmlyc3R9YC5yZXBsYWNlKC9eXFwvLywgXCJcIiksXG5cdFx0XHRcdHZhbHVlOiAwLFxuXHRcdFx0XHRjaGlsZHJlbjogW10sXG5cdFx0XHR9O1xuXHRcdFx0bm9kZS5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcblx0XHR9XG5cdFx0bm9kZS52YWx1ZSArPSB2YWx1ZTtcblx0XHRidWlsZE5vZGUoY2hpbGQsIHBhdGhzLCB2YWx1ZSk7XG5cdH1cblxuXHRjb25zdCB0cmVlcyA9IG5ldyBNYXA8c3RyaW5nLCBUcmVlTWFwTm9kZT4oKTtcblx0aWYgKGlucHV0LnRvcE5MYXJnZXN0UGF0aHMgPD0gMCkge1xuXHRcdC8vIFNraXAgYnVpbGRpbmcgdHJlZSBpZiB3ZSBkb24ndCBuZWVkIGl0LlxuXHRcdHJldHVybiB0cmVlcztcblx0fVxuXHRmb3IgKGNvbnN0IHsgcmVsYXRpdmVQYXRoLCBhYnNvbHV0ZVBhdGggfSBvZiBmaW5kTWV0YWZpbGVzKGlucHV0KSkge1xuXHRcdGNvbnN0IG1ldGFmaWxlSnNvbiA9IGxvYWRNZXRhRmlsZShhYnNvbHV0ZVBhdGgpO1xuXHRcdGZvciAoY29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gb2YgT2JqZWN0LmVudHJpZXMobWV0YWZpbGVKc29uLm91dHB1dHMpKSB7XG5cdFx0XHRjb25zdCB0cmVlID0gYnVpbGRSb290KGJ1aWxkTWV0YS5pbnB1dHMpO1xuXHRcdFx0dHJlZXMuc2V0KHRyZWVLZXkocmVsYXRpdmVQYXRoLCBvdXRmaWxlKSwgdHJlZSk7XG5cblx0XHRcdGZzLndyaXRlRmlsZVN5bmMoXG5cdFx0XHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJ0cmVlLmpzb25cIiksXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRyZWUsIG51bGwsIDIpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRyZWVzO1xufVxuXG5jb25zdCBzcGFjZXIgPSBcIlx1MDBBMFwiO1xuZnVuY3Rpb24gZmlsZXNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IHNpZ24gPSBieXRlcyA8IDAgPyBcIi1cIiA6IFwiXCI7XG5cdGNvbnN0IG4gPSBNYXRoLmFicyhieXRlcyk7XG5cdGlmIChuIDwgMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7bn0ke3NwYWNlcn1CYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9S0JgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDAgLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfU1CYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwICogMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCAvIDEwMDAgLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfUdCYDtcblx0fVxuXHR0aHJvdyBuZXcgRXJyb3IoXCJUb28gbGFyZ2UgZmlsZSBzaXplISEgQXJlIHlvdSBzdXJlP1wiKTtcbn1cblxuZnVuY3Rpb24gbWFya2Rvd25UYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHJlZFRocmVzaG9sZDogbnVtYmVyLFxuKTogc3RyaW5nIHtcblx0Y29uc3Qgcm93cyA9IGRhdGFcblx0XHQubWFwKChkKSA9PiB7XG5cdFx0XHRyZXR1cm4gYCR7ZC5tZXRhZmlsZX0gfCAke2Qub3V0ZmlsZX0gfCAke3JlbmRlclNpemUoZCl9IHwgJHtyZW5kZXJOb3RlKFxuXHRcdFx0XHRkLFxuXHRcdFx0XHRyZWRUaHJlc2hvbGQsXG5cdFx0XHQpfVxcbmA7XG5cdFx0fSlcblx0XHQuam9pbihcIlwiKTtcblxuXHRyZXR1cm4gYFxuTWV0YSBGaWxlIHwgT3V0IEZpbGUgIHwgU2l6ZSAocmF3KSB8IE5vdGUgXG4tLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS06fC0tLS0tLVxuJHtyb3dzfWA7XG59XG5cbi8qKlxuICogRmluZCB0aGUgdG9wIE4gbGFyZ2VzdCBub2RlcyBpbiByb290IHRyZWUuXG4gKiBEaWcgbm9kZXMgdW50aWwgdGhlIGRlcHRoIG9mIDMuXG4gKi9cbmZ1bmN0aW9uIGZpbmRMYXJnZURpcmVjdG9yaWVzKHJvb3Q6IFRyZWVNYXBOb2RlLCBOOiBudW1iZXIpIHtcblx0Y29uc3Qgbm9kZXM6IFRyZWVNYXBOb2RlW10gPSBbXTtcblx0Y29uc3QgcXVldWU6IEFycmF5PHsgbm9kZTogVHJlZU1hcE5vZGU7IGRlcHRoOiBudW1iZXIgfT4gPSBbXG5cdFx0eyBub2RlOiByb290LCBkZXB0aDogMCB9LFxuXHRdO1xuXHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IHNoaWZ0ID0gcXVldWUuc2hpZnQoKTtcblx0XHRpZiAoIXNoaWZ0KSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0Y29uc3QgeyBub2RlLCBkZXB0aCB9ID0gc2hpZnQ7XG5cdFx0aWYgKGRlcHRoID09PSAzKSB7XG5cdFx0XHRub2Rlcy5wdXNoKG5vZGUpO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0bm9kZXMucHVzaChub2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yIChjb25zdCBpdGVtIG9mIG5vZGUuY2hpbGRyZW4pIHtcblx0XHRcdFx0cXVldWUucHVzaCh7IG5vZGU6IGl0ZW0sIGRlcHRoOiBkZXB0aCArIDEgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGxhcmdlTm9kZXMgPSBub2Rlcy5zb3J0KChhLCBiKSA9PiBiLnZhbHVlIC0gYS52YWx1ZSkuc2xpY2UoMCwgTik7XG5cdHJldHVybiB7XG5cdFx0bGFyZ2VOb2Rlcyxcblx0XHRoYXNPdGhlcjogbm9kZXMubGVuZ3RoID4gTixcblx0fTtcbn1cblxuZnVuY3Rpb24gZml4ZWRQZXJjZW50KG46IG51bWJlciwgZDogbnVtYmVyKTogbnVtYmVyIHtcblx0cmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KCgobiAvIGQpICogMTAwKS50b0ZpeGVkKDEpKTtcbn1cblxuZnVuY3Rpb24gZmlsZVNpemVUYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHRvcE5MYXJnZXN0UGF0aHM6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGlmIChkYXRhLmxlbmd0aCA9PT0gMCB8fCB0b3BOTGFyZ2VzdFBhdGhzIDw9IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRsZXQgb3V0cHV0ID0gXCJcIjtcblx0b3V0cHV0ICs9IFwiPGRldGFpbHM+XFxuXCI7XG5cdG91dHB1dCArPSBcIjxzdW1tYXJ5Pkxhcmdlc3QgcGF0aHM8L3N1bW1hcnk+XFxuXCI7XG5cdG91dHB1dCArPSBgVGhlc2UgdmlzdWFsaXphdGlvbiBzaG93cyB0b3AgJHt0b3BOTGFyZ2VzdFBhdGhzfSBsYXJnZXN0IHBhdGhzIGluIHRoZSBidW5kbGUuXFxuYDtcblx0Zm9yIChjb25zdCBkIG9mIGRhdGEpIHtcblx0XHRvdXRwdXQgKz0gXCJcXG5cIjtcblx0XHRvdXRwdXQgKz0gYCMjIE1ldGEgZmlsZTogJHtkLm1ldGFmaWxlfSwgT3V0IGZpbGU6ICR7ZC5vdXRmaWxlfVxcbmA7XG5cdFx0aWYgKCFkLnRyZWUpIHtcblx0XHRcdG91dHB1dCArPSBcIlx1RkUwRlx1RkUwRlx1RDgzRFx1REREMVx1RkUwRkRlbGV0ZWRcXG5cIjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRvdXRwdXQgKz0gXCJ8IFBhdGggfCBTaXplIHxcXG5cIjtcblx0XHRvdXRwdXQgKz0gXCJ8LS0tLS0tfC0tLS0tLS18XFxuXCI7XG5cdFx0Y29uc3QgdG90YWxTaXplID0gZC50cmVlLnZhbHVlO1xuXHRcdGNvbnN0IHsgbGFyZ2VOb2RlcywgaGFzT3RoZXIgfSA9IGZpbmRMYXJnZURpcmVjdG9yaWVzKFxuXHRcdFx0ZC50cmVlLFxuXHRcdFx0dG9wTkxhcmdlc3RQYXRocyxcblx0XHQpO1xuXHRcdGZvciAoY29uc3QgeyBwYXRoLCB2YWx1ZSB9IG9mIGxhcmdlTm9kZXMpIHtcblx0XHRcdGNvbnN0IHBlcmNlbnQgPSBmaXhlZFBlcmNlbnQodmFsdWUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgJHtwYXRofSB8ICR7cmVuZGVyQmFyKHBlcmNlbnQsIHZhbHVlKX0gfFxcbmA7XG5cdFx0fVxuXHRcdGlmIChoYXNPdGhlcikge1xuXHRcdFx0Y29uc3Qgb3RoZXJTaXplID0gdG90YWxTaXplIC0gbGFyZ2VOb2Rlc1swXS52YWx1ZTtcblx0XHRcdGNvbnN0IG90aGVyUGVyY2VudCA9IGZpeGVkUGVyY2VudChvdGhlclNpemUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgKG90aGVyKSB8ICR7cmVuZGVyQmFyKG90aGVyUGVyY2VudCwgb3RoZXJTaXplKX0gfFxcbmA7XG5cdFx0fVxuXHR9XG5cdG91dHB1dCArPSBcIjwvZGV0YWlscz5cXG5cIjtcblx0cmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQmFyKHBlcmNlbnQ6IG51bWJlciwgYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IGJhciA9IHByb2dyZXNzKHBlcmNlbnQgLyAxMDApO1xuXHRyZXR1cm4gYFxcJHt7XFxcXGNvbG9ye0dvbGRlbnJvZH17ICR7YmFyfSB9fX1cXCQgJHtwZXJjZW50LnRvRml4ZWQoXG5cdFx0MSxcblx0KX0lLCAke2ZpbGVzaXplKGJ5dGVzKX1gO1xufVxuXG4vLyBCbG9jayBwcm9ncmVzc2lvbiBpcyAxLzggPSAwLjEyNVxuY29uc3QgYmxvY2tzID0gW1wiXCIsIFwiXHUyNThGXCIsIFwiXHUyNThFXCIsIFwiXHUyNThEXCIsIFwiXHUyNThDXCIsIFwiXHUyNThCXCIsIFwiXHUyNThBXCIsIFwiXHUyNTg5XCIsIFwiXHUyNTg4XCJdO1xuY29uc3QgcHJvZ3Jlc3Npb24gPSAxIC8gKGJsb2Nrcy5sZW5ndGggLSAxKTtcbmZ1bmN0aW9uIHByb2dyZXNzKHZhbHVlOiBudW1iZXIsIGxlbmd0aCA9IDI1LCB2bWluID0gMC4wLCB2bWF4ID0gMS4wKSB7XG5cdGNvbnN0IHYgPSB2YWx1ZSAqIGxlbmd0aDtcblx0Y29uc3QgaW50ZWdlclBhcnQgPSBNYXRoLmZsb29yKHYpO1xuXHRjb25zdCBmcmFjdGlvbmFsUGFydCA9IHYgLSBpbnRlZ2VyUGFydDtcblx0Y29uc3QgaSA9IE1hdGgucm91bmQoXG5cdFx0KHByb2dyZXNzaW9uICogTWF0aC5mbG9vcihmcmFjdGlvbmFsUGFydCAvIHByb2dyZXNzaW9uKSkgLyBwcm9ncmVzc2lvbixcblx0KTtcblx0cmV0dXJuIFwiXHUyNTg4XCIucmVwZWF0KGludGVnZXJQYXJ0KSArIGJsb2Nrc1tpXTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU2l6ZShkOiBDb21wYXJlUmVzdWx0KTogc3RyaW5nIHtcblx0cmV0dXJuIGZpbGVzaXplKGQuYnl0ZXMpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJOb3RlKGQ6IENvbXBhcmVSZXN1bHQsIHJlZFRocmVzaG9sZDogbnVtYmVyKTogc3RyaW5nIHtcblx0aWYgKGQucmVtYXJrID09PSBcImRlbGV0ZWRcIikge1xuXHRcdHJldHVybiBcIlx1RDgzRFx1REREMVx1RkUwRiBEZWxldGVkXCI7XG5cdH1cblx0aWYgKGQucmVtYXJrID09PSBcImFkZGVkXCIpIHtcblx0XHRyZXR1cm4gXCJcdUQ4M0NcdUREOTUgQWRkZWRcIjtcblx0fVxuXHRjb25zdCBkaWZmID0gZC5ieXRlcyAtIGQuYmFzZUJ5dGVzO1xuXHRpZiAoZGlmZiAhPT0gMCkge1xuXHRcdGNvbnN0IHBlcmNlbnRDaGFuZ2UgPSAoZGlmZiAvIGQuYmFzZUJ5dGVzKSAqIDEwMDtcblx0XHRyZXR1cm4gYCR7cmVuZGVyU3RhdHVzSW5kaWNhdG9yKHBlcmNlbnRDaGFuZ2UsIHJlZFRocmVzaG9sZCl9JHtmaWxlc2l6ZShcblx0XHRcdGRpZmYsXG5cdFx0KX0gKCR7c2lnbihwZXJjZW50Q2hhbmdlKX0ke3BlcmNlbnRDaGFuZ2UudG9GaXhlZCgxKX0lKWA7XG5cdH1cblx0cmV0dXJuIFwiXHUyNzA1ICBObyBjaGFuZ2VcIjtcbn1cblxuZnVuY3Rpb24gc2lnbihudW06IG51bWJlcik6IHN0cmluZyB7XG5cdHJldHVybiBudW0gPCAwID8gXCJcIiA6IFwiK1wiO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTdGF0dXNJbmRpY2F0b3IoXG5cdHBlcmNlbnRDaGFuZ2U6IG51bWJlcixcblx0cmVkVGhyZXNob2xkOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRsZXQgcmVzOiBzdHJpbmc7XG5cdGlmIChwZXJjZW50Q2hhbmdlID4gMCAmJiBwZXJjZW50Q2hhbmdlIDwgcmVkVGhyZXNob2xkKSB7XG5cdFx0cmVzID0gXCJcdTI2QTBcdUZFMEZcIjtcblx0fSBlbHNlIGlmIChwZXJjZW50Q2hhbmdlID49IHJlZFRocmVzaG9sZCkge1xuXHRcdHJlcyA9IFwiXHUyMDNDXHVGRTBGXCI7XG5cdH0gZWxzZSB7XG5cdFx0cmVzID0gXCJcdTI3MDUgXCI7XG5cdH1cblx0cmV0dXJuIGAke3Jlc30gJHtzaWduKHBlcmNlbnRDaGFuZ2UpfWA7XG59XG4iLCAiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbmltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IHsgZ2xvYlN5bmMgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dCwgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvcnQoaW5wdXQ6IElucHV0KTogdm9pZCB7XG5cdGNvbnN0IGFsbFBhZ2VTaXplcyA9IGdldEFsbFBhZ2VTaXplcyhpbnB1dCk7XG5cdGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnkpLCB7XG5cdFx0cmVjdXJzaXZlOiB0cnVlLFxuXHR9KTtcblx0Y29uc3QgcmVzdWx0SnNvblBhdGggPSBwYXRoLmpvaW4oXG5cdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcImJ1bmRsZV9hbmFseXNpcy5qc29uXCIsXG5cdCk7XG5cdGZzLndyaXRlRmlsZVN5bmMocmVzdWx0SnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGFsbFBhZ2VTaXplcywgbnVsbCwgMikpO1xuXHRjb25zb2xlLmxvZyhgV3JvdGUgJHtyZXN1bHRKc29uUGF0aH1gKTtcbn1cblxuaW50ZXJmYWNlIE1ldGFmaWxlUGF0aCB7XG5cdHJlYWRvbmx5IHJlbGF0aXZlUGF0aDogc3RyaW5nO1xuXHRyZWFkb25seSBhYnNvbHV0ZVBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNZXRhZmlsZXMoaW5wdXQ6IElucHV0KTogTWV0YWZpbGVQYXRoW10ge1xuXHRyZXR1cm4gaW5wdXQubWV0YWZpbGVzLmZsYXRNYXAoKG1ldGFmaWxlKSA9PiB7XG5cdFx0cmV0dXJuIGdsb2JTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBtZXRhZmlsZSksIHtcblx0XHRcdG5vZGlyOiB0cnVlLFxuXHRcdH0pLm1hcCgobWV0YUZpbGVQYXRoKSA9PiB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRyZWxhdGl2ZVBhdGg6IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgbWV0YUZpbGVQYXRoKSxcblx0XHRcdFx0YWJzb2x1dGVQYXRoOiBtZXRhRmlsZVBhdGgsXG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsUGFnZVNpemVzKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdGNvbnN0IGFjYzogUmVwb3J0ID0ge307XG5cdHJldHVybiBmaW5kTWV0YWZpbGVzKGlucHV0KS5yZWR1Y2UoKGFjYywgeyByZWxhdGl2ZVBhdGgsIGFic29sdXRlUGF0aCB9KSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVQYXRoLCBmcy5jb25zdGFudHMuUl9PSyk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XHRgTm8gbWV0YSBmaWxlIGZvdW5kIGF0IFwiJHthYnNvbHV0ZVBhdGh9XCIgLSBhIHBhdGggdG8gbWV0YSBmaWxlIG1heSBiZSB3cm9uZywgb3IgZXNidWlsZCBpcyBub3QgZXhlY3V0ZWQuYCxcblx0XHRcdCk7XG5cdFx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWV0YUZpbGVKc29uID0gbG9hZE1ldGFGaWxlKGFic29sdXRlUGF0aCk7XG5cdFx0T2JqZWN0LmVudHJpZXMobWV0YUZpbGVKc29uLm91dHB1dHMpLnJlZHVjZSgoYWNjLCBvdXRwdXQpID0+IHtcblx0XHRcdGNvbnN0IFtvdXRmaWxlLCBidWlsZE1ldGFdID0gb3V0cHV0O1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQhaW5wdXQuaW5jbHVkZUV4dGVuc2lvbnMuc29tZSgoZXh0KSA9PlxuXHRcdFx0XHRcdG91dGZpbGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChleHQpLFxuXHRcdFx0XHQpXG5cdFx0XHQpIHtcblx0XHRcdFx0cmV0dXJuIGFjYztcblx0XHRcdH1cblx0XHRcdGFjY1tgJHtyZWxhdGl2ZVBhdGh9IC0+ICR7b3V0ZmlsZX1gXSA9IHtcblx0XHRcdFx0Ynl0ZXM6IGJ1aWxkTWV0YS5ieXRlcyxcblx0XHRcdFx0bWV0YWZpbGU6IHJlbGF0aXZlUGF0aCxcblx0XHRcdFx0b3V0ZmlsZSxcblx0XHRcdH07XG5cdFx0XHRyZXR1cm4gYWNjO1xuXHRcdH0sIGFjYyk7XG5cdFx0cmV0dXJuIGFjYztcblx0fSwgYWNjKTtcbn1cbiIsICJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcblxuaW1wb3J0IHR5cGUgeyBNZXRhZmlsZSB9IGZyb20gXCJlc2J1aWxkXCI7XG5pbXBvcnQgdHlwZSB7IFJlcG9ydCB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGxvYWRKc29uRmlsZShwYXRoOiBzdHJpbmcpIHtcblx0cmV0dXJuIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhdGgpLnRvU3RyaW5nKFwidXRmLThcIikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZE1ldGFGaWxlKHBhdGg6IHN0cmluZyk6IE1ldGFmaWxlIHtcblx0cmV0dXJuIGxvYWRKc29uRmlsZShwYXRoKSBhcyBNZXRhZmlsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBbmFseXNpc0pzb24ocGF0aDogc3RyaW5nKTogUmVwb3J0IHtcblx0cmV0dXJuIGxvYWRKc29uRmlsZShwYXRoKSBhcyBSZXBvcnQ7XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hY3Rpb25zL3Rvb2xraXQvYmxvYi84MWE3M2FiYThiZWRkNTMyZjZlZGRjYzQxZWQzYTBmYWQ4YjFjZmViL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmUudHMjTDEyNlxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbmdsZUlucHV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IHZhbCA9IHByb2Nlc3MuZW52W2BJTlBVVF8ke25hbWUudG9VcHBlckNhc2UoKX1gXSB8fCBcIlwiO1xuXHRyZXR1cm4gdmFsLnRyaW0oKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJzc0dBQUEsT0FBUyxpQkFBQUEsT0FBcUIsV0NBOUIsT0FBT0MsT0FBUSxVQUNmLE9BQU9DLE9BQVUsWUNEakIsT0FBT0MsT0FBUSxVQUNmLE9BQU9DLE9BQVUsWUFDakIsT0FBT0MsT0FBYSxlQUVwQixVQUFZQyxPQUFhOzt1bzREQ0p6QixPQUFPQyxPQUFRLFVBS2YsU0FBU0MsR0FBYUMsRUFBYyxDQUNuQyxPQUFPLEtBQUssTUFBTUYsR0FBRyxhQUFhRSxDQUFJ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TUFBTSxJQUFJLE1BQU0sdUJBQXVCLEVBRXhDLE1BQU8sQ0FDTixzQkFBdUIsT0FBTyxTQUM3QkQsRUFBZSx5QkFBeUIsR0FBSyxLQUM3QyxFQUNELEVBQ0EsWUFBYSxDQUFDLE9BQVEsT0FBUSxNQUFNLEVBQUUsU0FDckNBLEVBQWUsY0FBYyxHQUFLLE1BQ25DLEVBQ0EsaUJBQWtCLE9BQU8sU0FDeEJBLEVBQWUscUJBQXFCLEdBQUssS0FDekMsRUFDRCxFQUNBLG1CQUNDQSxFQUFlLG9CQUFvQixHQUFLLGlCQUN2QyxNQUFNLEdBQUcsRUFDWCxLQUFBQyxFQUNBLGtCQUFtQkQsRUFBZSxtQkFBbUIsR0FBSyxZQUMxRCxVQUFXRCxFQUFhLE1BQU0sR0FBRyxDQUNsQyxDQUNELENBRU8sU0FBU0csR0FBSUMsRUFBZUwsR0FBUyxFQUFTLENBQ3BETSxHQUFPRCxDQUFLLEVBQ1pFLEdBQVFGLENBQUssQ0FDZCxDQUVJLFlBQVksTUFBUUcsR0FBYyxRQUFRLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFDdERKLEdBQUkiLAogICJuYW1lcyI6IFsicGF0aFRvRmlsZVVSTCIsICJmcyIsICJwYXRoIiwgImZzIiwgInBhdGgiLCAicHJvY2VzcyIsICJjb25zb2xlIiwgImZzIiwgImxvYWRKc29uRmlsZSIsICJwYXRoIiwgImxvYWRNZXRhRmlsZSIsICJsb2FkQW5hbHlzaXNKc29uIiwgImdldFNpbmdsZUlucHV0IiwgIm5hbWUiLCAicmVwb3J0IiwgImlucHV0IiwgImFsbFBhZ2VTaXplcyIsICJnZXRBbGxQYWdlU2l6ZXMiLCAiZnMiLCAicGF0aCIsICJwcm9jZXNzIiwgInJlc3VsdEpzb25QYXRoIiwgImZpbmRNZXRhZmlsZXMiLCAibWV0YWZpbGUiLCAiZ2xvYlN5bmMiLCAibWV0YUZpbGVQYXRoIiwgImFjYyIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgIm1ldGFGaWxlSnNvbiIsICJsb2FkTWV0YUZpbGUiLCAib3V0cHV0IiwgIm91dGZpbGUiLCAiYnVpbGRNZXRhIiwgImV4dCIsICJjb21wYXJlIiwgImlucHV0IiwgImhhc0FueUNoYW5nZSIsICJvdXRwdXQiLCAiY3VycmVudCIsICJsb2FkQW5hbHlzaXNKc29uIiwgInBhdGgiLCAiYmFzZSIsICJsb2FkQmFzZUFuYWx5c2lzSnNvbiIsICJmaWxlVHJlZSIsICJidWlsZEZpbGVUcmVlIiwgImNvbXBhcmlzb24iLCAib3V0ZmlsZSIsICJjdXJyZW50U3RhdHMiLCAiYmFzZVN0YXRzIiwgInRyZWUiLCAidHJlZUtleSIsICJkaWZmIiwgIm1hcmtkb3duVGFibGUiLCAiZmlsZVNpemVUYWJsZSIsICJkZXRhaWwiLCAid3JpdGVDb21tZW50IiwgIm1ldGFmaWxlIiwgImZzIiwgInJlcG9ydCIsICJidWlsZFJvb3QiLCAicm9vdCIsICJmaWxlUGF0aCIsICJieXRlc0luT3V0cHV0IiwgImRpcmVjdG9yaWVzIiwgImJ1aWxkTm9kZSIsICJub2RlIiwgInBhdGhzIiwgInZhbHVlIiwgImZpcnN0IiwgImNoaWxkIiwgInRyZWVzIiwgInJlbGF0aXZlUGF0aCIsICJhYnNvbHV0ZVBhdGgiLCAiZmluZE1ldGFmaWxlcyIsICJtZXRhZmlsZUpzb24iLCAibG9hZE1ldGFGaWxlIiwgImJ1aWxkTWV0YSIsICJzcGFjZXIiLCAiZmlsZXNpemUiLCAiYnl0ZXMiLCAic2lnbiIsICJuIiwgImRhdGEiLCAicmVkVGhyZXNob2xkIiwgImQiLCAicmVuZGVyU2l6ZSIsICJyZW5kZXJOb3RlIiwgImZpbmRMYXJnZURpcmVjdG9yaWVzIiwgIk4iLCAibm9kZXMiLCAicXVldWUiLCAic2hpZnQiLCAiZGVwdGgiLCAiaXRlbSIsICJhIiwgImIiLCAiZml4ZWRQZXJjZW50IiwgInRvcE5MYXJnZXN0UGF0aHMiLCAidG90YWxTaXplIiwgImxhcmdlTm9kZXMiLCAiaGFzT3RoZXIiLCAicGVyY2VudCIsICJyZW5kZXJCYXIiLCAib3RoZXJTaXplIiwgIm90aGVyUGVyY2VudCIsICJwcm9ncmVzcyIsICJibG9ja3MiLCAicHJvZ3Jlc3Npb24iLCAibGVuZ3RoIiwgInZtaW4iLCAidm1heCIsICJ2IiwgImludGVnZXJQYXJ0IiwgImZyYWN0aW9uYWxQYXJ0IiwgImkiLCAicGVyY2VudENoYW5nZSIsICJyZW5kZXJTdGF0dXNJbmRpY2F0b3IiLCAibnVtIiwgInJlcyIsICJnZXRJbnB1dCIsICJyYXdNZXRhZmlsZXMiLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJydW4iLCAiaW5wdXQiLCAicmVwb3J0IiwgImNvbXBhcmUiLCAicGF0aFRvRmlsZVVSTCJdCn0K